프로면접관이 구글, 애플 본사와 실리콘밸리 유니콘들의 채용과정을 설명한다
지난 15년 동안 저자는 구글, 애플 및 유니콘 기업과 같은 실리콘밸리의 여러 IT 기업에서 1000회 이상 면접을 진행하였다. 또한, 유사한 기업들에서도 면접을 해 본 경험이 있으며, 이러한 경험을 바탕으로 실리콘밸리의 IT 기업들의 채용 문화와 면접 과정을 정리하였다. 이 글은 실리콘밸리에 취업을 준비하고 있는 소프트웨어 엔지니어나, 실리콘밸리와 유사한 엔지니어링 면접 시스템을 도입하고자 하는 경영진, 그리고 실리콘밸리에서 엔지니어를 채용하려는 채용팀을 위해 여러 관점에서 간결하지만 포괄적으로 채용 과정을 정리한 글이다.
실리콘밸리의 IT 기업들, 특히 최근에 생성된 기업들 사이에서는 평생직장이라는 개념이 사라지고, 그 결과로 이러한 기업들이 채용하는 목적은 장기적으로 한 기업에서 함께 성장하며 커리어를 발전시킬 잠재력을 가진 일꾼을 찾는 것이 아니라, 단기적으로 지금 즉시 필요한 특정한 업무를 가장 효과적으로 수행할 수 있는 전문가를 찾는 데 더 집중하고 있다. 따라서 실리콘밸리의 IT 기업들은 엔지니어 면접 방식에서 지원자의 기본 잠재력이나 애사심과 같은 요소에 집중하는 것이 아니라, 해당 포지션에서 요구되는 기술적 능력을 검토하는 데 전문화되어 있다. 또한, 실리콘밸리의 IT 기업들 사이에서도 사업 분야가 다양하므로, 각 기업의 엔지니어가 맡는 업무 또한 다르고 다양하며, 따라서 면접 방식도 다르고 다양하다. 소프트웨어 엔지니어로서의 기본적인 능력인 자료구조와 알고리즘, 시스템 및 아키텍처 디자인과 같은 요소들은 모든 엔지니어 면접에서 평가 대상이지만, 이러한 기본 요소 중에서도 특정 분야나 응용 방법에 대한 집중적인 평가가 달라지게 된다.
또한, 회사의 사업 모델에 따라 면접 스타일도 달라진다. 구글이나 메타와 같이 전반적으로 다재다능한 (well-rounded) 엔지니어를 선출하려는 기업들은 전반적으로 다재다능한 엔지니어를 채용하기 위해 면접 시 더 이론적이고 창의력과 문제해결 능력을 요구하는 질문을 하게 된다. 그러나 애플과 같이 특정한 업무에 맞는 인원을 채용하는 기업들은 해당 업무에 관련된 구체적인 기술과 요구사항을 중점적으로 평가하며, 채용의 기준 또한 채용 담당자마다 달라질 수 있게 된다.
구글과 메타가 다재다능한 엔지니어를 선호하는 이유는 이러한 기업들이 새로운 프로젝트나 제품을 지속적으로 시도하는 기업이기 때문이다. 따라서 채용된 엔지니어들은 다양한 프로젝트 간에 유연하게 이동할 수 있는 능력을 갖추어야 되고, 빨리 생성되고 또한 빨리 사라지는 여러 프로젝트 간에서 꾸준한 성과를 이룰 수 있는 엔지니어들을 선출하고 있다. 그래서 이러한 경우에는 회사 전체에 일관된 채용 기준이 세워지게 된다. 반면, 애플과 같이 비밀성이 강조되며 특정 제품 라인에 특화된 스페셜리스트가 (specialist) 필요한 기업들은 팀 간 이동을 장려하지 않게 된다. 따라서 이러한 경우에는 회사 전체에 일관된 채용 기준을 세우는 것이 오히려 해가 된다.
구글과 메타 사이에서도 채용 기준이 달라지는 걸 확인할 수 있다. "세상에 존재하는 어려운 문제들을 해결하라"는 (solve difficult problems) 구글의 모토에 맞게, 구글은 아직 해결책이 없는 어려운 문제를 해결할 수 있는 창의력을 가진 인재를 발굴하고 채용하는 데에 집중한다. 반면 "빨리 움직여라, 무언가 깨뜨릴 정도로"라는 (move fast and break things) 메타의 모토에 맞게, 메타는 창의력보다는 업무 처리량에 더 집중한다. 따라서 (초창기에) 구글은 높은 순위권의 대학에서 우수한 학력을 가진 인재나 연구자를 중점적으로 채용하는 경향이 있었으며, 반면 메타는 학력에 큰 중요성을 두지 않았다. 이로 인해 구글은 시간이 오래 걸리더라도 매우 혁신적인 제품을 꾸준히 출시할 수 있었고, 메타는 빠른 속도로 다양한 기능을 탑재한 제품을 "누구보다 빨리" 출시할 수 있었다.
실리콘밸리에서 진행하는 엔지니어 직종의 면접의 긍국적인 목적을 한 문장으로 요약하면 다음과 같다:
각 지원자가 적절한 시간 내에 해당 회사에 필요한 수준의 품질과 효율성을 가진 시스템과 코드를 개발할 수 있는 역량을 지니고 있는지 평가하고, 또한 해당 지원자가 기존 팀원들과 원활한 팀워크를 구축할 수 있는 성품을 가진 사람인지 판단하는 과정
면접의 모든 과정은 위에서 언급한 질문에 대답하기 위해 구체적인 구성 요소를 부여한 과정이다.
개인 전문가 (individual contributor) 엔지니어의 면접은 전반적으로 자료구조와 알고리즘 (Data Structures and Algorithms, 줄여서 DS/A라고 부른다) 분야의 면접, 그리고 시스템 디자인 및 아키텍처 디자인 등의 면접으로 크게 나누어진다. 채용하는 직급이 높으면 높을수록 DS/A 보다는 시스템과 아키텍처 디자인 쪽으로 면접을 집중하는 반면, 반대로 직급이 낮을수록 DS/A 쪽에 더 치중하여 면접을 진행하게 된다. 인턴십 면접의 경우에는 DS/A 면접만 진행하기도 한다. 또한 팀장급 (technical lead) 이상의 면접은 리더십과 집행능력에 관련된 면접이 추가로 진행되게 된다. 또한, 정해진 면접 과정 내에서 면접관들은 지원자의 문화 적합성(culture fit)을 꾸준히 관찰하게 된다. 문화 적합성은 주로 메인 면접 세션에 점수를 부여하는 것보다는, 문화에 부적합하다고 판단되는 지원자를 제외하는 용도로 사용된다. 저자도 기술적인 면접을 진행하던 중 매우 뚜렷이 해당 기업에서 팀워크 하기 힘들어 보이는 지원자들을 종종 겪어 보았다. 이러한 경우, 지원자의 면접 결과가 다른 기술적인 기대치에 도달하더라도 문화 부적합성에 이유로 지원자의 채용을 거부할 명분과 자격이 부여된다. 메타와 같은 기업은 문화 적합성을 매우 중요시 여기기 때문에, 지원자의 행동을 분석하고 문화 적합성을 관찰하기 위해 별도의 "Behavioral and culture fit" 세션을 진행하기도 한다.
개인적인 경험으로 이렇게 실리콘밸리의 기업들에서 진행되는 엔지니어의 면접 결과와 해당 엔지니어가 입사 후 보여주는 실제 업무 성과량 사이에 매우 강한 상관관계가 있는 걸 볼 수 있었다. 면접에서 우수한 평가를 받은 지원자들은 채용 후 업무에서 우수한 성과를 보여주는 경향을 목격했다. (이러한 상관관계는 특히 구글과 메타같이 전반적인 면접을 진행하는 기업들보다 애플같이 특정한 스페셜리스트를 뽑는 기업에 더 더 도드러지게 보였다.) 따라서 실리콘밸리의 기업들은 면접 결과를 기반으로 보수 협상을 진행한다. 즉, 동일 직급 위 포지션에 지원한 두 지원자가 있을 경우, 면접 결과에 따라 이 두 지원자가 협상할 수 있는 연봉 범위 또한 달라진다.
이렇게 진행되는 엔지니어의 면접 결과와 해당 엔지니어가 입사 후 보여주는 실제 업무 성과량 사이에 매우 강한 상관관계가 있는 걸 볼 수 있었다.
소프트웨어 엔지니어링 직종의 업무는, 그리고 그러한 업무상태를 평가하는 엔지니어링 면접은 궁극적으로 공학적인 업무들이기에 면접 시 사용되는 질문들은 매우 기술적이고 최대한 객관적으로 진행된다. 자료구조와 알고리즘 (DS/A) 형태의 문제들은 마치 수학 문제를 푸는 것과 유사한 느낌을 줄 때도 많다. (실제로 DS/A 면접을 온라인 테스트로 자동화한 서비스들도 많이 있다.) 따라서 수학 문제를 푸는 것처럼 지원자가 문제의 충분한 취지와 기본 원리들을 이해한다면 원리들을 응용하여 문제들을 푸는 건 어렵지 않다. 하지만, 수학 문제들처럼 문제의 취지를 이해하지 못하거나, 아주 간단한 몇몇 기본 원리가 기억이 나지 않는 경우 지원자가 평소에 풀 수 있는 문제들도 풀지 못하는 경우를 많이 목격할 수 있었다. 면접관들은 이러한 "운이 좋지 않은" 사태로 훌륭한 인재를 놓치는 걸 줄이기 위해 지원자가 문제의 취지를 이해하지 못하거나 알만한 기본 원리를 떠올리지 못하는 모습을 포착하면 여러 가지 힌트로 지원자에게 해결 방법을 상기시켜 주도록 되어있다. 그래서 면접관들은 지원자들이 주어진 문제를 풀 때 지원자가 현제 생각하고 있는 것들을 최대한 말로 표현해 달라고 (think out-loud) 요청한다. 또한, 이러한 이유에 면접관들은 지원자가 단순히 문제의 답을 맞혔는지로 면접의 성공 여부를 부여하지 않고, 지원자가 "think out-lout" 과정에서 문제를 풀 수 있는 기본 지식을 잘 보여 줬는지, 해당 문제를 풀지 못하더라도 비슷한 문제를 풀 수 있는 응용 능력을 보여 주었는지에 면접 결과를 더 집중하게 된다. 저자도 저자가 진행한 DS/A 면접들 중 문제를 풀지 못한 지원자들 중 약 3 분의 1 정도는 기본 지식의 이해도와 응용능력을 바탕으로 면접을 통과시켜 준 경험이 있다. 또한 어떠한 경우에는 지원자가 자신의 역량을 잘 보여주지 못한 세션을 다시 볼 수 있게 해달라고 요청할 때도 있다. 그리고 이러한 경우 다시 볼 수 있게 해주기도 한다.
때로는 지원자가 기본 지식을 이해하고 응용 능력을 가지고 있음에도 불구하고 면접관이 개인적으로 이러한 신호를 잘 포착하지 못하는 경우가 있을 수 있다. 이렇게 한 면접관의 실수를 줄이기 위해 면접관들은 최대한 서로 고립된 환경에서 따로 면접을 진행하도록 배치된다. 그래서 면접 과정에서 진행되는 각 세션들은 면접관이 1명, 많으면 최대 2명까지 배정되며, 면접관은 자신이 진행한 면접의 결과 피드백을 제출하기 전까지 다른 면접관들의 피드백을 보지 못하게 되어있다. 이를 통해 면접이 끝난 후 면접 결과를 분석할 때 면접관 한 두 명이 개인적으로 놓칠 수 있는 신호를 최소화하려고 노력한다. 그래서 채용 위원회가 모든 면접의 결과를 분석할 때에 한 두 명의 면접관이 잘 못 포착했을 법한 신호는 건너뛸 수 있는 기회를 가지게 된다. 하지만, 이러한 신호의 오류 격차가 채용 위원회에게 채용 결정을 내리기 힘들 정도가 되면 회사가 지원자에게 해당 면접 세션들을 다시 진행할 수 있게 요청하기도 한다.
미국 노동법에 따르면 채용 시에 자원자의 나이, 성별, 성 성향, 인종, 종교, 기존 병력, 또는 장애에 대한 차별은 금지되어 있다. 무거운 물건을 들거나 오래 서있어야 하는 등 물리적인 업무가 필요한 직종은 이러한 물리적인 요구사항을 채용 기준에 포함시킬 수 있지만, 지극히 사무직인 엔지니어링 분야에서는 이러한 요구사항을 기재하는 경우는 드물다. 게다가 캘리포니아주의 법률에서는 회사들이 지원자에게 기존 연봉을 물어보는 게 금지되어 있고, 또한 지원자가 지원하고 있는 포지션의 연봉 범위를 알려달라고 요청하면 공개해야 하는 의무도 있다.
물론 회사들은 채용하는 포지션의 직급과 연봉 범위를 자유롭게 설정할 수 있다. 예산 상황에 따라 더 낮은 직급의 엔지니어의 채용을 선호하는 경우도 있고, 또는 반대로 더 높은 직급의 엔지니어를 채용하기를 선호할 수 있다. 일반적으로 직급의 레벨과 지원자의 경력 수준, 그리고 나이는 상관관계를 가지고 있겠지만, 최근 미국에서는 지원자들이 워라밸을 추구하기 위해서 자신의 이전 직급보다 더 낮은 직급의 포지션에 지원하는 경향이 늘어나고 있다. 이러한 경우에서도 지원자의 나이를 토대로 채용 결정을 내릴 수는 없다.
미국의 MZ 세대 사이에서는 한 기업의 평균 근무 기간이 2~4년 정도이며, 또한 미국은 한국에 비하여 사내 인력을 더 수월히 정리해고 할 수 있는 환경에 있기에, 미국 기업들은 평생직장을 보장해야 되는 필요도 없고, 직원들이 그러한 환경을 기대하지도 않는다. 그렇기에, 회사들의 입장에서는 직원에 나이를 신경 써야 할 이유도 없고, 그렇기에 오히려 더 높은 경력을 보유한 엔지니어들을 자연히 선호하게 된다. (미국에서 잘 알려진 연구 결과에 따르면 엔지니어 직종 내에서 업무 성과율은 최대 30배까지 차이가 날 수 있지만, 연봉 차이는 10배 정도로 제한적이다. 따라서 포괄적으로 보았을 때 높은 경력직 인원을 채용하는 것이 회사에게 오히려 비용 효율적일 수 있기 때문이다.)
또한 미국에서 계약직에 대한 규제가 강화되어 이제 기업들이 직접 계약직을 고용하는 것을 선호하지 않는 환경으로 조성되었다. 따라서, 계약직이 수행할 수 있는 개발 업무들은 외주 업체에 위탁하거나 SaaS (서비스형 소프트웨어) 제품을 이용하여 업무를 대체하는 경우가 많이 늘어났다. 이로 인해, 미국에서는 SaaS 스타트업들과 서비스 업체들이 많은 호황을 누리고 있다. 그래서 액센츄어(Accenture) 나 IBM 같은 IT 아웃소싱 (outsourcing) 기업들을 제외하고서 실리콘밸리에서 엔지니어를 채용하는 케이스 들은 거의 대부분 회사의 핵심 기술을 구축하는 인력을 채우기 위해서 이다.
미국은 전반적으로 실업률이 매우 낮은 나라이다. 2023년 현재 경기가 불황기에 접어든 현제 상황에도 실업률은 3.6%로 낮게 유지되고 있다. 특히 인력난이 심한 엔지니어 직종은 지금 현재도 거의 완전 고용상태 (full-employment)로 볼 수 있다. 따라서, 미국에서 엔지니어직 채용을 진행할 때에 최고 수준의 학력이나 경력을 갖춘 지원자들만 고집할 수 있는 여유를 가진 기업들은 거의 없고, 그러기에 기업들은 자신들 만의 업무 기준치에서 비교적 최고의 잠재력을 보여주는 자신들 만의 "인재"를 선출해 내는 데에 집중하게 되었다. 주식 인센티브를 많이 활용하는 미국의 보상 방식 때문에 최고 수준의 인재들은 구글과 같은 대기업보다 오히려 작고 유망한 스타트업을 선호하는 경향이 있다. 그래서 구글 같은 대기업들도 더 이상 최고급 학력의 지원자들을 고집하는 방식을 유지할 수 없게 되었다. 엔지니어를 채용하려는 기업의 수도 많고, 현실적인 잠재 지원자를 찾을 수 있는 학교나 기업처 수도 많다 보니 채용과정에 소싱은 매우 큰 역할을 하게 된다. 특히 아직 이름이 알려지지 않은 작은 스타트업들은 소싱없이 채용을 진행하는 게 거의 불가능하다.
그래서 실리콘밸리에서는 소싱이 매우 중요한 역할을 한다. 기업들은 외부 헤드헌터나 내부 리쿠르터 (sourcer)를 활용하거나, 소싱을 도와주는 SaaS 제품들을 사용하여 필요한 인재들을 소싱한다. 링크드인을 (LinkedIn) 활용하여 인재들과 연결을 선행하거나, 다양한 학회에 참석하여 채용 이벤트를 개최하기도 한다. 또한, 신입 사원 채용을 위해 다양한 대학을 방문하며 채용 이벤트를 진행하기도 한다. 인턴십을 통해 유망한 신입 인재들을 사전에 선발하기도 한다. 인턴십 과정에서 뛰어난 성과와 잠재력을 보여준 인턴들에게는 별도의 면접 없이 정규직 오퍼를 제공하여, 높은 잠재력을 지닌 인재들을 다른 회사들의 레이더망에 잡히기 전에 미리 색출해 낸다.
미국에 취업을 계획하는 분들은 링크드인에 프로필을 만들고 여러 학회에 참석하는 걸 권장한다. 하지만 미국은 취업 비자를 취득하는 게 매우 힘들기에 비자가 나올 수 있는 옵션들을 먼저 고려하는 게 중요하다.
전반적으로 소프트웨어 엔지니어링 분야의 면접은 1차례의 인사부 스크리닝 (hr screen interview), 1~2차례의 전화 인터뷰 (telephone interview), 또는 전화인터뷰를 대체하여 테이크홈 프로젝트로 (take-home challenge) 시작하며, 이후 5~6개 정도의 세션들이 있는 1차례의 온사이트 (on-site) 인터뷰로 진행된다. 이렇게 총 3~4단계의 면접을 거치는 과정에서 각 단계당 대략 1~2주의 시간이 소요되므로, 전체 면접 프로세스에는 보통 3~6주 정도의 기간이 필요하다고 볼 수 있다. 때로는 피치 못할 지원자의 사정으로 인해 회사가 이 면접 과정 시간을 최대한 축소해 주는 경우도 있다. 대부분의 경우에는 타 사의 취업 제안 (offer)를 이미 받아 놓은 지원자에게 귀 사로 취업할 수 있게 고려할 기회를 주기 위해 모든 면접 과정을 1~2일 내에 한꺼번에 진행하고, 면접 이후 2~3일 이내에 취업 제안서를 제공해 주기도 한다. 그러나 이렇게 무리한 스케줄 조율은 면접관들의 일정에 무리를 주게 되고, 결국 면접관들의 업무 생산력에도 차질을 주기에, 회사들은 되도록이면 이렇게 무리한 면접 스케줄을 제공해 주지 않는다.
위에서 언급된 각 면접 세션들은 전반적으로 1시간 단위로 구성되며, 전체 면접 과정에 대략 총 6~8개 정도의 세션을 진행하게 된다. 즉 지원자가 실제 면접에 할애하게 되는 시간은 총 6~10시간 정도로 볼 수 있다. 각 세션들은 보통 40~50분 정도에 풀 수 있는 문제들로 구성되고 남은 10~20분은 지원자가 회사에 대해 궁금한 점을 질문할 수 있는 시간으로 남겨진다. 대부분에 경우에 이 시간에는 지원자들이 면접관에게 회사에 대한 개인적인 경험담을 물어보게 된다.
앞서 언급된 것처럼 미국에서 엔지니어직 인력은 매우 귀하기 때문에 서류전형 면접에서는 필수적인 학력이나 경력이 없는 지원자들만 거르는 정도로 매우 관대하게 진행되고, 채용 결정에 필요한 신호를 나머지 면접과정에 의지하게 된다. 그래서 이력서에 쓰이는 지원자의 스펙은 지원하는 회사의 서류전형 기준치 이하에 걸리지 않을 정도만 되면 되는 위생 수준 (hygiene factor) 정도로 취급이 된다. 이 서류전형의 "관대함"은 회사의 상황에 따라 달라질 수 있다. 면접 진행이 가능한 면접관 수가 여유로운 회사들은 서류전형을 더 관대하게 진행할 수 있지만, 면접관들의 여유가 적은 회사들은 서류전형을 더 까다롭게 진행하기도 한다.
서류전형이 한국과 비교적 관대 한건 사실이지만 그렇다고 이력서에 기재된 학력 / 이력이 아주 무시되는 건 아니다. 꾸준히 높은 수준의 엔지니어링 인재들을 배출하는 스탠퍼드나 버클리대학의 학력이나 OpenAI 나 구글 같이 최고급 인력 (top talent)를 유치하는 데 성공한 기업들 에서의 경력을 가진 지원자들은 우대를 해주기 십상이다.
대부분의 경우, 실질적인 면접의 첫 번째 단계인 인사부 스크리닝 면접은 매우 간략하며, 면접 이라기보다는 지원자와 회사가 첫인사를 하는 정도의 간단한 과정으로 인식된다. 이에 따라 스크리닝 인터뷰라고 하지 않고 통화(call) 정도로 소개하기도 하며, 아예 이 단계를 생략하는 회사들도 있다. 하지만 반대로 인사부 스크리닝을 기술적인 면접으로 진행하는 경우도 있다. 예를 들어, 로빈후드 (Robinhood)라는 회사는 인사부 스크리닝 면접에 10개 정도의 빠른 기술 지식 퀴즈 세션을 추가하여, 기본적인 기술 지식이 부족한 지원자를 가능한 한 빨리 스크린 하는 방법을 도입하고 있다. 이렇게 인사부 면접에 기술 영역을 추가하는 궁극적인 이유는 수요가 부족한 기술직 면접관들의 시간을 최대한 할애하기 위해 인사부에서 미리 기술적으로 스크리닝을 하기 위해서다. 이러한 경우에는 전반적으로 인사부 담당자가 엔지니어링 채용 위원회가 제공한 질문 목록과 답안을 사용하여 지원자에게 질문을 하게 된다.
인사부 스크리닝 단계는 여러 목표를 가지고 있다. 우선, 지원자가 이력서에 기재한 학력과 경력을 확인하고, 회사가 궁금해 할 수 있는 구체적인 부분들에 대한 상세한 설명을 듣는다. 또한, 지원자의 입사 동기와 커리어 목표를 파악하여 회사가 제공하는 포지션과 적합성을 평가하기도 한다. 그 외에도 지원자가 문화적이나 언어적으로, 또는 업무환경이나 팀워크 적인 측면으로 잠재적으로 문제가 될 수 있는 부분들을 감지하는 목표도 가지고 있다. 마지막으로, 지원자가 희망하는 보수나 직급 또한 확인할 수 있으며, 이러한 요구를 충족시킬 수 있는지도 평가한다.
테이크홈 프로젝트는 면접관의 감독 없이 지원자가 자유로운 환경에서 문제를 풀고 제출하는 형태의 면접 세션이다. 이 방식은 면접관이 자료구조와 알고리즘, 시스템 디자인, 코딩 품질 등 다양한 요소를 한 번에 평가할 수 있으며, 면접관이 감독에 시간을 할애하지 않아도 되므로 지원자 대비 면접관 수가 많은 상황에서 널리 사용되는 인터뷰 방식이다. 일반적으로 테이크홈 프로젝트는 1~3시간 안에 구현할 수 있는 문제로 구성되어 있다. 그러나 많은 지원자들이 프로젝트의 완성도를 높이기 위해 추가 시간을 투자하는 경우가 많아, 테이크홈 프로젝트 자체를 선호하지 않는 경우도 흔하다. 어떠한 경우에는 이러한 이유로 지원자들이 테이크홈 프로젝트를 제시하는 회사에 대한 입사 지원을 철회하기도 한다.
반면에 기업들은 테이크홈 프로젝트를 매우 효율적이고 비용 효과적인 면접 방식으로 인식하고 있다. 에어비앤비, 트위터, 우버와 같은 유니콘 기업들은 기업 성장 시기에 많은 지원자들을 효율적으로 선별하기 위해 테이크홈 프로젝트를 도입했다. 이를 통해 이 기업들은 서류 전형 과정을 더욱더 관대하게 조정할 수 있으며, 적은 면접관 수를 보유하고 있는 상황에서도 학력이나 경력이 아직 채워지지 않은 지원자들 중에서도 인재를 발굴할 수 있는 기회를 얻게 되었다. 그러나 앞서 언급한 것처럼 테이크홈 프로젝트는 지원자들 사이에서 불만이 많은 종류의 면접 방식이기 때문에 많은 회사들이 테이크홈 프로젝트 대신 전화 인터뷰나 온사이트 코딩 프로젝트(on-site coding challenge)와 같은 면접 방식을 선택할 수 있는 옵션을 제공하기도 한다. 온사이트 코딩 프로젝트는 테이크홈 프로젝트와 유사한 방식의 면접이지만, 정해진 시간 안에 프로젝트를 완성해야 하는 제한을 주어 지원자가 추가 시간을 할애하는 것을 막는다. 온사이트 코딩 프로젝트는 대부분 회사의 면접실에서 진행되며, 지원자에게 지정된 시간 동안 혼자 집중할 수 있는 공간을 제공한다. 면접관은 약 1시간마다 지원자의 면접실에 들러 진행 상황을 확인하는 정도로 감독을 하여 테이크홈 프로젝트처럼 면접관의 시간 할애를 최소화한다. 따라서, 온사이트 코딩 프로젝트는 테이크홈 프로젝트의 장점을 유지하면서 지원자들의 불만을 줄여주는 효과적인 면접 방식으로 인기를 얻고 있다.
전화 인터뷰는 테이크홈 프로젝트와 같은 스크리닝 면접을 하지 않은 지원자를 온사이트 면접에 초대하기 전에 지원자들을 스크리닝 하기 위한 면접 과정이다. 미국은 넓은 나라이기 때문에 온사이트로 지원자를 초대할 때 출장 비용이 많이 든다 (비행경비, 숙박비 등). 이러한 비용을 절감하고 더 많은 면접관들이 시간을 할애하는 걸 막을 수 있도록 지원자를 온사이트 면접에 초대하기 전 전화 인터뷰를 진행한다. 지원자들의 입장에도 면접을 통과하지 못할 기업에 인터뷰할 시간을 많이 할애하지 않고 싶어 하기에 이동 시간이 없는 전화 인터뷰 진행하는 걸 선호한다. 역사적인 이유로 이러한 인터뷰를 전화 인터뷰라고 부르지만 현재는 대부분 Zoom과 같은 화상 통화 서비스를 사용하여 인터뷰가 진행된다.
전화 인터뷰는 칠판이나 공책을 사용하지 못하고 카메라와 마이크, 그리고 화면 공유로만 의존해서 면접을 진행해야 하기 때문에 면접관과 지원자 모두 의사소통에 어려움을 겪을 수 있다. 이런 제약으로 인해 면접 진행 중 오해의 소지가 많이 생길 수 있고, 질문을 설명하는데 시간 소요가 생길 수 있다. 그래서 대부분의 경우 전화 인터뷰는 설명이 많이 필요하지 않고 컴퓨터 화면으로만 문제를 적절히 풀 수 있는 자료구조와 알고리즘 (DS/A) 면접으로 주로 진행된다.
일부 경우에는 전화 인터뷰 대신 온라인 테스트를 진행하는 경우도 있다. 해커랭크(HackerRank)나 릿코드(LeetCode)와 같은 서비스들은 알고리즘 및 코딩 면접을 자동화 한 서비스를 제공해 주고 있어서 특별한 면접관의 감독이 없이도 알고리즘 실력이나 코딩 실력을 평가할 수 있다. 그러나 이러한 자동화 서비스들은 지원자가 제출한 답의 옳고 그름을 판단해 주는 이상의 분석을 해주지 못하기 때문에, 기본지식은 있으나 운 좋지 않게 질문의 정답을 제출하지 못한 지원자들이 걸러지는 거짓 음성 (false negative) 신호가 많이 증가될 수 있다.
온사이트 면접은 실제로 지원자를 회사로 초대하여 진행되는 면접을 의미한다. 온사이트 면접은 모든 면접 과정 중 메인 면접 단계로 간주되며, 이전 단계들은 온사이트 면접까지 오는 지원자 수를 줄이는 스크리닝 과정으로 간주된다. 온사이트 면접은 회사에 시간과 자원을 많이 요구하는 과정이기에, 회사의 입장에서는 채용 기준에 미달하는 지원자 들을 온사이트 면접을 진행하기 전까지 최대한 많이 스크리닝 하기를 원한다. 관례적으로 온사이트 면접은 지원자가 회사를 방문하는 것을 목적으로 하지만, 코로나 시대 이후로는 원격으로 진행되는 온사이트 면접을 선택하는 회사들이 많아지기도 했으며, 사무실 자체를 없애고 원격으로만 업무를 진행하는 회사들도 증가하면서 온사이트 면접 또한 원격으로 진행될 수 있다. 그러나 원격 면접 시 의사소통 문제 등의 이유로 대부분의 지원자들은 여전히 될 수 있으면 오프라인으로 진행되는 온사이트 면접을 선호한다.
온사이트 면접은 전반적으로 하루 안에 완료되며, 대략 6~7시간의 시간이 소요된다. 보통 1시간 단위로 5~6개의 세션으로 구성되며, 각 세션마다 1~2명의 면접관이 참여하여 지원자는 적게는 총 5명에서 많게는 12명의 면접관들과 만나게 된다. 이를 통해 지원자는 면접관들과 대화하며 해당 회사의 문화와 팀 환경을 직접 경험할 수 있다. 대부분의 경우 쉬는 시간과 점심시간이 제공되는데, 이는 법적으로 요구되는 사항일 뿐만 아니라, 쉬는 시간이 없으면 지원자가 집중력을 잃어 면접관이 면접 과정에서 필요한 신호를 색출하는 데 문제가 생길 수 있기 때문이다.
평상적인 온사이트 면접 세션들은 다음과 같다.
자료구조와 알고리즘 (DS/A): 제네랄리스트 (Generalist)를 뽑는 구글이나 메타 같은 경우 이 세션을 2개 정도 진행 하게 되지만, 원격 인터뷰를 통해 이미 DS/A 면접 세션을 진행하였다면 온사이트 에선 DS/A 세션을 1개 정도로 줄이기도 한다. 또한, 면접을 진행하는 포지션의 직급이 낮을수록 DS/A 세션을 다른 세션들보다 더 중요시하는 경향이 있다. 특히 인턴십 면접의 경우, DS/A 인터뷰 2개로 면접을 마무리하는 경우도 많다. DS/A 면접은 마치 수학 시험을 보는 것 같이 진행되며, 따라서 미리 충분한 준비를 하고 면접에 들어가면 이 세션들을 쉽게 통과할 수 있다. 일반적으로 릿코드 (LeetCode)와 같은 플랫폼에서 제공하는 문제들을 충분히 풀어보고 면접에 임하면 대부분의 DS/A 면접을 수월하게 통과할 수 있을 것이다.
시스템 디자인 및 아키텍처 (System design / Systems architecture): 이 세션에서 지원자는 새로운 소프트웨어 서비스를 구축하는 연습을 하게 된다. 이 세션에서 코딩을 하지는 않지만, 대신 서비스를 디자인하고 다양한 디자인 고려사항과 독특한 제약 조건을 해결해 나가는 작업은 하게 된다. 지원하는 포지션의 직급이 높아질수록, 단일 시스템에서 여러 서비스를 조율하는 시스템 아키텍처 디자인에 더욱 집중된다. 이 세션을 수월히 통과하려면 시스템 디자인에 필요한 업계 표준 도구들과 그 도구들의 장단점을 잘 알고 있어야 한다. 이로 인해 DS/A 준비보다 사전 준비가 어려워지는 경향이 있다. 릿코드 (LeetCode)와 같은 사이트에서 다양한 시스템 디자인 방법을 읽어보고 면접에 임하는 것도 좋지만, 이러한 사이트에서 제시되는 디자인은 대부분 최신 방식의 디자인이 아니기 때문에 이러한 출처에만 의존하는 것은 제약적 일수 있다. 개인적으로는 "@scale"과 같은 콘퍼런스에서 여러 회사들이 자체 시스템 디자인 문제를 해결한 방법을 발표하는 동영상을 보는 것이 더 효과적으로 보인다.
테이크홈 프로젝트 딥다이브 (Take-home challenge deep-dive): 테이크홈 프로젝트를 진행한 경우, 온사이트 면접에서 약 1시간 정도의 세션을 할애하여 지원자가 제출한 코드를 면접관과 함께 살펴보고, 지원자가 선택한 코딩 방식과 그 이유를 듣는 딥다이브 세션을 가지게 된다. 제출된 코드 자체만으로는 지원자가 코드에 사용한 DS/A, 코딩 스타일, 시스템 디자인의 이유를 완전히 이해하기 어렵기 때문에, 이 세션을 통해 지원자가 고려한 디자인 선택을 면접관이 이해하는 데 집중한다. 때로는 제시된 프로젝트 결과물 자체만으로 면접관이 필요한 신호를 파악하기 어려울 경우, 이 세션에서 추가 기능을 구현하는 연습도 진행될 수 있다. 이 세션은 사전에 미리 면접 준비하기 어려울 수 있다. 이 세션은 지원자가 시스템을 디자인 및 구현하는 노하우를 탐색하는 시간으로, 경력을 쌓는 것 이외에는 사전에 준비할 수 있는 방법이 제한적일 것으로 생각된다.
코드 디자인: DS/A 세션처럼 짧은 코딩을 하는 세션이긴 하지만, DS/A 세션과는 다르게 응용 코딩 능력을 평가하는 세션이기 때문에 실생활 문제를 코드로 구현하는 과정을 다룬다. 이 세션도 일종의 알고리즘 면접으로 볼 수 있으며, 따라서 릿코드와 같은 사이트에서 많은 알고리즘 문제를 구현해 보는 것이 이 세션에 대비하는 데 도움이 될 수 있다. 이 세션을 통해 지원자는 코드로 표현하기 어려워 보이는 실제 문제에 대한 코딩 구현 능력을 보여줄 수 있다. 따라서 릿코드와 같은 사이트를 통해 알고리즘 문제를 많이 풀어보는 것은 이 세션에 대비하는 데 유용하다.
리더십: 팀장 (Technical Lead) 이상의 매니저급 포지션에 대해서는 리더십과 집행능력을 확인하는 면접이 진행된다. 이 면접은 다른 면접 세션과는 달리 대인관계 능력 (soft-skill)을 평가하는데 초점을 맞추고, 의사소통 능력과 전반적인 문제해결 능력 등을 확인하는 질문들을 주제로 면접이 진행된다. 이 세션에서는 지원자가 이전에 업무시에 경험했던 문제를 리더십과 집행 능력들을 활용하여 해결한 것을 설명하는 식으로 진행되고, 그렇기 때문에 이 세션에서 성공하기 위해서는 기존 업무 경험이 중요해진다. 다른 인터뷰 세션들과는 달리, 이 세션에서는 지원자가 면접관에게 자신의 탁월한 대인관계 및 리더십과 그에 따르는 집행능력을 설득력 있게 보여줘야 한다. 따라서 면접관과의 원활한 의사소통을 위해 영어가 유창하게 구사되는 것이 필수적은 아니지만, 언어의 장벽이 존재할 경우에는 상황이 어려워질 수 있다.
프런트엔드 코딩 세션: 프런트엔드 엔지니어들을 위한 이 세션에서는 일반적으로 프런트엔드 기능을 구현해 보는 코딩 연습을 진행한다. 몇몇 경우에는 테이크홈 프로젝트에 더 많은 비중을 두어 더 고급 레벨의 프런트엔드 개발 능력을 평가하는 방법을 선택하기도 한다. 이러한 경우에는 프런트엔드 코딩 세션보다는 테이크홈 프로젝트 딥다이브로 지원자의 코딩 실력과 시스템 디자인 실력을 보게 된다.
AI/ML 세션: ML 엔지니어를 위한 이 세션에서는 일반적으로 ML 학습 시스템을 디자인하는 연습을 진행한다. 일반적으로 칠판을 사용하여 시스템 디자인을 구현하고 설명하는 방식으로 세션이 진행된다. ML 엔지니어의 면접에서도 테이크홈 프로젝트에 더 많은 비중을 두는 경향이 있다.
데이터 사이언스 (data science) 세션: 데이터 추론 문제를 활용하여 여러 가지 쿼리나 간단한 파이썬 코드를 구현해 보는 세션이 이다. 이 세션에서는 예제 데이터가 주어지거나 화이트 보딩 방식으로 진행되며, 또한 일부 경우에는 테이크홈 프로젝트를 활용하여 지원자의 실력을 깊이 평가하기도 하다. 이 직종에서도 테이크홈 프로젝트를 활용하여 지원자의 실력을 더욱 깊게 평가하는 경향이 있다.
이 외에도 정보 보안 (information security), 사이트 안정성 (site-reliability) 등의 다양한 세부 직종에 대한 면접 과정들이 있지만 저자가 직접 해당 직종의 면접을 진행해 보지 않은 관계로 설명을 생략한다.
10~20년 전 과거에는 지원자가 추천서를 제공하는 것이 일반적인 관례였지만, 최근에는 엔지니어 면접 과정이 더욱 구체적이고 정확해졌으며, 면접 과정 자체로 필요한 업무 성과도에 대한 신호를 판독하는 게 가능해졌기 때문에, 추천서의 요구 빈도는 매우 낮아졌다. 리더십 포지션 같이 기술적 이외의 역량이 요구되는 매니저급 포지션에는 지금도 추천서가 요청되는 경우는 많지만, 개인 전문가 (individual contributor)의 경우에는 추천서가 요청되는 경우는 거의 없다고 보면 된다. 현실적으로 의미 있는 추천서를 받는 것 또한 쉽지는 않기 때문에, 추천서가 의무사항으로 요구되는 상황은 거의 없다.
채용 결정 단계는 지원자의 참여를 필요로 하지 않는 단계이지만, 때에 따라 꽤 오랜 시간이 소요될 수 있는 경우도 있다. 구글이나 메타와 같은 기업에서는 사내 균일한 채용 기준인 "company-wide hiring bar"가 존재하며, 채용 결정은 주로 채용 위원회(hiring committee)에 의해 이루어진다. 채용 위원회는 일반적으로 채용할 포지션보다 두 직급 정도 높은 엔지니어들로 구성되어 있으며, 일정한 주기로 모여 면접 결과를 모두 검토하고 채용 결정을 내린다. 이러한 절차로 인해 채용 위원회를 가진 기업에서는 온사이트 면접이 진행된 후 채용 결정이 1~2주에 걸쳐서 이뤄질 수도 있다.
팀마다 채용 기준이 다른 기업에서는 해당 포지션의 채용 담당자(hiring manager)가 배정되어 그 담당자가 해당 포지션의 모든 채용 결정을 내리는 경우가 일반적이다. 보통 이 채용 담당자는 채용을 진행하는 팀의 매니저가 맡게 된다. 채용 담당자는 면접관들의 피드백을 검토하고, 이를 고려하여 채용 결정을 내린다. 채용 담당자가 배정되는 경우에는 온사이트 면접이 진행된 이후 채용 결정이 매우 빨리 진행될 수 있다.
지원자의 입장으로 오퍼 단계까지 오게 됐으면 축하한다. 이제 지원자로서 면접과정에서 해야 되는 의무사항은 다 끝났다고 보면 된다. 채용 위원회나 채용 담당자가 채용을 결정하게 되면, 이 결과를 인사부에 해당 채용 담당원에게 통보하게 된다. 통보 시, 채용 위원회나 채용 담당자는 희망하는 채용 직급과 보수 범위를 채용 담당원에게 함께 알려준다. 채용 담당원은 이 정보를 기반으로 지원자와 채용 결정 통보와 보수 협상을 진행하게 된다. 보수의 협상이 문화 속에 깊숙이 자리 잡혀 있는 미국에서는 연차별 연봉이나 따로 직종이나 직급별 연봉이 정해져 있는 경우는 없지만, 각 회사 내에 직급별 보수 범위는 존재한다. 지원자가 채용 담당원과 보수 협상을 할 시에 지원자가 요구하는 보수가 채용 담당원에게 알려진 보수의 범위나 해당 직급의 보수 범위보다 높다면 채용 담당원은 채용 위원회나 채용 담당자에게 다시 돌아가 보수 범위를 수정할 수 있는지 문의해야 한다. 이 경우 채용 위원회 (또는 채용 담당자)는 지원자가 요구한 보수를 승인할 수도 있으며, 다른 보수액을 제시할 수도 있고, 아니면 지원자가 요구하는 보수 범위를 거절할 수도 있다. 하지만 지원자가 더 높은 보수액을 요구한다고 해서 지원자의 채용 결정을 철회하는 일은 거의 없다. 채용 결정까지 왔다면 회사는 해당 지원자가 회사가 원하는 인재라는 걸 인정한 것이고, 앞서 언급된 것처럼 인력난이 심한 엔지니어직에서 협상의 힘은 지원자들에게 있기 때문이다. 그래서 미국에서 엔지니어직 오퍼를 협상하는 단계에 있다면 항상 채용 담당원이 처음 제시한 보수보다 더 높은 보수를 협상해 보는 걸 추천한다.
실리콘밸리의 IT회사에 엔지니어로 지원할 시에 영어가 얼마나 중요한지?
사실 개인 전문가(individual contributor)의 경우, 기본적인 의사소통만 가능하다면 영어 실력이 크게 중요하지 않다. 미국 내에는 높은 역량을 가진 엔지니어들이 영어를 사용하지 않는 나라에서 이주하여 일하는 경우가 많고, 그들이 영어가 잘 되지 않는 상황에서도 높은 실적들을 꾸준히 이루어낸 사례들이 많이 있기 때문이다. 실제로 업무상 필요한 의사소통만 가능하다면 코드 개발에 큰 지장을 주지 않기 때문에 영어 실력을 기준으로 채용 결정을 내리지 않다. 그러나 팀장급 이상의 포지션에서는 표현력과 의사소통 능력이 중요해지기 때문에 영어 실력을 향상하지 않으면 취업이나 승진에 어려움을 겪을 수 있다. 또한 제품 관리자나 마케팅과 같은 비개발 직군에서는 영어 실력을 매우 중요시한다.
학력은 얼마나 중요한지?
되도록이면 지원하는 회사의 면접관이 익히 들어봤을 법한 학교나 회사에서 학력 및 경력을 취득하는 것이 서류전형 통과에 도움이 된다. 특히 미국 내의 대학의 학력이나 미국 회사에서의 경력은 서류전형 통과에 큰 도움이 될 수 있다. 만약 이러한 학력을 취득하기 어려운 상황에 있다면, 관련 경력을 쌓는 데 더 집중하는 걸 추천한다. 실리콘밸리에서는 학력보다 경력이 더 업무성과에 큰 지표가 되는 걸로 받아들여지고 있으니 학력보다는 경력에 투자를 하는 게 더 효과적이기도 하다. 만약 학력이나 경력 둘 다 경쟁적이지 않다면, 서류전형을 관대하게 진행하는 기업들에 먼저 지원을 하는 것을 추천한다. 이러한 기업들은 학력이나 경력을 검토하는 서류전형 대신 테이크홈 프로젝트나 온라인 테스트 같은 방법으로 지원자가 자신의 실력을 증명할 방법을 만들어 준다.
한국에서 실리콘밸리로 바로 채용도 하는지?
미국은 비자 취득이 매우 어려워서 해외에서 직접 미국으로 취업하는 것이 어렵다. 미국의 기업들도 비자를 후원 해주는 과정이 매우 어렵고, 비싸고, 복잡하기 때문에 가능하면 미국 내에서 직원을 채용하는 걸 선호한다. 만약에 미국 실리콘밸리로 취업하는 걸 준비하고 있다면 우선 미국에서 학사나 석사 학위를 받는 걸 권장한다. 미국에서 학위를 취득하면 손쉽게 임시 취업 비자를 받을 수 있고, 이 임시 비자를 토대로 더 장기적인 비자를 취득할 수 있기 때문이다. 또한 해외 지사를 가진 기업들은 먼저 해외 지사에서 취업한 후 주재원 비자를 통해 미국으로 발령받을 수도 있다.
해외에서 적극적으로 채용을 진행하는지?
위에서 언급된 이유로 인해 실리콘밸리의 스타트업이나 중소기업들은 해외에서 채용을 거의 진행하지 않으며, 따라서 해외에서 소싱도 하지 않는다. 그래서 실리콘밸리의 스타트업에서 취업을 하고 싶다면 자발적으로 직접 지원해야 된다. 그러나 대기업의 경우, 엔지니어링 인재를 많이 배출하는 해외의 대학들을 직접 방문하여 신입 채용 면접을 진행하기도 한다. 저자도 면접관으로써 캐나다의 워털루 대학, 중국의 칭화대, 그리고 인도의 IIT대와 같은 대학들을 직접 찾아가 면접을 진행한 경험이 있다. 이렇게 선발된 인재들은 대부분 해당 국가의 지사에서 먼저 취업하고, 추후에 주재원의 신분으로 미국으로 발령되게 된다.
실리콘밸리에서도 찾아주는 고급 엔지니어가 되려면 어떻게 해야 하는지?
이 질문은 매우 방대하고 여러 가지 요소들을 감안해야 되는 것이라 한 문장으로 답하기는 힘들지만, 실리콘밸리에서 엔지니어로 취업하려면 필요한 가장 중요한 요소를 선택해야 한다면 아마도 미국 취업 비자 취득 요소일 것으로 생각된다. 채용에 필요한 학력 및 경력이 되더라도 비자를 받을 조건이 되지 않는다면 회사들도 달리 손 쓸 방법이 없기 때문이다. 비자 요소를 제외한다면, 다음으로 중요한 것은 실력일 것이다. 위에서 언급된 면접 과정은 결국 지원자의 실력을 평가하는 것이며, 그러므로 충분한 실력과 이를 뒷받침하는 경력이 있다면 면접과 채용에 큰 문제가 없을 것이다.
면접 질문들을 미리 아는 방법은 없는지?
글라스도어 (Glassdoor) 같은 사이트나 구글 검색을 하면 각 회사에서 자주 내는 인터뷰 질문들이 가끔 올라온 걸 볼 수 있다. 이러한 문제들을 먼저 준비해 보고 면접에 임하면 실제 면접 시에 비슷한 난이도의 질문들이 나올 확률이 높기에 면접 준비에 도움이 된다. 이런 사이트에 나오는 면접 질문들이 실제 면접에 나올 때 들도 있지만, 이러한 경우에서는 면접관에게 이미 답을 아는 문제라고 알려주는 게 좋다. 면접관들은 대부분 문제의 답보다는 문제를 푸는 과정과 고심하는 점들을 관찰하는데 집중되어 있는데, 지원자가 이러한 과정을 거치지 않고 문제를 풀게 되면 면접관이 필요한 신호를 관찰할 기회가 없어지기 때문이다. 이러한 경우에는 면접관이 어차피 다른 문제를 내서 면접을 진행해야 하기에 면접 세션의 시간을 유용하게 사용하기 위해 최대한 빨리 다음 문제로 넘길 수 있게 면접관을 도와주자.