三周前刚结束 Starbucks 的最终轮。senior SWE 角色,偏分布式系统。写个细拆,因为我进去前几乎找不到任何有用信息。
senior SWE 的形式: 4 轮,全程线上(Microsoft Teams),集中在一天排完,中间每轮 15 分钟休息。
第 1 轮:coding(60 分钟) 两道题。第一道 medium,sliding window 变体。第二道更有意思:一个偏设计的 coding 题,他们给了我一个简化的数据结构,代表一个店铺菜单,让我用 Python 写查询。感觉在测我是否理解业务域。我用 Python 做的,没问题。他们不太在意用什么语言。
第 2 轮:system design(60 分钟) 我在另一个帖子里写过更细。基本是:设计 ordering + loyalty 系统。先高层架构,然后会 drill 到具体组件。移动端下单基础设施确实很有意思,不是个简单题。
第 3 轮:behavioral(45 分钟) 两位面试官轮流问。预期 STAR。他们明确说重点关注协作和客户影响的故事。我不小心把一个故事在第 2 轮和第 3 轮讲得太像,他们发现了。至少准备 5-6 个互相区分开的故事。
第 4 轮:hiring manager(30 分钟) 更偏聊天。聊了我长期的职业方向、我如何从宏观角度看技术决策中的 tradeoffs,还有一些针对前面几轮内容的澄清问题。也高层聊了团队结构和 roadmap。
debrief / 决定:他们说 7-10 个工作日。我第 8 天收到回复。offer 是 recruiter 打电话通知的,不是邮件。
一个让我意外的点: 整个 loop 更像协作而不是对抗。他们希望我成功。第 1 轮我卡住时,他们问的澄清问题是真正的 helpful nudges,不是挖坑。差别很大。