2019년 4월 19일 금요일

아마존 인터뷰 후기 (Seattle SDE)

기억이 더 가물가물해지기 전에 아마존 인터뷰 후기를 남겨보기로 한다. 
지금은 리로케이션 까지 해치우고 시애틀에 산지 2달이 조금 넘은 시점이다.

인터뷰 보기 전에 다른 분들이 웹사이트에 남겨둔 인터뷰 후기를 뒤지면서 이 회사는 인터뷰를 어떻게 진행하는지 짐작해보는 시간을 가졌었다. 그분들께 고마워하면서, 나도 후기를 남겨볼 생각을 하게 되었다. 혹시 준비하시는 분들.. 궁금한거 있음 댓글을 남겨주세요.

=======================
배경 설명
=======================
지난 해까지 호주 멜번에 살았고, 마지막에 다니던 회사는 보쉬 (Bosch Australia)라는 독일계 회사. 자동차 부문에서 임베디드 개발자로 일하고 있었다. 주로 사용하던 언어는 C. 

호주로 이사간건 2010년. 호주로 오기 직전에는 전산직 공무원으로, 중앙 부처 중 한곳(광화문)에서 일하고 있었다. 공뭔이 되기전 6년 정도는 소프트웨어 개발자로 한국 대기업, 외국계회사, 벤처기업 등에서 일했다. 호주로 와서는 공무원 재직 기간(6년이 넘는)동안 까먹었던 본업을 다시 되살려 취직해 임베디드 쪽에 주로 일하고 있었다.
(말로 쓰니 복잡: (한국)개발자 -> (한국)공무원 -> (호주)개발자  이렇다)

이전 글에 보면 보쉬에 들어간 인터뷰 후기가 있는데, 보쉬에서 일한건 2018년 7월부터다. 얼마뒤 2018년 9월인가 10월에 아마존 리쿠르터에게서 링크드인을 통해 메일을 받았다. 보쉬에는 들어온지 얼마 안되고, 프로베이션을 좀 넘은 시점이었다.

=======================
리쿠르터에게서 메일
=======================
다른 분들도 이런 경험을 하겠지만, 까먹을만 하면 여러 회사들의 리쿠르터에게서 연락이 온다. 호주는 물론 미국 여기 저기. 아마존, 우버, 구글 등등.  대부분은 쌩깐다. 그러고 보니 한국 삼성에서도 연락이 온적 있다. (왜 연락한겨)  아마존에서 연락 온것도 처음이 아니었다. 2017년 말쯤에 연락이 왔었다. 지원도 안했는데 링크드인 통해서 연락을 받았다. 암튼, 그때도 이메일 주고받고 셤보라고 해서 온라인 테스트 했는데, 다시 연락이 안왔다. 온라인 테스트를 망했나 보다 했다. (그럼 말이라도 해주든가.. 아무 피드백이 없다)

잊고 있다가 다시 1년 후, 또 연락이 왔다. 멜번에서 11월에 하이어링 이벤트 할건데 자기네의 온라인 테스트를 통과하면 불러준다고 한다. 단 조건은 호주 시민이어야 한다. (이건 비자 때문인거 같은데, 호주 시민은 E3 비자를 받아 미국으로 간다. 이거 나오는데 3주 걸림) 1주일동안 답장을 보내지 않다가, 예의 상 답장을 보냈다. 나 작년에 온라인테스트 하라고 해서 했는데, 너무 어려워서 떨어졌다. 시간도 안맞고 나 테스트 보기 싫다. 그리고 지금 들어간 회사에 얼마 안되서 옮기기 그렇다. 그리고 이 회사 되게 좋다. 나 만족한다. 정중히 거절하는 메일을 보냈다.

리쿠르터가 다시 메일을 보내서, 온라인이 싫으면 사람붙여서 전화로 코딩 테스트 보게 해주께.. 함 해바라. 설득했고.. 어쩔수 없이 보게 되었다.

