刚结束 SpaceX data engineering 的面试流程。出于个人原因拒了 offer,但面试本身挺有意思,值得分享。
intro call 之后有四轮技术面。每一轮大概是这样:
SQL: 两道题。一道是经典 cohort retention(不稀奇),另一道更脏:给你一个没怎么规范化的 schema,让你在这个基础上写查询。第二题卡了我一下,因为我一直在脑子里想「修」schema,而不是直接回答问题。重点是:给什么就用什么。
Pipeline design / system design: 这轮让我意外。是正儿八经的系统设计,不只是 "explain Airflow.(解释一下 Airflow。)"。他们想看你如何为高吞吐的流式传感器数据设计数据 pipeline,要有容错,还要处理 late-arriving events。我讲了 Kafka、S3 的 landing zone、dbt 做 transform,并讨论了处理层的幂等性。他们几次追问我对吞吐量的假设。面板上的工程师很强。
Coding: Python。基本就是 LeetCode medium,偏数据处理。主要看你能不能写干净的代码、能不能把边界情况讲清楚。不是那种刷 100 道 hard 的场景。
Behavioral / culture: SpaceX 会问很多关于「节奏」的问题。他们想知道你能快,但不把东西搞炸。准备一些例子:你快速交付过什么,也准备一些例子:你如何在上线前抓到关键问题。这两类都重要。
薪资方面,我听说 SpaceX base 比 FAANG 低,但如果你看好走势,equity 可能挺有意义。我的 offer 大概在 $160-185k base 这个区间,senior DE,LA。不算 Google 的钱,但也不差,尤其看使命感。
还有人注意到他们基本不怎么问 data warehousing 概念吗?比如 Kimball vs Vault 这种完全没提。非常偏实战。