[心得] 北美灣區ML Engineer面試
看板Tech_Job (科技人)作者LeoMushroom (LeoMushroom)時間8小時前 (2025/08/09 01:12)推噓11(11推 0噓 18→)留言29則, 12人參與討論串1/1
[幫友人代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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.67.81 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1754673122.A.7F3.html
※ 編輯: LeoMushroom (111.240.67.81 臺灣), 08/09/2025 01:42:17
※ 編輯: LeoMushroom (111.240.67.81 臺灣), 08/09/2025 01:49:38
推
08/09 02:16,
7小時前
, 1F
08/09 02:16, 1F
推
08/09 02:23,
6小時前
, 2F
08/09 02:23, 2F
推
08/09 02:32,
6小時前
, 3F
08/09 02:32, 3F
推
08/09 04:36,
4小時前
, 4F
08/09 04:36, 4F
→
08/09 04:37,
4小時前
, 5F
08/09 04:37, 5F
→
08/09 05:52,
3小時前
, 6F
08/09 05:52, 6F
→
08/09 05:52,
3小時前
, 7F
08/09 05:52, 7F
推
08/09 05:52,
3小時前
, 8F
08/09 05:52, 8F
→
08/09 05:53,
3小時前
, 9F
08/09 05:53, 9F
→
08/09 05:53,
3小時前
, 10F
08/09 05:53, 10F
→
08/09 05:53,
3小時前
, 11F
08/09 05:53, 11F
→
08/09 05:53,
3小時前
, 12F
08/09 05:53, 12F
→
08/09 05:54,
3小時前
, 13F
08/09 05:54, 13F
→
08/09 05:54,
3小時前
, 14F
08/09 05:54, 14F
→
08/09 05:55,
3小時前
, 15F
08/09 05:55, 15F
→
08/09 05:55,
3小時前
, 16F
08/09 05:55, 16F
推
08/09 06:11,
3小時前
, 17F
08/09 06:11, 17F
推
08/09 06:29,
2小時前
, 18F
08/09 06:29, 18F
→
08/09 06:29,
2小時前
, 19F
08/09 06:29, 19F
推
08/09 08:31,
45分鐘前
, 20F
08/09 08:31, 20F
推
08/09 08:45,
31分鐘前
, 21F
08/09 08:45, 21F
推
08/09 08:46,
30分鐘前
, 22F
08/09 08:46, 22F
推
08/09 08:47,
29分鐘前
, 23F
08/09 08:47, 23F
→
08/09 08:47,
29分鐘前
, 24F
08/09 08:47, 24F
→
08/09 08:47,
29分鐘前
, 25F
08/09 08:47, 25F
→
08/09 08:47,
29分鐘前
, 26F
08/09 08:47, 26F
→
08/09 08:47,
29分鐘前
, 27F
08/09 08:47, 27F
→
08/09 08:47,
29分鐘前
, 28F
08/09 08:47, 28F
→
08/09 08:47,
29分鐘前
, 29F
08/09 08:47, 29F
Tech_Job 近期熱門文章
PTT職涯區 即時熱門文章
102
329