[心得] 北美湾区ML Engineer面试

楼主: LeoMushroom (LeoMessi)   2025-08-09 01:12:00
[帮友人代po]
[情绪篇]
8.6%,是我从2024年10月到2025年7月累积的成功率,如果扣掉2025年7月,那前9个月的
成功率为0%。这段期间,我一共面试了35间公司,参与共14个virtual onsite,与约150
位面试官与recruiter深入交流。最大的收获,不是offer,而是即使感到挫败、羞愧,还
是逼自己直视那些错误——It’s OK to be 60% correct。
 
我心中的GOAT (Greatest of All Time) Roger Federer曾在 2024的Dartmouth College
毕业演说中提到,在他1526场职业男子网球单打比赛中,他赢下了接近80%的比赛,但得
分率只有54%。连世界上最伟大的球员,也只能在一半的情况下拿到一分。他说:“每一
分都重要,但最重要的是,失败后如何专注在下一球。”即便是 ESPN 年度十大好球,也
只值一分。同样地,我在面试中答错了一题,也不过就是一题罢了。我不需要赢下所有面
试,我只需要一间适合的公司。
 
我们很少去谈论,每一个看似理性的职涯选择背后,都有隐藏的情绪。很多违反社会价值
观的行为,往往来自没被说出口的痛。举个篮球迷可能都知道的例子,金州勇士球星
Jimmy Bulter在2024-2025赛季因“伤害团队”被热火禁赛。但在一次的记者会中Jimmy中
说:”I want to see me get my joy back from playing basketball”,当时我并不以
为意,而今回首,那正是我的心声。
我因向往“无上限的成长”,2022加入了早期新创。虽然名义上还是打工仔,但那段时间
我真的享受着“为自己工作”的快乐。然而2024年,公司被一家S&P500公司收购,在无法
认同老板与母公司的决策方针之下,我开始了这段还没“分手”就先“相亲”的旅程。
这段历程,更像是一次深度的自我对话。我从受害者心态、愤怒、不理解,到原谅、平静
,再到重拾热情。这十个月里,从一开始只想逃离,到后来真心想找“适合我的地方”。
从怀疑“是不是我不够好”,到意识到“这个面试官根本是菜鸡,这间公司可能不值得去
”。我从未预料到,情绪变化会这么大地影响我面对未知的信心与反应。
这一路上,我遇到各种面试官。有些人只是对照 checklist 打勾勾、抓关键字;有些人
对不同想法难以接受,只在乎问他擅长的题目。撇开专业技能不谈,我学到一个最宝贵的
技巧:提高面试官的参与感。如果面试官整场都像是在等下班,那么沟通根本无从谈起。
此时保持正面、乐观的态度,不只是帮助自己保持冷静,也能帮助对方进入合作状态。
像是说出这样的句子:”I really want to understand this question. This is my
understanding. Can you elaborate?”这不只是技巧,更是一种日常也适用的情绪能力
——让彼此保持在愿意沟通与合作的状态。
It’s OK to be 60% Correct
有很多聪明、有效的方法可以让自己持续进步,但真正让人停下脚步的,是情绪上的痛苦
。而我最后体悟到的解方,是:成为自己的啦啦队。
对我来说,面试最痛苦的部分不是题目多难,而是不得不正视自己的不足。无论是回想起
当时答不出来的尴尬,或是听录音重播自己语无伦次的声音,那种羞愧感常常让我只想逃
避。毕竟,我们大多数人都希望自己是聪明、有能力的,当现实中的自己不如预期,那种
落差会让情绪被无限放大。
对自己可以严格,但不必残酷,在每次复盘的时候,我会先写下自己有做对的地方。情绪
价值,要由自己给自己。哪怕只是很小的亮点,也值得被看见。例如“今天遇到不会的问
题时,我有先深呼吸、给自己时间平复情绪”,抑或是“我跟面试官开了一个小玩笑,让
我们都笑了起来”,这些微小的片段,累积起来,就是能量。甚至是:“我第一次听到
QLoRA 的时候虽然不懂,但靠着推理,正确分辨出了 training 和 inference 的差异。
”这些都是我进步的证据。
持续停留在“我不够好”的情绪中,是无法长久撑下去的。每一次的失败,我都试着从中
提炼出心得。当我真正感受到自己有在进步,那股动力,就足以支撑我在面试了超过
100 小时、听了无数次否定之后,仍能坚持下去。
 
