刚通过 Morgan Stanley senior 的 SWE loop,岗位是在他们 Technology division,NYC,对标 VP 级别。system design 一整轮 60 分钟,和我在 FAANG 准备的完全不是一回事。
第一点:他们非常看重金融系统的约束。不只是「design Twitter (设计 Twitter)」这种风格。我拿到的题本质上是:设计一个高吞吐的订单执行系统,能处理每秒 100k+ 事件,并且要有严格一致性保证。他们特别在 probe 你是否理解为什么只要涉及 trade settlement,eventual consistency 就完全不可接受。
他们主要测: 金融场景下的低延迟 vs. 吞吐权衡 Exactly-once 消息投递(Kafka、幂等、去重 key) 下游故障时怎么保证不丢单 数据库选择:为什么这个规模下不用 Postgres,你会用什么替代(他们似乎对 ClickHouse + Redis 在不同层的组合很满意) 审计日志要求。我是主动提到监管保留要求的,他们明显点头认可。
面试官是 principal engineer,不会让你空口糊弄。我说「我们会做数据库分片」的时候,他立刻追问多腿交易的跨分片事务怎么处理。我没有完美答案,但把取舍讲清楚了,感觉也 OK。
时间管理很重要。我在开头设计上花太久,深挖部分有点赶。他们没打断我,但能感觉进度落后。建议 15 分钟内把高层图搞定,留 40 分钟深入。
面试 level 会极大影响预期。对标 VP(他们内部 ladder 是 VP / Executive Director / MD),他们希望你不用提示就能提到 oncall、可观测性、灾备这类运维关注点。这不是加分项,是他们要看的信号。
补充一下场景:即使是「onsite」也是视频面试,用他们自己的 MS Teams。白板不太好用。我用共享 Google Doc 打了个类似 ASCII 的图,完全够用。