刚走完 Mastercard 的 Senior SWE 岗位整套面试(payments platform team,NYC office)。趁还新鲜写一下,因为我准备的时候几乎找不到细节。
system design 轮是 onsite 两个 technical 面试里的一个。面试官是 transaction processing 方向的 principal 级别工程师。他给了个很模糊的题:设计一个 payment notification system,要能给 5 亿张卡做实时提醒。非常 Mastercard 味道的题。
他真正关注的点: 吞吐和延迟的取舍。他一直追问:节假日流量峰值怎么办?你的队列怎么处理 backpressure? 幂等性。我很早提到了,他立刻就想深挖。放在 payments 公司很正常,但他在这块异常细。 故障模式。不只是“加重试”,而是:跨 region 的部分失败长什么样?你怎么知道通知是 delivered 还是只是 sent? 数据一致性模型。他问我 notification state store 会选 eventual 还是 strong consistency,为什么。
他不太在意的: 具体 AWS 服务名字。我在画 Kafka/Kinesis 的对比,他对哪一个都不执着。他看的是概念,不是厂商。
这轮 60 分钟。前 10 分钟澄清问题(我问了通知渠道:push、SMS、email),然后大概 30 分钟在共享白板文档上设计,然后他用 15 分钟来挑我设计的毛病,最后 5 分钟他解释他们在 Mastercard 实际怎么做。最后那部分其实挺有用,也感觉是个好信号。
总体 system design 的门槛像是扎实的 senior bar,但不像 Staff 那么高。比 FAANG 的设计题更不含糊,也更贴近 fintech 约束。如果你做过 payments infra,你会很熟。如果没有,建议面试前补一下 at-least-once 和 exactly-once 的投递语义。
大概 10 天后拿到 offer。愿意回答问题。