今年早些时候我面了 Two Sigma frontend engineer,岗位在他们 internal tools 团队。想分享一下,因为网上几乎没有关于 quant firm 的 FE 面试是什么样的内容,而且我的经历比预期更怪,但有些地方怪得挺好。
背景: 我 4 年 YOE frontend,主要 React 和 TypeScript,做过一些 GraphQL。没有金融背景。
电话初筛: 45 分钟技术电话。他们提前发了 coderpad 链接。我们做了一道 JavaScript 题(不重算法,更像:给一个嵌套数据结构,把它 transform 成一个 normalized 的形状)。他们问了我在复杂组件树里怎么处理 re-render,以及我对状态管理取舍(zustand vs. redux vs. context)的理解。是正常对话,不是挖坑。
线上 onsite(4 轮):
第 1 轮:JS/TS 深挖。 Event loop、closures、prototype chain、async/await vs. Promise.all。他们问到一些我有段时间没想过的角落情况。还有一个 TypeScript generic constraints 的问题把我难住了一点。我会建议把「how does the JS engine actually work(JS 引擎到底是怎么工作的?)」这类内容复习一下,不要只会「how do i use React.(我怎么用 React。)」。
第 2 轮:UI system design。 给一个 prompt:设计一个实时数据 dashboard,展示市场信号(他们明确说不需要金融知识,当成流式数据就行)。要考虑组件层级、WebSocket 处理、在高频更新下怎么避免不必要的 re-render、以及大表格的 virtualization。这轮感觉和实际工作最相关。
第 3 轮:coding。 从零做一个小交互组件。类似:一个可排序、可筛选、带分页的表格。他们看重干净的 state 管理和边界情况处理(空状态、loading、错误处理)。
第 4 轮:行为面试 + culture。 很标准的 STAR。他们一直追问「tell me about a time you worked with stakeholders who didn't understand technical constraints.(说说你有一次和不理解技术约束的 stakeholder 合作的经历。)」,各种变体。
我的整体感受: 这是一套真正的 FE 面试,不是那种把算法题塞进来就说是 frontend 的伪装 SWE 流程。UI system design 这轮确实很贴岗位。