'easy' 하고 싶은 마음
지난 주말은 leetcode와 함께하는 주말이었다. 주말을 지나 월요일부터 금요일까지 technical screening interview가 3개, final coding round가 1개 있었다. 그전에 최대한 많이 풀어보고자 하루에 5개씩은 풀었던 것 같다. leetcode 프리미엄을 결제하면 회사별로 기출문제를 모아놓은 보드가 있는데, 그중에서 월요일 인터뷰가 있는 T회사부터 시작했다. 회사별 문제 모음에는 빈도가 같이 나오는데, 나름 너무 낮은 빈도는 거르고 조금 빈도가 있는 것부터 풀었다. 그렇게 열심히 문제를 풀면서 주말을 버텨 월요일이 됐고 내 미국 취업 일생(?) 두 번째 알고리즘 테스트를 맞았다.
말하면서 푸는 것은 어렵다. 말하다 보면 뇌의 사고해야 하는 부분이 말하는데 쓰여 평소 leetcode 푸는 것만큼 머리가 안 굴러가는 느낌이다. 그리고 말하다 꼬이면 머리도 같이 멈춘다. 말하는 것에 사로잡혀 내가 했던 것도 잊는다. 문제를 제대로 못 풀었다. ㅎㅎ... 내가 처음에 생각한 방법이 있었는데 풀다 보니 아니란 것을 깨달았다. 그래도 끝나고 나서 문제를 못 푼 거 빼고 나머지는 잘했다고 생각했다. 계속 커뮤니케이션했고, 비록 내가 생각한 풀이로 끝내지 못했지만 내 접근 방식을 보고 괜찮은 것 같다고 코딩으로 넘어가자고 했고, 중간중간 물어본 미니 문제에 잘 대답했다. 그리고 분위기가 나름 괜찮았던 것 같았다.
끝나고는 정신없이 화요일에 있는 리크루터 콜을 준비해야 했다. (지난 일기에 적은 일기 쓰다가 연락온 그 회사이다.) 인터뷰가 끝나고 잠깐 쉬었다. 월요일 잠깐 쉬지 않으면 화, 수, 목, 금 일정을 버틸 힘이 도저히 날 것 같지 않았다. 주말에도 충분히 못 쉬었기 때문에... 잠시 쉬고는 화요일에 얘기할 회사에 대한 정보를 수집했다. 어떤 식으로 내 경험을 어필할지 정리했다. 다행히 내 경력과 겹치는 것이 많은 회사였다. 레주메 통과가 거의 안되지만, 레퍼럴 없이도 되는 케이스들은 Job description과 내 경력이 정말 겹치는 부분이 많은 케이스인 것 같다. 이럴 때는 이런 경험도 있고, 저런 경험도 있는 내 잡탕(?) 경력이 도움이 많이 된다. 어디든 조금씩 어필할 것이 있다.
화요일 리크루터 콜은 전화통화였다. 이제 슬슬 비디오 콜이 아닌 전화통화 형식도 익숙해져 간다. 전화통화는 내가 준비한 대본을 자연스럽게 읽을 수 있다는 장점이 있지만 나에겐 상대방 리액션을 볼 수 없는 단점도 크게 느껴진다. 이번에도 역시 못 알아들은 것은 못 알아들었다 하고 또 물어봤다. 그리고 내가 준비한 질문도 시간을 채워 물어본다. 나는 리크루터 콜이든 인터뷰든, 대화할 상대를 링크드인에서 찾아보고 뒷조사를 한다. 그럼 그 정보로부터 물어볼 수 있는 질문이 생겨 좀 더 특별한 질문을 할 수 있는 것 같다. (이것도 미국에 와서 배웠다.) 이번 리크루터는 이 회사에서 6년을 다닌 팀원이어서 특별히 '회사가 성장하는 것을 지켜보면서 뭐가 특별하다고 느꼈는지'와 같은 질문을 할 수 있었다. 그리고 이런 개인적인 질문들에 거의 모든 사람들이 솔직히 답변해 줘서 나도 QnA 세션이 풍부하고 서로에게 즐겁다고 느낀다.
다행히 화요일 리크루터 콜 이후 온라인 코딩 과제 링크를 받았다. 이 포지션 역시 단 한 명만 뽑는 포지션이다. 무려 Senior와 Staff 레벨을 포함해서 말이다. 이거 회사들 문이 이렇게 다들 좁아서야 내 자리 하나 있을까 싶기도 한다. 그래도 이번 리크루터 콜을 통해 내가 좀 더 기습 위기 대처 능력이 늘었다고 느꼈다. ㅎㅎ 이제 곧잘 너스레도 떠는 것 같다.
리크루터콜은 비교적 간단하기 때문에 같은 날 mock interview를 두 번이나 했다. 한 번은 한국에 있는 똑똑한 엔지니어 친구, 한 번은 미국에서 알게 된 분께 소개받은 엔지니어 친구. 리크루터 콜은 잘했지만 같은 날 했던 mock interview 두 번을 다 말아먹었다. 첫 번째에는 말이 너무 많다는 피드백과 함께 걱정된다는 ㅎㅎ 반응이 있었고, 두 번째에서는 문제를 푸는데 한 시간 반이나 걸렸다. 두 번째에서는 말하는 것은 좋으나 너무 마음이 급하다고 중간중간 숨을 깊게 쉬고 차분히 하라는 피드백을 받았다. 또한 내가 너무 인터뷰어의 조언을 안 듣는다는 것을 깨달았다. 두 번의 mock interview로 얻은 것이 많았지만 월요일 T사 알고리즘 인터뷰에서 못 풀었던 것과 겹치며 다시 나는 미궁에 빠지고 말았다.
말을 얼마나 해야 하지? 커뮤니케이션을 잘하는 건 뭐지? 어떻게 해야 침착하게 할 수 있지? 문제에 대한 솔루션이 바로 생각 안 나면 어떻게 하지? 나 이렇게 또 알고리즘 인터뷰에서 발목이 잡히는 건가? 여기서는 진짜 피할 수 없는데... 과거에 알고리즘 테스트에서 발목 잡혔던 기억이 떠오르며 나는 웃기게도 또 "알고리즘 테스트 패배자" 모드로 돌입했다. 내 머릿속에서 월요일 T사 인터뷰는 이미 떨어졌고, 지난번 통과한 P사 알고리즘 테스트는 레퍼럴 덕분에 통과한 '신뢰 불가능한 데이터'가 되어있었다.
울고 짜증 내고 두려워하고, 마음을 다잡고는 수요일 인터뷰에서 한번 피드백받은 것을 신경 써서 해보자고 다짐했다. 그래, 그래도 많이 배웠으니까. 나만의 인터뷰 스타일을 찾는 과정이라고 생각하자. 세상에 정답은 없고, 내 인터뷰 스타일을 만들어 나가면 되는 거야. 말을 하다 머리가 멈추면 잠깐 멈춰 숨을 깊게 쉬고, 물도 마시고. 인터뷰어한테 모르겠다고 말하고 힌트를 요청하고, 인터뷰가 하는 말들을 잘 듣고 힌트로 삼고. 그래도 내가 설명하면서 푸는 것을 좋아하는 사람도 있었으니까 지금에서 너무 강박적으로 말하면서 하는 것만 좀 줄이자. 코멘트를 더 달자. 변수나 함수 정의를 더 하자. 내가 헤매지 않도록 메모로 더 남기자.
수요일 인터뷰는 다른 T사와의 인터뷰였는데 나도 좀 더 차분해진 것을 느낄 수 있었다. 이 회사와 인터뷰가 마무리될 때쯤, 시간 확인을 위해 세워둔 핸드폰에 새 메일 알람이 온 것을 발견했다. 월요일에 본 회사에서 온 메일이었는데 메일 미리 보기만 봐도 무슨 내용인지 알 수 있었다. 인터뷰 마무리를 또 열심히 스토킹을 통해 준비한 질문으로 마무리하고, 감사인사를 하고, 지난번 보다 좀 더 차분히 문제풀이를 즐긴 나를 스스로 칭찬하며 이메일을 다시 열었다.
Hi Ina, Good news!, the team would like to move forward with scheduling your next rounds,
됐다. 내가 문제를 못 풀어 안될 거라 생각했던 그 면접에서 통과했다. 나는 방금 본 인터뷰에 대한 걱정은 뒤로한 채 자리에서 일어나 방방 뛰었다. 이 회사와는 앞으로 세 번의 인터뷰나 남았지만 내 생에 두 번째 알고리즘 테스트 통과다! 심지어 레퍼럴 포지션도 아니다. 한 번은 우연일 수도 있지만 두 번은 아니지 않을까. 비록 내 풀이가 완벽하지 않았지만 내가 다른 장점들을 충분히 보여줬을 것이다. 다시 돌이켜보니 그렇게 망친 인터뷰는 아니었던 것 같기도 하다. 어쩌면 끝까지 해보려는 나의 모습에 determination을 느꼈을 수도 있다. 그래도 계속 긍정적으로 해보려는 것이 플러스가 됐을 수도 있다. 혹은 뭐 문제 푸는 게 그렇게 중요한가! 코드 스타일이 깔끔했을 수도 있잖아?!
불안으로 가득했던 마음이 다시 희망으로 차오른다. 그래 나 조금만 더 침착하면 될 것 같아. 이제 문제만 좀 더 침착히 잘 풀면 더 안정적으로 알고리즘 테스트를 통과할 수 있을 거야. 이런 나를 떨어뜨리는 사람은 그냥 내 스타일이 안 맞는 거지 뭐!
희망찬 마음으로 또 leetcode를 풀었다. 목요일 인터뷰는 파이널 라운드 중 두 세션을 이어 보는 인터뷰였는데, 항간의 소문으로는 어려운 알고리즘 문제를 낸다고 하더라. 그래서 leetcode에서 hard 난이도 문제도 풀었다. 문제를 얼마나 푸느냐보다 지금 더 중요한 건 인터뷰에서 내가 얼마나 안 떨고 하느냐인 것 같아서 오히려 부담은 없었다. 목요일이 됐고, 나는 또 내 질문을 들고 인터뷰에 입장했다.
첫 번째 세션에서 예상외 질문에 당했다. 알고리즘 문제풀이가 아닌 CS 지식에 대한 질문이었다. 사실 leetcode만 주야장천 풀었지 이런 질문은 준비도 안 했다. 내 아이디어를 설명하고, 모르는 것은 물어봐가며 인터뷰를 진행했다. 다행히 웃는 얼굴로, 침착히 인터뷰를 함께해 주는 인터뷰어라 나도 어렵지만 좀 더 차분히 대답할 수 있었다. 15분 후 이어진 두 번째 세션에선 알고리즘 테스트를 봤다. 다만 어렵지 않은 문제라 나름 잔머리도 부릴 수 있었고, 인터뷰어를 나름 웃길 수도 있었다. 그리고 또 열심히 내가 궁금했던 것을 물어봤다. 나는 엔지니어와 인터뷰하는 경우, 내 질문 시간에 회사나 팀에 대한 것뿐 아니라 커리어에 대한 질문도 하는 편인데, 이게 나에게도 도움이 많이 되는 것 같다. 나에게 주어진 유일한 시간인데, 떨어지더라도 얻는 게 있도록 써야지.
결과에 상관없이 만족스러운 인터뷰였다. 분위기도 좋았던 것 같고, 모르는 것은 모르는 대로 열심히 했고, 잘할 수 있는 것은 빠르고 정확하게 풀어냈다. 마지막에 테스트가 틀렸을 때 2분만 달라고 하고 빠르게 버그를 찾아내 수정했다. 인터뷰 시작 전 포스트잇에 주문처럼 크게 써놓은 "침착해!!!"가 먹혔던 걸까. 떨어지면 그건 그저 회사에서 원하는 기준 때문이라 생각이 들 만큼 나는 내 최선을 다했다고 생각했다. 그래서 만족스러웠다. 내가 할 수 있는 것은 다 했으니까. 물론 오늘 나올 질문들을 한 번이라도 준비했다면 더 좋은 결과가 있었겠지만 이제 2달 차 취준생이 어떻게 모든 문제에 준비되어 있을 수 있을까? 모든 것에 준비되어 있을 수는 없다.
금요일 인터뷰는 자료를 보니 알고리즘 테스트보다는 Javascript/CSS/HTML을 이용한 실용적인 문제라고 해서 javascript 기초를 다시 학습했다. Promise, Prototype 등등을 말이다. 구글링으로 인터뷰 후기 같은 것도 검색해 봤는데, 내가 지원한 frontend 포지션에 대한 정보는 좀 적었다. 2021년이 가장 최근이었던가. 그래도 그 적은 후기에 있는 문제들이 범상치 않았다. 특별한 문제에 준비를 하기보단 커뮤니케이션을 잘하고, 힌트를 잘 캐치하고, 내가 원래 갖고 있는 기본기를 잘 살려야겠다는 마음가짐으로 인터뷰에 들어갔다.
역시 인터뷰 문제는 범상치 않았다. 근데, 내가 얼핏 후기에서 본 문제였다! 자세히 본 것은 아니지만 익숙한 것 자체가 다행이었다. 45분 시간 안에 모두 구현했다. 그리고 계속 확인했다. '이렇게 하는 거 맞는 것 같아? 어때?' 가끔 인터뷰어가 제대로 안보는 것 같길래 질문을 하며 중간중간 불러 세웠다. ㅎㅎ
이번 인터뷰 회사인 A는 내가 평소 궁금했던 곳이라 좀 더 솔직한 질문들을 했다. 어떻게 일하는지, 이 회사를 다니며 기뻤던 순간은 언제인지, 힘들었던 순간은 언제인지를 물어봤다. 인터뷰어는 힘들었던 순간으로 최근 몇 년 사이 있었던 레이오프를 얘기해 주었다. 나도 예상치 못한 솔직한 대답이었다. 요 며칠간의 인터뷰를 통해 내가 미국에서 인터뷰를 보고 있지만 그 안의 코너 속 코너로 나의 '실리콘 밸리 직장인 인터뷰'를 하고 있는 느낌이다. 인터뷰를 즐길 수 있는 포인트를 나름 하나 찾았다. 오늘의 인터뷰도 나는 최선을 다했고, 나름 잘했다. 나는 만족할 만큼 했으니 합격, 불합격은 회사가 원하는 수준에 따라 달려있다고 생각했다. 그러니 마음이 가벼웠다.
월요일부터 금요일까지 이어진 인터뷰 러시가 끝났다. 거의 비슷한 코딩 라운드였는데, 이번 한 주 동안 한 여러 mock interview와 실전 인터뷰를 통해 알고리즘 테스트에 점점 익숙해지는 것을 느낀다. 그리고 인터뷰를 통과한 소식이 이 자신감에 힘을 불어넣어 주기도 했다. 다음 주에는 두 회사의 파이널 라운드, 한 회사와의 두 번째 라운드가 예정되어 있다. 다음 주 파이널을 잘 보면 합격한 회사가 하나라도 생긴다 생각하니 믿기지 않는다. 잘하면 다음 주에 끝날수도 있다. 정말로!
이번주 인터뷰 일정을 무사히 끝낸 나에게 많은 칭찬을 해주고 싶다. 매일매일 다음 날 인터뷰를 준비하다 보니 정신없이 지나간 일주일이었다. 오늘은 기념으로 비비큐 치킨을 먹고 왔다. 차 타고 편도로 50분이나 걸려서 말이다. ㅎㅎ