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...

댓글 15개:

  1. 안녕하세요 아마존 근무 환경은 만족하시나요? 호주 대비..? 온사이트 인터뷰 앞두고 궁금해서 검색했다가 발견해서 댓글 남겼습니다

    답글삭제
    답글
    1. 이제 여기서 일한지 고작 10개월이라, 뭐라 말하기가 그렇지만,. 호주에 비하면, 너무 바쁘고 빡세고 그러네요. 같이 근무하는 사람들이 나이가 젊어서 정말 열심히들 일합니다. 호주는 느리고, 급할 거 없는 분위기였다면, 여기는 빨리 결과물 내야 하고 자기가 맡은 부분은 ownership이라고 하면서 좀 쪼아대는 분위기랄까? 우리팀만 그럴수도 있어요 :) 그래도 젊은 분위기가 나쁘지 않습니다. 온사이트 잘 보세용!!

      삭제
  2. 인터뷰 답변이 그렇게 빨리 오나요? 7일 정도 됐는데 아직 아무 답이 없내요..

    답글삭제
    답글
    1. 그게 저는 hiring event여서 빨랑 준거 같기도 하고. 케이스바이케이스 겠지요. 내부 사정이 있을수도 있고요. 7일이면 좀더 기다려보셔도 될 거 같습니다만.

      삭제
  3. 작성자가 댓글을 삭제했습니다.

    답글삭제
  4. 안녕하세요
    C로 영상처리 알고리즘 개발만 하다가 경험삼아 지원했다 덜컥 아마존에 합격한 사십대 중반 개발자입니다
    준비할때는 꼭 붙었으면 좋겠다였는데 붙고 다니 심란하네요 ^^;;
    도메인이 많이 달라도 가서 적응하는데 무리가 없을 까요?

    답글삭제
    답글
    1. 저랑 너무 비슷해서 깜짝 놀랬네요. 축하드려요. ^^ (연령도 저랑 비슷) 사실 무리가 없다고 하면 거짓말이고요. 언어면에서, 저도 C만 썼는데, 우리팀은 자바와 자바스크립트를 많이 씁니다. 백엔드는 자바, 프론트엔드는 React Javascript / Angular 입니다. Angular를 버리고 React로 넘어가는 단계에요. 자바는 첨에는 어려웠는데, 라이브러리가 많아서 쓰기가 좋고요. 인터넷에 널려있는 것들 보면서 배웠고. 기존 코드랑 팀원들의 코드 리뷰를 보면서 많이 배우고 있습니다. 언어는 배우면 되는데, 오히려 저는 아마존의 개발환경이랑 DB 쪽이 어려웠어요. 이쪽은 동료들에게 계속 물어보면서 배워야 하고요. 그리고 연령면에서, 동료들이 정말 너무 어려서 프로젝트 진행이 참 빠릅니다. 페이스를 쫓아가기가 나이가 들어서 그런가 첨에 어려웠어요. 지금은 어느정도 적응이 되어서 조금 나아졌습니다만 전체적으로 연령이 어리다는게 참 저에게는 부담스럽더라구요. 정말 반갑습니다.

      삭제
    2. 안녕하세요 친절한 답변 정말 감사드립니다 ㅠㅠ
      혹시 괜찮으시다면 카카오톡 같은 챗으로 좀더 여쭤봐도 될까요?

      삭제
    3. 자바/스프링 등의 경험이 없어도 배워가면서 일하는게 가능할까요?
      공부는 하고 있는데 단순 공부만해서 현업에서 가능할지 고민이네요;

      삭제
  5. 저두 전혀 경험이 없는 상태에서 일을 하고 있으니 너무 걱정안하셔도 될 거에요. 처음부터 완전 아무것도 없는 상태에서 서비스를 새로 생성하는 경우는 거의 없구요. 이미 있는 서비스를 이해하고, 요청들어오면 고치고 하는 거니까, 기존 코드 보시고 대충 이해하고 남들이 써놓은 코드 비슷하게 써가면서 일하면 금방 적응하실 겁니다. 저같은 경우는 아예 처음부터 모른다고 말하고, 계속 물어보면서 배웠어요. 대학 졸업하고 온 사람이나 인턴들도 자바를 조금밖에 모르니까 거의 비슷한 수준이구요. 아주 잘하는 사람 코드 보면서 조금씩 카피해서 쓰면 됩니다. ^^ 어차피 사는게 다 그렇죠. 걱정마세요. 글고 혹시 개인적으로 궁금하신거 있으시면 이메일 주세요. 카카오톡은 전화번호를 오픈하기가 좀 그래서.. 비밀 댓글같은 기능이 있나 몰겠네요..

    답글삭제
  6. 아 네 답변 감사합니다.
    스프링 공부하고 있는데 이게 공부해서 될일인가 싶네요 ^^;
    제 이메일은 princeok@gmail.com입니다

    답글삭제
  7. 작성자가 댓글을 삭제했습니다.

    답글삭제
  8. 와우!
    혹시 데이터구조 알고리즘 지식이 전혀 없다시피 하더라도 다른 기술 지식이 있으면 기술면접 통과할 수 있을까요? 회사에서 독학으로 공부해서 웹 풀스택 개발을 하고 있는데 업무에서 필요하지 않은 데이터구조나 알고리즘을 따로 공부한적이 없거든요. 이력서 위주(micro service architecture, mongodb)로 질문을 주면 좋을텐데. 지금이라도 데이터구조 알고리즘 공부를 하는게 좋겠죠?

    답글삭제
    답글
    1. 다른 기술 지식이 뭘 말씀하시는 건지 잘 모르겠지만, 이 회사 인터뷰에서는, 학부때 배웠던 완전 기초지식 data structure 기본, 알고리즘, 시간 복잡도(Big-O), 메모리 공간 복잡도 이런게 필요하다고 생각됩니다. 그치만 살다보면 이런거 까먹기 마련이니까, 인터뷰를 앞두고 다시한번 옛날 책들을 꺼내서 기억을 되살릴 필요가 있다고 생각합니다. 근데, 관련 기본 지식이 전혀 없다고 하시면, 공부를 하는 편이 좋겠네요. 아키텍처 관련 질문에서는 말씀하신 업무 관련 경험이 도움이 될듯합니다.

      삭제
    2. 조언 감사합니다~ 리크루터 연락 받을 때까지 코딩 테스트 관련 준비가 전혀 안되있어서 아무 기대가 없었고 당연히 불합격할거라 생각했는데 운 좋게 통과해서 이제는 욕심이 나네요. 한달 남았는데 열심히 해봐야겠네요!

      삭제

잔디 3주차

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