첫번째 글은 아래 링크에서 읽으실 수 있습니다.
https://steemit.com/kr/@asbear/1
올해 1월, 런던의 페이스북으로부터 지원할생각 있냐는 연락을 받았습니다. 스타트업으로 옮긴지 1년밖에 안된 시점인지라 매우 신중했지만, 가장 가고싶은 회사에서 연락이 오는데 거절하기는 너무나 아쉬웠습니다. 그래서 헤드헌터와 통화 후 포지션에 대한 설명을 듣고, 정식으로 지원 절차를 시작했습니다.
첫번째 인터뷰는 테크니컬 폰 인터뷰였습니다. 페이스북 런던의 AI팀인가에서 일하는 캠브리지 박사출신 엔지니어 (왠지 묻지도 않았는데 자기가 그렇게 밝히더군요)와 전화인터뷰를 진행하였습니다. 캠브리지 박사에 AI에서 일한다고 해서 무지 쫄았더니 상당히 쉬운 문제를 물어봐서 별 문제 없이 풀고, 이런저런 질의응답을 하다가 마쳤습니다. 전화를 끊자 마자, 온사이트에 초대받을것이라는 확신이 들었습니다. 인도발음이 섞인 여자였는데, 왜 자신의 학벌을 이야기했는지 아직도 이해가 잘 가지 않습니다. 며칠후 헤드헌터로부터 온사이트에 초대되었다는 연락을 받았습니다.
헤드헌터가 1달 이내에 아무때나 인터뷰 원하는 날을 고르라고해서 2주 후에 하겠다고 했습니다. 그리고는 예전에 페이스북 인터뷰를 준비하는 방식으로 준비했습니다. 일단 매일매일 https://leetcode.com/ 에서 10개 정도의 알고리즘 퀴즈를 풀었습니다. 그리고 나머지 시간은 scalable design question 준비에 시간을 쏟았습니다. 다른 회사들하고 유사하게, 페이스북은 알고리즘 문제와 디자인문제를 모두 물어보기 때문에 양쪽 다 준비를 철저히 해야 합니다. 페이스북, 구글, 아마존의 인터뷰를 어떻게 준비하는가에 대한 내용은 인터넷에도 많이 있지만, 제 경험을 녹여 잘 정리해서 따로 포스팅 해 보도록 하겠습니다. (언제가 될런지 ^^)
페이스북은 온사이트 인터뷰를 초대할때부터 정확한 스케쥴과 인터뷰어의 이름, 그리고 어떤 내용으로 인터뷰 하는지 정확히 알려줍니다. 그리고 링크드인에서 프로필 찾아보고 준비하라고도 이야기해 줍니다. 헤드헌터 말로는 제가 Senior 포지션이라서 design interview가 2개라고 하더군요. 저의 스케쥴은 아래와 같았습니다.
시간 | 이름 | 인터뷰 종류 |
---|---|---|
10:00am | 인터뷰어 A | 기술대화 (tech chat) |
11:00am | 인터뷰어 B | 코딩 인터뷰1 |
12:00pm | 인터뷰어 C | 함께 점심식사 |
13:00pm | 인터뷰어 D | 코딩 인터뷰2 |
14:00pm | 인터뷰어 E | 시스템 디자인 인터뷰1 |
15:00pm | 인터뷰어 F | 시스템 디자인 인터뷰2 |
16:00pm | 리쿠르터 | 마무리 대화 |
Tech chat은 behavioural question이 주를 이루면서, 각각의 대답속에서 기술적으로 깊숙히 파고드는 인터뷰입니다. 아마존의 질문들과 비슷한데, 페이스북은 engineering manager와 한시간 내내 이 인터뷰를 진행합니다. 대화를 하다보면 화이트보드에 아키텍쳐를 그리면서 설명하게 되고, 점점 깊숙한 이야기로 들어갑니다.
코딩 인터뷰는, 다른 이야기는 거의 하지 않고 대략 5분정도 간단한 소개와 뻔한 behavioural question을 주고받고 바로 알고리즘 코딩으로 들어갑니다. 마지막 5분정도에 질의응답 시간을 가지고 마칩니다.
시스템 디자인 인터뷰는, 코딩 인터뷰와 마찬가지로 5분정도 대화를 나눈 후 아주 아주 심플한 조건을 던지면서 설계하라고 합니다. URL shortener를 만들어라 이런 식이죠. 처음에 준비 없이 이 인터뷰를 하게되면 정말 당혹스러운데, 준비를 많이 하고나면 이 인터뷰가 정말로 재밌습니다. 이거야 말로 돈주고도 못할 경험이죠. (사실 돈주고는 할수 있겠지만, 그런 긴장감이 없죠 ㅎㅎ)
중간에 인터뷰어가 아닌 페북 직원과 밥먹는 시간이 있는데, 이시간도 재밌습니다. 페북 런던은 구내식당이 끝내줍니다. 모두 무료고요.
출처: http://www.cosmopolitan.com/uk/worklife/careers/a37788/what-its-like-to-work-at-facebook/
이제부터는 온사이트 인터뷰 당일에 겪은 이야기를 풀어봅니다. 인터뷰 내용은 공개하지 않기로 서명 하여서 자세한 이야기는 할 수 없고, 여기에는 간략하게 적어보겠습니다.
테크 톡 인터뷰
왜 1년밖에 안되었는데 그만두려 하느냐 라는 질문으로 시작해서, 제가 일했던 것들에 대해 묻고, 기술적으로 파고들고를 50분 정도 했습니다. 그후에 마지막 10분은, 코딩 없는 알고리즘 퀴즈를 풀었습니다. 인터뷰는 순조로왔습니다. 폴란드 출신 개발자였는데, 얼마전에 엔지니어링 매니져로 전향한 친구더군요. 나이도 어리고 개발 경력도 짧고, 약간 거품이 많이 껴있다는 느낌을 받았습니다. 열심히 파고들기는 하는ㄷ, 날카로운 송곳같은 질문을 하지 못하고, 잘 모르지만 그냥 물고늘어지는 그런 식이었죠. 이런경우 질문이 어이가없어서 당황하고 발끈하기 쉬운데, 당황하지 않고, 기죽지 않고, 계속 자세히 자세히 설명하고, 아닌것은 아니라고 하면서 논쟁해야 합니다. 그게 잘 안되는데, 그냥 상세한 기술 잘 모르는 컨설턴트하고 대화한다는 느낌으로 가면 됩니다.
코딩 인터뷰 1
문자열 처리 관련된 알고리즘 코딩 인터뷰였습니다. leetcode 의 easy 중에서 조금 어려운 정도의 문제였습니다. 푸는데 별 문제는 없었는데, 코드가 길어져서 함수로 나누는 과정에서 파라메터를 몇개 빼먹는 실수를 했습니다. 다행히 바로 발견해서 고쳤고 결과적으론 아주 잘 끝났습니다.
코딩 인터뷰 2
트리와 링크드리스트가 섞인 알고리즘 코딩 인터뷰였습니다. 이 문제는 leetcode 의 쉬운 medium 정도 문제였던 것 같습니다. 한번 풀어봤던 문제여서 아이디어는 금방 캐취 하였으나, 약간 복잡한 면이 있다보니 한번에 코딩을 깨끗하게 하는것이 쉽지는 않았습니다. 시간이 모자랄 것 같아서 좀 당황하다가, 차차 정리하면서 마지막에 분석까지 잘 마쳤습니다.
디자인 인터뷰 1
Scalable web architecture 에서 특정 상황이 주어졌을 때 database access를 어떻게 최적화 할것인가로 대화를 시작하여, 상세한 부분까지 설계하는 문제였습니다. 이 인터뷰에서 결정적인 실수를 해서 떨어졌습니다. 제가 잘 알고있는 분야여서, 두가지 디자인을 제시 했고, 첫번째 디자인보다 두번재 디자인이 현실적으로 뛰어남을 설명한 후, 첫번째 디자인을 간략히 설명하고 있는데, 인터뷰가 첫번째 디자인에 대해서 끊임없이 질문을 했습니다. 처음에는 간단한 부분만 질문할 줄 알았더니 계속해서 질문을 했습니다. 자잘한것까지 계속 대답하다보니 시간이 훅 가버리더군요. 제가 애초에 눈치를 채고, "첫번째 디자인은 최적이 아니므로 스킵하고 두번째 디자인으로 넘어가겠다" 라고 했어야 하는데, 인터뷰어가 제 첫번째 디자인에 지대한 관심이 있다고 착각해서 거기에 푹 빠져 버렸습니다. 결국 두번째 디자인에대한 심도있는 대화를 하기전에 시간이 만료 되어 버렸습니다. 하지만 당시에는, 인터뷰어가 몹시 흡족해 한것처럼 느꼈고, 저도 아주 만족스럽고 재밌게 즐겼기 때문에, 무조건 피드백이 좋을것이라고 생각했었습니다.
디자인 인터뷰 2
해커가 되어 10000명의 사람들의 컴퓨터를 이용하여 대용량 처리를 하는 뭔가를 디자인하라는 내용이었습니다. 아주아주 재밌는 시간이었습니다. 제가 설계를 하고 토론을 주도하는 동안, 인터뷰어는 별로 질문을 많이 하지 않았고, 큰 태클도 걸지 않았습니다. 그런데 말없이 계속 노트북에 뭘 적길래, 인터뷰를 마칠 때 즈음엔 내가 뭔가 크게 놓친게 있나 하는 생각이 드는 인터뷰였습니다.
인터뷰를 마치고 집에 가는 길의 느낌은, "이번엔 100% 되겠다" 였습니다. 그만큼 모든 스테이지를 아주 잘 했다고 스스로 생각할 만큼 순조로운 인터뷰였습니다. 집에 오는길에 페이스북으로 출근하는 교통편까지 알아보고 김칫국 드링킹을 하며 먹고 마시며 주말을 보냈지요.
결과
즐거운 주말을 방탕하즐겁게 보내고, 화요일날 받은 피드백 전화는, "뽑지 않기로 했다" 로 시작했습니다. 페이스북은 피드백을 아주 상세하게 주는데, 전반적인 피드백은 아주 아주 좋았습니다. 걱정했던 디자인인터뷰2는 오히려 그중에서도 가장 피드백이 좋았더군요. 하지만 기대와는 정반대로, 디자인인터뷰 1의 피드백은 좋지 않았습니다. 인터뷰의 과정은 좋았으나 어프로치가 처음부터 잘못되었다는 피드백을 받았다고 알려주더군요. XX를 쓰는 디자인을 기대했는데 다른디자인을 설명한것이 문제라고, 인터뷰어의 피드백을 자세히 읽어줬습니다. 그때 그 인터뷰의 상황이 주마등처럼 스쳐지나가면서, 후회도 되고 좀 화도 나더군요. 분명이 두개의 디자인이있는데 첫번째것을 설명하고, 단점을 설명한후 두번째것을 본격적으로 설명하겠다고 밝혔음에도, 첫번째것에 시간 다 날리게 했으면서 그런 피드백을 주다니, 당혹스러웠습니다. 하지만 이내 그것도 아마도 테스트의 일부였다고 받아들였습니다. 그리고 나중에 그런상황이 오면 휘둘리지 않고 밀고나가야겠구나 생각했지요. 물론 제 커뮤니케이션 능력이 부족해서였던 것도 있다고 생각합니다.
사실 너무나 확신했던 합격이 불합격으로 돌아오고, 조금 가슴앓이도 했지만, 결과적으로는 많은것을 얻은 인터뷰였습니다. 이런 말이 있지요.
"What doesn't kill you makes you stronger"
덕분에 아마존 인터뷰(https://steemit.com/kr/@asbear/amazon)는 비교적 쉽게 느껴졌었네요. 페이스북 폰/온사이트 인터뷰를 앞두신 분들이 혹시 궁금한것이 있으시면 댓글로 질문 주시면 답변 드리겠습니다. 감사합니다.
10년 전 구글 인터뷰 한 기억이 나네요...
1달 정도 주당 2회 2시간 정도씩 7회 진행했던 것 같네요...
그때는 왜 떨어졌는지 모르겠지만, 지금은 에이 당연히 떨어지겠군 하는 생각이 듭니다.
구글인터뷰가 예전에 엄청나게 길었다고 들엇는데 지금은 상당히 짧아졌다고 하더라구요. 4년전인가 인터뷰 한번 봤었는데 온사이트까지 가지도 못가고 리쿠르터랑 1번, 도다른 리쿠르터랑 테크니컬 전화 인터뷰 1번 한다음에, 폰 코딩인터뷰 한번 하고 떨어졌었습니다. 그땐 뭐가뭔지도 모를때였는데... 참 무모했던 것 같습니다.
7번이면 온사이트 포함이었던건가요? 전화만 7회면 진짜로 지치겠습니다...
Upvoted. I'll be resteeming this now :)
thanks mate. did you use google translator?
와~~페이스북이라니 능력이 대단하신가봐요^^ 화이팅!!
인터뷰 보고 떨어졌습니다.. 대단했다면 붙었을텐데 말이지요.... ^^ 그래도 칭찬은 듣기좋아요. 감사합니다.
외국 인터뷰에는, 특히 시스템 인터뷰에서는 함정을 엄청 파 두나보네요... 무섭습니다;
예 실제로 함정 팝니다. 시스템 디자인 인터뷰는 내가 미팅을 주도해야합니다. 계속 흔드는데 안흔들리고 목적지까지 가는게 중요합니다.
무섭네요.
시스템 디자인을 잘 하더라도 그걸 다른 사람들에게 설명+설득 등을 못 한다면 의미가 없다는 의도에서 그러는걸까요...
제생각에 그이유가 맞는것 같습니다. 페북은
개개인이 dev lead 역할을 하길 원하는것 같아요. 인터뷰어가 그러더군요. 자기는 팀원이고 니가 dev lead 라고 생각하고 디자인 미팅 진행하듯 하라고. 물론 인터뷰어가 힌트도 주는데 힌트 캐취 못하고 헤메거나, 합당한 이의제기나 아이디어를 무시하고 밀어부치기만 하면 거의 백퍼 탈락이라고 알고 있습니다.
와.. 이런 인터뷰를 하려면 엄청난 내공이 필요하겠네요.
생생한 후기 잘 봤습니다.
내공은... 제가 없으니까 없어도 되는것 같습니다만, 연습은 정말 많이 필요합니다. ^^
제3자가 되어 읽는 저야 즐겁게 읽지만, 아쉬움이 크시겠어요.
아쉬움이 무지 컸었는데, 지나고나니 엄청 도움이 되더라구요. 이렇게 다른분들과 공유할수있는거만 해도 본전은 뽑고 남은것 같습니다. ^^
하아~ 빡쉬다는 말밖에는ㅠㅠ 뭐든지 단정지어버리면 안된다는 생각이 듭니다. 그렇게 확신을 가지셨음에도 역시 페이스북이라는 말밖에 안나오네요ㅎㅎ 대단한 인터뷰 그리고 대단한 면접경험을 하신것에 경의를 표현합니다.
에이 과찬이십니다. ㅎㅎ 부족해서 실수한줄도 모르고 확신을 가졌다는게 부끄럽더라구요. 그리고 인터뷰는 진짜 엔지니어로써의 실력하고 큰 상관관계는 없는것 같습니다. 같이 일하고싶은 사람인지를 거르는것이니까요.
글을 읽는내내 들었던 생각은..
@asbear님이 완전 점점 커져보이고 있답니다.
사실 이것 말고도 실패담이 엄청 많은데..
금융권의 B모g 사에는 5번 도전했는데 실패했습니다.
지금 생각해보면 실패한게 다행이란 생각이 들지만요.
나중에 한번 처참한 B모사 도전기를 적어봐야겠습니다.
그나저나 실패담이 더 인기가 있는 것 같습니다.
요론 비디오들이 인기 있는 것처럼.. ㅎㅎㅎㅎㅎ
(야동아닙니다)