FAANG 취업 도전기 - 4. 늦은 업데이트 - 이직 성공!

  이전 글 보기: FAANG 취업 도전기 - 3. 인터뷰 과정 알아보기


이직 준비와 새로운 직장 적응에 바빠서 블로그는 생각도 못하다가 드디어 시간이 좀 생겨서 거진 2년에 가까운 이직 시도에 대한 회고를 해본다. 


나는 경력에 비해 아는 게 없다. 유튜브에서 접하는 많은 대단한 영상들과 블라인드에 글들을 보면 연봉적으로나 실력적으로나 참 부끄럽다. 앞으로 내가 모르는 것들을 좀 더 확실히 알고 기록하며 더 나은 내가 되어야겠다고 다시 한번 다짐해 본다. 


나에 대한 자신감 부족이 인터뷰에도 많은 영향을 미쳤다. 개발 실력뿐만 아니라 영어 실력에 대한 자신감도 없기 때문에 더더욱 소심해졌고 초반에 한 인터뷰들을 지금 생각하면 많이 아쉽다. Covid 초반 시대는 software engineer들에게 꿈의 시간이었다. 미국이 돈을 계속 찍어내고 대부분의 사람들이 집에서 생활하다 보니 테크 회사들이 너도나도 개발자를 모셔가기에 바빴고 그로 인해 나에게도 굉장히 많은 인터뷰 기회가 생겼었다. 


1/15/2023년 현재에는 테크 회사들이 내리막을 걷고 있다. 금리 인상과 over-hiring(초과 고용)의 여파로 많은 회사들이 10% 인력을 해고하는 상황까지 왔다. 내 입장에선 좋은 곳으로 입사하게 된 것에 대해 감사하지만 우리 회사도 layoff(해고)를 하면 어떡하나 하는 걱정이 있다. 


일단 걱정은 뒤로하고 감사하게도 최종적으로는 Spotify라는 회사에 취직하게 되었다. Spotify는 music streaming을 서비스하는 회사로 내가 알기로는 한국에도 적극적으로 사용자를 끌어모으려 하고 있지만 아직 인지도 면에서 기존 한국 회사들에게 밀리고 있다고 알고 있다. 오퍼를 받기까지에 과정을 한번 살펴보자.



1. Number of applications

Number of applications이 한국말로 정확히 무엇인지 모르겠는데 내가 지원한 횟수를 세어보니 89곳이다. 


포지션(공고?)을 찾은 방법은 LinkedIn에서 거의 매일 software engineer 타이틀과 remote 지역 옵션으로 검색을 하고 맘에 드는 것이 있으면 해당 회사 홈페이지에 가서 지원했다. 


보통 시간이 지나면 포지션에 대한 포스팅이 사라질 때도 있기 때문에 항상 포스팅을 카피해서 구글드라이브에 올려놓았고 지원 날짜와 지원할 당시에 이력서 버전을 기록해 놓았다. 


여러 회사를 넣어보고 연락이 안 오면 이력서를 조금 수정해 보는 방식으로 진행하였고 다행히도 내가 지원할 당시에는 거의 대부분의 회사들이 연락을 해왔다.



2. Recruiter call

채용 담당자가 내 이력서를 보고 hiring manager(고용 관리자)와 상의하여 채택이 되면 15-30분 정도 intro 콜을 한다. 보통 아주 간단한 정보만 교환하며 원하는 연봉이 있는지 묻는데 블라인드에서 얻은 팁으로는 내가 먼저 숫자를 주면 안 된다고 하여 그렇게 하니 상대 쪽에서 먼저 range를 제시했다. 어떤 프로세스로 진행되는지 알려주고 다음 인터뷰 스케줄을 컨펌한다. 


회사마다 조금씩 다르지만 대부분 이런 형식의 프로세스를 따른다.

1. Phone screen(전화 인터뷰) - 45분

2. Onsite - 4-5개의 45분 인터뷰

3. Offer - recruiter와 연봉 협상을 거쳐 오퍼를 받을지 말지 결정한다




3. Phone screen

스타트업이건 큰 테크 회사건 모든 회사들이 leetcode 형식의 인터뷰를 한다. 보통 전화 인터뷰(화상전화)에서는 그나마 쉬운 문제를 물어본다. 그래도 medium 레벨의 문제는 확실하게 풀 줄 알아야 한다. 혹은 easy 문제를 30분 풀고 15분 동안 간단한 상식 문제를 줄 수도 있다. 문제를 풀어야만 다음 라운드로 진출한다.



4. Onsite

onsite을 하루에 몰아서 할 수도 있고 이틀로 나눠서 할 수도 있다. 거의 모든 회사들이 최소 4개의 인터뷰를 했으며 포맷은 다음과 같다.

- leetcode medium 45분

- leetcode medium 혹은 OOP 45분

- system design

- behavior


leetcode는 알고리즘 풀이, system design은 애매모호한 주제를 던져주고 시스템을 구축해 내는 능력, behavior은 특정 상황에 어떻게 대처하는지를 보는 일종의 인적성 검사라고 보면 된다. 


시니어 레벨일수록 system design과 behavior 인터뷰의 난이도가 급상 한다.



5. 결과

정확한 수치가 없어서 대략적으로 보자면

recruiter call - 지원한곳중 80% 이상 연락이 왔다

phone screen - 1/2 정도 다음 라운드로 넘어갔다

onsite - 많은 onsite을 했지만 최종 오퍼단계까지 간곳은 Spotify와 Redfin이었다

오퍼 - Redfin은 중간에 회사가 hiring freeze 모드로 전환되어 협상중에 그냥 끝이났다


결론적으로는 Spotify와 협상을 하여 입사하게 되었다. 오퍼의 내용을 공유할 순 없지만 levels.fyi에 검색해 보면 나와 비슷한 레벨의 다른 사람들이 얼마를 받았는지 볼 수 있다.



6. 결론

- 나는 아주 소심한 사람이라서 처음 보는 사람들과 대화하고 인터뷰하는 게 큰 스트레스였다. 다음 이직 시에는 좀 더 편안한 마음으로 하면 더 잘할 것 같다. 어차피 탈락한다면 한번 보고 안 볼 사람들이다. 

- leetcode는 아주 중요하다. 모든 사람들이 교과서 외우듯 공부를 하기 때문에 시간 날 때마다 틈틈이 해놓는 게 좋을 것 같다. 

- 어떻게 보면 behavior 인터뷰가 제일 중요한 것 같다. 매니저 입장에선 능력도 중요하지만 성격도 많이 보기 때문이다. example을 잘 만들어 놓으면 두고두고 써먹을 수 있다. 

- 현재 회사에서 많이 배우려고 노력하자. 힘들었던 한 가지가 내가 지금까지 했었던들은 그다지 scalability가 필요하지 않았던 것들이라 system design에서 중요하게 생각하는 콘셉트들을 별로 필요로 하지 않았다. 사용자가 많은 프로그램 개발이 내 개발 커리어에 중요하다는 걸 깨달았다.