泥菩萨沉江--HF Trading/hft Dev跳槽记

来自其他站点
Why
  • 分享相对少见的finance / HF Dev跳槽数据点 (多数DP集中于tech)
  • 提炼面试当中的观察
  • 提供sentimental value: “you are not alone”
  • 快照当前市场的难度
  • 抛砖引玉


Where & When

NYC metro, 2024 spring

Who

Nobody,是谁不重要。背景:知名trading firm SDE/SRE,~10 YOE工作经验。
申请公司都在trading行业,从HFT到Asset management,从crypto到commodities,AUM从10M到10s of B。面试了40多家, ~0 offer。

面试

Headhunter/Recruiter:
  • 互相介绍背景,询问跳槽动机,为什么离开当前公司,互相探试底线,culture fit,试探comp
  • Recruiter的嘴,骗人的腿。别信鬼话别表忠心,也不需要在这上面浪费太多感情。没有HR这轮最好,通过后面的面试瓷啊是重点。recruiter可能跟你前一秒还相谈甚欢一见如故,但下一秒直接拒你。你tech面试挂了,别怪别人ghost,能给feedback的都是良心企业。只可惜表演不能停。
  • BQ/experience review/recruiter基本可以合n为一,问的点都差不多,加上elevator pitch,到最后说辞都能背下来了


Online assessment:
  • 业内知名公司,譬如de shaw, hrt, jump trading, SIG, tower research, two sigma都要求experienced hire做OA/Timed test
  • Timed tests,很多有面经可循,有时间的话可以逐一准备。考察范围有的贴近实战,有的空中楼阁,variety很大,不一而足。
  • 有的公司就那么几个题库翻来覆去,可以针对面经准备,但是逐个准备也很花时间。有的用coderpad或者hackerrank自带的题目,或者经常换题,这种自求多福。模拟过程的,别多想,BF先出结果。40分 >> 0分
  • Binary outcome,只会看分,没人会花时间review你的代码。没写完可以试着线下完成发给recruiter,YMMV。你即使经历耀眼,久经战阵,八股初试没做好照样拜拜
  • E.g. 某次我的OA提交输出有format错位,review一下代码,或者比对一下输出,或者用我给的3行diff(out of 100s LoC)就可以fix。无人鸟,卒
  • 6家big names挂在了OA上,时间不够/手法不熟,或者overthink。有公司让一小时写出time series data store并且支持query,卒


Take home exam
  • Trading行业特有的一种考察手段,性价比奇低。经常号称4小时的assignment,多数人可能会花更多的时间。鄙人花了无数的时间,得到的positive结果跟花的时间比,只能说人间不值得。
  • 从DRW到worldquant,从akuna到pdt,从aquatics到3redpartner, 都有take home exam
  • 给个自定义的问题,限定时间(一周)写个小程序提交。需要提交完成的程序包,README等,并且自己提供编译运行和测试脚本。
  • 使用得当,其实比OA/leetcode风格的问题更能考察候选人的真实水平。只可惜reviewer variation极大,同样的一段代码,A公司直接拒,B公司给pass。
  • 问清楚expectation,correctness or performance, more tests or faster speed。茴香豆四种写法,你要哪一种。
  • E.g. 某东欧大叔自己提炼了prod遇到的问题,期望candidate用他想定的特定优化来解决这个问题,但是提供的API和writeup不知所云。要继续吗?
  • 与其花时间在不重要的地方比如perf test,不如多touch up,帮助(junior) reviewer理解代码,但是这反过来又增加了时间开销。所以问清楚考察什么。
  • Opinion: linkedin.com
  • Experienced candidates问问能不能waive,不能的话,life sucks and take it
  • 3家挂在了take home exam,或者茴字写法不是人家要的,或者鄙人不才。这种尤其愤慨,因为花的时间远比面试要多。


Virtual phone/onsite interviews
  • 基本所有的公司都是virtual,某些不正规的公司喜欢让你共享屏幕然后在IDE里写代码
  • Trading公司,特别是HFT,尤其喜欢问C++ trvia。速成的话,推荐一本书:amazon.com。深耕的话,C++的书汗牛充栋
  • 按照出现频率,常见题目:implement exchange limit order book, unique/shared ptr, std::vector, threadpool, lockless spsc queue, std::any, std::optional, deserialization, rate limiting, small vector/string optimization
  • 除了MLP,基本没人问tech风格的system design question,e.g. Design youtube. MLP的tech stack是最像IT公司的
  • Experience review,有的想知道你做过什么,有的想看你在某一领域是否深耕过,有的想套瓷看看问题x你们是如何解决的,你套他别人就打个马虎眼说confidential
  • 公司不论大小(小公司为主),目前喜欢找直接招来可以上手的。问题niche从如何优化FPGA策略,到reference data,如果你不是他们想要的人,直接pass
  • BQ:这个行业work for money,装着在乎BQ的好像只有...芝加哥某option shop?
  • 有些公司的面经万年不变,深度准备也许有奇效


Put my finger into the wind
  • 2020-2022离职同事的去向,现在基本不具备参考价值。很多big names当时扩招,结果消化不良。他们当时能去,你现在不一定能去。
  • 整体感觉下来bar很高,援引原话是“selection process being really tight”。有时过了面试却没有hc,有时虽然面试着但是你知道对方没兴趣或者只是套瓷。
  • 发现许多前同事也在市场上,更加拥挤。
  • LinkedIn premium insights可以看公司的opening和eng team YOY的变化。比如jump trading和tower research,total eng openings一年内同期减少40%, two sigma减少70%;total eng hc一栏,tower缩编了1%,two sigma缩编了4%
  • Glassdoor偶尔会有insights,比如xxx parterner已经n年没发offer了
  • Headhunter能帮忙找到一些小众公司,但是越来越多的集中在crypto space。如果简历不过硬,可以考虑合作,起码有面试。


我学到了什么
  • It's lucky to have a job
  • Big name在这个市场给你带来的只能是过简历关
  • Godbolt就职于aquatics
  • Citadel/DRW可以同时面试n个team,互相之间不通气
  • 广度和深度,二者需要至少沾一头。senior level有,九死一生,没,十死无生。
  • 选择大于努力,时机很重要,保持面试的cadency, know your market value


补充内容 (2024-06-24 02:06 +08:00):

有人问为什么不跳tech。其实comp不是原因,反倒现在senior level comp,tech大过trading。几点:1)面试需要学习SD八股,跟NG站在同一起跑线;2)tech技术栈不太一样,经验大多无法移植(BGM 《从头再来》);3)domain也不同。但fundamentally无本质区别,可以互跳。

新开一帖,简单地从码农角度,介绍一下二者区别
1point3acres.com
40条回复