개발자, 어쩌다 해외 취업
한국에서 개발자로 6년간 근무했고 최근에 이직을 시도하여 해외 IT 기업으로부터 오퍼를 받았습니다. 아직 입사 전이지만 벌써 세 달이 지나가는 시점에 기억나는 일들을 기록하고자 글을 적습니다. 보안상 채용 과정의 디테일한 부분들은 적을 수 없지만 일반적으로 알려진 내용을 바탕으로 제가 느꼈던 부분이나 행동했던 내용, 감사한 부분들을 중요도와 상관없이 기억나는 대로 적어 보고자 합니다. 글 작성 후 제 개인적인 생각으로 주요한 액션들에 색을 칠해 보았습니다.
이력서를 리쿠르터 메일로 보내고 나니 머릿속이 바빠졌다. 한번 좋은 경험 삼아 내보긴 한 것이지만 기회가 자주 올 것 같진 않았다. 언젠가 외국회사에서 일하는 경험을 해보고 싶었다. 같은 교육을 받고 비슷한 시간을 일할 텐데 그들과 우리의 결과물은 많이 다른 느낌이었는데 그 비결을 알고 싶은 마음이 컷다. 몇 년 전 후배의 추천으로 한국에 있는 한 외국계 회사에 지원한 적이 있었는데 포지션이 맞지 않아서 전화 면접 까지만 봤었다. 백지에서 시작했다면 막막했을 텐데 당시 영문으로 작성해 둔 이력서가 있어 타이틀과 경력 기록 문장들을 조금 손보고 최근 경력을 추가했다. 그 사이 팀을 한번 옮겨 새로운 프로젝트를 경험했던 시점이라 다행히 이력서에 추가할 내용이 있었다. 나름 개고생 하면서 공동 번역했던 도서도 한 권 있어 한 줄 더 추가. 하지만 기존의 내용을 줄여 A4 한 장으로 만들었다. 질질 끌고 싶지 않아서 바로 리쿠르터에게 메일로 보냈다.
우선 급한 마음을 진정시켜줄 책을 한 권 찾아 구입한다. '코딩 인터뷰 완전분석' 해외 큰 IT 기업의 경우 면접 문제나 방식이 매우 정형화되어 있어서 관련 자료나 리뷰들이 많다. 생각보다 두꺼운 책을 받아 들고 우선 채용 과정의 전체적인 설명들을 쭉 훑어 본 다음 음, 이건 다음 단계에 봐도 되겠다는 생각으로 덮어 두었다.
서류 전형 다음은 온라인 코딩 테스트. 이제부터 연습이다. 간단한 알고리즘 문제를 온라인으로 풀고, 테스트, 제출하는 과정 모두를 훈련했다. 지인을 통해 추천받은 두 개의 사이트를 주로 이용했다.
온라인 코딩도 방식이 여러 가지다. 라이브로 하기도 하고 시간내 문제를 풀고 제출하기도 하고. 어떤 방법으로 할지는 미리 알려주는데 그 과정을 처음부터 끝까지 여러 군데서 다 해봤다. 하다 보니 온라인 시스템마다 답안을 작성하는 방식이나 제약사항, 실행, 테스트, 제출 방식이 조금씩 다른 걸 알게 됐다. 또한 웹브라우저에서 바로 코드를 작성할 것인지, 그 외 환경에서 작성/빌드 후 테스트를 마치고 붙여 넣기를 할 것인지, 문제 풀이 과정에서 검색은 어떻게 사용할 것인지. 어떤 언어를 사용할 수 있는지 등 시험 전에 생각해 두어야 할 사항들이 꽤 많았다.
문제당 시간은 30분 정도로 맞추고 못 풀면 답을 보고 다음 문제로 넘어갔다. 하루에 3~4개 정도씩 1주 반 정도를 연습했다. 밤 10시 정도에 시작하면 1시 정도에 마무리되었다. 요거 한 문제씩 풀 때마다 엄청 짜릿하다. 코딩 테스트에 사용한 언어는 무조건 파이썬이 좋은 것 같다. 모르면 배워서라도 파이썬으로 하는 게 좋은 것 같다. 특이한 자료구조나 초기화 방법들은 코딩할 때는 생각이 잘 안 나서 에버노트에 메모해 두었다가 써먹기도 했다.
테스트 난이도는 듣던 대로 중간 수준이었다. 주어진 시간은 거의 다 썼다. 문제를 푸는데 입력으로 들어오는 자료구조가 명확하게 설명되어 있지 않아 개고생을 했다. 종료 15분 전에서야 문제 위에서 마우스를 스크롤하니 아래쪽에 감춰져 있던 입력 포맷이 나타났다. 그나마 시스템의 다른 부분은 내가 연습했던 한 곳과 유사해서 익숙하게 진행할 수 있었다.
이제 영어로 말해야 하는 단계가 되었다. 주말 동안 내가 이력서에 적어둔 프로젝트에 대해서 책에서 조언해준 질문을 설정하고 답변을 준비했다. Writing과 Speaking을 모두 연습해야 하는 과정. 이번 지원을 시작하게 된 계기인 개발자 영어 오프라인 모임에서 연습했던 내용들이 정말 큰 힘이 되었다. 평소에 영어로 말할 기회가 없어서 개발자 영어 모임만 나가면 특별한 주제 없이 오늘 했던 일, 요즘 관심 있는 일에 대해서 짧지만 몇 마디라도 주고받았던 경험들, 컴퓨터 과학을 1도 모르는 사람들에게 당시 고민 중이던 데이터 처리에 대한 이슈를 설명해야 했던 시간(님들이 알아듣던 말던)들이 약이 되는 순간이었다. 모든 게 엄청 디테일한 사실일 필요는 없었다. 내가 감당할만한 수준에서 최대한 기승전 내자랑 을 할 수 있도록 짧은 문장들을 준비했다.
Q1. 나의 역할은?
Q2. 가장 도전적이었던 것? 가장 재밌었던 것?
Q3. 무엇을 배웠나?
Q4. 최악의 버그는?
Q5. 팀원과의 갈등
이외에도 기본적인 전공 질문에 대비하기 위해서 검색과 정렬 알고리즘에 대한 기본사항들을 출력해서 노트북 옆에 펼쳐두고 경건한 마음으로 전화를 기다렸다. 사실 이 모든 과정은 전화 면접보다는 나중에 온사이트 면접에서 더 큰 힘을 발휘했다. 아침 7시 30분 스카이프로 전화가 걸려왔다. "Hi.", "하.. 하이"
이직 연습 #2 에서 계속