brunch

You can make anything
by writing

C.S.Lewis

by MrCC Jan 13. 2019

전화 인터뷰 Part 3

Episode 6. Airbnb, Facebook, Netflix


(사진: Google Play)

마지막 인터뷰 그룹이다. 

메인 그룹에 있던 회사들은 제일 늦게 인터뷰 스케줄을 잡아서 다른 회사들과 전화 인터뷰를 통해 충분히 연습을 하고 준비가 된 상태에서 인터뷰를 볼 수 있도록 계획을 했다. 

(사진: Airbnb)

6번째 전화 인터뷰는 Airbnb

Airbnb Job Site에서 지원 후 유난히 밝은 리크루터에게 전화가 걸려왔다. 
Airbnb에 대해 자세한 소개와 지금까지 연락한 회사들 중 유일하게 Work-Life Balance가 좋다는 것을 유난히 강조를 했다. 
특이했던 점은 첫 번째 기술 면접 (Technical interview)를 전화 인터뷰나 Takehome Challenge 중 선택을 하게 해 줬다. 
전화 인터뷰는 다른 회사들과 비슷하게 45분 기술 면접이고 takehome challenge를 선택하면 내가 시간이 날 때 아무 때나 1시간짜리 coding challege를 하는 것이었다. 
나는 주저앉고 takehome challenge를 선택했다. 
우선 새로운 인터뷰 방식에 어떤 식으로 인터뷰 진행이 되는지 궁금한 것도 있었고 주말에 시간이 날 때 아무 때나 할 수 있다는 점에 선택하게 되었다. 
Takehome challenge 후엔 엔지니어와 30분 정도 solution 설명을 하는 간단한 인터뷰가 진행이 될 거라고 하였다. 

그 후 리크루터가 이메일로 자세한 instruction과 함께 Takehome Challenge link를 보내줬다. 
Takehome Challenge는 HackerRank를 이용해서 1시간의 제한 시간 내로 주어진 문제를 해결하는 algorithm을 짜고 정해진 test cases들을 통과해야 했다. 
takehome의 장점은 인터뷰를 보는 동안 googling을 할 수 있다는 것인데 이 때문에 사실 시작 전에는 어렵지 않게 할 수 있을 것이라고 생각이 들어 조금은 쉽게 봤다. 
하지만 정작 인터뷰 보는 내내 googling을 할 시간이 없을 정도로 1시간이라는 시간이 엄청 빠듯했다.

문제는 Host Crowding problem. 
대략적인 문제를 설명하자면


When a user submits a search query on our platform, we return a list of results scored according to the specified preferences... Given the number of results per page, divide the result set into separate pages, while having a host appear at most one in each page...


인터뷰 문제만 봐선 지금껏 인터뷰를 하면서 받았던 인터뷰 문제 중에서 가장 참신했고 Airbnb search team에서 진짜 해결했을 법한 그런 문제여서 마음에 들었다. 
하지만 충분하다고 1시간이 생각보다 넉넉지 않았고 좀 더 optimal 한 solution을 찾는데 너무 시간을 써버린 탓에 결과적으로 시간 초과...
처음 해보는 인터뷰 방식을 떠나서 이건 100% 내가 주어진 시간을 잘못 활용한 탓이었다. 
알고리듬 상으로 optimal 하다고 생각된 솔루션을 제출하였지만 일단 compile이 안 되는 코드였고 당연히 HackerRank에서 채점으로 쓰이는 test cases는 하나도 통과를 못 하는 솔루션이였기 때문에 인터뷰 통과하기엔 어려워 보였다.
그래도 내가 생각 하기엔 최적화에 가까운 솔루션이라 생각이 돼서 리크루터에게 적어도 엔지니어가 내 솔루션을 리뷰를 하게 해달라고 부탁을 하였다. 
Compile이 안 되는 솔루션을 제출한 시점에서 인터뷰 탈락에 가까웠지만 혹시나 하는 마음에 이메일을 보냈다.

