> 본 글은 개인적인 경험을 바탕으로 작성되었으며 회사의 입장과는 무관함을 알려드립니다. 인터뷰를 본지 조금 시간이 흘렀는데 더 까먹기 전에 기록과 공유 겸 남겨두려고 합니다. 아마존 면접을 준비 하면서 영문 자료는 수없이 봤지만 한글 자료는 조금 부족한 것 같아 작성하게 되었습니다. 본 면접은 아마존 밴쿠버 지사에서 본 면접으로 당연히 모두 영어로 진행되었습니다. 미리 아마존 입사를 준비하시는 분들을 위해 정보를 드리자면 아마존은 밴쿠버에 위치한 대기업들 중 그나마 비자 서포트를 잘 해주기로 소문난 기업입니다. 치열한 면접과정을 통과하여 합격을 하게 된다면 비자 신분과는 상관 없이 이주 지원을 해줄 것이니 **고민 중이시라면 바로 지원하시길 바랍니다**. 실제로 많은 한국 분들이 다양한 경로를 통해 밴쿠버로 이주했으며 다시 미국으로 넘어가는 분들도 많아 캐나다 아마존은 미국을 가기 위한 중간 과정이라는 말도 있습니다. 인텨뷰 과정은 크게 아래와 같습니다. > Resume screen > Recruiter call > Phone screen > Onsite Interview ## 1. Resume screen 아마존 채용은 크게 2가지로 볼 수 있습니다. - 첫째, recruiters가 링크드인과 같은 서비스를 통해 지원하지 않겠냐고 연락하는 경우. - 둘째, 공식적인 루트인 [아마존 채용 페이지](https://www.amazon.jobs/en/)에서 지원을 하는 경우. 첫번째 방식은 흔하지는 않지만 그래도 아주 없는 경우는 아닙니다. 실제로 한국에 거주하시는 분들중에서 링크드인으로 연락을 받아서 면접을 진행하셨다는 후기를 자주 찾아볼 수 있습니다. 또는 아마존에서 한국으로 면접을 직접 보러 오기도 하는데 이 경우도 한국에서 미국 또는 캐나다 아마존에 입사하는 루트로는 가장 쉬운 방법입니다. 물론 recruiters가 면접을 보지 않겠냐고 연락이 왔다고 해서 서류 전형이 100%로 합격한 것은 아닙니다. 다만 피드백을 바로 듣고 서류 전형 합격 확률이 높은 것은 사실입니다. 그러므로 해외 취업에 관심이 있으시다면 아직 지원 전이라고 하더라도 링크드인은 늘 업데이트 해두는 것이 중요합니다. 아마 저를 포함한 대부분의 사람들이 두번째 방식을 통해서 아마존에 지원을 하게 될 것 입니다. 해외에는 공채라는 개념은 없으며 (물론 대학 졸업 시즌에 대규모로 인턴을 모집하기는 합니다.) 거의 대부분 상시 채용으로 지원자를 모집하고 있으므로 지원이 가능한 공고가 올라오는지 항상 확인하는 것이 중요합니다. 여기서 어떻게 서류를 선발하는지는 저도 자세히는 모릅니다. 수많은 서류를 매니저나 면접을 진행할 면접관이 뽑는것이 아니라 인사팀에서 1차 통과를 시키기 때문에 개발자의 시선 뿐만 아니라 인사팀의 관점에서도 이력서를 작성할 수 있어야 합니다. 한국인이 서류전형에서 탈락하는 이유 중 가장 큰 이유는 이력서 때문일것 입니다. 한국의 네이버, 카카오 같은 대표적인 IT 기업 뿐만 아니라 삼성, LG와 같은 대기업에 지원하는 양식과 영문 이력서는 가장 큰 차이를 가지고 있습니다. 영문 이력서 양식은 구글에 조금만 검색해도 수없이 나오니 최대한 많은 자료를 참고해서 이력서를 작성하시는 것을 추천드립니다. 이력서가 무조건 이뻐야 한다는 것은 아니지만, 잘 정돈되고 누가봐도 한눈에 알아 볼 수 있도록 만드는 것이 중요합니다. 저도 면접관도 아니고 아직 면접을 볼 위치도 아니기 때문에 어떤 이력서가 잘 작성되었다고 말하기는 힘들지만 면접 멘토링을 통해서 받은 피드백을 간략히 공유 드리자면, 1. 간결하게 작성할 것 - 최대한 한페이지 내에서 표현 2. 양보다는 질 - 수치화 하여 표현 할 것 이렇게 시작부터 험난한 서류 전형을 통과하면 드디어 recruiter로 부터 면접 제의 이메일을 받게 됩니다. ## 2. Recruiter call recruiter call은 지원자를 평가하기 위한 과정이 아니라 앞으로 진행될 면접을 도와주는 단계입니다. 그러므로 너무 긴장하거나 걱정하실 필요는 없습니다. 해당 과정에서는 면접보는 포지션에 대한 정보, 면접 과정에 대해서 간략하게 알려주고 기본적인 자기소개를 물어봅니다. 물론 recruiter는 개발자가 아니기 때문에 기술 자랑을 뽐내기 보다는 어디서 몇년간 어떤 업무를 주로 진행했다 정도로 소개하면 될 것 같습니다. 이 과정에서 영어가 서투신 분이라면 한번더 screen 하게 되는 과정이 될 수도 있습니다. 영어에 자신이 없으시다면 예상되는 질문들을 전부 작성하셔서 모범 답안을 미리 적어두고 전화하시기를 추천 드립니다. 다행히 대면이나 화상 전화가 아니기 때문에 대본을 본다는 것은 알 수가 없습니다. 그리고 추가로 질문이 있냐고 물어보는데 이때 면접과정에 대해서 자세히 질문하셔서 팁 하나라도 더 얻는것이 중요합니다. recruiter가 면접을 진행하겠다고 마음먹은 순간 지원자를 평가하는 사람이 아닌 조력자로서 도와준다고 생각하시고 질문을 자세히 하는 것이 중요합니다. 그리고 기본적으로 면접에 필요한 자료들을 자세하게 전달해주기 때문에 면접을 준비하는데 큰 도움이 될 것 입니다. Recruiter call 까지 끝났다면 이제 진짜 면접을 진행할 차례입니다. 아마존은 크게 2단계로 나뉘어서 면접이 진행됩니다. 1차로 Phone screen을 하게 되는데 1명의 면접관과 함께 1~2시간 정도 가볍게(?) 면접을 보게 됩니다. 1차 단계에서 다시 대다수의 사람들이 떨어지게 됩니다. Phone screen을 통과하게 됐다면 Onsite interview를 진행하게 됩니다. Onsite interview는 4~5단계로 다시 나뉘어 지게 되며 단계당 한시간씩 총 4~5시간동안 진행되는 면접입니다. (과제를 내주는 경우도 있는데 저는 과제를 받지 않았으므로 이 단계는 생략하겠습니다.) ## 3. Phone screen Phone screen과 Onsite interview와는 크게 다른 점은 없습니다. Phone screen의 난이도가 살짝 쉽다는 정도인데 어차피 최종 면접인 Onsite interview를 보기로 결심하셨다면 동일하게 준비하시는 것이 좋습니다. Phone screen은 화상 인터뷰로 진행되는데 알고리즘 문제 1~2개 정도를 내고 상황에 따라서 LP 질문합니다. Phone screen 단계는 지역마다 또 아마존 부서마다 면접 후기가 전부 달라서 처음에 준비하는데 고민이 있었습니다. 어떤 사람은 LP는 질문하지 않았다. 쉬운 알고리즘 2개 정도 물어봤다. 알고리즘은 안물어보고 실제 구현하는 문제를 물어봤다 등 다향한 후기를 볼 수가 있어서 추측건데 평가하고자 하는 항목에 따라서 달라지지 않을까 싶습니다. 아무튼 저는 알고리즘 하나와 LP 질문 2개를 물어봤습니다. LP는 **Leadership Principles**의 약자로서 아마존에서 *매우* **매우** *매우* 강조하는 항목입니다. 얼마나 강조를 하냐면 알고리즘 문제를 조금 못풀어도 LP 질문을 잘 대답한다면 면접을 합격할 확률이 높아집니다. 반대로 알고리즘을 아무리 화려하게 풀어도 LP 질문을 제대로 준비하지 못한다면 100% 탈락입니다. 그만큼 아마존은 LP를 매우 중요하게 생각하고 의사결정을 할 때, 일을 진행할 때 등 전부 LP를 기반으로 업무를 진행합니다. LP 질문의 중요성을 잘 설명함과 동시에 완벽한 모범답안을 [이 글](https://medium.com/@kpak/amazon-%EB%B3%B8%EC%82%AC-%EB%A9%B4%EC%A0%91%ED%9B%84%EA%B8%B0-%EB%A6%AC%EB%8D%94%EC%89%BD%EC%97%90-%EA%B4%80%ED%95%9C-%EC%A7%88%EB%AC%B8%EB%93%A4%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%8C%80%EB%8B%B5%EC%9D%84-%ED%95%B4%EC%95%BC%ED%95%98%EB%82%98-747133a5336a)을 읽어 보신다면 얼마나 LP가 중요한지, 또 어떤식으로 답변을 해야하는지 조금 감이 잡히실 겁니다. 한국어와 영어로 설명된 글 모두를 통틀어서 이만큼 완벽하게 LP 질문에 대답한 글을 보지 못했습니다. LP 관련해서는 recruiter가 면접 관련 자료를 보내줄 때, 다른 아마존 면접 후기를 찾아볼 때 수없이 강조하고 들여다 보게 되므로 면접을 보게될 때 쯤이면 매우 친숙해졌을 것입니다. 두번째 알고리즘 준비는 의외로 간단합니다. 바로 [leetcode](https://leetcode.com/) 문제를 반복해서 푸는 것 입니다. 한국의 백준 같은 사이트로서 외국에서는 대표적으로 2가지 알고리즘 사이트가 있는데 그 중 하나가 leetcode이고 제가 알기로는 아마존에서는 아직 leetcode에서 유사한 형태의 문제를 제출하는 것으로 알고있습니다. 특히 프리미엄을 결제하면 아마존에서 출제된 비슷한 유형의 문제를 요약해서 알려주기 때문에 시간이 없으시다면 한달 정도 프리미엄 구독을 추천 드립니다. 시간이 많으신 분들은 후기등을 찾아보시면 출제된 문제와 유사한 leetcode 알고리즘 문제를 찾으실수 있습니다. ![](https://uzilog-upload.s3.ap-northeast-2.amazonaws.com/private/ap-northeast-2%3Ab6c10628-1f45-492c-a9eb-f54020bc8014/1671689648370-image.png) 저는 총 238문제를 풀었고 문제를 많이 푸는 것 보다는 출제되는 유형에 맞춰서 반복적으로 풀어서 익숙해지는 것이 중요한 것 같습니다. leetcode에는 현재 수천개의 문제가 있는데 처음 보면 막막하실 겁니다. 그러나 면접을 위한 필수적인 알고리즘도 패턴이 있으므로 유사한 문제를 풀다보면 감이 오시게 됩니다. 저는 처음에는 다양하고 넓게 문제를 풀다가 인터뷰 기간이 다가오면서 폭을 줄이고 한 문제를 반복적으로 풀어서 패턴을 익숙해 지도록 했습니다. 문제 단계는 Easy, Medium, Hard로 나눠져 있는데 주로 Easy와 Medium을 중점으로 푸는 것이 좋습니다. 알고리즘을 포함한 참고 사이트는 하단에 기재하도록 하겠습니다. 다시한번 더 정리하자면 Phone screen 단계는 일종의 작은 Onsite interview 과정으로서 동일하게 준비하시면 됩니다. 이때 면접은 2가지로 구성됩니다. - 알고리즘 (기술 문제) - Leadership Principles (인성 문제) Phone screen을 무사히 통과하였다면 드디어 마지막인 Onsite interview 단계로 넘어갑니다. ## Onsite Interview Onsite interview는 앞에서 말했듯이 4~5단계로 다시 나뉘게 되며 한단계당 한시간씩 진행됩니다. 면접 구성은 Phone screen과 동일합니다. 기술 문제 40분과 인성 문제 20분 정도로 구성되며 마지막에 간략한 QnA 시간이 있습니다. 면접관은 한명 또는 두명이 들어오는데 이때 메인 면접관을 제외한 다른 한명은 Interview shadowing을 하는 사람입니다. Shadowing이란 면접관이 되기 전에 일종의 참관을 하여 면접 프로세스를 익히는 과정으로서 면접읠 평가하는데 의견이 들어가지는 않는다고 합니다. 하지만 면접과정에서 질문을 하는 경우가 있으므로 지원자 입장에서는 면접관 2명과 면접을 보는 압박감을 느낄 수 있습니다. 면접은 보통 4단계로 이루어 지며, 각 단계별로 기술, LP 문제가 전부 다릅니다. LP는 총 14개(공식적으로 16개지만 2개는 매니저를 중점으로 한 것이므로 보통 제외하고 준비합니다.) 이며 각 LP 파트 별로 나누어서 질문하게 됩니다. 기술적인 문제는 자료구조, 알고리즘, 디자인, 객체지향 등을 각 파트별로 물어봅니다. L4의 경우 디자인은 제외될 수 있으며 매니저와 LP로만 구성된 면접을 볼 수도 있습니다. 여기서만 봐도 LP가 얼마나 중요한지, 알고리즘 만큼 철저하게 준비를 해야하는지를 알 수 있습니다. 또한 4명의 면접관 중 한명은 Bar Raiser 입니다. Bar raiser란 아마존의 문화중 하나로서 모든 면에서 품질을 한단계 올리고 최저 수준을 정하는 기준점이라고 볼 수 있습니다. 즉 다시말해 면접의 수준을 높혀서 지원자가 아마존의 기준을 통과할 만한 사람인지를 평가합니다. 당연히 면접 문제도 수준이 높고 상당히 날카로운 질문등을 합니다. 면접은 하루에 모두 치뤄지기 때문에 지칠수 있는데 Bar raiser 면접 과정 만큼은 제대로 넘어가는 것이 중요합니다. 누가 Bar raiser 인지는 면접을 보다보면 대부분 예상이 된다고 합니다. 다른 면접 질문보다 어려운 알고리즘을 낸다던지 LP 질문에 사소한 것 까지 물어본다던지 등으로 제일 어려운 관문이라고 할 수 있습니다. LP를 준비할 때는 각 파트당 최소 2개 이상을 준비하고 총 12~13 시나리오를 준비하는 것이 중요합니다. 이때 LP 파트 중에서 애매하게 걸쳐지는 부분이라던지 질문들이 다양한 파트에서 활용될 수 있는 경우가 많으므로 어떤 특정 부분을 강조하는 답변을 준비하기 보다는 살짝식 수정해서 사용할 수 있도록 준비하는 것이 중요합니다. 또한 매우 자세하고 구체적으로 답변해야 합니다. 예를 들어 기존의 문제점이 이랬는데 이래서 품질 향상을 했다 라고 답변한다면 반드시 다시 물어보는 질문은 어떤식으로 품질 향상을 했다고 확신하느냐 일것입니다. 이때 얼마나, 어떻게, 왜 등의 답변을 항상 예상하고 본인의 답변에 질문이 하나라도 다시 생기는 경우 다시 작성하는 것을 추천합니다. 이때 아마존에서 요구하는 답변 양식은 STAR 형식입니다. 아마존은 이렇게 답변하기를 기대하고 또 이러한 형식으로 면접을 평가합니다. 아마존 면접관 출신이 쓴 글 중에서 이런식으로 아마존의 평가 기준을 공개하면 누구나 다 준비를 해서 면접을 보지 않겠냐는 질문에 대한 답을 했는데 "그것이 바로 아마존이 원하는 방식이며 면접을 보는 모두가 이러한 방식으로 준비를 해서 평가하는 것이 면접의 질을 높인다"라는 식으로 답변한 것으로 기억합니다. 한마디로 가이드를 줄테니 그 가이드에 맞춰서 최상의 답변을 준비하라 정도일 것입니다. 여기서도 아마존이 얼마나 효율적으로 업무를 진행하는 것을 중요시하는지 엿볼 수 있습니다. 알고리즘 문제 중에서는 아래와 같은 분야를 중점으로 보는것이 좋습니다. - Binary Search ( Better than linear search) - BFS, DFS - Sliding window - Recursion (Understanding and easily iterate) - Inverting binary tree and reverse linked list. - Suffix tree - Heaps - Logarmatric - Dynamic programming - Sorting algorithm (Quick, Merge) 기나긴 Onsite Interview까지 끝내셨다면 이제 결과를 기다리는 일만 남았습니다. 결과는 이틀에서 일주일 정도 걸리고 합격이라면 recruiter가 전화로 소식을 알려주게 됩니다. 여기서 다시 중요한 점은 아마존의 면접 결과가 어떻든 지원자의 역량과 능력과는 상관 없는 일입니다. 아마존에서 떨어졌지면 구글에 합격한 사람도 있을 수도 있고 아마존이 요구하는 기준과 맞지 않을 수도 있으며 단지 운이 좋지 않아서 역량을 100% 발휘하지 못했을 수도 있습니다. 다만 한가지 중요한 점은 아마존의 면접 결과가 본인을 판단하는 기준은 절대 아니며 면접에 떨어졌다고 해서 개발자로서 실력이 없거나 다른 대기업에 들어가지 못한다는 점은 아닙니다. Onsite 단계까지 간것만으로도 충분히 상당한 역량을 가지고 있음을 입증한 것이고 이전 단계에서 떨어졌더라도 준비가 부족했거나 운이 없었을 수도 있는 것이지 본인을 평가하는 기준으로 삼을 수는 없습니다. 마찬가지로 합격을 했다고 해서 대단한 개발자라던지 천재라고 입증된 것은 아닙니다. 아마존에는 수많은 개발자가 있으며 모든 개발자가 다 똑똑하고 개발을 매우 잘하는 사람들은 아닐 것 입니다. 앞서 말했듯이 아마존은 LP를 매우 강조하고 Communication을 강조하고 있습니다. 북미 IT 기업마다 요구하는 가치관과 문화가 다르며 이것을 찾는 과정은 시간과 노력 그리고 운이 따라주어야 할 것입니다. --- ## 참고자료 ### 후기 - [시애틀의 외국인 노동자의 브런치](https://brunch.co.kr/@worker-in-yvr#articles) : 한국분이 작성한 몇 안되는 아마존 인터뷰 후기 입니다. 한국에서 면접을 보고 북미로 넘어오셨기 때문에 이러한 과정을 준비하시는 분들에게 큰 도움이 될 것 입니다. - [Leetcode - FEE2 Canada](https://leetcode.com/discuss/interview-experience/627600/Amazon-or-Front-End-Engineer-2-or-Canada) - [Leetcode - FEE1](https://leetcode.com/discuss/interview-experience/887718/Amazon-or-FEE-1-or-Bangalore-or-Oct-2020-or-offer) ### Tech - [DataStructure & Algorithm (8 Part Series)](https://dev.to/fernandoblima/linked-list-queue-and-stack-data-structure-part-i-1pen) - [Javascript questions](https://github.com/lydiahallie/javascript-questions) - [Frontend interview questions (No answers)](https://github.com/h5bp/Front-end-Developer-Interview-Questions) - [General interview questions](https://github.com/DopplerHQ/awesome-interview-questions) - [Frontend interview handbook](https://www.frontendinterviewhandbook.com/introduction/) - [Amazon frontend interview guideline](https://xjamundx.medium.com/understanding-amazons-front-end-engineering-interview-5e9f38b58058) - [Algorithm - Grind 75 questions](https://www.techinterviewhandbook.org/grind75) - [How to optimize frontend performance](https://blog.bitsrc.io/9-best-practices-for-optimizing-frontend-loading-time-763211621061?gi=41b0d61b954d) - [Leetcode Amazon final interview questions](https://leetcode.com/list/954v5ops/) - [Javascript tech questions](https://bigfrontend.dev/problem) - [Neetcode](https://neetcode.io/practice) : Leetcode 문제 중 인터뷰에 자주 나오는 유형들을 정리해놓은 사이트 입니다. 해설 동영상도 매우 자세하고 친절하게 나와있으므로 어떤 문제를 풀어야할지 감이 안온다면 이 사이트에서 안내하는대로 연습하는 것을 추천 드립니다. - [Data structure in Javascript](https://jarednielsen.com/data-structures-javascript/) ### LP - [LP Resources](https://www.interviewgenie.com/resources) - [Leetcode - Amazon LP compiled](https://leetcode.com/discuss/study-guide/1149636/Amazon-LPs-Compiled) - [Reverse interview](https://github.com/viraptor/reverse-interview) - [Leetcode - 2021 Onsite LP questions](https://leetcode.com/discuss/interview-question/1590162/Amazon-Final-Interview-Questions-or-All-Combined-2021-or-SDE-and-New-Grad)