brunch

You can make anything
by writing

C.S.Lewis

by 륜 Ian Apr 11. 2017

Microsoft에서 이직을 결심하다 - 1

막연한 생각에서 첫 인터뷰까지

    나는 너무 쉽게 질린다. 처음에 내 것이 되었을 때 아무리 마음에 들고 행복했던 것이라도 시간이 지나면서 시들해지고 새로운 것을 찾게 된다. 아직 길지 않은 커리어지만, 내가 다니고 있는 회사, 내가 하고 있는 일에 대해서도 비슷한 증상이 나타난다. 역마살이라도 낀 건지, 한 팀에서 일 년 정도 있다 보면 여전히 배울 것들이 넘쳐흐르는 팀이라도 슬슬 다른 팀을 알아볼까 하는 욕구가 스멀스멀 기어 나오기 시작한다. 이직을 자주 하면 나 스스로도, 남이 보기에도 좋을 것이 없다는 것을 머리로는 아는데 가슴이 말을 듣지 않는다. 


    마이크로소프트는 개발자에게 정말 좋은 회사 중 하나다. 다른 기업들에 비해서 쪼지 않아서 개발자들이 받는 스트레스도 상대적으로 덜하고, 회사에서 제공하는 건강보험은 업계 최고 수준이며, 캠퍼스 여러 곳에 위치한 카페테리아들은 비록 돈을 내야 하긴 하지만 멀리 나가서 밥을 사 먹는 수고를 덜어준다. 주변을 둘러보면 셀 수 없이 많은 초엘리트급 개발자들이 사방에 퍼져있고, 그분들에게서 얻을 수 있는 지식의 양은 측정할 수 조차 없다. 아마존에 있던 시절과 비교했을 때 (물론 팀마다 다른 부분이 많겠지만), 마이크로소프트 직원들의 지식이 훨씬 깊다고 느꼈다. 


    입사한 후 일 년이 지난 뒤에도 회사 코드를 들여다보면 모르는 부분들이 산더미 같았고 지루할 일도 없었지만 쉽게 질리는 성격은 나를 가만히 내버려두지 않았다. 그냥 이대로 이 팀에 있다가는 뒤쳐질지도 모른다는 막연한 불안감과, 괜한 무료함, 새로운 팀에 처음 들어갔을 때 단기간에 방대한 양의 지식을 받아들이며 느끼는 희열에 대한 열망이 나를 괴롭히기 시작했다. 결국 매니저 모르게 사내 다른 팀들과 인터뷰를 진행했고 그중 몇몇에서 좋은 소식을 받았다. 그중에서 마음에 드는 팀을 찾은 후 옮기기 직전, 같은 팀에서 친하게 지냈던 시니어 개발자 한 명과 이야기를 할 기회가 있었고, 팀을 옮기려 한다는 이야기를 털어놓았다. 그 동료는 본인도 곧 Snap Inc.로 이직을 할 계획이었다며 내 이야기를 팀 동료가 아닌 개발자 선배의 입장에서 들어주고 조언해 주었다. 많은 이야기가 오갔지만 그의 요지는 '앞으로 반년 정도만 지금 팀에 있으면 승진을 할 수 있을 텐데 지금 팀을 옮기는 것은 경력적으로나 경제적으로나 손해인 것 같다'는 것이었다. 새로운 팀에서 시작하면 그동안 내가 현재 팀에서 쌓아온 성과에 대한 인정도 처음으로 리셋될 테고, 결과적으로는 내 승진이 늦어질 수밖에 없었다. 물론 더 높은 직위, 더 많은 연봉보다 중요한 다른 요소들이 많겠지만, 그 당시에 그의 조언은 내 마음을 돌려놓았고 나는 자의반 타의반으로 기존 팀에 그대로 남아 반년의 시간을 더 보냈다.


    반년 뒤, 기다린 보람이 있게도 승진을 할 수 있었고 비슷한 시기에 내 팀을 맡았던 매니저가 회사를 떠나게 되면서 자연스럽게 나는 다른 팀으로 옮기게 되었다. 새로운 팀은 기존의 일과 다르게 리눅스에 포커스를 맞추는, 회사 내에서도 흔치 않은 팀이었고, 진행하는 프로젝트들도 훨씬 흥미로웠으며 팀 분위기도 더 빠르고 다이내믹하게 돌아갔다. 새로운 환경은 한동안 나에게 활력을 불어넣어주었고 매니저와 팀원들은 내가 지금까지 만났던 어떤 사람들보다도 더 능력 있고 뛰어났다. 이직을 결심한 지금조차도 솔직히 이 사람들보다 더 능력 있고 좋은 사람들을 만날 수 있을지 확신이 없다. 


    그러던 와중, 전 회사에서 친하게 지내던 매니저 중 한 명이 LinkedIn을 통해서 연락해왔다 ('D'라 부르기로 하자). 회사에서 게임 스튜디오를 설립해서 새롭게 팀을 만들고 있는데 다시 돌아올 생각이 있냐는 것이었다. 물론 인터뷰를 다시 봐야 하겠지만 전에 내가 근무하던 팀과는 완전히 다른 분위기고, 또 새롭게 만들어진 팀이기 때문에 굉장히 빠른 페이스로 새로운 제품을 개발해 나갈 예정이라고, 나와 잘 맞을 것 같다는 이야기도 덧붙였다. 몇 번의 이메일 교환 뒤 D와 통화를 할 수 있었고, 잠자고 있던 내 '새로운 환경으로 옮기고 싶은 욕망'이 다시 고개를 들었다. D의 팀이 있는 곳은 내가 지금 살고 있는 시애틀이 아니라 전 회사가 있는 남 캘리포니아의 어바인이었기에, 시애틀에서 만난 수많은 좋은 사람들을 등지고 떠날 생각에 내키지는 않았지만, 내가 지금까지 접해보지 못한 무언가를 경험할 수 있는 좋은 기회라는 인상을 받았다.


    그 뒤로도 D는 몇 주에 한 번씩 꾸준히 연락을 주면서 잘 생각해보라며 나를 설득했고, 나는 결국 D의 팀과 인터뷰를 진행하게 되었다. Hiring Manager가 직접 추천하는 데다가 내가 전에 일을 했던 회사기도 하고, 이런저런 다른 이유들 때문에 (솔직히 그냥 내 게으름이 가장 컸겠지만...) 제대로 된 준비도 하지 않은 채 인터뷰 일자는 성큼성큼 다가왔고, 결국 인터뷰 당일을 맞이했다.

 