刚开始面试时,我常常会在遇到不会的题目或忘记定义的那一瞬间,脑袋瞬间“当机”,
仿佛进入了 0.2 秒的无量空处、领域展开。这种感觉不只发生在面试,在人生很多时刻
也出现过。在与 career coach 和 ChatGPT 无数次的练习中,我逐渐发现,我长年以来
的习惯——用最短时间给出完美答案。然而一场好的沟通,不是答题比赛,而是共同解决
问题的过程。
像是:”While the exact formula for [Concept] isn’t immediately coming to
mind, I can reason through its purpose and properties.”这种表达,不只是拖延时
间的模板,更是一种在不确定中展现信心的方式。它让我能争取思考空间,同时也维持和
面试官的节奏与对话。
不只是面试。人生中的各种关系,也是如此。你说出口的方式,可以影响对方的情绪,也
能安定自己的内心。从“我不知道怎么完美回答”转向“我愿意一起探索答案”,这就是
我在一次次练习后,学会的情绪力量——It’s OK to be 60% correct.
[实战篇]
2022 年各大科技公司大幅裁员后,我自己的观察是,科技产业的职缺从低点逐渐回升,
尤其是早期新创出现了大量猎人头机会。至于各大科技厂,尽管仍有零星裁员,但招聘需
求依然存在,只是竞争的强度明显提高。身为一名 Machine Learning Engineer,在这个
由 AI 主导的市场环境下,仍有不少面试机会。这次转职期间,我主要面试的是中大型科
技公司,也包括几家当红的 AI 新创(例如 A、O、X 三家)。在和不同面试官交流的过
程中,我也明显感受到资深工程师与新手在引导与沟通上的差异。
我的背景以 NLP、Dialog Management 和 LLM 为主。这类职位的面试大致可以分为六大
类,我几乎是全职躺平投入准备,以下是我根据自己实际准备的顺序整理的实战经验。
1. Coding
1.1 Leetcode Style
我以 以Neetcode Roadmap的150题为主轴,加上各家公司leetcode高频题为辅,前后(含
重复)约练习了300题。整体体感是题目难度多落在 medium 区间,少数难题会涉及 DP 优
化。基本上,只要当天的状态不差,加上面试官的适度引导,都能举一反三,剩下的就是
运气。
1.2 ML Coding
这类题目可能会要求你实作经典 ML 算法(如K K-means)、资料处理或是cross
validation。相对困难的版本,会给一个dataset,要求在限定时间内建一个 text
classifier,建议事前准备好一套参考模板,即使只是 pseudo code,也能协助自己在压
力下维持清晰思路。
1.3 Project Debugging
随着vibe coding兴起,近期有些面试会给一整个 codebase,请你解释特定模组的功能、
找出bug或是改进的方向,这考验快速理解与细节观察力。我遇过最难的题目是 OpenAI
的 GPT Transformer debugging。建议从头手刻 Transformer 模型一次,顺便复习 ML
fundamentals。
2. Behavior
随着资历累积,behavioral interview 的比重会越来越高。即使工作几年后,这些问题
可能已经历过,但若没有事前整理,很难在压力下有条理地表达。建议先列出常见题型,
然后把实际事件、当下决策过程纪录下来,才能有效还原脉络。
以下是我最常遇到的题目
- Describe a situation where you had differing opinions from your
leadership/colleagues.
- Tell me a time when you were wrong about something. How did you handle it?
- Tell me a time when you had an unexpected deadline or project scope changes
3. ML & LLM Fundamental
这部分没有捷径,只能扎实读书。最常见的问题依然是 Transformer 架构细节。
4. ML System Design
这是我最挣扎的一环。题目模糊、面试官不熟、时间紧迫,都是挑战。这里我学到三件事

