joshyun
268
2021-12-31 18:17:42 작성 2021-12-31 18:25:32 수정됨
5
1693

북미 인턴쉽 얘기 (1)


저는 캐나다에서 학부 4학년을 다니고 있고 대략 졸업까지 6과목 정도 남았습니다.

1월에 WealthSimple이라는 회사에서 인턴을 할 계획이고 5월 인턴을 구직중이며 9월 학기 듣고 졸업할 예정입니다.

최근에는 아마존에서 인턴을 지지난주에 마쳤고 풀타임 오퍼를 기다리는 중이긴 한데 오퍼를 받고 안받고를 떠나서 계속 더 나은 기회를 찾고 있네요. 연말연시라 뭔가 글을 써볼까 하다가 북미쪽 인턴쉽에 대해 써볼까 합니다.

왜 인턴을 뽑는가?

북미 회사들이 인턴쉽을 뽑는 이유는 조엘 온 소프트웨어, 혹은 블로그에 잘 나타나 있습니다 (https://www.joelonsoftware.com/2006/09/06/finding-great-developers-2/) 블로그 내용을 대충 구글 번역기 돌려서 발췌해보면,

우리 분야에 대한 좋은 소식은 정말 훌륭한 프로그래머가 종종 10살 때 프로그래밍을 시작했다는 것입니다. 그리고 또래의 다른 모든 사람들이 "축구"를 하면서 뛰어다니는 동안(이것은 컴퓨터를 프로그래밍할 수 없는 많은 아이들이 하는 게임으로 "공"이라고 하는 구형 물체를 발로 차는 것과 관련된 게임입니다(이상하게 들립니다) ), 그들은 아버지의 집 사무실에서 Linux 커널을 컴파일하려고 했습니다. 놀이터에서 여자들을 쫓는 대신 그들은 Haskell 스타일의 유형 추론을 구현하지 않는 프로그래밍 언어의 완전한 타락에 대해 Usenet에서 화염 전쟁을 벌이고 있었습니다. 차고에서 밴드를 시작하는 대신 이웃이 개방형 액세스 WIFI 지점을 통해 대역폭을 훔쳤을 때 웹의 모든 이미지가 거꾸로 표시되도록 멋진 해킹을 구현했습니다. 꺄하하하하! 예를 들어 법이나 의학 분야와 달리 여기 소프트웨어 개발 분야에서는 이 아이들이 대학 2~3학년이 될 때쯤이면 꽤 훌륭한 프로그래머가 됩니다. 거의 모든 사람들이 적용 하나 일 : 자신의 첫 번째, 대부분의 아이들은 그것의 확인이 걱정에 자신의 지난 해까지 기다려야한다고 생각합니다. 그리고 사실 대부분의 아이들은 그렇게 창의적이지 않고 실제로 캠퍼스 내 모집 이벤트가 있는 일자리에만 지원하는 것을 귀찮게 할 것입니다. 좋은 대학에 다니는 아이들은 캠퍼스 내 고용주로부터 좋은 직업을 충분히 선택할 수 있으므로 캠퍼스에 오는 것을 꺼리는 고용주에게 연락하는 일은 거의 없습니다.

저 글이 씌여진게 2006년이니 벌써 15년이 넘었고, 이제는 어느정도 규모 이상의 회사들 중에 인턴을 뽑지 않는 회사는 없다고 봐도 과언이 아닙니다. 제가 이번 가을에 면접본 회사 중 하나는 실리콘밸리 시드단계의 스타트업이었는데 당시 직원수는 15명도 안됐을 상황이었으니까요.

아무튼 그렇게 수많은 회사들이 인턴을 뽑고 있으니 구직자들도 나름의 네트워크를 만들어서 정보를 공유합니다. 

https://github.com/pittcsc/Summer2022-Internships

이렇게 github에 구인광고를 따로 모아서 공유를 하기도 하고, 



디스코드에 연봉 정보를 공유하기도 합니다. 

IT 쪽에 워낙 많은 돈이 풀리는 시대이기 때문에 인턴들 역시도 엄청난 돈을 벌 수 있습니다. 한국과 미국 시장의 규모를 생각하면 금방 답이 나오는데, 보통 스타트업에서 대박으로 일컬어지는 유니콘 기업의 기준이 $1B, 즉 기업가치 10억달러 이상인데, 그런 기업들이 북미에는 정말 많거든요. 그런 기업들이 수백-수천만 달러의 투자를 받으면 대부분을 인건비로 재투자하고, 그렇게 인턴 월급을 700-800만원씩 맞춰주면 아마존이나 마이크로소프트같은 기업들이 그에 맞춰 따라가는 편입니다.

예를 들면 제가 1월부터 일하기로 계약한 웰스심플 같은 회사는 사실 면접보기전까지 이런 회사가 있는지도 몰랐어요. 주변 친구들이 주식할 때 가끔 쓴다는 얘기만 들었고 거길 갈 생각으로 면접본게 아니라 그냥 면접 경험이나 쌓자는 생각으로 보고, 합격했는데 제시한 월급이 아마존에 준하는 수준이더라구요.

아무튼 이 글을 쓴건 인턴쉽 전반에 걸친 얘기를 하려고 쓴 거니 돈 얘기만 여기까지 하고, 다음은 인터뷰입니다.


인터뷰

한국은 제가 경험해본적이 없어서 비교할 수는 없지만 북미는 빠르면 7월부터, 보통은 8-9월부터 그 다음해 인턴쉽을 할 학생을 선발합니다. 인터뷰 프로세스는 회사마다 조금씩 차이는 있지만 지원 -> 코딩 테스트 -> (리크루터 면접) -> 개발자 면접 -> 채용으로 이어집니다. 하나씩 보죠.


지원

회사 지원은 보통 구직자가 회사 홈페이지를 통해 이력서를 넣는걸로 시작됩니다. 회사마다 넣는 폼이 다르고 요즘은 링크드인이나 workday같은 플랫폼을 이용하는 회사도 많긴 하지만 기본적으로 순서는 이력서 업로드 -> parsing해서 각 키워드를 그들의 템플릿에 맞게 배치 -> 지원자가 수동으로 수정해서 최종 업로드의 순서를 거칩니다. 그렇기 때문에 이력서 한장을 잘 써두면 여러군데 지원할 때 굳이 일일이 타이핑할 필요가 없습니다.

이력서는 한국과 다르게 기본적으로 사진과 생년월일을 쓰는게 법적으로 금지되어 있습니다. 그렇기 때문에 이력서에 사진과 생년월일을 제외하는건 선택사항이 아니라 필수입니다. 아래는 제 최근 이력서에서 개인정보와 몇몇 링크를 제외한 내용입니다.

대략 이런 형태의 이력서를 업로드하고, 템플릿에 맞게 올라갔나 체크해서 수정하고, 최종적으로 서밋하면 끝입니다.

자소서, 즉 커버 레터를 올릴 수 있는 회사가 있긴 합니다만 필수가 아닌 경우가 대부분이라 보통은 올리지 않습니다. 저도 첫해에만 좀 쓰다가 그 뒤부터는 커버 레터는 아예 쓰지 않고 있네요.

이렇게 지원을 마치면 빠르면 몇 주 이내로, 길면 몇 달 이내로 연락이 옵니다. 이 단계에서 떨어질 확률이 90%가 넘습니다. 2021년 한해동안 제가 지원한 곳이 적어도 200군데가 넘는데, 이중 약 20곳이 넘는 회사에서 코딩 테스트를 봤고, 화상 면접 이상 진행한 곳은 WealthSimple(2회), MealMe(2회), Microsoft(2회), Okta(1회), Stripe(1회)의 5곳이니 (앞으로 Google, EA, Amplitude 면접이 예정되어 있긴 하지만 여긴 아직 하기 전이기 때문에 생략하겠습니다), 코딩 테스트까지 갈 확률이 약 10+%, 면접까지 약 2.5%의 확률로 도달한다고 볼 수 있겠네요.

제가 물론 부족한 점도 많습니다만 TA 경력에 인턴쉽 경력까지 나름 갖춘 제가 매번 탈락하는 가장 큰 이유는 비자 문제가 가장 크다고 봅니다. 200개가 넘는 회사들 중 태반이 미국회사였고 제가 아무리 캐나다 영주권을 갖고 있고 캐나다 학교에 재학중이지만 미국 외의 지역에서 미국 인턴쉽을 하기 위해서는 회사가 J-1 비자를 스폰서를 해줘야 하는데, 정말 극소수의 인재 외에는 굳이 자기 팀 예산을 들여서 변호사 써서 비자 진행을 해주진 않으니까요 ㅠ

저는 내년 여름 인턴을 미국 회사 취업을 목표로 했기에 캐나다 소재 회사는 정말 괜찮겠다 싶은 회사가 아니면 지원조차 하지 않았는데, MealMe를 제외하면 나머지 모든 회사들은 캐나다에 본사를 두거나 적어도 법인을 둬서 비자 진행 없이 리모트로 일을 할 수 있게 만든 회사였습니다.

지금까지 가장 일반적인 형태로 지원하는 경우에 대해 설명을 했는데, 이 밖에도 리크루터가 연락을 해서 지원을 하게되는 경우나, 아니면 해당 회사에 아는 사람이 있어서 추천을 통해서 지원을 할 수 있는 경우도 있습니다. 리크루터가 연락하는 경우는 인턴쉽의 경우는 거의 흔하지 않고 졸업생을 대상으로 링크드인 등을 통해 연락이 오는 경우가 많습니다. 추천 제도의 경우 저도 주변 친구들을 통해 많이 지원해봤지만 요즘 워낙 지원자가 많다보니까 신통치 않더라구요. 예전에는 직원이 인재를 추천하는 경우는 서류는 보통 패스시켜주고 면접은 보게 해주는 추세였는데 요즘은 딱히 그렇지도 않나 봅니다.

이렇게 회사들에 지원 서류를 내고 운좋게 눈에 들게 되면 그 다음 단계는 보통 코딩 테스트입니다.


코딩 테스트

코딩 테스트는 거의 대부분의 회사들이 보고, 정말 극소수의 회사들만 바로 면접으로 넘어가곤 합니다. 올해의 경우 웰스심플이 그 케이스였고 나머지 회사들은 전부 코딩 테스트를 먼저 봤네요. 요즘은 지원하면 코딩테스트를 먼저 보내놓고 그걸 통과하면 그 때 이력서를 검증하기도 하는 것 같습니다. 꽤나 공부 열심히 해서 어지간한 코테는 잘 푸는데, 그래놓고 떨어지는 경우가 많았거든요 ㅠㅠ

코테는 거의 대다수가 플랫폼을 사용합니다. codility, hackerrank, codesignal 등이 유명하고, 해커랭크 등의 플랫폼은 회사가 문제 출제도 가능하기 때문에 stripe같은 회사들은 직접 선별한 문제를 내곤 합니다. 문제 유형은 회사마다 각각 다른 편입니다. 예를 들면 마이크로소프트는 edge cases를 꼼꼼하게 체크해야 하는 문제를 좋아한다던가, 아마존은 리트코드 스타일의 문제를 내는데 문제 설명을 자기네들 프로덕트와 연계해서 출제한다던가, 구글은 graph와 dp 문제를 선호한다던가 하는 차이가 있겠네요.

보통 짧게는 70분부터 길게는 180분까지도 내기도 하고, 재작년 트위터 같은 경우는 7문제를 푸는데 제한시간을 일주일 통으로 줘서 자유롭게 풀라는 식으로 한 경우도 있었습니다. 보통 가장 흔한 유형은 90분 3문제, 혹은 70분 2문제 정도입니다.

나중에 테크니컬 인터뷰쪽에서 한번 더 언급하겠지만 올해 들어서 문제 유형이 좀 바뀌었습니다. 작년까지는 리트코드 유형으로 한도끝도 없이 어렵게 내는게 추세였다면, 요즘은 그렇게 난이도를 높이기만 하는걸로는 변별력이 없다고 생각하는지 실제 업무와 연관될만한 문제를 내거나 api를 구현하거나 데이터구조를 직접 짜보는 등의 문제를 많이 내는 편입니다.

예를 들면 stripe의 경우, 문자열의 배열을 던져주면 그걸 parsing해서 개인 사업자인지, 법인 사업자인지 분류하고, 국가코드를 받아서 각 국가별로 필요한 정보가 있는지 (만약 미국-개인이면 생년월일, ssn, 폰번호만 받고, 일본-개인이면 카타카나 이름, 생년월일, 세금신고 번호를 체크) 검증해서 그에 맞는 아웃풋을 출력하는 프로그램을 짜라는 문제를 받았었습니다.

보통 이런 문제들의 유형은 list of strings로 인풋을 받고, 각 문자열마다 파싱하고 다시 priority queue나 dictionary등에 넣는 등 여러가지 코딩 기술과 데이터 구조에 대한 이해를 요구하는 편이라 예전에 리트코드 한참 풀면서 공부하던 때에 비하면 푸는 재미가 있더라구요.

위에서 언급했듯이 이 코딩 테스트를 통과한다고 해서 면접으로 이어지지 않는게 안타까운 점입니다만, 요즘은 워낙 지원자들도 많고 수준도 높은지라 어쩔 수 없죠. 이 코테를 통과하고 며칠-몇주를 기다려서 운이 좋으면 다음 면접으로 넘어갑니다. 이 단계에 들어서야 겨우 그 회사 사람을 전화통화로나마 얘기해볼 수 있게 됩니다.

글이 너무 길어져서 좀 잘라서 올려야 할 듯 하네요. 다음 편에서는 폰 스크리닝, 테크니컬 인터뷰, 오퍼 등에 대해서 얘기해볼까 합니다.

혹시 궁금하신게 있으시면 댓글로 언제든 물어봐주세요.

12
5
  • 댓글 5

  • OKKY
    3k
    2022-01-01 02:51:44
    해당 게시물은 관리자에 의해 사는얘기에서 칼럼로 이동 되었습니다.
  • OKKY
    3k
    2022-01-01 02:53:58

    좋은 글 감사드립니다! 2부도 기다려지네요 ㅎㅎ

  • 욘호
    324
    2022-01-04 13:57:13

    외국을 한번도 가보지 못한 1인으로서 글로나마 느낄수 있어 좋았습니다 

  • HTTYD
    188
    2022-01-05 23:14:16

    좋은 글 감사합니다.

    코딩테스트 플랫폼은 리트코드가 그래도 제일 괜찮다고 생각하시나요? 혹은 해커랭크가 더 괜찮을지요?

  • joshyun
    268
    2022-01-06 01:54:47

    HTTYD 

    엄밀히 말하면 리트코드는 코테 플랫폼은 아니긴 합니다. 그동안 코테 봐온 경험으로는 회사들은 해커랭크를 선호하는것 같습니다. 최근에는 코드시그널을 쓰는 회사들도 좀 있구요.

    코테를 준비하는 입장에서는 리트코드가 가장 문제가 다양한 편이라 저도 최근 2년간 프리미엄 결제해서 약 480문제 정도 풀어왔었는데요. 요새는 막 빡시게 어려운 문제 찾아가며 공부하는 시기가 아니라서 코드시그널에서 문제를 풀곤 합니다.

  • 로그인을 하시면 댓글을 등록할 수 있습니다.