예일에서 두 번째 학기가 시작되고 나서 마이크로소프트사에서 다시 캠퍼스 리쿠루팅 이벤트를 열었다. 첫 학기 때는 고배를 마셨지만 이번 학기는 꽤 오랫동안 프로그래밍 인터뷰를 준비한 덕분에 학교에 온 면접관의 질문에 모두 답변을 했고 마이크로소프트 본사가 있는 워싱턴 주의 레드몬드(Redmond)라는 도시로 온사이트 인터뷰 초청을 받았다.
학교의 봄방학 때를 맞추어서 온사이트 인터뷰를 보기 위해 새벽 비행기를 타고 워싱턴으로 향했다. 인터뷰 전날은 마이크로소프트사에서 파티를 주최했었는데 다음날 혹시나 정신이 흐트러질까봐 가지 않았다. 프로그래밍 인터뷰에서 합격 불합격의 많은 부분이 결정이 나기 때문에 알고리즘과 데이터 구조 부분을 정리하고 예상 질문과 답변을 다시 상기하며 인터뷰 전날 밤을 보냈다.
드디어 결전의 날, 마이크로소프트사는 인터뷰를 보는 사람들에게 형형색색의 네온 사인으로 내부가 꾸며진 멋진 버스를 보내주었다. 15분 후 본사의 한 건물에 들어가서 한 방에 모여 기다리는데 주위를 보니 인터뷰를 준비하는 모든 사람들이 긴장한 구석이 완연했다. 인터뷰는 50분씩 4번 보는데 모두 프로그래밍 인터뷰였다. 마이크로소프트사는 개발자 모두 개인 방을 가질 수 있는 것으로 유명한데 각각의 인터뷰 때 면접관이 자기 방에 데려가서 인터뷰를 보곤 했었다.
첫 번째 엔지니어의 방에서는 자신이 진행하고 있는 프로젝트에 대한 설명과 함께 자신이 당면하고 있는 문제에 대해서 나는 어떤 해결책을 제시할 수 있는지에 대해서 물어보았다. 그때까지도 영어가 서툴렀던 나는 질문을 다 이해하지 못하고 여러 번 다시 물어보았다. 질문을 어느 정도 이해하고 나름의 데이터 구조를 세우고 내가 생각하는 해결책을 제시했지만 큰 어필을 준 것 같지는 않았다. 두 번째 엔지니어의 방에서는Linked List안에서 Cycle의 여부를 인지하는 문제를 먼저 제시하고 점점 조건들을 추가해가며 각각Pseudo 코드를 작성할 것을 요구 받았다. 1시간동안 엔지니어와 질문을 주고 받으면서 코드를 화이트 보드에 썼고 마지막에는 “You are correct.”라는 말도 들었다. 조금 희망이 생겨나기 시작했다. 세 번째 방에서는 매니저인 면접관이 종이와 연필 하나를 주더니 자기 요구사항에 맞게 Tree를 만들고 Depth-first search와 Breath-first search에 대한 여러 사항들을 묻더니 자기가 요구하는 조건에 맞는 알고리즘을 구현할 것을 주문했다. 여러 시도를 하고 토론을 하다 보니 또 1시간이 지나서 그 방을 떠나게 되었다. 마지막 방에서는 주어진 검색에 대한 알고리즘을 Pseudo 코드로 제시하고, 그 후에는 내가 작성한 Recursive로 되어 있는 코드를 Iterative 바꾸면서 두 코드에 대한 장단점을 설명할 것을 요구 받았다. 이 부분은 이미 잘 알고 있는 부분이라서 답변도 꽤 잘 했던 것으로 기억한다. 그리고 모든 인터뷰가 끝났다.
점심 식사를 마치고 그 날 인터뷰를 본 사람들은 모두 한 방에 모여있었다. 그리고 한 사람씩 이름이 호명될 때마다 마이크로소프트의 직원들이 그 사람을 데리고 사라지게 된다. 내 이름이 불리고 한 여직원이 나를 안내했다. 이런저런 얘기를 하면서 가다가 “Unfortunately…”를 들었을 때 그 결과를 직감할 수 있었다. 아쉽지만 마이크로소프트와의 만남은 여기까지였다. 그날 같이 면접을 본 사람은 15명 정도였고, 합격한 사람은 2명 정도로 기억하고 있다.
마지막 학기에 열심히 전력투구를 한 덕에 좋은 성적을 받아 예일에서 1년만에 졸업할 수 있었다. 졸업 즈음에 LSI라는 네트워크와 스토리지 관련 반도체를 만드는 기업으로부터 인터뷰 요청을 받아서 2명의 엔지니어와 전화인터뷰를 하게 되었다. 전화 인터뷰를 괜찮게 보았는지 그 후에 온사이트 인터뷰 초청을 받아서 펜실베니아로 가게 되었다. 5명과 면접을 보게 되었는데 마이크로소프트 때보다 힘들지는 않았다. 프로그래밍 문제도 대부분 답변을 했고 편한 마음으로 거의 6시간의 인터뷰를 마쳤다. 하지만 약 3주 후 당시 그 회사에 내부 구조 조정이 생겨 내부 인력을 우선 채용을 하는 바람에 팀 내에서 외부 인력을 더 뽑지 못하게 되었다는 말을 매니저로부터 전해 들었다. 그 날 인터뷰를 했던 다른 분으로부터는 팀에서는 나에 대해서 긍정적이었는데 갑자기 내부 리소스에서 인력을 뽑아야 되었다면서 미안하다고 했다. 아쉬웠지만 다음 도전을 기약하는 수밖에 없었다.
세 번째 인터뷰 요청을 받은 곳이 텍사스에 있는 델(Dell) 컴퓨터였다. 델의 웹사이트를 통해 몇몇 소프트웨어 엔지니어 포지션에 지원했었는데 몇 달 후 갑자기 델에서 전화가 와서 바이오스(BIOS) 엔지니어로 면접 볼 생각이 있느냐고 물었다. 학부 때 전자공학을 전공하고 석사 때 전산학을 공부한 내 이력을 눈여겨본 것이었다. 나는 찬밥 더운 밥 가릴 처지가 아니었다. 대학원을 졸업하고 미국 내 취업 자격을 주는 OPT제도는 졸업 직후 OPT를 시작한지 90일 내로 미국 내에서 취업을 못하면 본국으로 돌아가도록 되어 있었다. 나는 어떻게든 직장을 찾아야 했었다. 델의 엔지니어와 전화 인터뷰를 끝내고 나서 며칠 뒤에 텍사스로 가는 비행기표가 도착했고 전혀 생각지도 못하게 텍사스로 면접을 보러 가게 되었다.
찌는 듯한 더위 속에 텍사스에 도착하고 라운드락(Round Rock)이라는 도시에 있는 델 본사에서 면접을 보았다. 6시간 동안 6명과 인터뷰를 보았다. 기본적으로 C/C++에 대한 개념 문제부터 내가 참여한 프로젝트에 대해서도 간략하게 프리젠테이션 할 것을 요구 받았다. 컴퓨터의 부팅 과정과 바이오스의 역할에 대한 기본적인 개념들과 더불어 조직에서 여러 상황들에 대처능력을 예측하는 Behavior Questions에 대한 답변도 요구 받았다. 6시간의 긴장된 순간들이 끝나고 호텔에 돌아와 쉬면서 그 날은 정말 오랜만에 달콤한 잠을 잘 수 있었다.
3주 후 델의 2개 팀으로부터 오퍼를 받았다. 첫번째 팀은 델의 서버 바이오스(BIOS)팀이었고 한 팀은 OEM Solutions팀이었다. OEM Solutions 팀이 내가 그 당시 선택한 팀이었다.
연봉 협상을 하고 정식 잡 오퍼 레터가 왔는데 기한이 일주일이었다. 당시 같이 진행하고 있던 구글 인터뷰는 다음 단계가 결정 나려면 6주 정도까지 걸릴 수 있다는 말에 프로세스를 중지하고 델에 입사하기로 결정했다. 그리고 아내와 함께 텍사스에서 새로운 삶을 시작하게 되었다.