[心得] 2022 台灣 ML 面試心得 (AMZN/GOOG)

看板Soft_Job作者 (qpalzm)時間1年前 (2022/06/07 11:13), 1年前編輯推噓53(5307)
留言60則, 54人參與, 1年前最新討論串1/1
嗨大家好,第一次在本版發心得文,希望可以對正在面試的各位有所幫助。 medium 好讀版請看 https://reurl.cc/x9oARL 以下正文: Background 在今年決定離開前公司後,就期許自己未來順利找到工作的話,要記錄自己的面試過程, 分享給有需要的人。很幸運能在兩三個月內達到目標,所以我來還願啦 XD。 我的上一份也是出社會的第一份工作是 Machine Learning Scientist,主要的工作內容 就是 ML 在醫療影像上的應用。我們去年達成通過 FDA 的里程碑,是很特別也很有成就 感的經驗,有面試官跟我說他對於我這個經歷印象很深刻 XD。因為對 ML 這塊領域比較 熟悉也比較喜歡,所以這次找的工作都是偏 ML 相關的,沒有純 SDE 的。 Summary Not getting job interviews - Agoda - AMD - Atlassian - Binance - Datadog - Microsoft - Shopee - WorldQuant Interview opportunities - Yahoo (電面後被拒) - Qualcomm (offer get) - Amazon (offer get) - Google (final round 後被拒) - QuantumBlack (婉拒 final round) 這次我把目標設定在有一定規模的外商,主要跟自己的經歷和職涯規畫有關,陸續投遞了 超多間不同產業的公司,雖然收到很多無聲卡跟拒絕信但也因此獲得許多面試機會。多拿 到面試機會的好處就是能夠從真實的面試了解自己還不足的地方,在下次的面試就能夠表 現更好。個人認為這還蠻重要的,好幾次的 mock interviews 都比不上一場真正的面試 ,所以在丟履歷時也要有技巧,盡量能夠安排幾場面試在自己最想要去的公司之前,比較 能夠習慣面試的壓力進而發揮出最好的自己。 Preparation 和大多數人一樣,我也是透過 leetcode 大量刷題來累積解題的經驗和直覺,先從經典 的 Blind 75 開始先練到能夠看到題目就有想法,再來可以針對公司的高頻題去做 (雖然 個人這次的面試經驗覺得不太有用 XD),有空也可以參加 weekly contest,整個面試的 過程我寫了三四百題左右。寫題目的過程中通常我會給自己 10 分鐘左右,如果沒想法, 直接看討論區會是最有效率的學習方式,不然真的會寫到懷疑人生,然後會很想知道討論 區的大神們 (對就是 lee215) 腦袋的結構是長怎樣 XD。心態上我覺得不見得一定要追求 在有限的時間解出最佳解,如果可以當然很好,但重點放在能夠跟面試官協作共同解決一 道問題會是更好的,因為大部分面試官想要看的是,如果這位面試者是我的同事,我有沒 有辦法和他溝通共事,解出問題反而是次要的。這裡整理幾個注意事項給大家參考: - 和面試官溝通,確認雙方對問題的理解有共識 - 了解input有沒有一些可以利用的特性(如有排序過的array)以及output的格式 - 先敘述自己解題的大方向(如我想要用BFS/DFS解這道問題),取得面試官的認同 - 解題的過程可以加簡單的註解 - 完成後記得設計測資驗證程式碼的正確性 - 主動分析時間空間複雜度 - 注意變數名稱的前後一致性 - 解題的過程如果有卡住的情況,ask for hint! ML 相關的準備我這次是以課堂會學到的基礎知識為主,自己的專業領域因為平常都在碰 所以沒有特別花時間複習,如果大家有針對 ML 面試的準備方法的資源也歡迎分享給我。 這裡列了幾個我覺得重要的主題: - bias variance tradeoff - linear/logistic regression - L1/L2 regularization - bagging/boosting/AdaBoost - decision tree/random forest - k-means/gaussian mixture model - recall/precision/F-score - ROC/AUC - PCA - SVM - cross-validation - convolution feature map size/receptive field - ReLU/sigmoid/tanh/softmax - SGD/Momentum/Adagrad/RMSprop/Adadelta/Adam - dropout - batch normalization - binary cross entropy loss - data augmentation - image classification - object detection - RNN/LSTM/Transformer/BERT Yahoo Data Scientist / Research Engineer 1. Data Scientist Phone Interview 面試官是兩位台灣的 data scientists,一開始就先考一題 coding,難度 easy,很久之 後刷了 leetcode 發現有幾乎一模一樣的 XD,但當時我卡了超久才勉強擠出一個解答, 後續問了幾題 ML 相關的基礎知識,也回答得普普通通。當下結束後就覺得完蛋了,一個 月後不意外地被拒了。 2. Research Engineer Phone Interview Data scientist 被拒絕之後又被找去面了 research engineer,面試官是台灣的 hiring manager,問了一點工作經驗跟介紹他們的團隊,基本上就像是一個老前輩在聊聊 天而已 XD,結束的時候他說請我等一下 HR 的通知不過後續也沒有消息了,個人猜測是 因為前一次經驗被冷凍了。 Qualcomm Computer Vision Engineer, Deep Learning 1. Online Coding Test (4 Coding Questions) 一開始 HR 主動聯絡說對於我現職的產業有落差太大的疑慮,後來是主管對我的履歷有興 趣決定給我這個機會。面試前 HR 寄了一個連結說要完成一個線上考,總共考了四題,三 題我覺得都算是 medium 偏 easy 的程度,跟 linked list, priority queue, quick select 有關,leetcode 都有類似的題目,還有一題是考 C++,當下看到傻住因為我 C++ 都忘光光了 XD 2. First Round Virtual Interview First round 是跟對我的履歷有興趣的主管聊,後來發現因為他是我研究所實驗室的大學 長 XDD,整體面試的過程很開心,他很仔細地問了我的 publications 還有偏實務上的 ML design,並帶我過一次 online coding,詢問我的解題思路,然後看到我 C++ 那題笑 著跟我說你 C++ 很不熟齁 XDD,最後他給我很好的 feedback 說會幫我 move 到 final round,只是我如果確定入職後需要加強 C++ 的部分。 3. Final Round Virtual Interview (Presentation + 4 1–1 Interviews) Final round 總共五關排在同一天,第一關是一小時的 presentation,我選擇報我的碩 論。第二關是美國的工程師,問了我許多 ML 基礎知識,最後寫了一題 leetcode easy 的問題。 第三關是美國的 principle engineer,也會是這個職位的主管,人很和善,介紹這個職 位扮演的角色以及工作內容,問了很多 open questions,都是 ML 相關,譬如如果你再 解決一次碩論的問題,你會怎麼改進。最後剩一點時間他說我們來寫一道問題吧,我覺得 比較偏實務上會遇到需要實作的功能,很明顯不是 leetcode 會有的問題 XD,時間關係 我當下只有闡述我的想法但最後沒有寫出來,他請我當回家作業寫,我最後真的有寄給他 他也有回覆我。 第四關是兩位台灣的資深工程師,比較特別的是有問我修課經驗,問題主要是 behavior, ML 相關,給我的感覺是想到什麼問我什麼,其中一位還跟我承認說他沒什麼 面試別人的經驗不知道要問什麼 XDD。最後一關好像是 HR manager,也是簡單問幾個 behavior 相關的問題,我印象蠻深刻的是她跟我說我覺得你現職很好啊 XDD。 整體面試下來我覺得 Qualcomm 的面試強度適中,online testing 相較於 live coding 壓力小很多,後續 1-1 也都沒有問太刁鑽的問題。不過我面試完之後過了大概快兩個月 才收到 offer,整個過程還蠻煎熬的,本來還以為沒希望了,可能表現沒有太好所以不是 前幾順位的 XD。 Amazon Amazon Lab126, Applied Scientist 1. First Round Virtual Interview (Coding + ML) 面試官是美國的工程師,請我簡單介紹我的工作經驗和研究後,針對我的研究主題詢問 ML 的相關基礎知識,最後 coding 考了很知名的 design question,但我那時候 leetcode 還沒刷得這麼勤勞,沒寫出最佳解 QQ。 2. Virtual Onsite Interview (Presentation + 2 Coding + 2 ML) Final round 總共五關排了兩天,第一天的 presentation 我一樣選擇報我的碩論,過程 還蠻驚險的,因為 A 家他們自己的通訊軟體沒有單獨分享某個畫面的功能(註:感謝網友 提醒,其實是有只是當時我不太熟悉),我做的小抄完全看不到 XDD,還好因為之前面試 Qualcomm 有練習過好幾次,最後算是順利完成。 第二關考的是 ML,面試官是兩位美國的工程師(一位shadow),先針對我的研究主題詢問 相關基礎知識,也問到該領域的最新發展,再來是根據他們工作上比較常碰到的主題和我 討論相關 ML 的問題,還有一個對應的 coding 題目,不過只有請我闡述我的想法而已。 第三關考 coding ,是一位美國的 manager,初次見面直接來一題 leetcode hard 的 string 問題,當下第一個反應就是,完了,我有看過耶但我還沒看懂討論區的解答呀 XDD,只能用自己想得到複雜度比較高的解法硬解,自認為沒有解得非常好。 第四關考的也是 ML,也是兩位美國的工程師,主要針對我的研究領域詢問相關的問題, 我覺得問得很深入,也看得出面試官是有做功課的,剛好是自己的專業所以回答得都蠻切 中要點的。 最後一關個人猜測是 bar raiser,考了一題 string 相關的 design,leetcode 應該是 沒有,個人覺得難度 medium 偏 hard,有提出一個面試官也覺得可行的做法,但是在 implement 的時候炸了,自己評估是這次面試以來第二差的 coding 表現。 另外 Amazon 每一關的面試一定都有 behavior questions,考的就是他們很有名的 leadership principles,網路上的相關資源很多,這裡就不再贅述。我自己的準備方式 是根據過去的工作經驗用 STAR 的架構整理幾個故事,並蒐集幾個常見的問題嘗試回答看 看並做修改,盡量讓自己準備的故事能夠回答所有的問題。另外失敗的經驗一定要有,並 且要能讓面試官了解你在過程中是怎麼解決問題以及學習到什麼,我舉一個例子給大家參 考: Situation: 因產品的缺陷導致客戶的使用頻率下降 Task: 重新贏回客戶對產品的信心以及重新建立彼此合作的關係 Action: 做了全面的分析確認問題並闡述如何解決的方法 Result: 在一周內成功解決問題,客戶的滿意度和使用率也有回升 整體下來我覺得 Amazon 的面試蠻硬的,除了全程英文之外,要準備的面向很多, coding 是全部裡面最難的,ML 也問得很深入,BQ 每一關至少都問了三題,自己算是很 幸運有順利拿到 offer。後來聽朋友說我面試的這個職缺是 L5,不過最後的 feedback 認為我 L5 還不夠格但給了我 L4 的 offer,而且職稱在面試的過程中變了幾次,我也不 曉得為什麼 XD,最終給的是 applied scientist。 Google Software Engineer, Machine Learning, Pixel Camera 1. First Round Virtual Interview (Coding) 面試官簡短了解我的背景後,出了一題 string design,我覺得難度 medium。當初和 HR 聊的時候有提到希望能爭取 senior level ,不過這輪的 feedback 認為雖然溝通無 礙和解題思路清晰,但是 coding 還不到標準,好在 HR 有幫我爭取後續以 junior level 評估。 2. Virtual Onsite Interview (2 Coding + Domain + G&L) Final round 被安排了四天一天一場,第一關用英文進行 coding,開始之前面試官還跟 我說他會全程錄音(?。題目比較偏 number simulation,先來一題 easy 的基礎題後考了 一題 medium 的 follow-up,設計得蠻巧妙有趣的。第二關是兩位華裔工程師(一位 shadow),考 BQ 相關的問題,問得蠻仔細地,會一直追問下去。第三關也是 coding,考 了 island 問題 (但我好像沒在 leetcode 看過),難度 medium 偏 hard,要拐個彎才想 得到解法,實作不難。最後一關考 ML design,請我設計一個 google 本身有的功能,因 為第一次接觸到這種類型的問題有點不知所措,回答得有點散亂,沒有整體的系統架構, 最後也有問了幾題基礎知識。 過了一周 HR 通知我說面試沒過 QQ,也跟我 debrief 一下整體的 feedback,本來以為 是 ML 那關炸掉,但 HR 表示面試官覺得雖然看得出我沒有設計系統的經驗,但認為我有 把教科書上的相關知識拿來套用,因此給我過,反而是 coding 兩關都跟 first round 一樣,覺得我思路 ok 但實作沒有達到要求。 在面試 Google 之前就有聽說他們面試是非常不容易通過的,雖然結果不如自己預期,但 也不太意外。個人認為他們 coding 題目其實沒有比較難(以我這次面試下來的感覺),但 是標準很高,用 leetcode weekly contest 來比喻的話就是你的 code 要能夠按一次 submit 後就 accepted,不然會有很重的 penalty ,而且還會看你的 coding style 是 不是符合一定的標準。之後有機會的話再挑戰看看 XD。 QuantumBlack Data Scientist 1. Technical Online Tests (Coding + ML) 這間是 McKinsey 旗下的公司,工作內容比較像是顧問,會和客戶討論釐清問題後利用 ML 的技術幫助客戶解決,算是蠻特別的工作型態。面試之前先收到兩個 online tests, 一個是 ML 相關的選擇題,另一個是兩題 easy~medium 的 coding 和一題 ML design, 環境已經幫你裝好常用的套件直接要你寫出 ML 的演算法 XD,我想大概只有這家是這樣 考。 2. First Round Interview (ML) 因為有簽 NDA 的關係不能透漏太多資訊,主要會針對工作經驗詢問 ML 相關的知識,也 會設計一些情境討論如何使用 ML 的技術解決問題。不過後來因為有接受其他 offer 所 以沒有完成,也沒有進到最後一輪的面試 Conclusion 這次的面試之旅終於告一個段落,過程老實說很艱辛,裸辭的壓力真的很大,每天戰戰兢 兢地拼命刷題,自己回想起來都覺得不可思議,不曉得自己是怎麼撐過來的。最後的成果 算是遠超出自己的預期,拿到 offer 的當下真的是開心到不行,很感激這一切,也很謝 謝這一路上幫助我的人。感謝看到這邊的你/妳,如果能夠對你/妳有幫助,就達到我寫這 篇的目的了,有問題也可以留言讓我知道。最後祝福大家找工作之旅都能順利! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.105.104.151 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1654571639.A.BC1.html ※ 編輯: peter850706 (27.105.104.151 臺灣), 06/07/2022 11:18:00

