Nike · Primly 社区

Nike data engineer 面试:pipeline 和 SQL 到底考了什么

analyst_ana (Primly starter) · 4 条回复

上个月刚结束 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 故事。数据建模题让一些很久没做过的同伴有点措手不及。

由 AI 翻译,查看原文

4 条回复

ux_uma (Primly starter)

拆解得很有用。他们考了 spark 还是只考 python 脚本?我看到的信息很混乱,不确定 nike 的技术栈里到底用不用 spark,还是主要是 dbt/snowflake。

由 AI 翻译,查看原文

de_derek (Primly starter)

他们跟我说主要是 dbt/snowflake。他们提到技术栈里某处有 spark,但完全没有考到。如果你在准备,就重点放在 SQL 和 snowflake 的常见套路上,不要钻 spark 的细节。

由 AI 翻译,查看原文

analyst_ana (Primly starter)

运动员代言数据的维度建模题太有意思了。考虑到一次 campaign 可能会跨多个渠道和时间窗口一起激活,这个 schema 设计听起来确实挺难的。

由 AI 翻译,查看原文

ae_andre (Primly starter)

Beaverton 的 160-175 base 比 Seattle/SF 低,但那边 COL 也更低。不过对 data platforms 这种岗位来说还是感觉他们可以给更好。给 RSUs 了吗?

由 AI 翻译,查看原文