(1) 时间管理
工作中这类设计题往往要几天才能讨论清楚,但面试只有 45 分钟。建议在前 5 分钟内
就厘清问题方向,问出有意义的问题,协助自己聚焦。另一个帮助我的是:思考“如果这
轮结束后马上要实作,我会怎么下手?”这种 mindset shift,能帮助你在时间不够、资
讯不足时表达清楚优先级与决策依据。
(2) 领域包山包海
根据我面试的经验,系统设计大致可分为 search ranking 类型与 data collection 类
型。但每个公司与团队的任务都不同,就算都是 recommender system,有些是纯文字,
有些是 multimodal;有些是 social media 背景、有些则是 LLM agent 背景,如如何建
search index、如何收集 fine-tuning 资料并管理数据库 table 结构等。
(3) 面试官态度
这是双向的过程。当你连问三次,对方还是不懂你在问什么,他们也会感到挫折。这时候
我们能做的,是主动建立合作氛围,展现诚意和好奇心。例如:“我很想理解这个问题,
以下是我的理解……这是你想问的吗?”这种说法不但帮自己争取思考时间,也能拉近彼
此的理解落差。
我认为用 AI(例如 ChatGPT)模拟苛刻面试官,是非常有效的练习。我曾特别要求
ChatGPT 当一个情绪冷淡、刁钻的面试官,帮助我在类似场景中更能控制情绪。
5. Project Deep Dive
这一环相对简单,主要是根据履历上的 project 挑选一到两个深入探讨。时间若允许,
强烈建议准备一份简洁清楚的 slide,能帮助你聚焦核心贡献、提升说服力。最重要的是
掌握对方理解程度,并来回确认是否跟上节奏。
6. System Design
即使是 ML Engineer,也偶尔会遇到偏 SDE 的系统设计题。我遇过三次,题目多半仍与
ML service 或公司业务相关,但讨论重点更多在于如何处理 large-scale data,以及
确保服务在整个系统 pipeline 中的连贯性。由于这并非我的主要专长,我通常只能依据
基本原则解释设计思路并做出合理取舍。通常会问这类问题的公司,面试流程比较
general,实际上还是在找非 LLM 背景的人。
7. Questions
这不用我多说。我的建议是预先准备 2–3 个通用问题,可以套用在所有公司/面试官身
上。这在你对面试官没太多兴趣,或谈完真的没话题时,是很实用的保底选项,也能维持
基本礼貌。
[Negotiation]
当撑过一关又一关的面试,终于拿到 verbal Offer 时,我原以为可以松口气。但谈
offer 是另一场需要勇气的战斗。对我这种不喜欢麻烦别人、也不擅长与人拉扯的人来
说,薪资谈判是一门完全陌生的学问。但这一次,我试着当自己的CEO,把自己的情绪抽
离出来,用策略也用真诚争取一份符合自身价值的报酬。
一:让Hiring Manager喜欢你。
比起 recruiter,Hiring Manager 是真正决定你价值的人。每当我接近 offer 阶段,我
都会要求再和 Hiring Manager 深聊一次,不只是厘清角色定位,也建立信任与连结。在
对谈尾声我会问:”I see myself helping the team to grow. Do you feel
confident that we’re able to continue to grow, and I am part of your plan?”
这是一个关键问题,当对方说 “Yes”,也代表你在谈判中已经有底气争取更好的条件。
二:不主动报价,让对方先出牌
永远不要自己先报期望薪资。这不只是因为可能报太低,也因为这样才能保持谈判的弹性
。我通常会用下列话术延后报价:“I’m sure your company has a fair and
competitive structure. could you please share the salary range for this role?
”,只要 recruiter 认为你是 “winnable” 且真心有兴趣,他们会愿意报价、争取预
算。
Recruiter 是受过谈判训练的专业人士,我们经验和资讯都不对等,很容易就不小心说太
多。对我来说,一个很有用的心法是:把这个问题想像成恋爱里的经典情境题,像是对方
突然问你:“欸你是不是喜欢我?”千万不要马上就傻傻地回答“是”或“不是”,而是
先回:“欸你怎么会这样问?”或“你觉得咧?”——先观察对方的态度,再决定要不要
表态。
(抱歉我的脑袋就是臭直男逻辑,但真的满有效的)
这绝对不是要当渣男或渣女,而是在不破坏关系的情况下,找到双方都能接受的沟通方式
。谈薪也是一样。
三:理解recruiter 的谈判话术
Recruiter 很常用一些 pushback 试图让你接受初始报价
-“We have other strong candidates in the process.”
-“We are hiring candidates for the product, not for the comp.”
-“This is already at the top of the band.”
事先准备应答的模板,不仅能稳住情绪,也能让对方甚至是组上的人尊重你。
四:用总报酬思维换位思考
我在谈判时也会主动拉长思考时间轴,避免只看第一年现金收入。例如: “I see this
role as a long-term move, not just a one-year decision. I want to make sure
the offer reflects both my current value and the long-term investment the
company is making in me.”,这种 framing 也让对方知道我是在为 “共赢” 做准备
,而不是斤斤计较一时的报价差距。
五:书面确认
即使 recruiter 在电话里说得再好听,没有白纸黑字都不算数。如果对方不主动把
offer 细节写进 email,我也会自己写信回复确认,例如: “Hey, equity terms can
be complicated. I just want to make sure I captured everything we discussed
correctly. Here’s a quick summary — can you verify this is all accurate
before I share it with my partner?” 有时候 recruiter 不是故意不写,而是想保留
弹性或避免承诺,这时候自己写 recap 是保护自己,也留有跟其他公司谈counter offer
的证据。
现在,我还是非常讨厌这个过程,但我也从中看到自己的成长。有些技巧甚至可以直接应
用在工作场域——当你需要与不同部门协调、谈资源、谈优先级时,那种找到“让双方
都可以接受的模式”的能力,就是我在经历这些不适后得到的养分。
[后记]
这一年,是我与过去的自己对话的过程。自从公司被收购后,我长时间处于一种无法入眠
的愤怒里。直到时间弭平我的情绪,很多时候,我不是因为理性分析后觉得某些事不合理
,而是因为情绪受伤了。
面对冷淡的面试官,我很容易从原本期待的合作可能,转为内心被浇熄。其实我对自己的
能力一直很有信心,也有很高的期待,但面试这件事,结果往往是非黑即白,不容易得到
有意义的中间值或具体回馈。当你跟100多位面试官对谈后,只收到拒绝信,很难不怀疑
自己的选择与价值。
所以,成为自己的啦啦队,是我这一路上最大的学习。面试后能诚实说出“这一题我答得
不错”、“这个问题我反应得比想像中冷静”,这些小声音让我继续前进,也帮助我更接
受自己的限制与阶段。
事实上,回顾自己的经历,前四年是在热带雨林做语音助理,后来加入早期新创并一路做
到被收购,期间一直专注在 dialog system 和 LLM 应用。这样的背景,让我在与大型公
司面试时,常常遇到推荐系统或通用问题,虽然我可以准备,但毕竟不是自己长期投入的
领域,在短短 45 分钟内,很难展现得比这些原本就在做推荐系统的其他 senior 更突出
。这些失败让我痛苦,但也让我渐渐接受:我不是不好,而是我们擅长的东西不同。
跟 Jimmy Butler 一样,我也在寻找那份“重新享受工作”的感觉。
前阵子去 Petco Park 看台南 Josh 开球,无意间看到 Trevor Hoffman 的一句话:“
There is No Shortcut to True Success.” 那一刻满满的情绪涌上心头。想起当年找实
习时也对自己说过一句话:“太阳升起,笑着继续努力。”
https://myppt.cc/rS7IM

Links booklink

Contact Us: admin [ a t ] ucptt.com