今年早些时候我走完了 atlassian 的 ML engineer 面试流程。这个 track 几乎没什么人写,所以把我看到的情况分享一下。
atlassian 的 ML 岗分布在几个产品方向,主要是推荐系统(给 jira/confluence)、搜索相关性,以及一些自动化智能相关的工作。我申请的是 search 团队。
流程 recruiter call。take-home coding assessment(比较少见,是一个 2-3 小时的 ML 向问题,不是 leetcode)。然后是 4 轮 virtual onsite。
take-home 他们给了一个 dataset,让我训练一个 classifier、做评估,并写一份如果有更多时间我会怎么改的说明。整体偏数据科学风格,但他们会认真看 writeup,onsite debrief 里也提到了。
onsite 轮次 ML depth:基本是围绕 take-home 聊,然后延伸到如果从零做一个推荐问题我会怎么做。聊了 candidate generation、ranking、feature engineering、offline vs online eval。他们对 buzzwords 不买账,追问默认你真的懂数学。 Coding:普通 SWE 轮,LC medium。不写 ML 相关代码。 System design:设计一个面向文档检索的搜索相关性系统(和他们实际产品非常相关)。我们聊了 BM25 vs dense retrieval、hybrid 方案、延迟取舍、怎么在不毁用户体验的前提下对 ranking 变更做 A/B test。 Behavioral:还是 atlassian values。这一轮和其他岗位同等权重。
他们真正看重的 说实话,感觉不像大厂那么偏 ML 理论,更像在看工程判断力:在真实约束下能不能做出合适的模型选择。有位面试官还专门问了我:「what would you cut first if you had to ship in half the time.(如果你必须在一半时间内上线,你会先砍掉什么)」
total 大概 7 周。最后给了 offer。欢迎提问。