다행히도 리크루터는 두 번째 인터뷰 기회를 주었다. 
이번에도 역시 takehome challenge. 
이번엔 바짝 정신을 차리고 충분히 시간 분배를 하고 마지막 test cases를 다 돌려 볼 수 있도록 시간 관리를 잘해서 compile도 되고 test case들도 다 통과하는 솔루션을 제출할 수 있었다.
첫 번째 인터뷰를 통해서 한번 경험을 하고 나니 두 번째는 좀 더 수월하게 진행할 수 있었고 사실 두 번째 인터뷰에서 나온 문제가 첫 번째보다 쉬운 덕에 시간 활용도 좀 더 잘할 수 있었다. 
그 후 엔지니어와 간단한 전화 인터뷰를 통해 내 솔루션을 설명하고 회사에 대한 질문을 한 후 Airbnb와의 1차 인터뷰를 마칠 수 있었다. 
며칠 뒤 리크루터로부터 온사이트 인터뷰를 진행하자는 연락을 받을 수 있었다. 

(사진: Facebook)

다음은 대망의 Facebook

이번 인터뷰를 통해서 목표로 하는 회사 중 하나이다. 
개인적으론 Google 만큼 가고 싶은 회사이고 실리콘밸리에서 소프트웨어 엔지니어로 일하면서 은퇴하기 전에 한 번쯤 꼭 일해보고 싶은 회사이다.

Facebook은 따로 설명할 필요가 없을 만큼 전 세계인의 사랑을 받고 있는 Social Networking Service (SNS)이다. 
Facebook은 facebook 외에도 Instagram, WhatsApp, Oculus VR 등 다른 유명한 회사들도 인수해서 각자 성공적으로 이끌고 있다. 

 Facebook은 예전에 연락이 왔던 리크루터와 이메일로 연결이 돼있어서 어렵지 않게 원하는 시간에 인터뷰를 잡을 수 있었다. 

가장 신경을 써서 인터뷰 스케줄을 잡은 만큼 만반의 준비가 되어 있었다. 
그런데 약속된 시간에 전화가 걸려 오지 않아서 15분쯤 기다리다가 리크루터에게 연락을 하였다. 
그러고 10분쯤 지났을 때 중국 엑센트가 강한 여자 엔지니어에게 전화가 걸려왔다. 
미팅을 하다가 늦었다는 핑계를 대며 예정 시간보다 30분 정도 늦게 인터뷰를 시작하였다. 

첫 번째 문제


input = [0, 1, 0, 0, 2, 0, 3]
output = [0, 0, 0, 0, 2, 1, 3]
implement a method to move 0s to front


Warm-up 문제인 듯 그다지 어렵지 않은 문제가 나왔다. 
O(n)으로 문안하게 문제를 해결하고 다음 문제로 넘어갔다. 

두 번째 문제


implement a method that returns length of longest substring without any duplicate
examples:
input 1: aaaaaa -> a -> 1
input 2: abcsdacfdas -> 5


첫 번째 문제보단 난도가 높았지만 전형적인 전화 인터뷰 문제이고 비슷한 문제도 몇 번 풀어봤던 지라 이 문제도 어렵지 않게 optimal 한 솔루션으로 시간 내로 풀어낼 수 있었다. 

두 문제를 다 풀고 남는 시간에 Facebook에 대한 질문들 몇 가지를 하고 인터뷰를 마쳤다. 
걱정했던 것 보다 수월하게 인터뷰를 마칠 수 있었다. 
인터뷰 후 바로 다음날 리크루터로부터 온사이트 인터뷰 진행을 하자는 연락을 받았다.


(사진: Netflix)

마지막 인터뷰는 Netflix

Google, Facebook과 함께 메인 그룹으로 분류를 해 놓은 회사이다. 

Netflix는 세계 최대 동영상 스트리밍 서비스이다. 
비디오, DVD를 우편으로 배달해주는 서비스로 시작해서 지금은 인터넷 스트리밍으로 영화, TV 프로그램 같은 영상을 제공해주고 있다. 

