2026 年初在 Twilio 面了 senior SWE 的全套 loop。进了 final round,最后因为薪酬原因没接 offer,但流程确实挺有意思,记录一下。
senior / L5 级别的 system design 轮是 45 分钟。开场是一个很开放的 prompt,比如「design a notification delivery system that handles SMS, email, and push at scale.(设计一个能大规模处理 SMS、email 和 push 的通知投递系统。)」(设计一个能大规模处理 SMS、email、push 的通知投递系统。)这种。你也懂,这题基本就是 Twilio 的产品本身,所以要有心理准备。这不是套路,他们只是想看你是不是懂自己的领域。
他们实际在乎什么: 你怎么做跨渠道的 rate limiting。几乎一开始就会聊到。考虑 per-user 限制、运营商的 throttling、以及 campaign 级别的上限。 Durability 和 retry 语义。如果消息在运营商层面失败,会发生什么?指数退避、dead-letter queue 之类。 幂等。Twilio 的 API 设计上就是幂等的(idempotency keys),所以他们希望你在设计里自然会考虑到。 多租户隔离。平台要服务上千 B2B 客户,怎么保证一个 noisy tenant 不会影响其他人?
面试官挺协作的,不是对抗型。他会用「what if volume spikes 10x during a Flash Sale?(如果 Flash Sale 期间量突然飙升 10 倍怎么办?)」(如果 Flash Sale 期间量突然涨 10 倍怎么办?)这种问题来引导。经典的 breadth probe。
没有白板,用的是共享文档。这轮 system design 不要求写代码。
真正有用的准备: 看他们 engineering blog 里怎么做大规模 SMS,以及复习 webhook 投递可靠性的常见模式。Twilio 的 developer docs 基本就是他们内部系统长什么样的“答案卡”。
有个我没准备到的点:他们问我会怎么监控不同运营商、不同地域的投递成功率。对 design 面试来说非常偏 ops 的问题。要带点 observability 的思路。
如果你在准备 Twilio senior SWE loop,欢迎提问。