전화 테스트는 합격했는지, 결국 현장 인터뷰에 초대되었다.
현장 인터뷰에 가겠다고 한 후, 전화통화에 또 참여해야 했다.
Prep call 인데, 인터뷰에 뭘 준비해야 하는지를 설명하는 1시간짜리 통화다.
준비 리스트를 주는데, 학부때 배운 Data Structure  책에 나오는 주제 전부 다라고 생각하면된다. 별로, 거의 도움 안되었다.  도움된 부분은,, 인터뷰 날에 대해 대략 어떻게 진행되는지를 설명해주는 부분이다.

=====================
현장 인터뷰
=====================
아마존 인터뷰: 2018 11 13
장소아마존 멜번 사무실 (Ernst & Young building / 8 Exhibition Street)

인터뷰는 2시부터 6시까지 예정되었다건물에 도착한 시간은 1 .

커피를 마시고, 11층으로 올라갔다올라가는 엘리베이터에서 아마존 인터뷰를 보려고  사람을 만났다. 서로 뻘쭘이 인사하고, 어제 있었던 소셜 미팅에서 나를 본거 같다고 그사람이 말했다. 나는 가지 않았는데 뭘 봤다는건지..  회사때메 못갔다고 말하고.. 이런저런 얘기를 했다.  같이 로비에서 기다리다가 각자의 인터뷰 룸으로 안내받을  서로 굿럭이라고 말해주었다.

((NOTE: 사실.. 나는 이사람과 같은 팀이 되어 같이 일하고 있다.. 세상일 정말 모르겠다.. ㅎㅎ))


온사이트 인터뷰 안내를 받을  개인 랩탑 가져오라고 하였다인터뷰 시에 랩탑으로 진행하기 위함이라고 한다인터뷰 룸에는 파워포인터화이트보트테이블이 있었다인터뷰 시작 전에 와이파이를 연결하라고 했다.

((NOTE: 다른 인터뷰 후기에는 화이트 보드에 손으로 쓴다고 했는데, 어느새 바뀌었는지, 개인 랩탑을 가져오라고 해서.. 인터뷰 시 랩탑을 사용했다.
나의 경우, 화이트보드로 일단 전체적인 알고리즘 설명했고 -> 이걸 랩탑으로 실제 코딩했다. 코딩은 아무 언어나 써도 된다고 해서 C로 했는데. 다들.. 아직도 C를 쓰다니? 라는 반응이었다. 지금은 팀에서 자바를 쓴다. 자바를 많이 쓰는거 같다))


=========================================
인터뷰 구성
=========================================
인터뷰는 총 네 세션(각 1시간: 총 네시간). 나의 경우, 세 세션이 알고리즘을 이용한 문제해결.
한 세션이 디자인 인터뷰였다.  매 세션마다 한명 또는 두명이 들어왔다.
각 세션마다, 약 20-30분을 behavioural question (아마존 리더십 프린시플 적용 문제) / 나머지 시간은 문제풀이

자세히는 기억도 안나고, NDA도 작성했으니, 대략 말하면 다음과 같다.


첫번째 인터뷰 (2-3)
30분은 behavioural question. 나머지 30분은 테크니컬 문제. (모든 세션 공통)
시드니 AWS  매니저라고 했다문제는 캐쉬를 쓰는 문제였는데나는 해쉬테이블 () 이용해서 푸는 방식으로 했다만일 어떤 래퍼 펑션이 있는데 이게 부르게 되는 매핑 펑션이 리스판스 타임이 느리면 어케 해결하겠냐는 .
내부 메모리에  같은 것으로 저장해둔다고 캐쉬 개념을 얘기했다.


두번째 인터뷰 (3-4)
인터뷰어가 처음에는 친절한  알았는데 사람을 어찌나 다그치던지 당황했다. 스트림을 인풋으로 받아서 가장 처음 나오는 unique char 찾는 문제.
처음에는 쉽다고 생각했는데 점점 뭔가 이상한 느낌나중에 겨우 힌트를 받아서 위기를 모면했지만 나중에 스트림에서 캐릭터 받는 부분을 고치라고 했는데 의도를 알아채지 못해서 헤메다가 결국  말인지 알아들었으나 시간 다 됐다고 에디터를 닫아버렸다매정하게.


