几周前刚结束 Instacart frontend engineer 的面试 loop。本来以为就是一套比较标准的 frontend screen,但中间有些意外点。把笔记分享给快要面的人。
整体设置: recruiter call,technical phone screen,然后是 4 轮 virtual onsite。
technical phone screen: 一道 coding 题,javascript,在 coderpad 写。他们给的题涉及 DOM 操作和事件处理,不是 react 专项。我当时在想:"哦,他们想看我是不是真的理解平台,而不是只会框架。" 我觉得中等难度,重点在正确性和解释 trade-off。
virtual onsite:
coding 第 1 轮: 还是 javascript。数组/字符串处理,中等难度。面试官很上手,我代码跑通之后还让我中途 refactor 一次。他们想看我怎么考虑可读性和性能,而不是只要测试变绿。
coding 第 2 轮: 更偏前端。他们给了一个设计需求,让我用 react 实现一个小 UI component。他们看重:可访问性(aria attributes、键盘导航)、错误态、以及各种边界情况,不看像素级还原。
system design(frontend): 这轮是前端架构范围,不是后端分布式系统。他们问类似:高层设计一下 Instacart 的 search 体验。考虑:状态管理、从客户端视角的 API 设计、怎么处理 loading states 和部分失败、以及面对上千商品的 catalog 怎么做性能优化。这轮最有意思。
behavioral: 4-5 个 STAR 问题。有一题卡我的是:讲一次你不同意某个技术方向,你怎么处理。要准备具体案例,别太空。
总体印象: 他们确实在意 craft。component 那轮的面试官还追问我对 CSS-in-JS vs utility classes 的看法。感觉像是在认真聊我怎么做前端,而不是走 checklist。
湾区岗位,目标是中 senior level。按 recruiter 之前说法,offer 会在 L4/L5 的区间。我没过 debrief(没给具体反馈,挺烦的),但流程整体算公平。