上个季度我在 Costco 面了 senior SWE onsite,system design 那轮是最有意思的部分,值得单独开一帖。
我拿到的题大概是:设计一个库存追踪系统,让仓库和电商网站之间近实时同步。非常贴合他们的业务。你能感觉到这就是他们真实工程团队会遇到的问题。
他们想看到什么:
他们不希望你一上来就报 Kafka 的名字。面试官问的第一句是“what are the consistency requirements here(这里的一致性要求是什么?)”,直接定调。他们在乎 trade-off,不在乎技术八股。我大概花了 15 分钟只做需求范围和 edge case 的澄清,才开始画。
加分点: 讲清仓库库存(批量更新,允许 15 分钟延迟)和线上结算(要足够准确,避免超卖一台 $3,000 的冰箱)之间的差异 提到 eventual consistency 和 compensating transactions 让设计保持无聊且可靠:一个消息队列,一个带 write-ahead log 的 inventory service,一个给读多的商品页用的缓存层
不重要的点: Kubernetes 细节 具体 AWS 服务名(他们在 AWS,但不完全依赖) 花哨的 ML 或 streaming analytics
形式:55 分钟,一个面试官加一个“做笔记的人”(可能是 shadow)。Zoom 白板用的是他们自己的 canvas 工具,不是常见的 CoderPad。
级别上这轮明显在对标 senior/staff。追问会深挖 failure mode:比如 Black Friday 峰值时消息队列落后怎么办,怎么恢复过期的缓存条目,等等。要熟悉 failure mode。
如果你来自 startup,规模数字都是真实但不夸张:他们处理的是百万级订单,不是十亿级。合理的设计就够了,不需要 Google 级方案。