今年早些时候面了 NVIDIA data engineer loop,趁记忆还新分享一下笔记。
recruiter screen 挺标准的。30 分钟,技术不多,主要确认我知道 data engineering 是什么。然后是 team lead 的 technical phone screen。45 分钟,比我预期要重。
SQL 这一轮: 他们给的是类似 HackerRank 的环境,但题比典型 leetcode SQL 更偏分析。一题是跨 fact-dimension schema 的多表 join 聚合,追踪 GPU telemetry。他们要 window function,尤其是按时间序列分区做 LAG/LEAD。我做 data eng 7 年了,也得想一下,不是「会不会写 GROUP BY」那种。
pipeline design: 他们让我设计一条数据 pipeline,要能 ingest 高吞吐的传感器数据(没说具体是什么,但感觉跟 GPU 有关),低延迟处理,并让分析师能查询。我讲了 Kafka ingestion、Spark streaming 做转换、落到 Delta Lake 或 Iceberg 作为查询层。他们会追问容错和 exactly-once delivery。对话很不错,不是那种挖坑式的。
onsite(4 轮): coding:还是偏 SQL,外加一题 Python,问 pandas vs 写 raw SQL 来做大 join。我选了 raw SQL,他们看起来挺认可。 systems design:设计一个用于 ML training pipeline observability 的数据平台。大概是:怎么追踪 training runs、记录指标、处理 data lineage。提到了 MLflow,也聊了自研方案。 behavioral:三道完整 STAR 题。一题跨职能冲突,一题负责的项目失败,一题处理模糊性。 一个「反向技术」环节:hiring manager 给我讲团队实际在做什么,我提问。感觉像 culture fit,但也偏技术。
从第一次 recruiter call 到 offer 大概 3.5 周。comp 对 Santa Clara 的 data eng 来说能对标 FAANG band,不过 NVIDIA 的 base 略低一些,RSU 比重更高。
总体:比我上两次 DE loop 更难。他们真的在意数据质量工具(Great Expectations 被提了两次),不只是把数据从 A 搬到 B。