大概六周前刚面完 LinkedIn frontend SWE 的 loop,职位在 feed infrastructure 团队。4 年经验,背景偏 React。分享一下,因为我面试前能找到的前端信息真的很少。
整个 loop 是 5 轮加一个 phone screen。
Phone screen: 一道前端相关题。他们让我做一个 UI 组件:带分页的列表,有搜索输入框,并且要对 API 调用做 debounce。他们要能跑的代码,不要伪代码。我用的是原生 JS 加一个 debounce 工具函数,因为他们说框架随我选,我不想浪费时间搭 React 模板。看起来完全 OK。
Onsite:
Round 1,前端 coding:做一个 rate-limited 的 button 组件,点击后会 disable 自己 N 秒,还要处理边界情况(快速连点、组件 unmount)。这轮用 React。他们很在意 cleanup:你有没有在 unmount 时 clear setTimeout?有没有处理 unmount 之后 state 仍然更新的情况?这些就是他们盯的「坑」。
Round 2,算法:一道 LeetCode medium 风格题,不是前端特化。二分查找变体。说实话有点突兀。算法还是得刷,就算是前端岗位也会测。
Round 3,system design(前端):设计一个协作文档编辑功能(想象在 LinkedIn 里做个轻量版 Google Docs)。这轮开始有意思了。他们想聊冲突解决、websocket 连接管理、乐观更新、离线状态。Operational transforms 和 CRDT 也会提到。我不觉得你需要实现 OT,但你要知道问题是什么。
Round 4,behavioral:比较标准,STAR 格式。他们问我一次因为技术限制不得不 push back 设计稿的经历,以及一次我交付了一个自己不完全满意的东西,之后怎么处理。
Round 5,hiring manager:偏聊天。为什么 LinkedIn,你关心什么产品,你的工程理念是什么。
总体 bar 像中档 FAANG。难度不至于 Meta/Google 那个级别,但明显高于 Series B startup。我建议按这个强度准备:算法要稳,JavaScript 要有深度(不只是框架表面),以及准备一套前端 system design。
最后拿到了 E4 offer。我拒了(comp 不如我手上另一个)。