前情提要:
工作日没有太多时间写,就更一集吧。
和之前的 IMC/Epoch 一样,Optiver 也是搞金融的,据说应届就可以给到 200K ,不知真假。Optiver 这条鱼是我海投的时候不小心网到的,我已经记不清是怎么投的他们家了。所以海投并不是没有机会,只是机会比较少。(其实它们家已经在前面那个列表里列出来了,有兴趣请自己去翻前面的文章) Optiver 是我经历的最漫长的公司,光我记忆中的面试+沟通会就不下七轮,一句话总结,就是一脸懵逼的进来,一脸懵逼的出去。
总之 HR 先跟我来了一个会议确认一下意向,解释了一下面试流程:
Interview Process
Hacker Rank (2 hr) -> Virtual Coding Interview -> Experience (Role Related Knowledge) -> Behavioural (90 min) -> Design -> Final Interview -> Offer
HackerRank 的题目就一道算法题,某个加油能开多远问题的变体,应该是 medium/hard 难度,限时两个小时。HR 问我需不需要几个星期准备一下,我信誓旦旦的表示放马过来吧,劳资天天写代码不用临阵磨枪。
然后没做出来……
这就非常尴尬了,有多尴尬呢,看邮件:
我:
Hi XXX,
Ooops, I failed to submit the perfect code in the given time. :-)
Thanks for your time.
对方:
Hi XXX,
Oh, I see. You seemed so confident over the phone. What was the learning from this? It’d be great to get your thoughts on the Hacker Rack challenge?
Learning? 我给您写个检讨书呗?我说:
Hi XXX,
No excuse, it seems like a medium problem, and I should have finished. Maybe you can send the hackerrank challenge before the first interview to save our time.
Anyway, great talking to you!
结果对方表示想再给我一次机会,我能怎么办?当然是选择原谅他啊!
结果还是那个题目,原封不同的给我发过来了,合着贵公司题库里就一道题啊?
无论如何,要是再挂了我肯定装死再也没勇气回复了。好在这次没挂,继续下一轮——我很难说是一个面试——我更愿意称它为“有监督的做题”。在限定时间内做一道 medium 难度的算法题,面试官全程面无表情除了跟我解释题目之外似乎不想跟我有过多的交流,更像是一个监工,或者说,狱警。
这个算法题我过了,但是没完全过,有个 test case 没过我没来及修好就到时间了。对方继续面无表情地跟我说再见……
然后我莫名其妙地进入了下一轮……Experience 面试就是聊过去做过的事情用过的技术,最好能深入讲解,然后他们会针对一些问题深入问,这个倒是跟国内十分相似。我讲的是 AWS DynamoDB ,因为熟读 DDB 那个几百页的 userguide 所以完全不虚,最后对方问我希望未来的岗位做啥,我说希望还搞 JVM ,对方说我们这里都是写 C++的……
喵喵喵?所以是在逗我玩吗……
紧接着 HR 告诉我有个临时插入的面试,大概意思是他们觉得我还行,就是写 Java 不大匹配,所以派了一个 Team Leader 问我有没有兴趣转 C++。都到这个时候了我只能露出渣男本色说我大学里写 C++不少,我很乐意转 balabala 。对方说我们的目标是招人快乐的工作好多好多年,所以不在乎几个月的转语言成本。但是我真的想转 C++么?我自己也不知道,可能……
得加钱吧。
钱到位了您让我去写机器语言我都乐意。随后是 Behavioral 和 System Design 。Behavioral 是每个公司的必考题,到这个时候傻子也知道要准备一下了,网上攻略很多我就不废话了。我是在等我媳妇考 PTE 的时候在楼下的咖啡馆里整理了一堆 Behavioral 问题然后绞尽脑汁地回忆职业生涯里的高光时刻然后把它们一一对上。在我看来,这个玩意更像是开卷的政治考试,只要准备好毫无难度,像我在 Tyro 里被问傻了的“同事跟你观点不一致怎么办”的问题都是入门级别。这轮面试因为准备充分一切顺利略去不提。
在每个面试的间隙,HR 孜孜不倦地发邮件问我,现在对我们公司的感觉如何啊?对我们的感觉有没有改变啊?你还想加入我们公司吗?
Thank you for meeting with XXX and XXX yesterday. How did the conversation go?
Any areas you felt you did well?
Any areas you felt you wish you did better?
What is your impression of Optiver now?
How was the interview earlier? Here are some guide thoughts:
Do you feel you were able to paint a picture (detail communication) on how you work with people and show leadership at work?
Where there any areas that you wish you had better examples? Or explained differently?
What is you impression of Optiver at this point? How is the interview experience?
我只好继续演渣男,说哎呀我越来越爱你了,爱你爱的无法自拔。
下面的 System Design 面试和 IMC 非常类似,给一个很小的场景(类似于实时股价更新系统,服务器需要把股价的更新推送到若干个客户端),设计数据结构、API 并实现之。在所有公司的面试过程中,我所看到的 System Desgin 分两种:大系统——你需要设计一些系统模块并给出调用关系,就是画一堆框图侃侃而谈;小系统——对于一个具体需求设计几个 API 并给出具体代码实现。IMC 和 Optiver 的系统设计面试都是小系统,AWS 是大系统,而我最后接 offer 的公司大小系统都有。大系统设计我看了System Design Interview: An Insider's Guide
一书,很幸运的遇到了原题;小系统设计更贴近日常开发,基本上有实际业务代码经验都不算难。
在 Optiver 的系统面试里,我开始给出了一个设计,实现起来发现有点问题,只好中途修改了一次,最后马马虎虎完成了需求。这次面试完了之后 HR 两天没消息,然后某个周五突然 biu 给我发过来一个下周一的会议邀请,我心说这不稳了么,肯定要跟我谈 offer 了,要是拒绝我的话一封邮件就行了,还用专门约个会议面谈嘛?
结果不出意外的出意外了。一开始 HR 就说我没有好消息,然后给了反馈说系统设计做的不够好,没达到 Senior 的水平,这也不怪你,你不是一个人,我们的 bar 很高之类云云。最后可能是因为我之前演的太逼真,他特别强调说如果你还想来的话,过半年再试下吧。我说谢谢,然后客套两句他就 biu 的关了会议,留我一个渣男原地懵逼。
顺便说一句,搞金融的这几家公司的 WFH 政策基本上都是每周去办公司两三天,Epoch 还问我金融行业工作压力有点大能接受么,我心里说你对神秘的东方力量一无所知……Optiver 面试过程中有一次我提到周六写了一个代码 POC ,他们还问,是 996 吗?你放心我们 Optiver 不搞 996 。我说不是,就是周末自己随便写点代码,心里想我擦 996 冲出亚洲走向世界了啊。
最后总结一下,O 家不建议写 Java 的去投,转 C++是一方面,关键是比较事逼。面试体验不能说不好(尤其是拒人还给反馈实在是太赞了,完爆 Tyro 和 AWS 三百六十条街),只是觉得演渣男演的有点累。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.