上季度在 abbvie commercial IT 面了一个 senior SWE(我觉得大概相当于 L5)岗位的 system design。发出来是因为他们的框架和你如果只做过 FAANG 风格 system design 的预期不太一样。
给我的题:设计一个 patient data notification system。当病人没有 refill 某种 specialty medication 时,给 care coordinators 发提醒。听起来很细分,但拆开其实是很标准的几块:事件摄入、调度、通知下发、可观测性。
他们重点看什么: 数据一致性。他们问如果同一条通知发了两次会怎样,很快就聊到幂等。 HIPAA 合规对数据存储和传输的影响。你不需要是合规律师,但要知道 PHI 有明确要求(静态加密、审计日志、访问控制),这是基本门槛。 故障模式。如果下游 SMS gateway 挂了怎么办?dead letter queues、带 backoff 的重试之类。 你会怎么测试。他们想听集成测试,以及在碰真实病人数据前,如何在 staging 环境里验证。
他们没做什么: 让你把数据库 schema 细节白板画到底、点名问具体 AWS 服务、或者把可扩展性硬推到 google-scale。规模更像是 millions 而不是 billions,这其实更现实,也在某些方面是更难的约束。
面试官是一个 principal engineer,追问问得很好。他不指望完美答案,更看重结构化思考,以及对 tradeoff 的坦诚。
还有一点:他们很看重沟通。abbvie 有很多跨职能团队(medical、regulatory、commercial),工程师需要把技术决策翻译给非技术方。我提了几次这个点,反馈不错。
总时长:60 分钟。最后有点赶。