06/07 11:20, 1年前 , 1F
高手
06/07 11:20, 1F

06/07 11:22, 1年前 , 2F
大大決定去哪裡呢
06/07 11:22, 2F
最後決定去Amazon哦

06/07 12:06, 1年前 , 3F
真的想知道lee215到底怎麼想的
06/07 12:06, 3F

06/07 12:15, 1年前 , 4F
推推~
06/07 12:15, 4F

06/07 12:18, 1年前 , 5F
推!感謝分享!
06/07 12:18, 5F

06/07 12:45, 1年前 , 6F
推!
06/07 12:45, 6F

06/07 12:56, 1年前 , 7F
推 感謝分享
06/07 12:56, 7F

06/07 12:56, 1年前 , 8F
06/07 12:56, 8F

06/07 13:08, 1年前 , 9F
推分享
06/07 13:08, 9F

06/07 13:09, 1年前 , 10F
推推
06/07 13:09, 10F

06/07 13:43, 1年前 , 11F
辛苦了,苦盡甘來推
06/07 13:43, 11F

06/07 13:44, 1年前 , 12F
06/07 13:44, 12F

06/07 13:55, 1年前 , 13F
太強啦 推
06/07 13:55, 13F

06/07 13:57, 1年前 , 14F
恭喜你
06/07 13:57, 14F

