본문 바로가기
개발에 대한 단상

아마존에 도전하다 (1)

by 개발자 민디 2022. 2. 28.

 

사실 이전에도 한번 아마존 면접을 본적이 있었다. 혼자 개발 공부를 하던지 7개월쯤 되었을때 아마존에서 연락이 한 번 왔었다. 아직 공부해야 할게 산더미고 모르는게 너무 많았지만, 그래도 이렇게 찾아온 기회를 그냥 버리는건 아니라는 생각이 들어 지원했었다.

 

어찌저찌 온라인 코딩 테스트는 통과했는데 최종 면접에서 탈락했었다. 네시간동안 영어로 면접을 보는것은 정말이지 쉬운 일이 아니었다. 게다가 공부한지 너무 얼마 안되어서 개발 지식에 대한 자신감이 없었기에, 아는 것도 혹시라도 틀릴까봐 주저하며 말하지 못하기도 했다. 

 

탈락하고 1년 동안은 재지원을 못한다고 했었는데 어느새 1년 반이 지났고 아마존에서 다시 면접을 볼 생각이 있냐고 연락이 온 것이었다. 또다시 떨어질까 좀 두렵긴 했다. 밴쿠버에는 큰 IT회사들이 몇 없는데, 그 중 하나인 아마존에서 떨어지면 또다시 1년 이상은 재지원을 하지 못할테니, 나중에 정말로 이직을 하고 싶을때 지원조차 하지 못하게 될까봐 살짝 걱정이 들었다.

 

그치만 인생 뭐 있나. 이렇게 친히 연락까지 직접 해주셨는데 거절은 도리가 아니지. 다시 한번 도전해보기로 했다.

 

그날부터 면접 준비에 매진했다. 알고리즘 문제도 본격적으로 더 열심히 풀고, 개발 인터뷰 관련 책들과 영상도 찾아 공부했다. 

 

첫번째 단계는 역시 온라인 코딩 테스트였다. 지원을 하고 나니 코딩 테스트를 할 수 있는 링크를 메일로 받았다. 일주일 이내에 꼭 완료해야 한다고 했다. 

 

메일에는 테스트가 어떻게 구성되어있는지 자세히 적혀 있었다. 테스트는 총 2시간 정도가 걸릴 예정이며 총 3가지로 구분되어 있다고 했다.

 

먼저 코딩 테스트는 총 2문제고 시간은 105분이 주어진다. 주어진 문제에 따라 코딩을 하고, 어떤 알고리즘을 써서 문제를 풀었으며 시간 복잡도는 얼마인지 적어내도록 되어 있다.

두번째는 내가 일하는 스타일에 대해 물어보는 설문 조사를 15분에 걸쳐 하게 된다. 문제 수에 비해 시간이 적어 오래 생각하지 않고 그냥 바로바로 선택해서 내야 한다. 문제는 예를 들어, "지금 맡아서 하고 있는 일이 있는데 상사가 급한 일이라며 내일까지 어떤 일을 해달라고 급히 요청하면 어떻게 하겠냐"와 같은 스타일의 질문들이다. 예전에 한국에서 삼성전자에 지원할 때에도 이런 비슷한걸 했던 기억이 난다. 

마지막으로는 5분 정도 코딩 테스트에 대한 피드백을 작성하는 시간이 주어진다.

 

그 주 주말에 바로 코딩 테스트에 돌입했다. 시간 제한이 있어 긴장이 되고 기합이 바짝 들어갔다. 시작 버튼을 클릭하니 코딩 문제가 주어지고 타이머가 시작되었다.

 

저번에도 느꼈지만 일단 문제가 길다. 영어로 되어 있어 혹시라도 헷갈리거나 착각할 수 있기 때문에 찬찬히 시간을 들여 읽어보며 제대로 문제를 파악해야 한다. 그래도 그간 실력이 좀 늘었는지 예전에 했을 때보다는 문제가 쉬운 느낌이 들었다. 알고리즘 문제를 꾸준히 푼 보람이 있는 것인가...! 그래도 혹시 모르니 두번 세번 꼼꼼하게 확인하고, 이런저런 예제도 만들어보며 테스트하고, 혹시라도 놓친 엣지 케이스가 없나 다시 확인도 하고 나서야 제출했다. 

 

코딩 테스트는 생각보다 수월했는데 설문 조사에서 은근 애먹었다. 역시 영어라 문제 읽는데에도 시간이 오래 걸렸고, 뭘 선택해야 할지 고민이 엄청 되었다. 최대한 아마존이 원하는 인재상이 뭘까 고민하며 그에 맞게 답을 고르려고 노력했다.

 

주말에 코딩 테스트를 봤는데, 바로 월요일에 이메일이 왔다. 코딩 테스트에 합격했다는 내용이었다. 바로 최종 면접 날짜를 잡게 됐다. 약 2주 후였다. 

 

내가 면접을 보게 되는 팀 정보와 자세한 직무 설명도 받게 되었다. 그런데 나는 SDE1(주니어) 레벨로 가고 싶었는데 SDE2로 면접이 잡히게 됐다. 원래도 걱정 많은 면접이었는데 걱정이 배가 되었다.

 

