2026 年 4 月刚跑完 Cohere frontend engineer 的面试 loop。想分享一下,因为我网上看到的大多是偏 ML 的,而前端流程完全不一样。
我的背景:4 年 React,主要做 design systems 和数据可视化。申请的是他们 platform 团队的 senior frontend。
一句话总结:这是真的工程门槛,不是 trivia quiz。他们看重 TypeScript、性能思维,以及你怎么把复杂的 ML 输出做成用户能理解的界面。最后这一点是 AI 公司前端岗位独有的。
流程(recruiter screen 之后 3 轮):
Round 1:Coding(60 分钟) 在共享的 TypeScript 环境里做。我两道题。第一题是实现一个可配置 delay 的 debounce(经典题,但他们很在意 immediate invocation 的边界情况)。第二题是 React 渲染题:给一个递归树结构,把它渲染成可展开/折叠组件。要处理 state、事件要干净,不能用外部库。面试官很参与、很协作,不是默默盯着你写。
Round 2:System design/architecture(45 分钟) 设计一个用于 review model outputs 的文档标注 UI。比如高亮文本片段、加标签、持久化状态、处理多位 reviewer 的冲突标签。他们非常看重冲突解决和 optimistic UI 模式。我讲了 selection range API、本地状态 vs. 服务端同步、用 Zustand 做 optimistic updates。他们追问了在上千 tokens 文档上的性能。
Round 3:Behavioral + team fit(30 分钟) 常规影响力问题,但会更偏向和 ML researchers、product 的跨职能协作。他们问:当底层模型行为还在变化时,你怎么着手做 UI?
准备重点:
TypeScript 要扎实。不只是 types,还包括 generics、type guards、utility types。coding 轮是在测你到底会不会写 TS,而不是在 JS 上撒点类型糖。
DOM 和浏览器 API:标注 UI 题需要你知道 Selection API 和 Range 对象。建议补一补那些典型 React 教程里不太会讲的东西。
无障碍:他们在树组件里主动问了我 ARIA roles。要有真答案。
性能:长列表/长文档的 virtualization 两轮都提到了。要知道为什么用、什么时候用。
整体来说,这个前端面试比我预期的更像按 senior 的标准校准的,考虑到他们主产品是语言模型 API,这还挺意外。也算好信号:他们确实认真对待前端。