刚结束 Moderna senior 的 SWE loop(Cambridge, MA,hybrid),想留个数据点,因为网上几乎找不到他们 system design 轮的具体信息。
system design 面试 60 分钟,一个来自他们 digital health platform team 的面试官。没有协作文档,就是口头讨论,他在白板上画。题目大概是:设计一个系统,用于实时追踪多站点的临床试验患者数据,并且可靠性要求很高。我不需要懂 mRNA 或临床流程,但他们会追问数据一致性、审计追踪(audit trails),以及分布式节点之间出现 partial writes 时你怎么处理。
他们真正关心的是: 正确性优先于吞吐。这不是那种「扩到 10M req/s」的公司。他们对受监管环境下的数据完整性非常在意。 故障处理。面试官一直在追问某个站点断网会怎样。优雅降级、本地缓冲、重连后的对账/回放。 合规面。他们不要求你知道 21 CFR Part 11,但希望你能把 audit logs、不可变性(immutability)、访问控制当作约束讲出来。 沟通能力。他们多次说想要能把 tradeoff 讲给非工程同学听的工程师,包括临床运营的 staff。
我画了一个挺标准的 event-sourced 架构,加上偏 CQRS 的读路径。我自己觉得挺顺的。面试官问我为什么不直接用一个 transactional DB 加一个简单 API。好问题。最后讨论变成了:在 biopharma 语境里,运维风险容忍度和典型面向消费者的延迟诉求有什么不同。
相对 FAANG 的难度:算法复杂度的上限明显更低,但领域语境会多一层。你需要想清楚「what breaks in a regulated setting(在受监管的环境里,什么会出问题)」,不只是「what breaks at scale.(规模上去后,什么会出问题)」
目标级别是 senior IC,大概等同 L5。全流程 5 轮:recruiter phone screen,一轮 coding,system design,behavioral,还有一轮 values/culture(对方是 senior 的 eng)。
如果有人想问细节我也愿意答。