今年早些时候走完了 OpenAI 的 frontend eng 面试流程。先说结论:整体更像通用的 SWE loop,加一点 frontend 口味,不是那种纯框架八股的 trivia quiz。
流程长什么样: Recruiter screen,一个 45 分钟 phone screen(coding),然后 4 小时 onsite(3 轮技术 + 1 轮 behavioral/values)。
Phone screen: 一道 coding 题。中等难度,数据结构。不考 DOM、不考 React,就是很直接的算法题。我有点意外。我觉得他们想先确认基本 coding 能力,再决定值不值得花 onsite 时间。
Onsite round 1(UI/product coding): 这是最 frontend 的一轮。我从零实现了一个小的交互组件。可以用 Vanilla JS 或你选择的框架。他们在意 state management、边界情况、无障碍(accessibility)考虑。不是套路题,就是做出来并解释你的决策。没强制 TypeScript,但我用了也没问题。
Onsite round 2(algorithms/coding): 另一轮 coding。两道题,一道 arrays,一道更偏 graph。中等难度。我感觉他们挺看重这一轮,因为他们想要能写性能敏感代码的 FE,而不是只会把组件接起来。
Onsite round 3(system design,偏 frontend): 设计一个实时协作文本编辑器之类的东西。不是 backend senior 那种完整系统设计,但需要考虑 state sync、websockets、乐观更新、冲突解决。最好在概念层面知道 CRDTs 是什么,即使没亲手实现过。
Values round: 跟别人写的一样。会真聊 AI safety 和负责任的产品决策,别当成走过场。
我还想说一点:他们做的产品跟其他 frontend 工作不太一样。如果你是想做 dashboard 和营销页的 React dev,这里大概率不适合你。如果你想做很新、没人把 UX 走通的 AI 交互界面,现在没有比这里更有意思的地方。
SF mid-senior FE 的薪酬:对标市场顶端,可能比同级 backend SWE 略低一点,但差距不算夸张。