今年早些时候我面了 CrowdStrike senior SWE 的 loop。system design 这一轮值得单独写一篇,因为它真的和你在 consumer tech 公司准备的那套不一样。
先说:他们内部不叫「L5」,但 senior 的 IC band 大概能对标行业常说的那个级别。如果 recruiter 说「Senior Software Engineer II」,就是这个。
题目本身。 我拿到的题大概是:设计一个实时 threat detection pipeline,能规模化处理 endpoint telemetry、发现异常,并把高置信度的检测路由到分析师队列。非常符合他们的业务。不同人题会不一样,但大概率是安全领域问题,不会是打车或信息流。
他们实际在评估什么: 你怎么给模糊问题定范围。我问了 detection latency 的 SLA 要求,面试官明显很兴奋。这个问题问对了。 数据流的清晰度。把完整链路画出来:endpoint 上的 agent -> transport -> ingestion -> stream processing -> storage -> alerting。每个 handoff 都要说清。 取舍推理。我用了 Kafka 做 message bus。他们追问为什么不用更简单的 queue。你得有真实理由。 规模数字。他们让我估 100k endpoints 的事件每秒量级。要做 back-of-envelope 的算术,别跳过。
他们不太在意的。 UI layer、日志的精确数据库 schema、第一次就画出“完美架构”。这轮偏 systems-heavy,不是 API-design-heavy。
我主要靠复习分布式 stream processing 概念,再去读 endpoint detection pipeline 相关内容。后者帮助很大。如果你面的是 sensor 或 detection 方向,懂 EDR 数据怎么流转,会比泛泛的通用准备显得可信很多。
还有一点:面试官是 principal engineer。她 push back 了我两个选择。这不是 red flag,这是这个级别的常态。pushback 是信号,不是问题。