我在 2026 年 5 月走完了 Bloomberg senior 的 SWE 面试流程。分享一些 system design 的细节,因为我准备的时候找不到什么新的信息。
System design 这一轮 60 分钟,两位工程师。形式很经典:whiteboard 风格(远程的话用他们内部的画图工具),从一个模糊的 prompt 开始。
我的题目大概是:设计一个大规模的 real-time news distribution system。这不意外,毕竟他们做的就是这个,但约束条件很重要。他们会把我往这些点上推: Latency 要求(他们非常在意:sub-second 到终端) Fan-out 到上百万订阅者 market data feeds vs. editorial news feeds 的数据模型(他们会区别对待)
他们实际怎么评估:我问了还不错的 scoping 问题,也会直接讲 tradeoffs。他们看起来没那么在意背出来的套路,更在意我能不能对新问题边想边讲清楚。我说「这里我会用 message queue,可能是 Kafka-style,但让我想一下如果需要 per-feed 严格有序会不会改变方案」的时候,他们明显更投入了。
我听说坑到候选人的地方:一上来就 buzzword soup。第一句话就「microservices、Kubernetes、Kafka」但没有动机,至少有一个人据说因此挂了。
时间分配大概是:10 分钟 scoping,25 分钟高层设计,15 分钟对某个组件 deep-dive,10 分钟 Q&A。如果你深度太浅,他们会引导你。
Level 校准:在 senior / L5 这个级别,他们希望你能主导取舍,而不是只把取舍列出来。「这里用数据库更好,因为 X,但如果是 Y 我也能接受 cache」才是他们要的表达方式,不是「两种都行」。
一个我没想到的点:他们真的会问 observability 和 alerting,要作为设计的一部分。不会特别深,但我很庆幸自己主动提到了。
总体来说,Bloomberg 的 system design 更像一场技术讨论,而不是表演。经历过一些更戏剧化的 FAANG-style 面试之后,这点反而挺舒服的。