刚结束 Wells Fargo 的系统设计轮,面的是 Senior 的 SWE 职位(他们对外不公开 L-number,但内部大概对应 L5/senior IC)。趁还新鲜写一下,因为我准备时几乎找不到任何具体信息。
这轮 60 分钟,两位工程师,其中一位是 hiring manager。形式是:45 分钟设计,15 分钟 Q&A。没有 LeetCode,纯设计。
我拿到的题大概是:设计一个交易通知系统,要支持多渠道(SMS、email、push)的高量告警,并且保证送达和去重。非常符合银行场景。他们非常看重可靠性和一致性,而不是单纯追吞吐。
他们重点追问: 同一笔交易如果触发了两次服务,你怎么避免重复通知?他们明确希望你讲出 idempotency key。 你用什么 DB schema 跟踪投递状态?他们让我把表字段一列列走一遍。 如果服务故障后有 5000 万客户同时登录,你怎么扩展 fan-out?(核心是:backpressure、队列深度、优雅降载。) 合规角度:你能不能向监管证明哪些消息在什么时候发出?审计日志怎么设计。
我是在现场画白板(Charlotte 办公室)。如果你在意颜色,可以自己带马克笔。
让我意外的一点是:他们会花实打实的时间讨论故障模式,而不只是 happy path。我猜因为这是金融基础设施,他们默认希望你偏“多疑”一点。如果你来自那种「先上线,重试以后再加」也能接受的 startup,来这里面试前最好调整下叙事方式。
我提的期望是 $175k base,recruiter 没啥反应。看看最后会不会出 offer。
欢迎提问。