刚结束我在 Anduril 的 senior SWE loop,可以分享 system design 那轮实际是什么样。简版结论:比 Meta 的 E5 design 更难,但比 Google L5 更不抽象。他们要的是能落地的真实系统,不是白板理论。
我拿到的题是设计一个 data pipeline,以高频摄取来自 autonomous systems 的传感器遥测数据。你需要考虑 message queue、分区策略、exactly-once 投递保证,以及下游 consumer 变慢时会发生什么。我在 happy path 上花太久了,面试官大概在第 20 分钟开始猛追 failure mode,感觉是刻意的。
他们强调的点: 把取舍的推理过程讲出来,而不只是给答案 特别强调 latency vs throughput(这是 defense tech 公司,延迟非常关键) 你怎么处理降级模式(边缘网络断了、传感器离线等) 运维层面:凌晨 2 点你怎么 debug
面试官是 staff+ 的 eng,问题问得挺好,不像在照 rubric。他会反驳我选 Kafka,问在延迟约束下为什么不用自定义 UDP 协议。要准备好这种 push。
时长 60 分钟:5 分钟澄清,25 分钟设计,20 分钟 deep-dive + 提问。我的时间比例平时不是这样,这次因为没给 deep-dive 预留时间所以有点乱。
如果你在准备:复习 stream processing(Kafka、Flink、Kinesis 都可能考)、distributed tracing,并且准备好把 CAP theorem 放到实时控制系统的语境里讲,不要只停留在分布式数据库。defense / autonomy 的背景会让约束权重跟典型 FAANG design 轮不太一样。
定级:他们在考虑我 L5(大概对应 senior SWE)。我被告知 L5 需要端到端负责一个组件,并参与跨团队架构决策。这个 design bar 我觉得匹配。