세번째 인터뷰 (4 – 5)
이거  최악이었다시스템 디자인 쪽인데.. 내가 읽은 자료에서 언제나 빼놓지 않고 나왔던 조언이 바로 문제로 점프하지 말라는 것이었는데완존 그렇게 해버렸다. 문제를 보고 당황하니까 조언이고 뭐고.. 머리가 텅 비어버렸다.
웹사이트를 디자인하라는 문제인데, 스케일도 생각해야하고, 유저 수, 디비 어쩌고.. 
솔직히 이 부분은 엉망진창이었는데, 내가 뭐 웹사이트 시스템 설계해본적이 있어야 말이지.
인터뷰어는 조금 답답해 하는거 같았고나는 경험이 없으니 아는 것도 없고 서로 답답한 상황그래도 최선을 다해서 참아주는  같았다.


네번째 인터뷰 (5 – 6)
마지막 인터뷰가 가장 괜찮았다 했다는 말도 들었다아마존에서 14년인가 있었다는 시니어 소프트웨어 엔지니어가 주도했고 조인한지 얼마안되는 신참이 같이 들어왔다알고보니 신참은 멜번에서 6개월 전에 그쪽으로 리로케이트 분이었다.
문제는 다행히도 해쉬테이블 문제였다문제가  재밌었다해쉬테이블이 어떻게 동작하는지를 알아야 풀수 있는 문제인데 그것도 아주 어렵지 않고 30분안에 풀수 있는 그런문제.
 나아가서 랜덤하게 값을 가져오되 O(1)으로 가져올  있도록 구조를 바꾸라고 하는 아주 재미난 문제였다. 
문제를  풀고 나서 멜번에서 시애틀로 이사가는 것에 관해 얘기하고 시애틀 스키타기는  좋다는 말을 했다마운트 불라보다 웨이 치퍼 할때는 웃음이 나왔다.

((주석: 나중에 찾아보니까, 2016년 우버에서 나왔다는 문제와 유사..))


<<아마존 리더십 프린시플 문제>>
이거는 사실 준비만 잘하면 상당히 잘 해낼 수 있는데, 나는 여기서 꽤 점수를 얻은것이 아닌가 함.  기억할 점은, 자기가 겪었던 프로젝트 중에 챌린징 했는데 상당히 잘 해냈다고 생각하는 프로젝틀 하나 혹은 두개 마음속에 준비한다.  뭐가 챌링징 했는지 일단 말로 설명할 정도로 준비하고. 어떤 상황에서 어찌할지 (what would you do or what did you do) 문제에 대비한다. 구체적으로 그 프로젝은 이러이러했는데, 내가 (항상 I가 주어다) 이런 식으로 상황을 대처했다. 뭐 이렇게 말하면 된다. 결과적으로 프로젝은 나의 행동/처리로 인해 어떻게 되었다. 이런정도 준비하면 될듯.  덧붙여,, 아마존은 이걸 리더십 프린시플과 살짝 연결하면 된다.



===============================
인터뷰 결과
===============================
인터뷰는 화요일이 었는데  목요일에 합격 통보를 받았으니 매우 빠르다. 합격 통보는 전화를 직접 받았다.  시애틀에서 개발자들(interviewers)과 리쿠르터가 멜번으로 와서 일주일 머물렀으니, 목요일에는 낮에 직접 리쿠르터에게 전화를 받았다. 잘 했고 축하한다고.  자기가 states (미국을 states라고 하나보다)로 돌아가서 다시 이멜을 주겠으며, 그 후에는 오퍼와 리로케이션 합의가 진행된다고 했다.


To be continued...

잔디 3주차

 잔디 심기. 3주차에 접어들었음. 사진. 아래가 1일차 사진. 다음이 3주차.