閱讀時間約 6 分鐘

2793 字

在 2021 下半年的時候面了 Amazon 跟 Microsoft 兩家,可惜都在 virtual onsite 後被拒絕,投的職缺都是 software engineer in machine learning。這邊分享一下面試經過跟我的準備方法。

Microsoft

Day 0: 官網投遞履歷:Software Development Engineer 2 - ML。

Day 2: 接到 recruiter 來電,表示會安排面試。因為我那時候才剛開始刷題,我表示想要兩週後再面試。當天下午收到另一位負責安排時間的 Microsoft 同事來信,他強烈建議我不要等兩週,討論以後將面試安排在隔週。

Day 6: 線上面試,前半小時問履歷上的工作經驗,後半小時是 Leetcode medium。

Day 8, 9: 三關線上面試,都是中文。第一關前半小時是 ML case,後半小時是 Leetcode medium。不得不說這關 ML 問得蠻深的,感覺面試我的人很強。第二關前半小時也是履歷上的工作經驗,後半小時是 Leetcode medium。第三關是主管,前半小時是履歷上的問題跟 behavioral questions,後半小時是 Leetcode medium。

Day 15: 收到拒絕信。

Microsoft 動作很快,而且會一直催你,想投的話可以晚一點投,據他們說法風險是如果有找到人職缺就會關掉,同時投多家公司的話要注意時間安排。

Amazon

投的是 Amazon Sidewalk 的職缺,老實說從來沒聽過這是什麼,聽 recruiter 介紹完還是不太懂,總之是個 IOT 相關的 team,據說主要市場是在歐美。

Day 0: 官網投遞履歷:Software Development Engineer, Machine Learning - Amazon Sidewalk。

Day 7: 收到 recruiter 來信約電話。

Day 16: 與 recruiter 通話,recruiter 人蠻好的,有問必答,也提醒我 Amazon 很重視 leadership principle,有人因為 leadership principle 沒答好所以不錄取,也有技術面試結果不好但是被 leadership principle 救起來的例子,叫我好好準備。也提醒我要準備英文版的,因為所有面試都是跟美國辦公室的員工面試。

Day 28: 線上面試,前半小時問 behavioral questions,後半小時問了一題程式,題目應該沒在 Leetcode 上,不過我覺得難度是 easy。其實我面完以後覺得不會過,講英文的時候有點卡,而且有兩三次都請他重講一次問題,簡單的程式題我也答得不是很好。

Day 35: 收到 Amazon 來信表示面試過了,我有點意外。又跟 recruiter 通了一次電話,然後約 loop interview 的時間。Amazon 的 loop interview 是五個小時,也都是半小時 leadership principle、半小時技術問題,還有一個 30 分鐘的 candidate chat,讓面試者問任何問題,而這個 chat 不會影響面試成績,所以想問什麼都可以問,我覺得蠻好的。

Day 43, 44, 45: 因為是跟美國辦公室面試,所以我能選的時間是台灣的 23:00~9:00,最後是拆成三天。第一關前半小時 beharioral questions,後半小時是 Leetcode medium,其實寫得蠻順的,只是用英文解釋起來還是有點卡,最後有點小超時。第二關是半小時 beharioral questions 加上半小時的 ML case。ML 問得比我預期的簡單多了,簡單到不像 Amazon。第三關是跟 Technical Program Manager 面試,他只問了半小時的 beharioral questions 就讓我問問題了,我問完問題就結束了,這關沒有技術問題。第四關兩題 Leetcode,一題 easy、一題 medium,兩題總共花了半小時,剩下半小時還是 behavioral questions。最後一關前半小時是 behavioral questions,後半小時是系統設計,我完全不會,也完全沒準備,沒有料到 machine learning engineer 會被問到系統設計,所以整個亂講一通。

Day 55: 收到拒絕信。

Behavioral questions 準備

因為 Amazon 的 behavioral questions 問得最難,我主要都是針對它準備。Amazon recruiter 提供了一個部落格,裡面詳盡分析 14 條 leadership principle 跟對應的範例問題,另外也在 PTT 看到有人推薦知乎這篇文章:BQ 你需要知道的都在這裡了。主要根據這兩篇的內容準備,因為 Amazon 都是英文面試,所以自己根據過去經驗寫了英文稿想辦法背起來,面試時就是根據問題找出有相關的工作經驗回答。

Leetcode 準備

我大概密集刷了兩個月的 Leetcode,大概傳了 900 次,我沒有開新的 session,所以有點難算刷了幾題。Weekly contest 跟 Biweekly contest 幾乎每次參加,名次通常落在 200 到 500 名之間。前三題 1 easy + 2 medium 可以穩定在 40 分鐘內解出來,hard 不一定。我有買一個月的 premium,不過實際用起來感覺沒有一定要買,建議是面試前買一個月就好,有信心的話不買也沒差。

Leetcode 有一個很好的功能,叫做 assessment,放在 interview tab 下面。他會隨機抽題目組成題組,當作模擬面試。免費版的話就是隨機抽題,有訂閱的話就可以根據公司抽題。題組有分 online assessment、phone interview、onsite interview。Online assessment 會是兩題 easy,phone interview 是 1 ~ 2 easy + 1 medium,onsite interview 是三到四題,通常是 1 easy + 2 medium + 1 hard。他會根據你解題的速度以及上傳次數評一個分數,這個分數不是太重要,沒什麼參考性。寫幾次以後,他有一個 insight 功能,會告訴你哪個 topic 的表現如何,表現最好應該就是 Looking good,次好是 Getting there。我覺得這個功能很好,因為你寫題目的時候不知道 topic,跟面試的時候是一樣的,而它又會告訴你哪個主題比較強可以少刷,哪個主題比較弱需要多刷。在刻意練習這本書提到,最有效率的進步方式就是在稍微超出能力範圍的地方練習,熟練了以後再逐步提高難度,重複在舒適圈練習只是浪費時間。Assessment insight 就是在幫你找出每個 topic 適合你的難度。

刷題如果當天時間比較多就會先寫一場 assessment 的 onsite interview,如果 hard 真的做不出來就會提早結束。結束以後每一題都會看 discuss,看看有沒有更好或是更簡潔的寫法,有的話就會用那個寫法再傳一次。如果覺得這個做法之後會忘記,就會先把題目記下來,過一到兩週再回來寫一次。接下來看心情,有時候會照公司以及頻率排序刷題,避免先知道題目屬於哪個類別以致於降低困難度。或者根據 assessment insight 的結果照主題刷題,Looking good 的主題我就只刷 hard,Getting there 的主題我會從 medium 開始刷。一樣不論有沒有寫出來,都會看 discuss 有沒有更好的寫法,有需要的題目就記下來之後再複習。

有人說刷題永遠沒有準備好的一天,但我不這麼認為,我覺得週賽是一個不錯的標準來看準備是否充足。這兩家都是半小時一題 medium,如果能穩定在 40 分鐘解出前三題 1 easy + 2 medium 就可以去面試了。

關於模擬面試,我覺得 PTT 這篇分享講得很好,基本上我是參考他的。

Domain interview 準備

我沒有準備 machine learning,不過我還是想提一下 domain interview。Machine learning 的範圍又多又雜,老實說我也不知道怎麼準備起。另外,我沒有預期 machine learning engineer 會被問到 system design,沒想到面 Amazon 的時候被問了,慘。其實 Amazon 確認面試時間的信裡有告知每一關的面試主題,所以我提早一週知道有 system design,但只有一週我也不知道怎麼準備起,只看了 Amazon 的 Youtube 影片就當作是準備完了,想當然爾這關面試表現很差。所以就算是面試 machine learning 相關職缺,還是要跟 recruiter 確認一下會不會考 system design。至於要不要準備……因為大部分的公司都不會考,除非 Amazon 是第一志願,或是 Leetcode 週賽可以場場破台,不然花太多時間我覺得 CP 值不高,不如多刷幾題。

其他

過程中發現 Apple 有神奇的職缺:ISE, Input Experience - ML Software Eng., SUM (Sensor Understanding and Modeling),JD 看起來是做輸入法。都投 Microsoft 跟 Amazon 了,Apple 當然也順手就投了,只是後來沒有進入面試階段。想找 ML 工作的話也可以去 Apple 官網看看。

comments powered by Disqus

最新文章

分類

標籤