Google 면접


 AMD에서의 일이 생각한 것과 달라서 Google에 이력서를 제출했다. 1주일 뒤에 HR에서 연락이 왔다. 자신들이 찾는 포지션과 이력서가 너무 잘 맞는다면서 면접을 보자고 했다. 개발자라면 누구나 꿈꾸는 Google이기 때문에 면접을 진행하자고 하였다. 바로 HR에서 1차 기술 면접 일정을 잡아줬다.

 Google의 면접은 굉장히 어렵다고 소문이 나있다. 알고리즘을 잘 알고 잘 풀어야 하는 것으로 알려져 있다. 그래서 그런지 몰라도 HR에서 Google 면접 준비 법, 알고리즘 책, 화이트보드 면접 등 면접을 준비하는 가이드를 많이 보내줬다. 나는 괴팍한 알고리즘을 푸는 것을 좋아하지 않기 때문에 Google 면접에 익숙하진 않았지만 최선을 다해서 준비했다.

 1차 기술 면접은 전화와 Google Docs를 통해서 진행됬다. 면접관이 자기소개를 했고 Google에서 graphics 관련된 일을 하고 있다고 소개했다. 그래서 그런지 면접 문제가 알고리즘 문제가 아닌 graphics 관련된 질문이었다. 쉽지도 않지만 어렵지도 않은 문제였다.

 2차 면접은 On-Site 면접이었다. On-Site 면접은 직접 회사에 가서 하루 동안 여러 명의 면접관과 면접을 보는 것이다. 물론 회사에서 호텔, 비행기, 자동차 등 모든 것을 지원해 준다. 1차 면접과 비슷할 것이라 생각해서 알고리즘만 쫌 더 공부하고 On-Site 면접을 보았다.

 On-Site 1차 면접은 5년차 Google engineer와 진행되었다. 흔히 볼 수 있는 알고리즘문제라서 어렵지 않게 풀 수 있었다. 물론 문제를 화이트보드에 풀어야 했고 Time complexity도 계산해야 했다. 또 면접관이 요구하는데로 알고리즘을 수정하기도 했어야 했다.

 On-Site 1차 면접의 문제는 다음과 같다.
  • 주어진 배열에서 숫자들의 합이 특정 수를 만족하는 경우를 찾는 문제
  • Sum of Three 문제

 On-Site 2차 면접은 13년차 Google engineer와 진행되었다. 자신을 보안 전문가라고 설명했고 보안 관련된 서버 설계 디자인을 해보라고 나에게 요청하였다. Network는 자세히 알지 못했기 때문에 제대로 된 설계를 할 수 없었고 1시간 동안 질문만 하다가 면접이 끝이 났다.

 On-Site 2차 면접의 문제는 다음과 같다.
  • Server에서 각 기기마다 unique ID값을 어떻게 만들 것인가
  • Server가 갑자기 Shut down이 됬을 때 어떻게 해야 잘 복구할 수 있는가
  • 사용자가 많아질 경우 server를 어떻게 늘리고 각 server로 어떻게 분배할 것인가

 더 많은 요구를 했는데 잘 아는 분야가 아니라서 제대로 기억하지 못했다.

 On-Site 3차 면접은 8년차 Google engineer와 진행되었다. 어려운 C++ meta programming에 대해서 물어봤고, 키보드 자동 완성 기능을 구현해보라고 했다. C++ meta programming의 경우 답은 맞췄으나 설명을 100% 올바르게 하지 못했다. 키보드 자동 완성은 tree를 이용해서 구현을 했는데 시간이 부족해서 다 완성을 하진 못했다.

 On-Site 3차 면접의 문제는 다음과 같다.
  • C++ meta programming에 대한 문제
  • 키보드 자동 완성 문제

 On-Site 4차 면접은 10년차 Google engineer와 진행되었다. 문제는 bit stream에서 unicode를 parsing하는 문제였는데 문제를 풀면서 많은 실수를 하였다.

 On-Site 4차 면접의 문제는 다음과 같다.
  • Bit Stream에서 Unicode Parsing하는 문제
 문제를 재귀 적으로 접근했는데, 많은 부분 실수를 해서 면접관으로 부터 많은 도움을 받았었다. 나중에 알고 보니 면접관으로 부터 실수에 관한 도움을 받는 것이 굉장히 좋지 않다고 한다.

 On-Site 마지막 면접은 입사 한지 얼마 안되는 Google engineer와 진행되었다. 알고리즘을 푸는 문제였는데 문제를 해결하면 Time complexity를 구하고 더 좋은 알고리즘으로 바꾸는 것을 반복하는 문제 였다.

 On-Site 5차 면접의 문제는 다음과 같다.
  • Bit stream에서 1이 나오기 전까지의 0의 개수 세는 문제

 1차와 마찬가지로 graphics 관련된 질문을 물어볼 줄 알았는데 전혀 다른 문제를 물어봐서 제대로 면접 문제를 풀지 못했다. 결국 Google은 떨어졌다. 아마 Google을 다시 지원하는 일은 없을 것 같다. 업무와 전혀 연관되지 않은 문제들을 물어보는 것 자체가 별로 마음에 들지 않는다. 알고리즘은 물론 중요하다. 하지만 면접에서 나오는 알고리즘을 사전에 공부하지 않고 바로 풀 수 있는 사람은 많지 않다고 생각한다.

 이 후기가 해외 취업을 생각하는 분들에게 많은 도움이 됐으면 좋겠다.

댓글