几个月前我走完了 Reddit 的 L5 system design loop。分享下笔记,因为我准备时找不到新的信息。
senior/L5 level 他们会做两轮 system design,都是 45 分钟。一轮更偏基础设施(比如:设计一个 content feed、设计一个通知系统),另一轮更偏产品(类似:你会如何在大规模下重做投票系统)。
他们真正看什么: 你能不能在画框图前先把问题定义清楚 你知不知道什么时候该用 queue,什么时候该直接 API 调用 你能不能在不被提示的情况下讲清取舍 你对数据存储有没有真实观点,还是只会说“it depends”等着别人追问
面试官风格差异很大。有一位很健谈,几乎是协作式。另一位很安静,让我 drive 了大概 20 分钟才开始提问。别把沉默当作认可或否定,继续讲就行。
Reddit 的 infra 确实很有意思。他们几年前把不少 feed 架构迁到 ranking-service 模型上,有些面试官会暗示他们做过的真实问题。如果你能接住,就顺势深入。比如你问「你们怎么处理大规模 vote manipulation」,当面试官确实搭过 anti-spam 层时,这个问题的分量不一样。
有个点我被绊了一下:投票那轮我太偏 availability,没有讲够 consistency 的取舍。CAP 定理在这里不是面试八股,而是真实产品约束。
我感觉定级的关键在于:你是否会主动抛出难点,而不只是被问到才回答。想拿 L5 credit,就要自己把 edge cases 摆出来。
整体我觉得这两轮挺公平。不是算法谜题那种难,而是「你能不能真的把一个分布式系统想清楚」那种难。如果你一直在刷 leetcode、没怎么读 kafka,那反而更难。