온사이트 인터뷰
서류, HR, 온라인 코딩, 테크니컬 폰 스크리닝을 거쳐 드디어 온사이트 면접입니다. 이전 단계를 잘 끝내면 리쿠르터에게서 연락이 옵니다. 온사이트 면접이 가능한 날짜 몇 개를 알려주면 스케줄러 직함을 가진 사람 또는 외부 업체가 일정을 잡아줍니다. 다른 도시, 다른 주에 있다면 대부분 비행기, 호텔, 교통편 예약을 해줍니다. 이번 면접은 같은 동네에서 한다고 주차비 지원도 안해주더군요.
온사이트 면접이 확정되면 초대 이메일이 옵니다. 이메일에는 장소, 시간, 인터뷰 담당자 이름이 적혀있습니다. 70% 이상 링크드인에서 찾아보면 프로필이 나와있습니다. 인터뷰 가기 전에 한 번 검색해보고 무슨 일을 하고 있는지, 그 사람이 운영하는 블로그는 없는지 살펴봤습니다.
온사이트 인터뷰는 짧게는 2시간 30분에서 길게는 4시간까지 했습니다. 일단 도착하면 리쿠르터 또는 첫 번째 인터뷰 하는 사람이 마중을 나옵니다. 간단하게 사무실 구경 시켜준 후 인터뷰하는 곳으로 데려 갑니다. 대부분 조그만 회의실이 예약되어 있습니다. 거기에 앉아서 3-5명의 인터뷰어들을 상대해야 합니다.
Enova
가장 처음 온사이트 인터뷰를 본 곳입니다. 소규모 대출을 해주는 스타트업 기업입니다. 루비를 쓰는 곳이지만 입사하면 연수 기회가 있기 때문에 루비를 몰라도 된다고 했습니다. 여기서 처음 짝 프로그래밍을 해봤습니다. 사용한 언어는 자바. 70%가량 완성된 틱택토 게임을 제가 완성하면 되는 것이었습니다. 주절주절 떠들면서 빈 곳을 채워갔습니다. 중간 중간에 왜 그렇게 하는지, 다른 방법의 장단점은 무엇인지 등등 질문을 했습니다. 복잡한 알고리즘이나 자료구조가 필요 없는 부분이라, 어렵지 않게 완성했습니다.
다음 인터뷰는 시스템 설계였습니다. 온라인 게임을 하나 만든다면 어떤 컴포넌트들이 필요한지 화이트보드에 그리면서 설명했습니다. 주니어 개발자여서 그런지 다행히 각 컴포넌트에 대해 깊히 파고들지는 않더군요.
다음은 HR 담당자와 Behavioral Interview. 전형적인 질문들이 나왔습니다.
마지막은 CTO. 작은 기업이라 그런가 CTO를 다 만나고. 그냥 편하게 학교 다녔던 이야기, 논문 이야기등을 했습니다.
첫번째 온사이트 인터뷰여서 큰 기대를 안 했는데 오퍼를 받았습니다. 오퍼는 만족할만한 수준은 아니었습니다.
Conversant
온라인 광고 업체입니다. 나중에 이메일 검색해보니 1년 전에 링크드인으로 저에게 접근했던 회사였습니다. Fullstack 포지션이고, node.js와 spring을 사용한다고 합니다.
첫번째 인터뷰어는 하이어링 매니저. 코딩 문제를 내겠다고해서 긴장했는데 피보나치 수열문제를 냈습니다. 일단 재귀함수로 구현했습니다. 그리고 재귀호출 구현의 장단점을 설명해주니 만족해했습니다. 그게 끝. 이력서를 보며 과거 프로젝트 질문만 했습니다.
다음 직원은 트럼프 카드 52장을 자바로 구현해보라는 문제를 냈습니다. 무늬, 숫자/알파벳을 구현하니 아주 만족해합니다. 카드를 어떻게 섞을지도 물어봤습니다. 효율적인 알고리즘이 있는지 잘 모르니까 일단 난수 2개 생성해서 각 위치에 있는 카드를 서로 바꾸겠다고 했습니다. 아주 흡족해 하더군요. 심지어 여태 면접본 사람들 중에 가장 빨리 끝냈다고.. 도대체 어떤 사람들이 면접을 보러 온 것일까요.
다음은 node.js 개발자가 들어왔습니다. 여자 개발자였고 문제를 잔뜩 적은 종이를 들고왔습니다. 단답형 문제 위주였고, 구현 문제도 2개 있었습니다. 구현은 아주 간단한 것이라 종이에 연필로 풀었습니다.
다음은 VP. 인터뷰라기 보다는 팀에서 하는 일 설명하고 그에 대해 제가 궁금한거 물어보고 대답하는 수준이었습니다.
두번째 온사이트에서도 오퍼를 받았습니다. 첫번째 오퍼보다 훨씬 나았지만, 제가 실수해서 취소되었습니다. 자세한 이야기는 연봉 협상 때 쓰도록 하죠.
Nielsen
고객들의 데이터를 받아서 관리하는 부서에서 면접을 봤습니다. 인터뷰할 때 회사 분위기도 맘에 들고, 하는 일도 맘에 들어 가장 가고 싶었습니다. Fullstack 포지션이어서 자바, 자바스크립트 모두 질문을 받았습니다.
Frontend 개발자 이름을 검색해보니 개발자 인터뷰를 위한 블로그를 운영하고 있더군요. 자바 스크립트 질문에 대한 포스팅이 몇 개 있길래 계속 봤습니다. 꼼꼼하게 다양한 질문들을 정리해놨더군요. 다행히도 면접 당일에 일이 있어 다른 사람이 대신 면접에 들어왔습니다. 갑작스런 인터뷰 대타라 많이 준비를 못한 듯 합니다. 제가 받은 질문은 블로그에서 거의 다룬 것들이라 쉽게 면접을 끝낼 수 있었습니다. 만약 블로그를 쓴 당사자가 왔다면 좀 힘들었을듯 합니다.
인터뷰 가기 전에 꼭 검색하세요. 두 번 검색하세요.
자바 질문은 두 명 한테서 받았습니다. 한 명은 unit test 질문을 했습니다. 나중에 복기해보니 제가 annotation을 엉뚱한 곳에 썼더군요. 작년부터 개발을 멀리하고 리포트 만드는 툴만 썼더니 다 까먹었던 겁니다. 또 한 명은 String Immutability 질문을 해서 당황했습니다. 정말 이런 질문은 상상을 못 했거든요. 기억이 나는 대로 설명을 하는데 인터뷰어의 표정은 “그거 맞아?” 로 바뀌어 가고. 그 표정 변화에 쫄아서 다시 설명을 번복해서 점점 대답은 산으로 가고.
마지막 면접은 매니저였습니다. behavioral questions 위주였습니다. Enova에서 받은 질문관 비슷한 질문들을 받았습니다. 땜빵으로 온 인터뷰어와는 잘 했지만 다른 자바 인터뷰가 별로였는지 오퍼를 못 받았습니다.
아마존
오스틴으로 이사를 할까 잠시 고민할 때 지원했습니다. 특이한 점은 온라인 코딩 테스트를 치루고, 바로 온사이트에 초대 됐습니다. 저와 계속 연락을 취한 리쿠르터는 다른 리쿠르터들에 비해 가장 협조적이고 저를 많이 도와줬습니다. 심지어 온사이트에 가기 전 리쿠르터가 모의 인터뷰를 하고 저에게 조언을 해줬습니다. 시카고에 남기로 해서 아쉽지만 인터뷰는 취소했습니다.
OppLoans
Enova처럼 소규모 온라인 대출을 해주는 회사입니다. Glassdoor에서 인터뷰 질문을 보니 질문이 다 비슷해보였습니다. 첫번째 인터뷰어는 보드 게임 구현하기 질문, 두번째는 2명이 인터뷰, 세번째는 볼링 점수 계산하기, 4번째는 CTO가 DB 질문을 했다 는 것이었습니다.
Glassdoor에는 인터뷰에 대한 불만이 많이 적혀있었습니다. 두명이 들어와서 한 명은 채팅하느라 바빴다. 볼링 점수 구현하는데 시간 다 되니까 끝! 하면서 질문도 안 받고 나가더라. 4명이 인터뷰 하기로 했는데 중간에 인터뷰 그만두고 끝이라고 하더라.
왜 이런 후기들이 올라왔는지 가보니 알겠습니다. 대출 상담원이 제일 많았고 개발자는 얼마 되지 않은 회사였습니다. 인터뷰 들어오는 사람이 거의 정해져있던 것 같았습니다.
매니저가 될 사람이 모노폴리 게임을 가지고와서 게임을 디자인 해보라고 합니다. 판, 카드, 말, 주사위, 등등 게임 요소들을 디자인했습니다.
그 다음은 신입 개발자와 매니저가 다시 들어와서 behavioral interview를 했습니다. 다행히 저와 인터뷰할 때 채팅은 안 하더군요.
다음은 젊은 개발자가 와서 볼링 점수 계산법을 설명하더니 숫자를 늘어놓고 계산해보라고 합니다. 계산을 하니까 이번에는 구현해보라고 합니다. 시간을 한 5분쯤 더 쓰며 완성을 했습니다. 급하게 구현하다보니 코드는 많이 지저분했습니다. 구현하고 있는데 자꾸 시간이 이제 x분 남았다고 재촉을 하더군요. 잘 돌아가는 것 확인하고 질문도 주고 받았습니다.
그리고 다음 인터뷰를 기다리는데 리쿠르터가 와서 인터뷰 끝났다고 돌아가라고 합니다. glassdoor의 후기와 정확히 일치했습니다.
Chase
채이스는 저에게 화수분 같은 존재였습니다. 보통 회사들은 인터뷰 떨어지면 떨어졌다며 이메일을 보내줍니다. 마지막 문단에는 하나 같이 다른 포지션에도 지원 가능하니 또 지원하라는 문장이 있었습니다. 하지만 대부분의 회사는 또 지원하면 되지 않더군요. 채이스는 달랐습니다. 지원하면 지원하는 족족 연락이 왔습니다.
그리하여 전화 인터뷰를 두 번 말아먹고 두 번 온사이트 기회를 얻었습니다. 첫 온사이트 때는 인상좋은 동유럽계 아저씨와 날카로운 인상의 인도 아저씨가 같이 들어왔습니다. 동유럽 아저씨는 질문을 하고 어떻게든 좋은 쪽으로 분위기를 유도했지만, 인도 아저씨는 좀 거만하고 콧대가 높았습니다.
DB 디자인에 대해 질문을 하나 받았습니다. 테이블 0하나 만들고, 정규화를 통해 중복된 것들을 지우려 방향으로 대답을 하고 있었습니다. 하지만 제 설명은 잘 들으려하지 않고, 데이터에서 뭔가 규칙을 발견하라고 계속 다그쳤습니다. 지금 그거 하고 있는데 말입니다!
면접에 붙어도 이런 매니저 밑에 있으면 회사 생활 힘들어 보입니다.
두번째 온사이트에서는 분위기가 좋았습니다. 중국계 직원과 인터뷰를 시작했습니다. 구현문제는 없었고, 단답형 위주였습니다. spring을 사용하는 곳이었는데 이전 프로젝트에서의 경험 위주로 대화를 했습니다.
다음 직원은 뉴욕에 있어서 화상으로 했습니다. 역시 중국계. 자바에 관한 간단한 질문들과 SQL문을 작성하라는 문제를 냈습니다. 서브 쿼리를 써서 푸는 문제였는데 정답에 80% 정도 근접한 대답을 했습니다.
마지막은 집에서 일하는 러시아계 직원. 러시아 액센트를 경험해 본 적이 없는데다 전화로 들으니 잘 알아듣기 힘들었습니다. 자바에 대한 단답형 질문을 했는데 다행히 잘 대답했습니다.
매니저에게서 맘에 들면 다음 날 디렉터 면접을 한다는 이야기를 듣고 집에 왔습니다. 중국계 직원과의 인터뷰가 좀 걸렸는데 다행히 디렉터 면접 보라고 연락이 왔습니다. 하지만 앞서 이야기 한 것처럼 연봉이 맞지 않아서 여기서 멈췄습니다.
Vela Trading Systems
여기가 제가 현재 일하는 회사입니다. 이번 이직 때는 금융, 증권 회사에 많이 지원했습니다. 금융회사에서는 Spring, Java 사용하는 팀이 많아서 인터뷰를 보러 많이 갔습니다.
하지만 증권 회사는 HFT 팀이 아니더라도 속도를 중요시 하다보니 C++ 개발자를 많이 찾았습니다. Java를 사용하는 곳도 있지만 쓰레드 경험이 없다보니 대부분 서류에서 탈락했습니다.
이 회사도 서류 탈락할 줄 알았는데 다짜고짜 온라인 코딩 테스트 하자며 링크를 보내왔습니다. Codility 결과로는 정확도가 90% 정도 였던걸로 기억합니다. 연락 안 올까봐 걱정했는데 폰 스크린 인터뷰 하자고 연락이 왔습니다.
VP와 면접이 잡혔고, 아니나 다를까 쓰레드 경험이 있냐고 묻습니다. 학교 다닐때 구현한게 다라고 했습니다. 경력 중에 안드로이드 앱 개발을 적어놨는데 그걸 보며 관심이 있어했습니다. 안드로이도 UI에서는 쓰레드 쓴다면서. P2P 게임을 만들었던 프로젝트였는데 관심있게 들어줬습니다. 인터뷰 분위기가 좋아서 테크니컬 전화 인터뷰를 기대했는데, 바로 온사이트에 오라고 연락이 왔습니다.
VP와는 전화로 어느 정도 이야기를 해서 온사이트 때는 이력서에 나온 경험 위주로 대화를 했습니다. 쓰레드 경험은 없지만 새로운 것을 배우는 것이 절대 두렵지 않고 오히려 재밌다라고 강조했습니다. 긍정적인 자세가 맘에 든다며 인터뷰를 마쳤습니다.
그 다음 직원은 웹 개발 경험이 없지만 옵션 주문 프로그램에서 잔뼈가 굵은 개발자였습니다. 증권 업계 경험이 없다보니 역시 이전 프로젝트에 대해 질문을 받았습니다. 하지만 본인이 웹 개발 경험이 없고, 저는 영어로 버벅이며 설명하고. 못 알아듣겠다는 표정입니다. 이 친구 표정 때문에 떨어질 줄 알았습니다.
다음은 제 매니저가 된 사람. 전직 트레이더였다고 합니다. 개발 프로세스, 팀 구성, 등등 설명을 많이 듣고, 이전 직장과 비교하며 질문을 받았습니다.
마지막으로 VP가 다시 와서 한 10분간 이야기를 했습니다.
긍적적인 자세도 맘에 들고, 박사 했으니 배우는 것도 금방 할 것 같은데 쓰레드 경험이 없는게 걸린다. 쓰레드 이용하는 숙제를 내줄테니 해볼래?
흔쾌히 수락하고 집에 왔습니다. TCP 서버 프로그램을 만들라는 숙제였습니다. 정말 20년만에 네트웍 프로그래밍을 해봤습니다. 밤 11시부터 새벽 3시까지 프로그래밍 하고, 질문이 있으면 vp에게 이메일 보내고. 다음 날 답장 오면 그날 밤 또 코딩하고. 혹시 몰라 unit test 코드도 넣어서 보냈습니다.
며칠 후 다시 한 번 회사에 와서 인터뷰 하자고 연락이 왔습니다. VP는 시종일관 입이 귀에 걸린채 인터뷰를 했습니다. 마치 “봤지? 내가 뭐랬어 얘봐 unit test도 짜서 왔잖아.” 뭐 이런 느낌. vp와 시니어 개발자와 코드 리뷰를 했습니다. 인터뷰 하기 전에 코드를 살펴보다 문제를 하나 발견했는데 아니나 다를까 그 부분에서 질문을 했습니다. 다행히 준비한 답변으로 마무리.
AllState
이 회사는 전화로 할 수 있는 프로그래밍 인터뷰를 직접 회사에 와서 하라고 합니다. 나름 이유가 있었습니다. 시카고 오피스 전체적으로 짝 프로그래밍을 거의 의무화 했다고 합니다. 구현 능력 뿐만 아니라 의사 소통 능력도 평가하고 싶었나봅니다.
인터뷰 때 제대로 된 짝 프로그래밍과 TDD를 해본 곳입니다. 일본계 직원이 저를 인터뷰 했습니다. 자바에서 Set을 구현 하라는 질문을 받았습니다. 코딩은 인터뷰어가 하고, 제는 옆에서 어떻게 구현할지 설명을 했습니다. 테스트를 작성해서 실패하게 만들고 그 테스트를 성공하도록 구현을 고치는 일을 반복했습니다. 짝 프로그래밍과 TDD 경험이 많은 동료와 같이 일을해보니 즐겁고 게임하듯이 1시간을 보냈습니다.
너 자꾸 세미콜론 빼먹을래?
회사도 맘에 들고, 분위기도 좋고, 같이 일할 동료도 맘에들었습니다. 하지만 연봉이 높지 않았고, 기차 역에서 멀고, 하루 종일 짝 프로그래밍을 해야하는 단점이 있었습니다. 하루 8시간, 주 5일 짝 프로그래밍이라니! 현재 직장에서 좋은 오퍼를 받아서 온사이트 인터뷰는 취소했습니다.
관련글
'회사' 카테고리의 다른 글
파국으로 이어진 개발자의 자존심 싸움 (3) | 2019.02.24 |
---|---|
나의 이직 성공기 - 연봉 협상 (2) | 2018.10.05 |
나의 이직 성공기 - 온라인 코딩 테스트 (1) | 2018.07.20 |
나의 이직 성공기 - 회사 지원 및 HR 인터뷰 (2) | 2018.07.16 |
나의 이직 성공기 - 회사 검색 (0) | 2018.07.14 |