2025 年底我面了 NYT 的 system design,岗位是 senior 级别,加入 platform team。写一下我看到的,因为和我面之前的预期不太一样。
他们给我的题目: 设计一个重大新闻事件的内容分发系统,要求在不到 5 分钟内,从基线流量暴增 50-100 倍。比如:选举之夜、突发新闻这种。
你马上能明白为什么:NYT 真的会遇到这种情况。2024 年选举之夜是他们史上最大的流量事件之一。所以这不是泛泛的「design twitter」,而是和他们工程现实强绑定的题。
他们在意的点: 多层缓存策略(CDN、应用层、DB 读副本)。我每个假设都会被 push back。 文章在流量高峰时中途更新,cache invalidation 怎么处理?好问题。 数据库写入瓶颈:他们希望我深入讲读写分离和分片决策。 优雅降级:origin 顶不住时网站怎么做?返回 stale?排队?我在这里讲了很多。 他们还问我怎么做 instrument。对他们来说 observability 不是事后补的。
他们没那么关注的: 纯 ML 推荐系统、为了拆微服务而拆微服务、任何花哨的分布式一致性玩法。他们想要的是无聊但可靠、能扛混乱的基础设施。
形式: 60 分钟。一个面试官,全程不断追问。没有白板工具,就是口头解释,我在共享文档里画了些粗糙的 ascii 草图,也完全够用。
怎么准备: 说实话,去理解 CDN 怎么工作(特别是 Fastly,他们在用),读几篇 NYT 工程博客的公开文章,再做两次 system design mock,重点练 graceful degradation 的视角。「先坏的是哪儿,怎么别让它级联崩掉」这个心智模型对他们的题很有用。
我感受到的 bar 是:你能不能在压力下对真实系统清晰推理,做出有理有据的取舍,并且不用别人提示就能把 failure mode 讲明白。能做到这些就没问题。