大家好,趁著這週英國在放聖誕假期想和大家分享一下這幾年在英國工作和最近找工作的
心得.
Background:
小弟今年41了.
我從高一開始從BASIC開始學起。很感謝當時社團的學長很有動力地教我們程式。後來高
二高三有進IOI培訓營,可是都差一點沒選上國手. (sigh)
大學在期望下念了長庚醫學系。這之間也是有參加一些competitive programming比賽賺
些零用錢。不用最多就到ACM ICPC regional很爛的名次而已 XD 倒是和另一個醫學系的
同學參加了兩個作品型的比賽拿到過一個第一和一個第二.
因為對臨床不是太有興趣,大六我就準備GRE準備出國。我的PhD念的是系統神經學
(systems neuroscience),是一門心理學,生物學,計算科學都包的領域。念得還滿開心
的,所以畢業後又做了3年半的post-doc.想以在美國做faculty為目標。
Post-doc做了一陣子覺得不是很順,然後女兒又出生了。那時幾乎每個月都月光族,就
想說再來找找碼工的工作好了。很幸運我有一個(只見過一面)的貴人, 隔壁實驗室
post-doc, 願意幫我內推DeepMind. DeepMind那時已經被Google買走了,不過還在
AlphaGo出現之前。所以門坎還不是很高。而且DeepMind有一個特色就是會找
neuroscience background的researcher. 當時的面試大概是一關basic knowledge
(math/CS/stats/ML half hour each), 一關coding (leetcode easy to medium) 然後好
像就2-3個research deep dive (和team 裡manager & senior members 聊自己和他們的
工作)。其實我那實一行neural network的code都不會寫. 所有Deep
learning/reinforcement learning的知識都是為了面試看書惡補的。很難想像現在來
interview還有可能會上(應該HR就刷掉了) (最近面過幾個Intern 都是MIT, Stanford,
CMU的 XD)
DeepMind的經歷:
我在DeepMind到現在呆了六年又幾個月了。從一開始對DL/RL完全沒概念,到現在也算有
點熟悉了。還記得我上工的第一天我的manager親自帶著我寫了一個VAE來上手 :) 我這六
年從4升到6,也算混得還可以啦。也學會了不少software engineering 和DL/RL的東西.
比較可惜的是沒有參加到大project. (我加入時AlphaGo快做完了。沒跟上AlphaFold就是
自己眼光不好,我當初不覺得他們的東西會work XD)。今年秋天開始覺得手邊的project
有點無聊了,想要做比較production的東西,所以開始看看有什麼工作機會。因為家庭因
素,我們決定留在倫敦。所以找工竹範圍就在這裡而已. 有試了FB (it was still FB
when I tried), JP Morgan Chase, Two sigma IQ 和公司內的機會.
FB (Meta)
FB的面試真的慘。我請了在美國的好友同學幫我內推一個London的位子(health相關). 結
果3天後直接被 HR罐頭信reject. 後來在 LinkedIn找到一個HR願意讓我面看看general
MLE的位子。我先和一個manager informal chat了一回合,感覺還不錯(downside: 倫敦
可以選的projects還是偏少. 我想做AR/VR就沒什麼選擇). 後來我正式和一個engineer
manager phone interview, 講了足足60分鐘的behavior questions. 像是你最大的失敗
是什麼,你和team mate有conflict怎麼處理 etc. 我覺得我回答的還可以,但不算特別
好。因為我沒有把所有這些問題的答案都先想好。結果一週後HR回我說,他們覺得我的
impact不夠大(沒有lead過10+人的team),所以沒法面E6, 只能E5. 那我當然就跟他們謝
謝再連絡了。
心得:behavior questions 還是要用心準備。其實問題網上都找得到。可以把答案都先
想好。然後impact可能要想辦法唬爛大一點,不然可能沒法上E6…
JP Morgan Chase
這是LinkedIn上的HR找上我的。先和Manager聊了一小時的天,然後做了一個2小時的
online accessment. 大概leetcode easy 吧. 我在等OA結果時,問了一下HR expected
total comp能到多少。我跟他說了我現在的TC. 結果他就開始崩潰大笑,還說原來讀書真
的能賺到錢。然後我就被他謝謝再連絡了.
心得:不想浪費時間的話,就要先把level/TC範圍先問好。如果想練手的話,就不要太早
談到TC :)
Two Sigma IQ
這是Two sigma的一個獨立的子公司。專門用machine learning做一些保險相
關的產品。也是LinkedIn上HR找上門的。也是先和hiring manager聊一小時的天
(behavior/ basic ML design)。然後一個2小時的OA (leetcode easy)。就進入virtual
onsite. 他們在一天排了6個面試,因為很多人是紐約office,所以最後一場對我來說太
晚了。我就請他們reschedule.結果最後一面就排到明年去了.
VO 1. Machine learning system design. 問了一些deep learning的基本問題. 有一題
是問怎麼設計一個文件(say an arxiv paper)的好壞的classifier.
VO 2. Another round of ML system design. 如何做PDF文件(image+text)的
in-painting.
VO 3. Coding (use hacker rank) Leetcode easy to medium? 在streaming data 找不
同的變數的mean/max/min. 應該是很簡單,但我的code沒有一次就能run. 還是有一些語
法錯誤要改。表現可能只能算普通.
VO 4. ML system design again. Very open-ended. 討論怎麼做一個car insurance的估
價的系統
VO 5. With CTO behavior 閒聊。講一些過去做過的project.
VO 6 rescheduled.
我現在還在等Two sigma IQ的下一步和公司內換組的機會。最後也可能全部都談不成,還
是留在現在的位子 :) 等一切確定再來分享一次
Overall 心得:在senior level, leetcode似乎沒那麼重要了。但還是會有至少一輪
coding。所以還是要準備... 我的感覺是都問不是很難的問題就是了。所以目標是語法要
熟悉,能做到一次bug free.
System design: 我原本以為會有distributed system design還念了一點書惡補一下。結
果ML的position似乎就是ML system design. 問你從data到model building 到eval 到
product的整個過程。這其實也不太用準備。平常工作就每天在處理的.
然後behavior question真的要準備。然後想好要怎麼自我介紹,要high light那些
projects. 這個部分看起來原來是最重要的.
希望這個分享對大家有幫助。有什麼問題我也可以在推文回答 :)
--