06/07 14:12, 1年前 , 15F
推一個
06/07 14:12, 15F

06/07 14:18, 1年前 , 16F
06/07 14:18, 16F

06/07 14:21, 1年前 , 17F
高手
06/07 14:21, 17F

06/07 14:29, 1年前 , 18F
神 跪著看
06/07 14:29, 18F

06/07 14:55, 1年前 , 19F
nice nice
06/07 14:55, 19F

06/07 14:58, 1年前 , 20F
Applied Scientist 是A家薪水在IC裡同級上限最高的
06/07 14:58, 20F

06/07 15:28, 1年前 , 21F
太神了
06/07 15:28, 21F
※ 編輯: peter850706 (27.105.104.151 臺灣), 06/07/2022 15:30:30

06/07 15:41, 1年前 , 22F
好猛喔
06/07 15:41, 22F

06/07 16:04, 1年前 , 23F
推推
06/07 16:04, 23F

06/07 16:27, 1年前 , 24F
請問是要去加拿大的缺嗎
06/07 16:27, 24F
是台北的缺喔

06/07 16:39, 1年前 , 25F
高手
06/07 16:39, 25F

06/07 16:51, 1年前 , 26F
沒記錯的話 Amazon 的 AS applied scientist 是pay
06/07 16:51, 26F

