[코딩 면접 후기] 구글 코딩 면접 후기 (소프트웨어 엔지니어)

구글 코딩 면접 후기 – 이 포스트는 2018년 ‘구글 코리아 Software Engineer, University Graduate’ 면접 후기입니다.
채용 과정은 ‘지원’ -> ‘오프라인 면접’ -> ‘오프라인 면접’ -> ‘팀 매칭’ -> ‘오프라인 면접’으로 최종 결과는 합격입니다.

지원 동기

구글은 전 세계 모든 지역의 상시 채용 공고를 https://careers.google.com/jobs/ 에서 확인할 수 있습니다. 저는 여기에서 Software Engineer, University Graduate와 Software Engineering Intern에 지원했고, 그 중 Full Time 면접을 볼 수 있었습니다.

서류 통과, Phone Screening

서류 통과는 지원 시점으로부터 2달 넘은 시점으로부터 통보받았습니다. 그 이전에는 딱히 진행상황을 받지 못했기 때문에, 저는 ‘떨어졌구나’ 하고 생각하고 있었습니다. 나중에 듣기로는 그 시점에 오프라인 면접을 보는 분들이 너무 많아서, 먼저 지원한 순서대로 진행되었다고 합니다.

Phone Screening은 따로 진행되지 않았습니다. 저는 삼성 SCPC나 Google CodeJam 같은 알고리즘 대회 경력을 적었는데, 리크루터의 판단에 따라 Onsite 면접으로 즉시 진행할 수 있었습니다.

Onsite 1차

온 사이트 면접은 2018년 기준으로 4번의 면접으로 구성됩니다. 구글의 면접 방식은 계속해서 변화하기 때문에 지금 면접 방식과는 또 차이가 있습니다. 2018년 당시 제 면접은 모두 알고리즘 문제 풀이로 구성되었습니다. 이 때는 LeetCode 같은 사이트를 전혀 몰랐기 때문에 아래 책을 가지고 면접을 준비했습니다. 딱히 도움은 안되었던걸로 기억합니다.

서류 통과 이후부터 모든 일정과 문의사항은 배정된 리크루터와 함께 진행합니다. 면접 일정은 사전에 조율할 수 있으며, 사정이 있을 경우엔 서류를 붙은 후 오랜 시간 후에 면접을 봐도 된다고 합니다. 구글 면접의 좋은 점은 지방에서 면접을 보러 갈 경우에, 여행 경비를 Reimburse 신청할 수 있다는 점입니다. 저는 매 면접 때마다 버스를 타고, 전날 숙박할 호텔 비용을 지출했었는데 영수증을 제출하면 이 비용을 모두 정산받을 수 있습니다.

면접은 오전 면접 2번 -> 런치 인터뷰 -> 오후 면접 2번으로 진행되었습니다. 면접 문제는 모두 알고리즘 문제를 받았습니다. 진행 방식은 처음에는 간단한 문제를 받아서, 이 문제를 풀면 점점 더 문제에 조건을 하나씩 더해가면서 어려워지는 것들이 대부분이었습니다. 모든 문제가 알고리즘 문제로 구성되지 않을수도 있습니다. 간단한 디자인 문제가 나올 수도 있고, 구현 문제가 나올 수도 있고 답이 없는 문제가 나올 수도 있습니다. 무엇을 물어볼지는 Interviewer가 정할 수 있습니다.

점심은 정말 맛있지만, 좀 긴장을 했는지 딱히 제대로 먹진 못했습니다. 런치 인터뷰는 평가에 들어가지 않기 때문에, 인터뷰어에게 회사에 궁금한 점들을 여러가지 물어볼 수 있습니다. 저는 Quora에서 읽기로 런치 면접도 최종 평가에 들어간다고 읽어서 매우 긴장했었습니다. 하지만 실제로는 전혀 긴장할 필요가 없습니다.

Onsite 2차

결과 통보는 대략 1주일에서 2주일 사이가 걸립니다. 결과는 대충 면접을 보면 스스로도 감이 잡힙니다. 제 경우는 2개는 문제에 말렸었고, 2개는 잘 풀었다고 생각했습니다. 다소 애매한 결과입니다. 결과가 애매할 경우에는 추가 면접을 통지 받을 수 있습니다. 이 경우 2번 정도의 인터뷰를 더 시행합니다. 이 때는 오전이나 오후 중 하나를 선택해서 면접을 볼 수 있습니다.

추가 면접은 1차 면접보다 훨씬 쉬웠습니다. 어떤 형태의 인터뷰인지와 난이도를 가늠할 수 있기 때문입니다. LeetCode(https://leetcode.com)도 이 시기에 알게되어 Hard 문제나 Topcoder SRM(https://arena.topcoder.com/index.html#/u/dashboard)의 Div1의 250점 문제를 집중해서 풀었습니다. GeeksforGeeks의 코딩 인터뷰 알고리즘 (https://www.geeksforgeeks.org/top-10-algorithms-in-interview-questions/)도 이 시기에 모두 직접 짜본 것 같습니다. HackerRank(https://www.hackerrank.com/domains/algorithms)에서 알고리즘 별 문제를 풀어보는 것도 좋습니다.

결과가 매우 좋을 경우에는 리크루터가 미리 대략적인 결과의 방향을 알려주는 경우도 있습니다. 물론 그게 무조건 확실한 것은 아닙니다. 최종 합격은 Hiring committee를 거쳐야만 합니다.

Team Matching

코딩 면접의 통과는 이 지원자가 구글에서 일할 수 있는 수준의 Bar를 넘겼다는 뜻으로 간주됩니다. 이 때부터는 이 지원자에게 맞는 팀을 매칭하기 위한 과정이 진행됩니다. 저는 제가 지원한 Region인 서울에서 팀 매칭을 진행했습니다. 제 지원서가 현재 헤드 카운트가 있는 팀으로 전달되고, 그 중에서 저에게 관심을 가지는 팀의 매니저들과 매칭을 시작합니다.

저는 총 세 팀과 매칭을 진행했습니다. 대게 질의 응답식으로 팀에 대해서 궁금한 점들을 많이 물어봤습니다. 마치 소개팅을 하는 것처럼 이 절차가 끝난 이후에는 최종적으로 가고 싶은 팀의 순위를 매깁니다. 그 이후 매니저들의 피드백도 받아서 최종적으로 매칭을 완료합니다.

알려진 확률은 낮지만 이 과정이 잘 안될 수 있습니다. 이 때는 Region을 옮겨다닐 수 있습니다. 만약 한국에 있는 어떤 팀과도 매칭이 되지 않으면, 일본이나 더 먼나라의 팀과도 매칭을 진행할 수 있습니다.

Onsite 3차

Hiring Committee가 언제 열리는지는 잘 모르겠습니다. 제 Hiring Committee는 팀 매칭 이후에 진행된 것 같습니다. 이 때 다시 추가 면접을 봐야한다는 쪽의 의견이 나와서 다시 2번의 면접을 보러갔습니다. 이 때는 매우 마음이 편했습니다. 오피스 방문이 4번째인 상황이기도 하고, 면접 상황이 매우 친숙해서 아주 빠르게 문제를 잘 풀었던 것 같습니다. 막히는 상황도 하나 있긴 했지만, 힌트를 받아서 해결할 수 있었습니다.

최종 합격

최종 합격 이후에는 연봉 협상을 진행합니다. Compensation은 연봉 + 보너스 + 스톡으로 구성되어 있습니다. 제가 먼 지방에서 올라가는 것이기 때문에 이에 대한 Relocation 비용도 따로 Compensation을 받을 수 있었습니다. 서류지원부터 최종합격까지 6달 정도가 걸렸고, 다른 분들에 비해서는 매우 느린 편으로 알고 있습니다. 빠른 사람의 경우엔 한 달


코딩 면접 후기 – 구글 코딩 면접 후기