几个月前走完了 replit 的 ML engineer 面试流程。最后没接(level 定级没谈拢),但过程挺有意思,写下来分享。
背景:我做 ML 8 年了,主要是 NLP 和 latent space 相关。replit 在 code generation、code completion、理解开发者意图上做的 ML 很硬核,不是那种「给它套个 LLM 就行」的范围了。
流程:
先 recruiter screen,然后是和他们 research engineer 的 ML phone screen。也是从这里开始跟一般的流程不一样。他们问了:我怎么权衡 model serving 的 latency vs quality,我 fine-tuning 或适配 foundation models 的经验,以及一个问题:我会怎么评估一个 code-completion 模型(这里的 eval 真的难,因为很多 completion 都是有效答案)。
eval 这个问题最值得准备。他们不想要教科书答案,而是想看你能不能面对它的混乱:哪些指标重要,哪些指标覆盖不到,怎么规模化做人评。
onsite 轮次: ML coding:从零实现一些东西。我那次是简化版 beam search decoder。用 numpy、代码要干净、边写边讲取舍。 ML systems:设计一个低延迟的 code completion inference pipeline。深聊了 model quantization、缓存 KV state、batching 策略。他们很懂。 research discussion:给我一篇近期 paper(大概是 code LLMs / retrieval augmented generation 方向),让我讲 tradeoffs、下一步会怎么做。更像技术讨论,不是拷打。 values / working style:标准 behavioral。
定级:他们给我考虑的是 L4/L5。分歧在 scope 预期,毕竟我的年限摆在那里。很常见。
他们提到 L4 ML 的 comp 大概是 $185-200k base 加 equity,可以 remote,但 ML 这块更偏好湾区。
如果你是纯研究背景(论文多但没上过生产),你需要证明你理解 inference 约束和部署现实。他们是在做产品,不是在写论文。