인터뷰는 총 5명과 진행되었다.

채용 매니저: 내 경우에는 D

개발자 1과의 코딩 인터뷰

개발자 2와의 코딩 인터뷰

시니어 개발자와의 Object Oriented Programming/Design 인터뷰: 내 경우에는 이 분이 Bar raiser*였다

5. 프로덕트 매니저와의 Behavioral Interview

*Bar raiser라는 롤을 정해주는 몇몇 회사가 있는데 이 들은 다른 면접관들보다 좀 더 어려운 문제를 제시함으로써 면접자를 끊임없이 압박하며 그가 코너에 몰렸을 때 어떤 식으로 대처하는지를 확인한다. 채용 매니저와 Bar raiser는 최종 면접 결과에서 절대적인 권한을 갖고 있어 둘 다 채용에 동의해야 면접자가 채용될 수 있다.


D와의 면접은 면접이라기보단 그냥 안부인사를 나누고 지금까지 어떤 일을 해왔는지 catch up 하는 것에 그쳤다. 진짜 면접은 두 번째부터였고 개발자 1은 Binary Search Tree 관련된 코딩 문제를, 개발자 2는 Linked List 관련된 코딩 문제를 제시했다. 두 문제 다 그렇게 난이도가 있어 보이진 않았고 (아마도 잘못된 생각이었던 것 같지만) 나는 내 나름의 해결책을 제시했다. 시니어 개발자와의 OOP/OOD 문제는 다른 인터뷰에 비해서 단연 어려웠다. 게다가 그가 시애틀에 있었던 관계로 연결 상태가 좋지 않은 Conference Call을 통해 인터뷰를 진행한 바람에 더더욱 어렵게 느껴졌다. 마지막 프로덕트 매니저와의 인터뷰는 테크니컬 한 면접이 아니었기 때문인지 크게 긴장하지 않은 채로 나름 최선을 다해 대답했다.


    면접이 끝난 후의 느낌은 'Bar raiser가 내가 제대로 대답을 하지 못한 부분을 신경 쓰지 않고 넘어가 준다면 채용될 가능성이 높다'였다. 내 나름대로 코딩 인터뷰들은 준수하게 마무리했기 때문에, Bar raiser가 나를 어떻게 바라봐주는지가 문제라고 생각했다. 


그리고 면접 결과를 기다리며 며칠이 지나갔다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari