[心得] 北美灣區ML Engineer面試

看板Tech_Job (科技人)作者 (LeoMushroom)時間8小時前 (2025/08/09 01:12), 7小時前編輯推噓11(11018)
留言29則, 12人參與, 29分鐘前最新討論串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
現在ML engineer 不是很搶手嗎 還這麼難喔
08/09 04:37, 5F

08/09 05:52, 3小時前 , 6F
樓上的有所不知,原po光是面試機會
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
我前陣子去Petco Park也有看到那個雕像XD
08/09 05:53, 10F

08/09 05:53, 3小時前 , 11F
但我的面試機會大概連原po的三分之一
08/09 05:53, 11F

08/09 05:53, 3小時前 , 12F
都沒有,乾.....
08/09 05:53, 12F

08/09 05:54, 3小時前 , 13F
然後非AI/ML領域的,
08/09 05:54, 13F

08/09 05:54, 3小時前 , 14F
不要說60% correct is OK啦
08/09 05:54, 14F

08/09 05:55, 3小時前 , 15F
沒有個90%甚至100%的話
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
半年有35個機會不知道在哭什麼
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
推!超級好文! 感覺的出來原po是
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
po有很大的後盾去面試這麼多間?
08/09 08:47, 27F

08/09 08:47, 29分鐘前 , 28F
或是在verbal offer階段有更多底氣
08/09 08:47, 28F

08/09 08:47, 29分鐘前 , 29F
談薪水?
08/09 08:47, 29F
文章代碼(AID): #1ebY_YVp (Tech_Job)
文章代碼(AID): #1ebY_YVp (Tech_Job)