# 背景
台大機械畢業 最高學歷碩士
現職半導體設備外商的軟體開發職位
YOE 9
之前也有分享過其他面試文章,可以A我ID
Offer我不會分享數字,*請不要私信問數字*,不會回信
如果對面試準備心得有興趣的,可以推文提問,我下一篇準備心得會一起回答
目標是給時間不太多的人準備用的
Offer: CloudMosa, Kronos, Netskope
Withdraw: Amazon(Eero), Canonical, TI
Reject: Google
無聲: Peloton
# Interviews
最早是google問我要不要面,想說既然要面不如多準備幾個一起面
結果面到一半發現其實根本就不懂embedded,自以為略懂根本是屁XD
緊急調整方向轉純軟,每次面試都覺得自己表現不好,最後運氣不錯拿到三個offer
都要感謝老婆跟女兒的支持,不然沒有機會拿到這些offer
## Caonical
Written interview關注在工作跟open sourece經驗,沒有問高中數學成績之類的
第一關screen interview問得很多東西我都不太會,面試官也只說that's okay..
第二關就覺得背景差太多,浪費面試官時間有點不好意思..
他們職缺寫得很general,但實際上可能是特定領域,投之前要多研究一下JD…
結果: Withdraw
## CloudMosa : Senior Engineer
剛過B輪,目前準備擴大招人
一次要面五個人 可能會花六七個小時,建議要面試的話要排一整天比較不會累
有的面試官是在美國時區來面試
面試完用Linkedin一看才發現面到的有VP, CTO XD. 他們面試的時候人都很好
面試途中遇到不會的可以去cppreference查,查資料也算是面試的一部分
像是我沒用過std::hash,現場查來用會有點緊張XD
用godbolt寫完範例然後compile檢查test case會不會過,不過過就當場debug
面試有coding & behavior, 有不少問C++專業知識的部分,
coding 大約在medium附近, 都不是太難而且是典型的題目
不過有的面試官對一些C++機制會問得很深,像是我面完才搞懂amortized的定義
CloudMosa的運作方式跟大公司很不一樣
該公司本身並沒有跑agile,直接自己決定自己想做的事情就好,超酷
每個人要promote 自己的idea讓別人願意做你帶的project,即使CEO也是一樣
很要求每個人同時有business & technical view
也問過幾個曾經去過CloudMosa的強者,都評價是最喜歡的公司之一
整體面試的印象我覺得很棒
個人觀點: 這家的product台灣沒什麼人會用,吃到飽太便宜XD
結果: Offer get
跟HR要了兩個月準備,最後發現兩個月真的太久...中間的流程比較慢(跟AMZN比)
HR因為我給的時間比較久,有給我一個leetcode準備大補帖
不過就算你給HR的準備時間很短,還是建議跟HR要coding準備大補帖
資料非常完整而且對未來也有幫助,看了不吃虧
建議Google還是要早點面Tech Screen,至少在決定offer前一個月VO面完比較好
如果你手上有offer要提早決定,早點HR講請他們幫忙加速
但是tech screen後要等五個工作天,VO後要等十個工作天,這兩個快不了
最多就是有禮貌地在第五個工作天寫信去問
VO: Virtual Onsite
聽說Google七月想要close所有headcount,可能七月後面試機會大減
Timeline:
Tech screen – 1w – Tech screen – 2w – VO 光這樣就一個月去了..
不過我可能還算快的XD
### Tech Screen #1
可以選要Embedded or Algorithm,
建議沒很熟driver的人都不要選embedded...因為我拿到題目連4 bytes alignment都不懂
...orz
最後硬著頭皮請面試官換algorithm, medium但是我沒有處理完所有edge cases.
考了一題merge相關的,然後這題後面VO又遇到一次XD
得到的Feedback是不適合embedded但SWE有潛力,所以再面一次tech screen
### Tech Screen #2
一題無follow up medium~hard中間(?) 類似leet code island problem的變形
中間面試官沒特別給甚麼提示,我就把想法列出來然後把重要的邏輯先寫完
最後忘了講解TC SC...不過似乎還是過了XD
### VO
排定面試的時候有說至少有兩關需要是英文,Recruiter會盡量把中文排在BQ
比較可以避免語言差異導致表達不佳,不過不是一定能排到中文BQ
# Googliness (BQ) 中文
主要重點是必須舉你遇到的例子,不能是假設性的情況
Coding: 難度大概都在medium
#Coding 1 英文面試: 字串比對
一開始覺得題目有點太簡單,只是做資料比對return T/F,所以問有沒有follow up
面試官: 那我們直接到followup 好了,followup除了比對還要回傳差異位置
寫了幾個bug,有幾個bug沒有發現,需要面試官點出才知道
最後發現有一個條件沒有完整理解到,可能有影響面試結果
# Coding 2 英文面試: merge相關
跟Tech screen一樣的題目,坦白跟面試官說寫過之後
面試官問: followup有寫過嗎? 沒有我們就來寫這個
於是題目改成general merge,寫完之後因為還有時間就
討論一些這個題目的資料特性與C++的語言特性跟實作
可能有些問題沒答得很好
# Coding 3 中文面試: 字串取代相關
這題有不少edge cases,一開始提了幾個,之後發現不少都提出來討論
題簡易實作沒很難,不過我覺得寫得太慢,而且專注討論的地方可能不太對
推測應該專注在實作上最困難的部分,寫最簡單的字串處理浪費太多時間
結果: Reject, 沒進hiring commitee
## Kronos: Infrastructure Senior Engineer
OA: Codility 兩題 medium, 看不見所有test cases
VO: Coding x 1 + System design x 2
Coding題目難度約medium
建議確定清楚題意再寫,因為有些如果你不是該domain的話可能會對題目有誤會
盡量釐清scope再來解釋你的想法
System design 以low level design為主,不是distributed system
通常最開始給的題目會非常模糊
建議自己與面試官討論想要探討的邊界與邏輯,最注重的是與面試官如何討論方向
仍然要寫pseudo code, 寫之前先把幾個設計的方向, pros/cons列出來討論再寫
Feedback主要正面的點都是在我跟面試官如何探討設計這塊
因為Quant要求的latency到us,面試可以多表現一點C++可以擠效能的地方
這家面試速度跟回復速度都超快...HR人也很專業
聽說2018~2019的開發氣氛不太好,不過現在氣氛不錯的樣子
開發上也不會強押時程,寧願花時間polish也不要隨便寫個workaround上去
聽起來是滿WLB的,目前聽到是remote 2d/week
結果: Offer get
## Netskope
Tech screen(coding) + Coding x 2 + Exploratory Interviews
查了一下LinkedIn,很多Trend Micro的人過來這邊XD
104看Kloudless職缺都有寫下限,還滿高的,我拿到的offer高於104的
### Tech screen
如果HR跟你說他給codepad link只是拿來聊天用,別相信XD
聊聊天然後考個coding,難度約medium,可以多了解該Team要做的事
### Coding
有的面試官可能是印度籍,建議用聲音清晰的耳機,然後練一下聽印度口音
不是單考coding, 仍然會先問一些背景知識像是networking / C++ / TLS…etc
如果你有multithreading/IPC經驗,Posix相關的可以多準備一點
難度都在medium左右,但是有可能有很多follow up,我遇到過一次四題
不過其中幾個其實很簡單,大概就複製貼上改一下
兩次的coding interview我都沒完全寫完,但是即使沒時間寫完
還是會花幾分鐘把比較重要的function理想實作註解寫上,至少掙扎得有價值XD
面試的時候遇到bug,online compiler支援gdb可以現場debug
如果沒直接用過gdb我建議稍微練習一下
每一次面試的時間其實都快80 min,還好HR在排的時候不是back to back..
### Exploratory Interview
有點像是BQ+Tech screen 但比較偏tech
會給你比較多的時間問問題(印象中20min),記得面試之前都要準備要問的問題
找我的HR很專業也很透明,跟他合作起來很愉快,只是我面到一半他就離職XDD
結果: Offer get
## Amazon Devices (Eero)
在Amazon直接投,要注意垃圾郵件區...如Amazon通知面試的信
panpowered.com被gmail歸類到spam..我因為這樣晚了幾天才開始OA
## OA: medium x 2
所有test case都看得到,但是後面的test cases input會被隱藏,可以知道他過不過
有一題跟LRU有關係,但是我後來才想到XD
注意: OA要求用C++
## Tech screen: medium
沒有要求完全bug free, 題目本身難度不高,
聊聊天 + medium x 1,面完後面我才在leetcode上寫到一題一模一樣的
以Pointer操作為主,主管當時要求用C寫
## VO
eero headcount freeze沒有繼續面
過程中OA結束一小時HR就來聯絡,HR表現都滿專業的而且聯繫也很快
除了VO的面試信一直沒寄過來,打過去問才知道是headcount freeze
後來也發現自己不算embedded背景..後續match ring的部分也拒絕了
雖然最後沒用到,但是我用Leadership Principle寫的slide deck有在其他面試用到
也不算是白做XD
結果: Withdraw
## Peloton
四面全都聊天,只有半小時,最後找美國大主管聊天45 min
結果: 無聲卡
他們可能比較想找bringup 實作的人,我的方向其實不太一樣
然後....希望這些面試官目前還好....
## TI : Battery fuel gauge team
外國主管面試,人不錯基本上對你所有的說明都會很正面地回答
要用TI自己的proprietary RTOS & Free RTOS
也是到這我才知道RTOS發音是R - TOS
目前台灣team 2人,美國有兩個team
Core firmware 負責SDK toolchain等開發
Custom team負責SDK的客製化, repo by product, by (big) customers
結果: Withdraw 沒有繼續面,比較想面軟體的
--
等等,我是不知道妳是看了什麼神槍手的故事,可是為什麼要拿我當靶 (′Д‵)
什麼!是黃忠和后羿的故事?他們拿的不是銃,是弓!
長門,妳手上拿著蘋果跟繩子是作什麼?今天晚餐不是關東煮是烤乳豬嗎?
連爸爸都沒弄痛過我,可不可以不要綁這麼緊,好歹鬆一點讓我有空間逃吧,古泉。
好,我認了,要射就射吧,可是請聽一下在我死前的最後一個願望。
不 要 拿 霰 彈 來.....噗滋(腦漿聲) 摘自「阿虛的最後一餐」
--