今年早些时候走了 LinkedIn L5(Senior SWE)loop,system design 这轮是我压力最大的一轮。把我记得的都写下来。
一开始就直接给 prompt,没有寒暄:「Design LinkedIn's feed ranking system.(设计 LinkedIn 的信息流排序系统。)」45 分钟。一个面试官,用线上白板。
他们真正看重的点: 先把问题问清楚再开始。我前 4-5 分钟都在问问题(DAU 规模、读多写多、延迟要求)。他们明显很满意。 你的 data model。他们让我把 posts、users、rankings 的 schema 明确讲出来。 cache 放哪里、为什么。不只是「Redis」,而是 Redis 里放什么、eviction policy 会怎么定。 处理「hot post」问题。如果某条内容爆了,系统怎么优雅降级。
L5 他们不会死磕的点: 我不需要非常深地讲共识算法或分布式事务。氛围更像「你能不能推理 tradeoff」,而不是「证明你背过 Raft」。
他们还追问了一个我有点措手不及的问题:我会怎么 A/B test ranking model。但考虑到 LinkedIn 的业务对 feed relevance 的重要性,这个也很合理。
最后他们问我会怎么在生产环境监控这个系统。SLO、告警阈值、degraded state 是什么样。那部分大概 8 分钟。
如果是 2026 年在 LinkedIn 做偏 senior 的 system design,我的建议是:把 scope 拿住、把假设说清楚,并且永远把你的选择和用户体验或业务结果挂钩。泛泛地说「scale to millions of users」但没有 LinkedIn 语境,效果不太行。