我做了 Nike 的 system design 轮,面的是 senior SWE 岗(他们对标 L5,内部叫 Senior Software Engineer II)。分享下我的笔记。
先说结论:Nike 不是 FAANG 那种“闯关”式的。system design 一小时、一个面试官,也不会盯着你在分布式一致性上出汗。但话说回来,整体水准绝对高于大多数中型公司。
我的题目:设计一个 nike.com 的实时库存可用性服务,需要扛住一次 product drop(类似 SNKRS,限量发售,30 秒内 10 万并发涌入)。
经典 drop 题。如果你抢过 Jordan,你应该已经懂这个问题了。
他们关心的点: 库存变化时怎么做 cache invalidation(write-through vs write-behind,他们会追问) 你对读写比例的假设,我给的是正常窗口大概 50:1 读写比,drop 时更高 不让超卖,但又不把每个请求都做成同步慢操作 基本扩展性:load balancer、水平 pod 扩缩、CDN 静态资源
他们不会深挖:共识算法、点名 CAP 定理(概念会碰到)、以及任何 ML 相关。
形式:5-10 分钟澄清需求,约 30 分钟设计,约 15 分钟深入一个他们指定的组件(我这次是 cache 层),最后约 5 分钟给我提问。
定级信号:面试官结束后说了一句(很少见他会说这个),在 senior 级别,他们想看到你主导对话,而不是等着被问。我也注意到:我开始讲之后他们就基本很安静,在测试我会不会自己推进还是卡住。
如果你是 L4 对标、但以 senior 身份进去,补一下 caching 模式和异步写的思路。这就是他们主要在测的。