我 4 月走完了 T-Mobile senior 的 SWE loop。把细节贴出来是因为我面试前搜了很久,几乎没找到什么有用的信息。
system design 一轮 60 分钟,一位面试官。我拿到的题大概是:设计一个实时通知服务,能以低延迟向数百万移动端订阅用户做 fan-out。挺经典的偏 telecom 的设计题,但他们非常在意一些细节,这些点你在纯 SaaS 公司可能不会这么强调。
他们实际深挖的点: Scale:T-Mobile 大概有 120M subscribers。你的设计怎么应对像全国天气警报这种 burst?他们希望听到 Kafka 或类似的持久化队列,而不是 polling。 持久性 vs. 延迟的取舍。我提了 eventual consistency,面试官追问很狠:如果一条消息被投递两次怎么办?如果丢了怎么办? 投递渠道:push notification vs. SMS vs. in-app。他们想听 ack 的处理。 数据库选择:他们接受 PostgreSQL,但希望你能解释为什么。还 briefly 提到了 column store vs. row store。
形式:在 Google Meet 里屏幕共享。没有协作白板工具,只有一个空的 Google Doc,我得用文字画图。有点别扭。如果可以,带个平板。
他们在 system design 这轮没有问 LeetCode 风格的 coding 题。那是分开的(我在另一个帖子里会写)。
Level 对齐:这是 senior SWE,base 在 Bellevue。预期大概相当于我认为的小公司里的 Staff-minus,但比 FAANG L5 system design 的 bar 低。他们更在意你是否理解 telecom 上下文,而不是你是否读过每一篇分布式系统论文。
Timeline:phone screen 到 offer 6 周。onsite 后 debrief 到 offer 大概 10 天,感觉挺久,但 HR 说他们这很正常。
如果大家对具体轮次有问题,我也愿意答。