刚结束 Shopify 的 senior backend 岗面试流程。这里重点讲 system design,因为我觉得网上对这一轮的误解最多。
他们内部不叫 L5,但 senior 的 IC 档位大概对应其他公司的 L5。system design 面试 60 分钟,1 个面试官。没有 panel。
他们实际问我的:Design a flash sale system that can handle 100k concurrent checkout attempts for a single product drop.(设计一个 flash sale 系统,能在一次单品开售时承受 10 万并发的结账尝试。)经典电商压测题。结合他们做的东西,非常合理。
他们非常在意: 你怎么处理大规模的库存竞争(乐观锁 vs 队列 vs 预留窗口) 下游服务挂了怎么办(Stripe、履约、邮件) 数据一致性的取舍,尤其是超卖 可观测性。我很早就提了结构化日志和 trace ID,面试官肉眼可见地放松了。
他们不在意: 画一个完美的架构图 背 CAP theorem 的定义 你是不是用过 Kafka(重点是能讲清楚为什么要用队列)
我之前在 FAANG,system design 基本就是白板表演。Shopify 更像一次对话。面试官是真好奇我有没有想过这个问题,不是只在对词汇表。
有一点让我意外:他们很明确地 push merchant 侧的问题。比如,一个只有 200 个商品的小商家,体验上和 Gymshark 这种体量的商家有什么不同?让我以一种之前没完全准备好的方式去思考 multi-tenancy。
时间管理:我在 happy path 上花太久了,差点没时间讲 failure modes。failure modes 要比你想的更早优先。
如果你在准备 2026 年 Shopify senior 的 system design 面试,他们的 engineering blog 其实有一些关于 flash sale 架构的好文章。去读。不是作弊,是在展示你确实对他们做的东西感兴趣。