-
안녕하세요 최근에 이직하면서 인터뷰 본 회사들 후기입니다.
전부 Virtual interview로 봐서 조금 특별한 경험이었어요.
현재는 아마존에서 SDE2이고 경력은 3년이 조금 안되네요.
이직 시작 하고 링크드인 통해서 20개정도 회사 리크루터들이 연락 왔었고 따로 어플라이는 하지 않았습니다.
연락 온 회사들 중에 안 가고싶은 회사 빼고 한 10군데 정도 인터뷰 프로세스를 진행 했었는데 시작 하자마자 코로나가 터져서 폰스크린 통과 하고 온사이트 스케줄 됐다가 취소된 회사도 몇군데 있고 폰스크린 스케줄 됐다가 취소된 회사도 있어서 (정확히는 헤드카운트 생길때까지 hold 하자고 함) 최종적으로 인터뷰 프로세스 진행한 회사는 Microsoft, Lyft, Google + 몇몇 스타트업이었고 모두 오퍼를 받았습니다.
스타트업 회사들은 인터뷰 연습용으로 초반에 인터뷰 본거라 따로 언급은 하지 않을게요.0. 인터뷰 준비
Coding
3개월정도 회사 다니면서 저녁먹고 매일 자정까지 LC 문제 풀었고 LC 문제는 300+개 medium을 200개 넘게 풀었습니다. 초반엔 하루에 medium 문제 두개도 못 푸는 날이 많았는데 3개월 지나니까 하루에 10개씩도 풀 수 있게 되더라구요.
딱히 시간을 재면서 문제를 풀지는 않았고 10분 안에 솔루션을 못 찾으면 답을 체크하고 이해하고 비슷한 문제를 풀어보면서 응용력을 기르려고 노력했습니다.
System design
Grokking the System Design Interview에서 몇몇 토픽을 읽고 개념 공부를 좀 더 확실히 하고 했습니다.
회사에서 했던 시스템 디자인 경험들이 도움이 많이 됐어요.1. Microsoft (Offer. Level: 62)
개인적으로 전체적인 hiring process 경험이 제일 안 좋았던 회사인데 특이하게 인터뷰어들은 다들 나이스 했고 사용하는 툴도 제일 좋았어요.
1차는 OA 2차 온사이트였고 온사이트에서는 세라운드 코딩 인터뷰 봤습니다.
1차 OA는 LC easy 수준 코딩 문제 3개와 domain knowledge quiz 6~7개를 60분 안에 푸는거였는데 문제가 전체적으로 쉬워서 20분도 안되어서 다 풀어서 그냥 제출 했습니다.
며칠 후에 리크루터가 패스 했다고 연락해주었고 온사이트 하루 전날 인터뷰 디테일을 알려주더라구요..
온사이트에서는 세 라운드 코딩 인터뷰를 봤는데 모든 라운드에서 behavior question을 10~15분정도 먼저 물어보고 그 다음에 코딩을 시작하는데 대체적으로 LC easy~medium 수준의 문제가 나왔고 보통 easy 문제를 먼저 물어본 다음에 candidate이 잘 풀면 LC medium 문제를 주는 것 같았습니다.
개인적으로는 문제들이 매우 쉬워서 매 라운드당 3개씩 문제를 다 풀고 더 이상 follow up question도 없고 문제도 없어서 10~20분씩 일찍 마쳤습니다.
온사이트 일주일 후 전화로 verbal offer 받고 이틀 후에 written offer 받았습니다.2. Lyft (Offer. Level: T4)
1차 폰스크린 2차 온사이트 진행했습니다.
폰스크린은 무난한 LC medium 문제가 나왔고 optimal solution으로 풀고 follow up question도 다 코딩 했습니다.
폰스크린 후 하루만에 리크루터한테 패스 했다는 연락이 왔고 온사이트 스케줄 했습니다.
온사이트는 총 4라운드였고 1 System design, 2 Coding, 1 Behavior 였습니다.
System design은 microservices 개념 적용해서 무난하게 풀었고 코딩 라운드는 조금 특이 했는데 한 라운드는 보통의 coding interview였는데 다른 한 라운드가 90분 동안 주어진 assignment를 코딩해서 내는거더라구요.
인터뷰어는 초반 10분? 정도만 들어와서 문제 clarify 하는것을 도와주고 나머지 시간은 그냥 혼자 제 IDE에서 코딩을 시켰습니다.
문제는 LC 문제들 보다는 스케일이 조금 더 큰? 코딩 문제였는데 마지막에 제출을 해야해서 깔끔하게 짜는것도 신경을 써야했습니다.
다른 무난했던 코딩 라운드는 LC medium 정도 문제가 나왔고 마이크로소프트와 비슷하게 optimal solution으로 풀고 follow up question까지 다 풀고 20분정도 인터뷰를 빨리 끝냈습니다.
온사이트 일주일 후 전화로 verbal offer를 받았지만 제 온사이트와 verbal offer 사이에 리프트에서 레이오프가 있었기 때문에 팀매칭에는 꽤 시간이 걸렸어요ㅠㅠ
팀매칭 후 written offer를 받았는데 verbal offer 받고 written offer까지 4주정도 걸렸어요.
리프트에서 팀매칭에 시간을 끌어준 덕분에 구글과 타임라인을 잘 맞출 수 있었어요!3. Google (Offer. Level: L4. Accepted)
3년 전 학교 졸업 직전에 구글 온사이트에서 떨어졌었기 때문에 이번에는 다른 프로세스 다 생략하고 바로 온사이트부터 시작했습니다.
총 5라운드 4 Coding, 1 Behavior 였고 Google doc을 이용해서 코딩했어요.
코딩 라운드는 전체적으로 LC medium~hard 문제가 나왔고 시작을 medium으로 시작해서 follow up을 hard로 내는 형태였습니다.
첫번째 코딩 라운드는 너무 긴장도 했고 LC 형태로 문제를 주지 않아서 문제를 이해 하는데 시간이 좀 걸려서 제 생각엔 efficient 하지만 optimal이라는 확신은 없는 코드로 풀었고 follow up question은 다 잘 대답 했습니다.
두번째 세번째 코딩 라운드는 제가 좋아하는 형태의 문제가 나와서 optimal solution으로 풀고 follow up question도 다 코딩 해서 10분~20분씩 일찍 끝났어요.
네번째 코딩 라운드도 optimal solution으로 풀고 edge cases까지 다 커버 하는걸 증명하고 끝났습니다.
Behavior 라운드도 그냥 무난무난하게 잘 얘기한 것 같았구요.
요즘 구글 하이어링 프로세스가 코로나 때문에 안 그래도 느린게 훨씬 더 느려졌다고 해서 걱정이었는데 리크루터를 잘 만난탓인지 온사이트 후 일주일만에 하이어링 커미티 (HC) 도 다 통과하고 HC 이후 일주일만에 팀매칭 콜도 여러개 받아서 TC 네고를 여러번 했음에도 온사이트 후 3.5주만에 written offer를 받을 수 있었어요.
나중에 리크루터가 말하기를 온사이트 올 라운드에서 Strong hire/hire를 받았다고 하더라구요.4. 후기
제가 LC에서만 연습을 해서 그런지 모르겠지만 회사들이 LC에서 그대로 문제를 가져오는 것 같지는 않았습니다 (마소 제외).
특히 구글은 실제 프로젝트에서 생길 수 있는 문제를 축소 시켜서 내거나 LC 형태의 문제를 좀 더 꼬아서 내는 것 같았어요.
하지만 LC 문제를 많이 풀고 data structure에 대한 이해도가 높으면 충분히 솔루션을 찾을 수 있는 문제들을 내는 것 같아요.
코딩 인터뷰는 한 두 라운드정도 확실히 잘 보면 다른 라운드를 말아먹지 않는 이상 웬만하면 오퍼를 받는 것 같았습니다.
그리고 처음보는 문제라도 인터뷰어와 끊임없이 interact하면서 scope을 줄여 나가면 어느정도 해답이 보이더라구요.