这个 loop 我走了两次。一次内部转岗,一次外部面试。两次 system design 都是最能把「认真准备过的人」和「只是自认为懂的人」分开的那一轮。
形式:45 分钟,1-2 个面试官。前 5 分钟是框定问题。你需要主导。他们不会在你钻牛角尖 20 分钟时把你拉回来。
他们在 L5 真正想看到的: 你能在没人手把手带的情况下给模糊需求定范围 你理解 tradeoffs,不只是给方案。「我们可以用 kafka」如果你说不出为什么,以及为什么不选更简单的队列,那基本一文不值 你能按组件拆解,而且这些组件可以独立扩缩、也可能独立故障
我拿到的题:design a URL shortener(经典题,但他们会深挖一致性和读多场景的扩展),design a notification system(这题让我意外,围绕投递保证和重试逻辑有很多细节)。
在 L5 他们不找「完美设计」。他们要看到你真的跑过分布式系统,从真实踩坑里长出来一些观点。如果你唯一的输入是 leetcode 和 youtube 视频,他们看得出来。
comp 背景:NYC 2026 的 L5,base 大概在 $220-250k,看谈判,RSUs 另算让总包更有意思。但 system design 才是定级信号,比 coding 更关键。
有两件事我真希望进去前就知道。第一:一定要把你的假设明确说出来,不要默认对方懂你在讲什么。第二:尽早问清楚规模要求,并且在你改变方向时回到这些要求上。面试官能看出来你有没有把自己的约束条件搞丢。
最后的来回问答(大概 10 分钟)是他们 probe 边界的时间。「what happens if that service goes down(如果那个服务挂了会发生什么)」,「how do you handle the thundering herd(你怎么处理 thundering herd 问题)」,「walk me through a failure scenario(带我走一遍一个故障场景)」。我见过不少候选人前面设计挺扎实,但这一段完全崩掉,因为没法临场反应。