上个季度我刚结束 GitHub 的 DE loop。这是他们 data platform team 的 data engineering 岗,不是 software engineering 岗。流程和内容不一样,而且几乎没人写过,所以我把完整细节写一下。
Recruiter screen。 常规。他们会特别问 dbt、Spark、Airflow 的背景。这三个都写在职位描述里,他们在确认你是真的会,不是只会堆关键词。我 dbt 和 Airflow 用得很深,Spark 少一些,坦诚讲清楚深度反而更好。
Technical phone screen。 两部分:SQL 和 pipeline design 讨论。
SQL 比我预期难。不只是 joins 和 aggregations。我拿到的是一个 window functions 题,计算 rolling 7-day 的用户参与指标,假设有数十亿行数据。他们要我解释在 GitHub 这种规模下怎么做性能优化。想的是:partitioning、物化策略,不只是 query 对不对。
pipeline design 题是高吞吐 webhook event 数据的 ingest。怎么处理 schema evolution、late-arriving events、exactly-once semantics。很 GitHub 风格,他们的 webhook firehose 确实是个真实工程挑战。
Onsite(线上)。 我是四轮: SQL 和 data modeling 深挖 面向数据的分布式系统(怎么 partition 大型 repo activity 数据集、怎么做 backfill job 又不影响 prod) Behavioral(async-first 主题,跟 SWE loop 一样) Hiring manager conversation
data modeling 那轮让我有点措手不及。我会写 SQL,但他们要我设计一个 schema,能高效回答一整类分析问题。要练的是维度建模,不只是建表。
他们提到的技术栈:Spark、dbt、Airflow、BigQuery 或类似 OLAP store、Kafka 做事件流。懂全链路而不只是 query layer 很关键。
从投递到 offer 总时长大概 6 周。debrief 花了 7 个工作日,我觉得偏久,但他们说同时在并行跑多个 DE 候选人。
senior DE remote 的 offer,大概 210k total,带 equity refresh。我没接,但我觉得对这个岗位算合理。