아마존에는 직급이 별로 없다. 크게 SDE(Software Development Engineer) 1, 2, 3으로 구분이 된다. (물론 그 이상도 있지만 그 이상으로 올라가기는 진짜진짜 어렵다고 들었기에 일단은 패스.) SDE1은 말그대로 주니어(신입) 레벨. SDE3는 시니어 레벨. 문제는 SDE2인데, 이 범위가 엄청 넓다. 적게는 2-3년차에서 많게는 10년을 훌쩍 넘긴 개발자들까지, 이 레벨에 있는 개발자들이 수두룩하다. 본인이 딱히 원하지 않으면 굳이 시니어 개발자로 가지 않고 계속 쭉 SDE2에 머무는 사람들도 많다고 들었다.

 

면접 당시 난 아직 1년 경력도 채 못채운 아주 햇병아리였기에(물론 지금도 햇병아리지만), SDE2 레벨 면접을 통과할 수 있을지 걱정이 되었다. 그래도 어쩌겠는가. 일단 부딪혀보는 수밖에. 

 

SDE2 면접은 SDE1 면접과 살짝 다르다. 둘 다 4시간씩 면접을 보지만, SDE1은 모두 알고리즘에 치중한 면접들이라면 SDE2 면접에는 시스템 디자인이 포함된다. 아니 시스템 디자인이라니요... 저는 한번도 시스템을 디자인 해본적이 없습니다만.

 

불평해봤자 아마존에서 들어줄 리도 없고, 그저 모르면 공부하는 수밖에. 다행히 유튜브에 시스템 디자인 관련 영상들이 여러개 있어서 쭉 보다보니 도움이 많이 되었다. 물론 실제로 설계해본게 아니기에 뜬구름 잡는것 같이 느껴지는 부분도 많았지만. 그래도 난 벼락치기 전문가다. 학교 다닐때부터 그랬다. 마치 학창 시절 시험 공부하듯이 각종 컨셉과 용어들을 달달 외웠다. 물론 좀만 깊이 파고들면 바로 모르는거 탄로 나겠지만, 부디 그러지 않고 면접을 마칠 수 있길 바라는 수밖에.

 

준비해야 할게 또 있었다. 바로 인성 관련 질문들이다. 아마존에는 Leadership Principals(줄여서 LP)라고 해서 아마조니안으로써 꼭 가져야 할 소양 같은것들을 정리해놓은게 있다. 예를 들어, "고객을 최우선으로 생각한다", "일에 깊이 파고든다", "결과를 내놓는다", "맡은 일에 오너쉽을 가진다" 등등과 같은 것들이 있다.

 

면접은 각 한시간씩 총 네시간을 보게 되는데, 한시간 안에서도 30분 정도는 알고리즘/시스템 디자인을 비롯한 개발 관련 질문들이고, 나머지 30분은 LP관련 질문들로 이루어진다. 그만큼 LP 질문들도 매우 중요하고 준비를 잘 해놔야 한다. 총 14개의 LP 항목들이 있는데 (최근에는 2개가 더 추가되어 총 16개) 각 항목별로 내가 말할 이야기들을 한두개씩은 준비해놓는게 좋다고 한다. 예를 들어 "맡은 일에 오너쉽을 가진다"와 같은 항목의 경우, 내가 책임감을 가지고 장기적인 안목으로 일을 진행했던 경험을 이야기로 만들어두면 되는 것이다.

 

이것도 정리하려니 머리가 터질뻔했다. 다행히 예전에 면접 볼때 한 번 준비해놨던게 있어서 그때 준비했던거 반, 새로 회사 다니면서 생긴 에피소드들로 이야기를 만들어서 반, 이렇게 준비했다. 

 

면접을 일주일쯤 앞두고는 Leetcode(알고리즘) 사이트에 올라오는 아마존 면접 후기들을 미친듯이 읽었다. 면접때 어떤 문제들이 나오는지 궁금했다. 내가 면접을 보게 될 팀에 지원을 했던 사람들이 나말고도 많을거고, 그 중 누군가가 면접 질문을 올렸을지도 모른다는 생각도 들었다. 내가 면접관이라면 면접마다 매번 굳이 다른 문제로 물어볼 것 같지 않다는 생각도 들었고. 나중에 다시 말하겠지만 이런 내 생각은 틀리지 않았다.

 

역시 2주는 순식간에 지나갔다. 면접날을 앞두고 자세한 시간표와 각 시간대별 면접관의 이름, 그리고 화상 미팅 링크가 포함된 이메일이 왔다. 면접관의 이름들을 한번씩 되뇌어보며 반갑게 인사하는 상상을 했다. 정말이지 토나오게 떨렸다.

 

면접날이 밝았다. 면접은 아홉시부터 시작이었다. 떨려서 잠이 제대로 오지 않았던 나는 꼭두새벽에 일어나 운동하고 샤워하고 아침먹고 컴퓨터 앞에 앉아 예상 질문에 준비한 대답들을 다시 한번 쭉 읽어봤다. 그러고도 시간이 남았다. 차라리 빨리 해치우고 싶은데 시간이 도무지 안가는 느낌이었다. 그러다가 문득 시계를 보니 어느새 면접 시간까지 30분을 남기고 있었다.

 

심호흡을 크게 하고 짧게 명상도 하며 마음을 진정시켰다.

 

'개발에 대한 단상' 카테고리의 다른 글

쉽지 않은 아마존 적응기  (2) 2022.03.07
아마존에 도전하다 (2)  (4) 2022.03.02
이직을 결심한 이유  (2) 2022.02.17
하루종일 하던 스프린트 플래닝  (0) 2022.02.15
데일리 데모 문화  (2) 2022.02.09

댓글