上个月刚结束 Spotify frontend engineer 的面试 loop,拿到 offer,几周后入职。网上信息太少了,发个拆解。
我的流程:recruiter call、45 分钟 technical screen、然后 5 轮 onsite(2 coding、1 system design、1 cross-functional/behavioral、1 跟 hiring manager)。岗位是某个 web client team 的 mid-level。
Technical phone screen:在 Coderpad 现场写题,偏 JavaScript。题目是 DOM 操作和事件处理,我完全没预料到。不是 LeetCode 那种算法题。要懂 browser APIs、事件冒泡、怎么 debounce,类似这类东西。
Onsite coding 轮:一轮更偏算法(trees、BFS),另一轮是前端专项。前端那轮让我从零做一个 mini component,不用框架,vanilla JS。他们非常看重无障碍语义和键盘导航。我大概 20 分钟写完,然后 15 分钟讨论怎么测试、有哪些无障碍问题。
System design:题目是设计一个实时协作的 playlist 功能。他们想听 state sync、冲突解决、客户端的 optimistic update。本质是前端 system design,这跟后端 system design 不是一回事。投 web 岗一定要专门准备。
Behavioral / cross-functional:很重「tell me about a time you pushed back on a product decision(讲讲你曾经反对过某个产品决策的一次经历)」和「describe how you work with designers.(描述一下你如何和 designers 合作。)」这种。Spotify 的产品和设计团队确实很有话语权,所以他们期待工程也参与产品思考。
定级:我按 mid-level IC 进(有些 org 叫 Squad Engineer 或类似)。bar 感觉挺合理。他们不太搞陷阱,更想搞清楚我怎么思考。
有问题欢迎问。