大概六周前走完了 Anduril data engineer 的面试 loop,面的是他们 Costa Mesa office 的 senior DE role。拿到 offer(接了,上个月入职)。分享下笔记,因为他们的 pipeline 侧确实跟我在更典型的产品公司见过的很不一样。
Recruiter screen 很常规:30 分钟,聊岗位 scope,签证问题(我不需要签证,但他们一开始就问了,我反而挺欣赏)。然后是一个 take-home SQL challenge。他们发了一个 schema,看起来是简化版的物流/供应链数据集,三张表,给 72 小时做五道题,从 window functions 到一些很难的递归 CTE。不是 LeetCode 风格,是那种真实的脏数据,有 null、有 edge cases 得自己处理。认真做大概 4 小时。
Technical phone screen:一小时,面试官是 team 里的 senior DE。前 20 分钟深挖我的 take-home 答案,包括为什么我选了某种 join 顺序。后 40 分钟做 pipeline 设计:他们给了一个场景(基本是:无人机遥测数据高吞吐流入,设计 ingestion layer)。我聊了 Kafka、partitioning strategy、schema registry 里 Avro vs Protobuf,然后他们会专门在 failure modes 上 push back:consumer 如果 mid-batch crash 了怎么恢复,这里的 exactly-once delivery 到底意味着什么。好信号是:他们在意 reliability engineering,不只是「我会 Spark」。
Onsite(4 轮): 深度 pipeline 设计:跟上面类似但更长。要白板画端到端数据架构,包括 storage tiers、partitioning、以及 backfill 策略。 SQL 和数据建模:给一份比较模糊的需求文档,我要提出 schema,再针对它写 query。没有 IDE,但语法上他们很合理。 跨职能协作:过一个场景,PM 想要一个定义上存在技术歧义的指标。我要怎么澄清、缺什么数据、怎么 push back。 Mission 和 culture:不是走过场。他们会真问你怎么理解你做的系统最终的 use case。
senior 的 comp:base 是 175k,equity 是 RSUs,4 年 vest。总包大概 230k 左右,取决于 equity refresh。南加的 CoL 算起来还行。
主要准备建议:把 Kafka 内部机制、window functions、以及从模糊需求做 data modeling 练到很扎实。Leetcode 在这基本不重要。