취준하고 있는 미국 대학 다니는 피붕이임.


PS 좀 팠던 피붕이들은 일반적인 개발 회사에 만족하지 못할 확률이 높다고 생각하고,

퀀트 펌에는 수학, PS 왕년에 좀 치던 사람들을 우대하는 경향이 꽤 크고 대우가 워낙 좋아서,

이에 관심있는 사람들도 꽤 있을 거라고 생각함.


그래서 한국 퀀트펌이 미국과 얼마나 비슷한지는 잘 모르겠지만,

내가 면접 봤던 퀀트펌에 대해 채용 과정을 공유하고 싶음.


결과는 최종에서 탈락했는데, 내가 했던 시행착오들을 혹시 관심있을 피붕이들은 되풀이하지 않기를 바래서임


그리고 거기 한국인이 없었어서,

여기다 썰 풀어도 문제 유출로 걸릴 가능성이 낮을 것 같아서 공유하는 것이기도 함


여기 말고 다른데는 면접까지 가본곳이 없어서 다른 퀀트펌들도 이런지는 잘 모름



내 스펙

Top30 이내 미국 대학 CS, GPA 3점 후반, 학사졸, 코드포스는 레드 못찍어본 오렌지~찐렌지

탑회사 인턴 3개월 경험 있음.

nlp관련 프로젝트로 교내수상 경험 있고 경제/금융 관련 프로젝트는 경험없음.

PS 수상이력 없음


회사 스펙

10명대 규모의 소수정예 펌, 채용공고에서 주장하기로는 초봉 30만달러 이상


채용 포지션은 두 가지였음.

리서치 엔지니어와 소프트웨어 엔지니어


리서치는 알고리즘 트레이딩 방법을 연구하는 쪽에 더 가깝고

소프트웨어는 그런 트레이딩 시스템을 빠르고 안정적이게 구현하는 쪽에 가까운듯


난 리서치로 서류를 넣었는데, 결과적으론 두군데 모두에 지원하게 되었음.



1차)

서류 이메일로 보내고 며칠 후에 이메일로 연락이 오고 폰 스크리닝 일정을 잡음

실무자는 아니고 HR쪽 일하는 리크루터 같은 사람이었음.


엄청 간단한 것들 물어봄 (bfs vs dfs 차이점, 퀵소트 최악 시복, 간단한 수학퀴즈)

그다음에 온라인으로 링크 줘서 코테 치게 하는데 리트코드 미디엄정도 되는거 45분에 2개 풀면 됨.

코딩 인터뷰가 아니라 그냥 코테였는데 이건 그냥 딱 사기꾼들 거르기 정도의 목적인듯


그 다음에 리크루터가 리서치, 소프트웨어 둘다 지원할래? 라고 해서

둘다 지원하겠다고 함.



2차)

며칠 후에 연락 와서 한시간 정도 되는 2차 면접 일정을 잡음.


앞에 것보다는 좀더 난이도 있는 질문들이 나왔음

- vector의 push_back 시복이 왜 평균 O(1)이 되는가

- list보다 왜 vector가 더 빠른가

- 베이즈정리 등 간단한 조건부확률

- 금리가 높아질/낮아질 경우 발생하는 현상들 생각나는 대로 몇가지


별 무리없이 다 대답하고 나니 다음날 이메일로 테이크홈 과제를 줌.


과제는 L3 마켓 데이터 북과 매칭 오더를 구현하는 거였음.



Tick-Level Order Books: Technical Product OverviewThis article provides a technical description of Kaiko’s recently launched tick-by-tick historical order book product.claramedalie.medium.com


금융 사전지식이 없다고 쫄 필요는 없고 그 개념이 뭔지 설명하는 짧은 텍스트를 줌.


- 시간제한은 72시간임.

- 리서치로 지원하던, 소프트웨어로 지원하던 과제 내용은 똑같음.

- 단 리서치는 파이썬으로도 과제를 할수 있고, 소프트웨어는 c++만 가능. (리서치가 c++로 구현하면 가산점)

- 소프트웨어는 설계 문서와 테스트 모듈도 다 합쳐서 72시간 내에 구현해야함.

아니면 최종 면접을 소프트웨어로 볼수 없음. (리서치가 이걸 하면 가산점)

- 외부 라이브러리 쓰는 것은 가능


난 욕심 있어서 소프트웨어 커트라인까지 다 구현했는데 72시간 내에 하기는 정말 개빡셈


일주일 쯤 후에 최종면접 보자고 연락 옴.



3차=최종)


면접 시간은 6시간이었음.


리서처 직군 면접 2시간

중간에 쉬는시간 1시간

소프트웨어 직군 면접 2시간

기타 인성 면접? 1시간


아마 두 직군 면접 중에 하나만 쳤다면 3~4시간에 가능했을거라 생각됨.



리서치는 PS/수올틱한 질문들과 수학, 경제 관련 퀴즈들을 몇개 물어봄.

면접관으로는 20대 후반 정도로 되어보이는 남자 한명과 여자 한명이 들어왔음.

화상에 뜬 이름으로 면접 끝나고 검색해본결과 남자는 중국인 코드포스 레드임. 여자는 모름


- 문제 하나는 

https://atcoder.jp/contests/arc152/tasks/arc152_b

이거랑 꽤 비슷했음.


다른 문제는 본적은 없는 문제들인데 저거랑 비슷한 느낌의 수학적 직관을 물어보는 ps틱한 문제들을 서너개 줌

코딩은 따로 시키지 않음


