最近走完了 Scale AI data engineer 的面试 loop。发这个是因为网上信息很少,而且大多是 ML/SWE 岗。
背景:我面的是 senior DE,7 年经验,主要做 Spark、Airflow,以及在 fintech 用 Redshift/BigQuery。整个 loop 四轮,全部技术面。
SQL 轮。 比我预期更重。他们不只想看 select 和 group by。场景是围绕时间序列的标注数据建模的:给你一张 task completion 表,包含时间戳和 worker ID,让你写 query 找出按小时的吞吐下降,并标记那些最近一周 error rate 相对历史基线突然飙升的 worker。历史基线那部分需要 self-join 加子查询或 CTE。我们选了 CTE,因为可读性更好。然后他们问如果这张表有 5 亿行,你怎么优化。按日期分区、按 worker_id 聚簇、用 materialized view 做基线计算。答案都挺标准,但他们会追问取舍。
Pipeline 设计轮。 最贴近现实的一轮。题目是:设计一个 pipeline,摄入多种 task type 的 annotation events,把它们标准化成一个 canonical schema,并路由到下游的质量检查和计费系统。我讲了 Kafka 做 event bus、用 schema registry 处理不同 task type 的 schema 演进、Spark Streaming 或 Flink 做 transform 层,以及写入路径同时落到 Delta Lake 表(分析)和 Postgres sink(计费)。他们特别问了 late-arriving events 和你怎么做去重。我讲了 watermarks 和幂等写入。讨论很好。
Coding 轮。 一道 Python 题:写个函数,输入是一组 annotation events,输出聚合后的质量指标。不复杂,主要看代码整洁和边界情况处理。注意输入里可能有 None。他们很在意你能优雅处理。
Behavioral 轮。 一轮 hiring manager behavioral。问题标准但追问很深:讲一次生产环境 pipeline 挂了,你会怎么做、下次会怎么不同。他们听的是 ownership 和 postmortem 思维,不是「我们修好了」就结束。
从第一次 screen 到 offer 大概 3 周。给的 base 大概是 SF 的 senior DE 级别 $185k。我 push back 了一次,base 多了 $10k,RSU 没动。值得试一下。