刚结束 Samsung Research America(San Jose)的 senior SWE loop。我想专门记录一下 system design 这一轮,因为我面之前几乎找不到有用信息。
这一轮 60 分钟,两位 interviewer。一个是我未来可能的 tech lead,另一个是相邻团队的 staff engineer。没有做 presentation,就是在共享文档里白板式讨论。
我拿到的题:为 smart TV 平台设计一个通知投递系统。是很真实的 Samsung 产品语境,我挺喜欢的。他们要我处理规模(百万级设备)、互动通知(屏幕弹窗)的低延迟约束,以及用于后台更新(比如 app 安装)的异步队列。
真正重要的点: 他们会很用力地追 failure mode。设备离线一周怎么办?重连后消息顺序怎么处理? 他们比我预期更看重数据建模。一直问 notification payload 里放什么、TTL 逻辑、schema versioning。 还会涉及 IoT/embedded 语境。interviewer 提到他们想找理解受限客户端的人,而不只是 web backend。
我有 8 年 backend 经验,没有 IoT 背景,但我前一晚临时看了 MQTT vs HTTP 的取舍,这个刚好派上用场。
节奏大概是:5 分钟需求,15 分钟高层设计,25 分钟深挖队列 + retry 逻辑,10 分钟 failure 场景和提问。整体节奏挺正常。
我之前最困惑的是 leveling:Samsung 内部用自己的 band 系统,但对外做 comp benchmark 时大概会松散映射到 L5/L6。Senior 通常相当于他们的 P4/P5,具体看子组织。
欢迎提问。这里说的是 Samsung Research,不是 Samsung Electronics(韩国母公司的工程部门,面试结构完全不同)。