- 경제 관련 문제는 복잡한 수준의 금융수학은 별 필요없는것 같고,

금리가 높아지면 채권가격은 어떻게 되는가? 왜 그럴까?

너 암호화폐 해봤냐? 너가 암호화폐를 다루고 싶다면 이거에 대한 밸류에이션은 어떻게 매기면 좋을까?

확률분포 관련 간단한 질문 몇개


이런 질문들이었음


PS 문제들도 내가 이런 수학성 애드혹에 강하지 않았고,

금융쪽 주제들은 평소에 고민을 많이 해보지 못해서 그렇게 면접을 잘 치르지 못함.


그래서 리서치 쪽은 아 이거 힘들겠다 싶었고, 소프트웨어 쪽이라도 붙으면 좋겠다 생각했음



한시간 쉬고 소프트웨어 면접 들어갔는데 하.. 어림도 없음

40대쯤 되는 개발 리드로 보이는 백인 아재 한명이랑, 아까 들어왔던 코포레드 중국인, 이렇게 두명이 들어옴


여기서는 ps스러운 질문과 경제 관련 질문은 전혀 묻지 않고, 프로그래밍 (특히 c++) 관련된걸 엄청 깊게 물어봄

처음부터는 쉬운 질문으로 시작해서 갈수록 질문 난이도가 꼬리를 물고 가파르게 상승하는식.


- 스마트포인터 써봤냐? 

-> unique_ptr과 shared_ptr 차이는 뭐고 어떤때 쓸까?

-> shared_ptr의 레퍼런스 카운팅을 내부적으로 구현하는 데는 여러 가지 방식이 있는데 이거 알고있냐?

혹시 알고 있다면, 그 방식들을 비교해보고 장단점을 설명해봐라


- 멀티프로세스가 멀티스레드에 대해 어떤 경우에 더 좋고 어떤 경우에 더 나쁠까?

-> 이거와 관련되어 본인이 코딩하면서 그 장점이나 단점을 체감했던 경험을 설명해달라.


- (멀티스레드 링크드리스트 관련 코드 주고) 이 코드에서 발생할 수 있는 버그가 뭘까?


- 세그멘테이션 폴트 관련 본인이 코딩하면서 겪었던 디버깅 경험을 설명해봐라.


- 디버그 빌드에서는 절대 발생하지 않고 릴리즈 빌드에서 크래시하는 버그를 들어보거나 겪어보았는가?

겪어본 사례 있으면 이야기해보라.


- 컴파일러가 잘 되던 인라이닝 결정을 실패할 수 있는 코드체인지에 대한 경험이 있는가?


- c++ 표준 라이브러리의 쓰레드풀링은 몇가지 문제점이 있는데 이것과 그 해결방안



개발리드 아재만 저런 질문을 하는게 아니라 레드 중국인 형님도 상당히 개발잘알이라 30%정도의 질문은 그사람이 한듯

걍 리서치 세션에서 받았던 질문보다 더욱더 좃털림. 제대로 대답한거 반도 안될듯


그 다음엔 내가 과제로 했던 L3 마켓데이터 북빌딩 코드를 끄집어내온뒤

그거에 대해 한줄한줄 코드리뷰를 하면서 나를 개털기 시작함.


- 여기엔 왜 이 라이브러리를 썼니? 이 라이브러리의 장점이 뭔가? 


- 에러처리는 왜 이렇게했니?

정상적인 마켓 데이터가 서버 상태에 따라서 이런 식으로 일부만 손상되어 들어올 수도 있는데

너는 구현할때 그냥 데이터 row 자체를 버려버렸더라. 이렇게 일부가 손상된 데이터를 조금이라도 재활용할 수 있는 방법이 없을까?


- 니 코드 제출 전에 벤치마킹 해봤냐? 어디가 병목이고 어떤 경우에 병목이 가장 많이 발생할까?


- 트레이딩 특성상 트래픽이 시간에 따라 균일한게 아니라 특정 시간에 엄청 몰리는데

이거를 처리하기 위해 니 코드에 어떤 점들을 개선해야할까?



뭐 이런 질문들


정신없이 박살이 나고 멘탈이 나간 채로 조금 쉬고

그 다음엔 30대 쯤 되어보이는 ceo가 화상으로 들어와서 1시간 인성 면접 세션을 침.


- 평소에 트레이딩 관련 관심이 얼마나 있냐? 공부 얼마나함? 수학이든 CS든 뭐든


- 너보다 잘 모르는것 같은 동료가 너랑 다른 기술적 의견을 주장하면 어떻게 할래?


- 너가 받은 성과 평가에 너 자신이 동의할 수 없으면 어떻게 할래?


- 회사 동료가 자꾸 정치떡밥 꺼내면 어떻게 할래?


- 너가 생각하는 같이 일하기 좋은 동료의 기준은 뭐야? 니 생각을 말해줘


이런 질문들

뭐가 정답인지는 잘 모르겠는데 어차피 앞의 기술면접 세션들을 워낙 조져서 답없겠다 싶었음


면접 끝나고 수고했다고 한 뒤에 결과 며칠 내로 알려주겠다고 함.

앞에 이미 써놨지만 역시나 탈락




아무튼 나는 정말 배워야 할 점이 많구나, 세상엔 정말 숨어있는 고수가 많구나.. 하는 걸 느꼈음


퀀트 관련 다음 기회가 있을지는 모르겠음.


지금은 원서 많이 넣은 다른 회사들 중에 최종면접 남은 곳이 몇개 있는데 그거라도 최대한 잘 준비할 예정