距离我完成 Starbucks Technology frontend 面试全流程已经三周了,趁还新鲜发出来。
我投的是他们 Digital Commerce 团队的一个 Senior Frontend Engineer 岗位。这个团队负责 app 和 web 上的 order-ahead 体验。考虑到用户规模,他们也提到了一些 web accessibility 的工作,我觉得挺有意思。
面试轮次。先 recruiter screen,然后一个 60 分钟的技术测评(take-home 风格,给 3 天完成),接着是线上 onsite 四轮:coding、system/component design、对 take-home 的技术讨论、behavioral。
Take-home。做一个简单的 React component,从 mocked API 拉取产品列表,处理 loading/error 状态,并支持按品类筛选。听起来很基础,但他们评估的是:TypeScript 的正确性、可访问性(ARIA labels、键盘导航)、error boundary 处理,还有一个 readme 说明你的取舍。我大概花了 5-6 小时。如果我一开始就知道他们看重什么,可能 3 小时就能做完。一定要加那个 readme。
Coding round。一道中等 LC 题(数组操作)加一道 DOM 操作题。DOM 题是纯 JS 写的,不用框架:给一个嵌套评论串的 JSON 结构,递归渲染到 DOM。挺复古,但很实用。
Component design。设计 Starbucks 的 loyalty rewards 侧边栏:展示积分余额、即将到来的奖励、以及一个兑换 CTA。他们想看你怎么考虑状态管理、API 合约设计、以及响应式。我讲了用 React Query 管 server state,用一个简单的 context 管本地 UI state。他们问了 optimistic updates,在电商语境下确实是个好问题。
Behavioral。协作占比很大。有一道题专门问你和 designer 在实现可行性上有分歧时怎么合作。准备一个具体故事。
他们用的技术栈。React、TypeScript,部分页面用 Next.js。没有 Angular,谢天谢地。只要 React 熟就没问题。
Offer timeline。onsite 后大概 10 天收到回复。先口头 offer,然后 48 小时内给书面。流程很顺。