06/07 16:51, 1年前 , 27F
給最高的.
06/07 16:51, 27F

06/07 16:51, 1年前 , 28F
哦 上面有人說了xD
06/07 16:51, 28F
※ 編輯: peter850706 (27.105.104.151 臺灣), 06/07/2022 17:17:53

06/07 17:36, 1年前 , 29F
推推 恭喜
06/07 17:36, 29F

06/07 17:45, 1年前 , 30F
恭喜 請問年資幾年?
06/07 17:45, 30F
目前一年多哦

06/07 17:47, 1年前 , 31F
謝謝分享
06/07 17:47, 31F

06/07 18:07, 1年前 , 32F
06/07 18:07, 32F

06/07 18:17, 1年前 , 33F
好強 恭喜!
06/07 18:17, 33F
※ 編輯: peter850706 (27.105.104.151 臺灣), 06/07/2022 18:29:32

06/07 18:38, 1年前 , 34F
太神啦
06/07 18:38, 34F

06/07 19:20, 1年前 , 35F
好厲害 推
06/07 19:20, 35F

06/07 19:55, 1年前 , 36F
大大是PHD嗎?
06/07 19:55, 36F
我碩畢喔 ※ 編輯: peter850706 (27.105.104.151 臺灣), 06/07/2022 20:40:17

