개발자 커리어로 해외 취업, 독일 이직 프로세스
요즘은 국내 IT 기업도 이런 프로세스를 많이 따라가고 있는것 같다. 아래는 내가 해외 이직을 목표로 준비하면서 밟았던 몇몇 프로세스 경험을 종합했다.
0. 최초 컨택
크게 두가지 경로가 있는데, 링크드인에 프로필을 업로드하고 관리를 하다보면 연락이 오는경우. 그리고 내가 직접 링크드인에서 지원을 하거나 회사 홈페이지의 오픈 포지션에서 지원을 하는 경우이다.
링크드인에 프로필을 업로드하고 관리를 하다보면, 메세지를 받게 된다. 두가지의 경우가 있는데, 하나는 헤드헌터로부터 받는 경우, 그리고 하나는 채용하는 회사의 HR 로부터 받는 경우이다.
헤드헌터의 경우 채용하는 회사의 이름이나 구체적인 정보를 오픈하지는 않는다. 자신의 고객이 인재를 구하고 있는데 너의 프로필이 매칭되는것 같다, 괜찮다면 짧게 소개하고 이야기를 하고싶다, 라는 식이다. 회사의 리크루터가 직접 컨택하는 경우도 있는데, 이때는 보통 팀 소개도 간략히 해주기도 한다. 우리회사의 이런 팀에서 어떤인재를 찾고 있는데 너의 프로필이 잘 어울리는것 같다. 전화를 통해 자세한 이야기를 하고싶다, 라고 온다.
처음엔 몰랐지만, 몇번 메세지를 받다보니 내용은 복붙하고 이름만 바꿔서 뿌리는것 같은 느낌이다. 내가 조건을 필터링해서 구인공고를 검색할 수 있듯이, 리쿠르터들도 키워드를 검색해서 매칭되는 프로필들에게 뿌릴 수 있는것 같다. 운좋게 가고싶었던 회사 인사팀으로부터 연락이와서 정성스레 답장을 보냈는데, 그 뒤로 아무런 응답이 없는 경우도 있었다. 직접 지원을 하는 경우에도, 끝끝내 답장이 오지 않는 경우가 더 많았던것 같다.
1. 첫번째 인터뷰
첫번째 인터뷰는 주로 전화 혹은 스카이프로 짧게 진행되었다. 헤드헌터나 인사팀과 서로 소개하는 식이었다. 주로 받는 질문은 이런것이었다.
- 왜 한국을 떠나려고 하는지
- 왜 삼성을 떠나려고 하는지
- 여기서 일하는데 비자를 갖추고 있는지
- 일을 한다면 언제부터 일할 수 있는지
그러면서 회사에 대해 설명을 해준다. 어떤 회사이고, 어떤 포지션이고, 만약 서로가 원한다면 다음스텝들은 어떻게 진행될 것인지에 대해서 설명해준다.
간혹 기술면접이 아닌데도 간단한 기술적인 질문을 하는 경우도 있었다. hashmap 에 대해 설명해줄수 있니, DFS 와 BFS 의 차이에 대해 설명해줄수 있니, 정도의 간단한 질문들을 받았었다.
2. 온라인 코딩 시험
이 단계를 거치는 회사들도 있었고, 거치지 않는 회사들도 있었다. 서로 다음 단계로 진행을 원하면, 메일를 통해 링크를 준다. 그러면 언제까지 그 링크에 들어가서 문제를 풀고 제출해야 한다. 보통 2~3 문제이고, 제한 시간이 있기 때문에 긴장을 하면서 풀었었다.
테스트 케이스도 주어지기 때문에 다 통과 한다면 일단 기본적인 로직은 패스라고 볼 수 있지만. 다양안 케이스나, 성능적인 면에서 어느정도 퍼포먼스를 보이는지에 대한 확인은 바로 할수가 없다. 제출을 하면, 다른 지원자들의 결과와 함께 속도, 메모리, 더 많은 테스트 케이스들을 돌려서 대조를 해보는것 같다. 회사들 중에는, 코드 제출 뿐만 아니라, 본인이 작성한 솔루션의 시간 복잡도와 공간 복잡도를 분석해서 써달라는 경우도 있었다.
개발자이면서도 코딩, 알고리즘을 어려워했던 나는 이 부분이 가장 스트레스였다. 그래서 이직 준비를 하는동안 리트코드를 꾸준히 풀었다. 꾸준히 풀다보면 어느정도는 실마리가 보이는것 같다. 이것도 여러가지 온라인 플랫폼들이 있는데 중복되는 문제들이 많기 때문에 여기저기 돌아다니는 것보단 하나의 플랫폼을 정하는게 좋은것 같다.
- 기본적인 자료구조와 알고리즘들은 당연히 알아야 한다.
- 같은 문제를 다른 방법으로 접근해서풀어보는 생각을 해야 한다.
- 제시한 솔루션에 대해 시간복잡도와 공간복잡도를 계산할 수 있어야 한다.
3. 온라인 기술 면접
다음은 기술 면접 순서이다. 이 단계에서는 지원하고 있는 회사의 소프트웨어 엔지니어와 면접을 하게 된다. 나는 주로 유럽의 회사들에 면접을 봤고 한국에 있었기 때문에 대부분 구글 행아웃, 또는 스카이프를 통해 면접을 진행했다.
앞의 온라딘 코딩 링크를 거치지 않는 회사의 경우, 기술 면접에서 알고리즘 문제를 받을 수도 있다. google docs 같은 공유 문서 프로그램에서, 문제를 주고 코드를 써보는 식이다. 화상으로 대화를하면서 실시간으로 진행되기 때문에, 내가 궁금한 걸 물어볼 수도 있고, 내 코드에 대해 바로바로 질문을 받기도 한다.
온라인 코딩이 없다면, 기본적으로 이제 엔지니어링 레벨로 왔기 때문에 이력서의 내 이력에 대해 질문을 한다. 어떤 언어를 썼는지, 뭘 개발했는지, 포트폴리오중 가장 자랑스러운 포트폴리오는 무엇인지. 이런것들에 대해 질문을 받는다. 그리고 본인의 회사에서, 본인의 팀에서 어떤 일을 하고 있는지에 대해서도 말해준다. 본격적으로 기술적인 이야기가 오고가는 단계이다.
그리고 코딩 문제만큼이나 중요한 시스템 디자인 혹은 설계 인터뷰가 있다. 어떤 상황이고, 어떤 요구 사항이 들어왔을때 어떻게 디자인 할것인지. 기술적인 솔루션을 제시해야한다. 그러면 내가 제시한 솔루션에 대해 다양한 공격들이 들어온다. 그 질문들에 대해서도 대답을 해야한다.
시스템 디자인에 대해서는 늘 관심이 있었다고 생각해왔는데, 실제로 구체적인 솔루션을 생각해보고 그려본적이 없기 때문에 이 분야도 무척 어려웠다.
- 다양한 architecture 들과 많은 best practice 들을 꾸준히 접해야 한다.
- 아무것도 보지 않고 직접 종이에 시스템 구성도를 그릴 수 있어야 한다.
- 늘 대규모 트래픽과 분산 환경에 대한 고민을 해야한다.
- 사용자에게 최적의 경험을 제공하면서, 안정적인 서비스를 유지할수 있어야 한다.
기술 면접의 경우, 한명의 엔지니어와 하는 경우도 있고, 두명의 엔지니어와 하는 경우도 있었다. 두명의 엔지니어와 연속으로 하는 경우도, 각각 다른날 하는 경우도 있었다. 이건 회사마다 다른것 같다.
4. 온사이트 인터뷰
이제 최종 단계다. 나는 딱 한번만 이 단계까지 와 봤기 때문에 잘은 모르지만, 이 단계 역시 회사마다 차이가 크다. 항공권을 제공해주는 회사도있고, 없는 회사도 있다. 내가 찾아본 후기들 중에는, 온라인으로 인터뷰 했던 엔지니어들과 직접 만나서 데일리 미팅에 참석할수 있게 해서 회사의 분위기를 직접 보여주고, 식사를 같이 하는 경우도 있다고 한다. 실제 jira 티켓을 하나 골라서 같이 pair programming 을 하는 경우도 있다. 온라인으로 했던 코딩을 다시 다른문제로 풀게 하는 경우도 있고, 내가 했던 경험과, 그 회사의 현재 상황에 비춰 기술적 토론을 하기도 한다. 이렇게 모든 단계가 다 긍정적으로 끝나면, 마지막으로 연봉 협상과 계약이다.
5. 기타
이 모든 단계가 짧게는 한달만에 끝나기도 하고, 길게는 몇달씩 걸리기도 한다. 회사마다 응답을 주는 속도가 다르고, 유럽의 경우 여름 휴가나 크리스마스 휴가에는 몇주씩 휴가를 가기도 하는데, 담당자가 그렇게 휴가를 가면 그 기간동안은 프로세스가 진행되지 않을 수 도 있다.
한창 프로세스를 진행하고 있는데, 더 잘 맞는 candidate 와 이미 해당 포지션이 마감되었다는 뒤통수를 당할수도 있다. 몇달씩 진행되는 가운데, 회사의 채용 계획이 바뀌어 포지션이 없어졌다고, 중간에 취소하는 경우도 있었다.
Comments
Post a Comment