Netflix는 소수 정예로 들어가긴 힘들어도 성과만 잘 내면 업계 최고의 대우를 해주는 걸로 유명하다. 
회사를 스포츠 팀에 비유를 하며 잘하는 직원은 충분히 대우를 해줘서 잡아두지만 performance가 안 좋은 직원을 가차 없이 내보낸다고 한다. 
직원을 가족으로 생각하며 AirFam이라 부르는 Airbnb와는 정반대 되는 회사 문화였다. 

그리고 지금껏 인터뷰한 회사들 중에서 유일하게 회사 문화 (Culture fit)를 유난히도 강조했다. 
리크루터가 인터뷰 시작 전에 Culture at Netflix를 꼭 읽어보라고 몇 번이나 귀띔을 주었다. 
스크롤의 압박이 느껴질 정도로 엄청나게 많은 내용을 담고 있는데 더 놀라운 건 이게 그나마 짧게 줄인 거라고. 
원래는 128장의 슬라이드가 원조이다. 

Netflix는 다른 회사들과는 다르게 전화 인터뷰에서부터 팀을 선택해서 한 팀과 인터뷰를 해야 했다. 
Netflix Job site를 통해 현재 오프닝이 있는 포지션들 중에 Growth team을 선택하였다. 
그 후 Growth team hiring manager와 첫 전화 인터뷰가 잡혔다. 
Hiring manager와의 전화 인터뷰에선 주로 팀 소개와 내 경력에 관한 질문, 그리고 간단한 테크니컬 한 질문들로 진행이 됐다. 
그리고 추가로 culture fit에 대한 질문도 어김없이 나왔다. 
30분 정도 짧은 인터뷰라 어려움 없이 인터뷰를 마쳤다. 
하지만 전화 통화를 통해 내가 생각했던 팀이 아닌 것 같아서 리크루터에게 다른 한 팀과 더 이야기를 해보고 싶다고 요청하였다. 

두 번째로 고른 팀은 Recommendation team. 
Netflix service의 핵심이 되는 팀이라 관심이 많이 갔다. 
Recommendation team의 Hiring manager와도 비슷한 방식으로 인터뷰가 진행이 됐고 다행히 첫 번째 관문을 통과하고 그다음 단계인 technical phone interview를 진행을 할 수 있었다. 

테크니컬 전화 인터뷰는 Netflix에서 5년 이상 일은 한 시니어 엔지니어와 하게 되었다. 
간단한 자기소개를 마치고 collabedit를 이용해서 본격적인 코딩 인터뷰가 시작됐다. 
그 엔지니어는 본인이 지금 하고 있는 recommendation 프로젝트 일부분을 문제로 만들어서 인터뷰 질문으로 던져주었다. 
때문에 당연히 연습을 하면서 비슷한 문제도 한 번도 본 적이 없는 그런 문제였지만 문제 자체는 참신하고 잘 갖춰진 문제였다. 
문제 이해하는데 시간을 충분히 써야 했고 다양한 각도에서 문제를 바라봐야 했다. 
주어진 40분의 시간을 최대한 활용하면서 진땀을 빼며 최선을 다해서 코딩하고 내 솔루션을 설명하였다. 
그리고 남은 5분 동안 Netflix에 대한 질문, 회사 문화에 대한 질문, 회사에 대한 개인의 만족도 등 다양한 질문을 하고 인터뷰를 마칠 수 있었다. 
사실 자신 있게 잘했다 할 정도의 인터뷰가 아니어서 걱정이 됐지만 다행히 전화 인터뷰를 통과하고 온사이트 인터뷰로 진행을 할 수 있었다. 




이로써 계획한 전화 인터뷰를 모두 마쳤다. 

최종 성적은 8개 회사 중 6개 합격.


합격: LinkedIn, Quora, Lyft, Airbnb, Facebook Netflix
불합격: Square, Uber


만족스러운 결과이다. 

우선 가장 신경을 썼던 메인 그룹에 있던 Facebook과 Netflix로부터 온사이트 인터뷰를 받은 게 가장 컸다. 
이제 남은 건 마지막 관문인 온사이트 인터뷰
이어지는 다음 Episode들을 통해서 위의 6개의 회사들 온사이트 인터뷰를 하나하나 자세히 다뤄보도록 하겠다. 






매거진의 이전글 전화 인터뷰 Part 2
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari