지난 2년 동안 많은 회사들과 면접을 봤다. 개발자이다 보니 한국에서는 자연스럽게 '네카라쿠배'의 모든 회사들과 면접을 경험했다. 여러 가지 이유로 한국을 떠나기로 결정했고 올해 초부터는 여러 미국 회사들과 면접을 진행했다. 스타트업보다는 큰 규모의 회사에서 경력을 쌓고 싶었기에 빅테크라 불리는 회사들에 지원을 했다. 만드는 제품은 많이 달라도 백엔드/서버 개발자라는 포지션은 나라 및 회사에 상관없이 비슷한 업무를 맡게 된다. 당연히 업무에 필요한 능력과 사용하는 기술에 있어서 많은 부분들이 유사하다. 그래서 면접 과정도 비슷할 거라 생각되겠지만 내가 경험한 한국과 미국의 개발자 면접은 상당히 달랐다.
'쿠'를 제외한 모든 회사들은 같은 형식의 면접이 진행됐다. 계열사 혹은 부서마다 약간의 다른 점들은 있었지만 큰 틀은 동일했다. 면접 과정은 서류전형과 코딩 테스트로 시작한다. 코딩 테스트는 온라인으로 주어진 문제를 해결하는 코드를 제출하는 방식이다. 마치 학교에서 보는 온라인 시험과 유사하다. 이 전형을 통과하면 기술 면접으로 넘어간다. 대부분 2 ~ 3명의 면접관이 들어오고 (최대 4명까지 경험했다) 1시간 동안 돌아가면서 질문을 던진다. 지원 서류에 없는 내용을 물어보는 면접관들도 있었고 이력서를 제외한 다른 내용은 전혀 물어보지 않는 회사들도 있었다. 이 단계에서 가장 이해가 되지 않았던 점은 많은 질문들이 특정한 기술을 얼마나 아는지 물어보는 질문들이었다. 개발자에게 가장 중요한 역량인 문제 해결 능력을 파악하는 것과는 거리가 멀었다. 검색하면 바로 나오는 내용들을 많이 알고 있는지 중점적으로 검증하는 것 같았다. 채용하는 회사에서 사용하는 기술이 아닌 다른 기술을 주로 다뤘다면 이 면접이 어떻게 진행되는지 의문이 들었다. 문제 상황을 주고 해결 방안을 물어보거나 특정한 문제를 해결해 본 경험을 물어보기도 했다. 1시간이라는 짧은 시간이지만 서술한 방법들의 장단점과 트레이드오프를 물어보는 면접관도 있었다.
1차 면접 다음에는 컬쳐핏 인터뷰, 문화 면접, 인성 면접 등 다양한 이름으로 불리는 비기술 면접이 있다. 회사를 선택할 때 중요하게 보는 점, 특정한 상황에 대한 경험, 그리고 업무상 어려웠던 것들을 처리한 경험과 같은 내용들을 물어본다. 내가 면접을 본 곳들은 저마다 다른 스타일과 질문들을 사용했다. 2차 면접도 여러 명의 면접관이 들어오고 1시간 정도 진행된다. 기술 면접이 두 개인 곳도 있었지만 대부분 2차 면접까지 포함해서 두 시간가량의 면접으로 전형이 마무리된다.
한국과 동일하게 서류 전형을 통과하면 코딩 면접이 잡힌다. 주로 techincal screen이라 불리는 이 전형에는 한 명의 면접관이 들어오고 1시간 내에 풀어야 하는 코딩 문제가 주어진다. 지원자가 프로그래밍 언어를 선택할 수 있는 환경을 제공해주거나 구글 문서와 같은 공용문서에 의사 코드를 (pseudocode) 작성하는 방식으로 진행된다. 이 전형을 통과하면 on-site 면접으로 가게 된다. 요즘은 많은 회사들이 원격으로 면접을 보기 때문에 상황에 따라 이틀에 나눠서 진행되기도 한다. on-site에서는 코딩 면접 3 - 4개, system architecture 면접 1개, hiring manager 면접 1개가 있다. 회사에 따라 지원자의 예전 경력을 물어보는 Q&A 혹은 past experience 면접이 있는 곳도 있다. 모든 단계에 면접관 1명이 들어오고 1시간씩 소요된다. on-site에서 6개의 면접이 있다면 대략 6시간 동안 최소 6명의 면접관을 만나는 셈이다.
코딩 면접은 technical screen과 같은 방식으로 진행된다. 다만 문제의 난이도가 더 올라가거나 유사한 난이도라면 면접관이 기대하는 수준이 더 높아진다. system architecture 면접은 많은 사람들이 사용해본 제품의 한 부분을 주고 서비스 설계를 어떻게 할 건지 물어본다. 예를 들어 호텔 예약 플랫폼의 호텔 검색 기능 혹은 우버의 배차 기능을 어떻게 구현할 건지 물어본다. 백엔드 개발자 전형이라면 서버, API, DB 구성 및 설계를 하게 된다. 면접 이름처럼 설계에 중점을 두고 코딩은 전혀 하지 않는다. 신입/주니어 개발자 채용이라면 이 단계를 생략하거나 코딩 면접으로 대체하는 곳도 있다. Hiring manager 면접은 개발팀 매니저/팀장이 진행하고 한국에서 보는 2차 면접과 유사하다. 지원자가 회사에서 원하는 인재상과 같은지, 문화적으로 팀에 잘 맞는지를 파악하는 문화/인성 질문들이 주어진다. 흔히 말하는 '팀 매칭' 단계를 여기에서 진행하는 회사들도 있다. Q&A 혹은 past experience 면접은 이번 기회에 처음으로 접해봤는데 이미 여러 빅테크 회사에서 지원 전형에 포함되어 있다. 지원자의 경험해서 주도적으로 이끌었거나 가장 기여를 많이 한 프로젝트를 설명하는 시간이다. 내가 가지고 있는 기술 능력, 업무에 필요한 소통 능력, 일하는 방식 등을 포괄적으로 확인하다.
'쿠'의 경우 미국 회사들과 유사하게 코딩 면접 2 - 3개, system architecture, 그리고 hiring manager 면접이 있었다. 다른 점이라면 코딩 면접에 나오는 문제들이 대부분 많이 알려진 것들이고 상대적인 난이도가 낮았다. 실제로 동일한 문제가 쿠팡 면접과 메타 면접에서 제출되었는데, 쿠팡에서는 1시간 동안 해당 문제만 풀었고 메타에서는 25분 동안 푼 뒤 비슷한 난이도의 문제가 한 개 더 나왔다.
한국과 미국 모두 '시니어 백엔드 개발자' 전형이지만 위에 적힌 듯이 너무나 다른 면접을 경험했다. 나라와 회사에 상관없이 지원자의 다양한 능력을 파악하려는 면접관을 만나봤고, 또는 표면적인 질문만 던지는 면접관도 있었다. 두 나라의 전형을 경험해보고 이제는 미국 빅테크에서 면접을 진행하는 사람으로서 느낀 것은 완벽한 개발자 면접 전형은 없는 것 같다. 한국 회사들처럼 기술에 대한 질문들만으로 지원자를 충분히 이해할 수 있다. 특히 지원자가 경험한 기술이 한국에서 많이 쓰이고 있고 거쳐온 회사가 비슷한 규모라면 더 효율적이다. 개인적으로 미국 회사들이 사용하는 전형을 선호하지만 역량 파악에 있어서 유일한 정답은 아니다. 코딩 면접 단계에서 실력 있는 지원자들을 놓치는 일이 흔하다. 실무와 동떨어진 면접만을 위한 능력을 검증한다고 주장하는 사람들도 많다. 하지만 한 가지 확실한 것은 지원자 한 명에 쏟는 시간이 월등히 많다는 점이다. 면접관이 되기 위해서 받아야 하는 교육이 적지 않고 면접관이 필수로 갖춰야 할 기준이 상세하게 정해져 있다. 이처럼 편향 없이 지원자를 다각도로 평가하기 위해 충분한 시간과 자원을 사용하는 것이 맞는 방향이라 생각한다.
커버 이미지: Sergey Zolkin