我在 2026 年春季走完了 charles schwab 的 senior swe 面试(他们内部不叫 L5,但这个 band 大概能对应上),岗位在 trading infrastructure 组。system design 是最有意思的部分,我来拆解一下。
这一轮 60 分钟,两位工程师一起面。其中一位是 principal。他们给的题是设计一个高可用的 order routing system。很经典的 fintech 领域。
他们在意的点: 容错。他们希望你明确讨论:下游服务在交易中途不可用会发生什么。partial failures、rollback、idempotency keys。一开始就会追问。 延迟 vs 正确性的取舍。在 fintech 里,你往往不能像社交 app 那样为了速度牺牲正确性。他们会直接 push 你。 审计链路。我很早就提了 event sourcing,他们眼睛都亮了。要有每一次状态变化的持久日志,而不是只有当前状态,这显然是他们很看重的模式。 在设计层面体现合规。不是深挖法律细节,但会问「how would you design this so that you could prove to an auditor what happened and when.(你会怎么设计,才能向审计人员证明发生了什么,以及发生在什么时候?)」
我开头问了很多澄清问题(读一致性要求、SLA 目标、团队 ownership 模型),他们看起来很认可。
我会跳过的:花太多时间讲通用的横向扩展策略。他们默认你知道怎么 shard 数据库。他们更想知道你是否理解领域特定的约束。
有一点让我意外:他们问我怎么做 schema evolution 才能零停机。这是从 audit log 讨论自然延伸出来的。这个点你最好有一个成熟的答案。
总时长:大概 50 分钟讨论,10 分钟留给我提问。他们 Q&A 时间给得很足,感觉是个好信号。