上个季度刚过了 Nike 的 ML engineer 全流程。分享一下,因为这个岗位真的很有意思,而且跟很多人以为的「nike ml job」完全不是一回事。
先说结论:Nike 的 ML 基础设施很扎实。我投的是 Consumer Intelligence 团队,做 Nike.com、NRC(Nike Run Club)以及他们数字电商技术栈的个性化。这不是 research job,而是应用型 ML engineering:大规模构建和部署模型、维护特征 pipeline、和实验框架一起工作。如果你是 research 背景也没问题,但他们招的是产品影响力,不是论文。
流程: Recruiter 电话。很快,大概 20 分钟。问了我的领域背景(我之前公司做的是 recsys,直接相关)。 ML technical screen。90 分钟,两部分。第一部分是一个 ML 问题:你有一份 Nike.com 上用户活动的数据集(页面浏览、商品交互、购买)。设计一个模型来预测 7 天内购买概率。他们想听你怎么做特征工程、怎么处理类别不平衡、你会用什么离线指标以及原因、上线后在生产环境会追什么在线指标。第二部分是 coding:用 Python 从零实现一个简单的 gradient descent。不难,但得写对。 Full loop:四轮。
第 1 轮:ML system design。 为 SNKRS app 设计推荐系统。我讲了候选召回、排序、feature store 的考虑,以及怎么处理新鞋发布的冷启动。这一轮会把 ML engineer 和 data scientist 区分开。你得懂模型怎么被服务、延迟约束、特征新鲜度的取舍。
第 2 轮:Applied ML 深度。 一个 senior MLE 会对我简历里的一个项目深挖。他们选了我做 recsys 的项目,几乎每个设计决策都问了。为什么这个数据集用 two-tower 而不是 BPR。怎么处理 position bias。把重训频率改成 X 之后发生了什么、我接受了什么 tradeoff。拿得出细节才行。
第 3 轮:Coding + ML fundamentals。 还是更多 Python。一道 DP 题(LC 中等),一道 ML 基础题(让我推导 logistic regression 的梯度)。第二部分如果你最近做过很简单,但如果你一年没碰过就会很尴尬。
第 4 轮:Behavioral + cross-functional。 和一个 PM 以及一个 data scientist。问题围绕如何和非 ML stakeholder 合作、如何沟通模型的局限、怎么把你知道不完美的东西也推进上线。
Beaverton 的 offer 大概是 180-195k base。我感觉对应用型 MLE 的市场来说偏低,尤其考虑到他们在做的 recsys 问题规模不小。但如果你在意大规模消费者个性化,这里的 ML 问题确实很有意思。