几个月前走了 figma 的 ML engineer 全流程。最后没接(去了别的地方),但流程挺扎实。分享一下拆解,因为网上几乎找不到 figma 的 ML 面试到底长什么样。
背景: figma 的 ML 团队相对小,而且深度嵌在产品里。他们不是在做 foundational models,而是把 ML 用到产品问题上:auto-layout 建议、字体匹配、搜索排序、smart animate、AI 辅助设计功能。搞清楚这点会决定他们到底在考什么。
我的流程长这样: recruiter screen 和一个 ML eng 的 ML 专项电话面(60 分钟) 线上 onsite:4 轮
电话面: ML 基础加一道 coding。他们问的是推荐系统场景下 precision vs. recall 的取舍,不是只背教科书定义。然后是一道中等 LC 题。很标准,不奇怪。
onsite 第 1 轮 - ML design: 这是最重要的一轮。我被要求设计一个系统:根据用户当前设计,给用户推荐配色方案。我们聊到 feature engineering(你会从画布里取什么信号?)、模型选择、怎么处理冷启动、评估指标。他们想看的是 ML 之上叠加产品思维。只会建模深度不够。
onsite 第 2 轮 - coding: 两道题。一道偏算法(arrays/hashing),一道更偏应用。应用题涉及处理数据流并做实时滚动预测。不是典型 LC,更像你工作里真的会写的东西。
onsite 第 3 轮 - ML depth: 更深入的技术问题。这里会探你到底懂不懂。我们概念层面聊了 transformer 架构、什么时候用 contrastive learning,还问了我一个已部署模型如何处理 distribution shift。他们不指望你每个点都特别深入,但会很快看出来你是在瞎编还是有真实直觉。
onsite 第 4 轮 - behavioral: 常规 behavioral,但带 figma 的味道:他们问我会怎么和 design 团队一起定义一个 ML 功能的「好」。如果你的答案假设纯工程所有权,我从面试官反应看是不太加分的。
整体:面试比我预期更难的是产品和 ML 的交叉部分;比我预期更轻的是纯研究深度。如果你来自纯 research 背景,需要证明你能落地转译。