06/07 20:55, 1年前 , 37F
好文,大推!
06/07 20:55, 37F

06/07 21:01, 1年前 , 38F
06/07 21:01, 38F

06/07 22:21, 1年前 , 39F
推 我當初看職缺描述感覺只找Amazon的L5+就沒投了
06/07 22:21, 39F

06/07 22:26, 1年前 , 40F
我聽到的數字高G L3好多QQ
06/07 22:26, 40F

06/07 22:55, 1年前 , 41F
強, 想問你的學歷
06/07 22:55, 41F
112資工碩畢

06/07 23:29, 1年前 , 42F
前公司有過FDA 直接先猜是Vysioneer
06/07 23:29, 42F
也是同領域的大大嗎XDD

06/08 00:02, 1年前 , 43F
推分享
06/08 00:02, 43F

06/08 00:02, 1年前 , 44F
lab126 恩恩
06/08 00:02, 44F

06/08 00:09, 1年前 , 45F
推 好奇你碩論有投conference嗎?看Amazon JD似乎prefe
06/08 00:09, 45F

06/08 00:09, 1年前 , 46F
r有paper的
06/08 00:09, 46F
有哦,當初運氣不錯有投上

06/08 04:59, 1年前 , 47F
A 家他們自己的通訊軟體有單獨分享某個畫面的功能喔
06/08 04:59, 47F
感謝提醒! 當時有點手忙腳亂沒注意到 原文已修正 ※ 編輯: peter850706 (27.105.104.151 臺灣), 06/08/2022 08:36:15

06/08 08:56, 1年前 , 48F
我是做CV,但不是醫療影像的XD 但之前有跟醫隼老闆聊過
06/08 08:56, 48F

06/08 10:31, 1年前 , 49F
06/08 10:31, 49F

06/08 15:23, 1年前 , 50F
強者推
06/08 15:23, 50F

06/08 21:49, 1年前 , 51F
謝謝分享!恭喜
06/08 21:49, 51F

06/08 22:16, 1年前 , 52F
推!
06/08 22:16, 52F

06/09 17:03, 1年前 , 53F
這才是高手啊
06/09 17:03, 53F

06/09 20:29, 1年前 , 54F
lee215真滴屌
06/09 20:29, 54F

06/10 23:53, 1年前 , 55F
感謝分享
06/10 23:53, 55F

06/11 15:35, 1年前 , 56F
06/11 15:35, 56F

06/13 00:59, 1年前 , 57F
恭喜,歡迎來當同事^_^
06/13 00:59, 57F

06/13 11:13, 1年前 , 58F
推分享
06/13 11:13, 58F

06/13 20:21, 1年前 , 59F
推t1 ML
06/13 20:21, 59F

06/14 23:45, 1年前 , 60F
推,謝謝分享
06/14 23:45, 60F
文章代碼(AID): #1Ydi9tl1 (Soft_Job)