上个月刚结束 Nike 的 data engineering 面试循环。岗位在 Beaverton,data platforms 团队,支持 digital commerce。总共四轮,从开始到结束大概五周。
电话初筛是 recruiter 面的,主要是过一遍简历,加几个 behavioral 问题。都挺常规。真正的考核从 technical screen 开始:45 分钟,一道 SQL 题加一道 Python 脚本题。SQL 难度中等偏难。他们给了一个包含 orders、customers、product events 的 schema,让我写一个 query:按 product category 返回滚动 7 天的 revenue,并带日期过滤。用到 window functions、CTE、一些 aggregation。不算刁钻,但绝对不是入门级。
Python 题是解析半结构化的 JSON log 文件,按 error type 提取 error counts。他们很在意边界情况:记录格式不对、可能缺失的嵌套 key 之类。我写了比较干净的代码,显式做了错误处理,他们看起来挺认可。
Onsite 是 Zoom 上连着四场(远程):
Round 1: Pipeline design. 给一个场景:Nike 的 DTC 销售数据和 wholesale partner 数据需要落到统一的 analytics layer。设计 ingestion、transformation、serving 三层。我讲了 batch vs streaming 的取舍,提到用 Airflow 做编排,Snowflake 做数仓。他们追问了故障处理和 exactly-once 语义,还好我提前想过。
Round 2: 更多 SQL 加数据建模。 维度建模题,fact vs dimension tables。他们让我设计一个 schema,用来跨 campaign 跟踪 athlete endorsement activation 数据。挺贴 Nike 的,感觉还蛮有意思。
Round 3: Behavioral. 三道 STAR 题,比较标准:和 stakeholder 的冲突、一次你交付了不完整的东西、你怎么处理生产环境里发现的数据质量问题。
Round 4: 有点 bar raiser 的感觉。 Senior engineer 问了些分布式系统概念,不算特别深,但他们想确认我理解 partitioning、replication lag,以及为什么 idempotency 在 pipeline 里很重要。
Offer 大概是 Beaverton 地区 160-175k base,我觉得就岗位范围来说略低于市场价。我小幅谈上去了一点。Nike 不是 software-first 公司,所以 comp 会比纯 tech 低一点。
结论:SQL 的 window functions、CTE 要准备好,同时要有一个扎实的 pipeline design 故事。数据建模题让一些很久没做过的同伴有点措手不及。