為什麼這篇Google Firmware 面試鄉民發文收入到精華區:因為在Google Firmware 面試這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者cair (白色的黑貓)看板Oversea_Job標題[北美] Firmware Embedde...
##引言
版上北美科技業文章多為Software的相關職缺跟心得
Firmware Embedded相關文章跟職缺很少
想說來貢獻一下我這半年來面試的心得 拋磚引玉一下
本文也適合一些在台灣IC design,OEM,ODM背景的工程師
因為有些公司有簽NDA,我不會在公司段落中描述面試的實際問題
我會把所有面試問題集中在下一段
FW engineer 多半不用刷leetcode,我本身也沒有刷
常考題我會列在下方,依照類別分類然後再依照出現頻率排序
##常考題
1.Linked List - 最常考,因為有許多follow up,而且可以同時考pointer, malloc,
struct等。 我自己當面試官的時候也常出這個題,因為可以隨著面試者的Level問不同
follow up。
a.基本:print, push, add, pop, delete
b.應用:reverse, sort, merge多個list, 找出是否有環
2.Bit Operation - 這算做底層跟高階語言最大差異之一,我面試別人也多半會出一小題
這個
a.基本:set, clear, togger, mask, shift, AND, OR, XOR
b.應用:有幾個bit為1, reverse, bit swap, Endianess Swap
3.C語言關鍵字跟觀念 - static(注意用在變數跟函式的差別), extern, volatile,
const, union, enum, struct(注意裡面變數順序會影響實際size這點), malloc, free,
function pointer, sizeof(這有蠻多易錯小細節),
call back function, pointer to pointer, call by reference\value(注意C\C++差
異), atomic
4.OS概念題 - multi-thread, mutex, semaphore, interrupt, ISR,
priority inversion, deadlock, shared memory, memory leak, memory alignment
5.嵌入式概念題 - I2C, SPI, UART, JTAG 特色及比較, GPIO
6.應用題 - 這邊的題目可能看公司跟看職缺需求,不一定比較難,只是可能需要相關
domain knowhow或是思考要轉一下
a.字串搜尋, 比較, 複製
b.影像\聲音 訊號 filter 處理,譬如用一個3*3個filter跑過整張圖片來模糊化\銳利
化\去雜訊。或是去掉特定頻率聲音
c.Circular Buffer Queue - 基本題不難,但follow up多半是要考慮到 producer跟
consumer為不同thread,結合multi-thread, mutex等觀念
d.封包處理:多半是模擬藍芽I2C UART之類的題目,譬如給定一個字串 "開始字元 指令
長度 參數*n CRC 結束字元",可以當成字串處理題目來做,
但要考慮怎樣設計好API跟容錯檢查。
e. 控制系統:譬如給定三個API分別是加溫\降溫\現在溫度,要你寫個可以恆溫的系統,
設計概念是fuzzy甚至PID system
f.可以去搜尋API設計概念的影片,Google Facebook都有相關影片在youtube上
g.atoi, itoa, state machine
h.QuickSort, MergeSort, Binary Search,這邊的題目最好會用Array也會用
LinkedList解
i.memcpy 及優化
j.Array中找出相加(或相乘)最大,等於特定值的組合
k.矩陣內積
l.floating point 運算,實做
7.behavioral questions這部分答案很個人化,而且也不同公司可能期待不同答案,譬如
有些公司希望你對未知問題盡可能做大膽的推測,有些公司則是希望你"知之為知之,不
知為不知"。 常問的多半包含:
a.你有那些失敗經驗\code出大bug,怎樣解決
b.跟組員\主管意見不合怎解決
c.舉個例子證明你團隊合作能力
d.客戶dealline突然提前怎辦
e.怎處理壓力\決策\領導
f.接到新專案會怎處理
g.組裡有人一直拖後腿怎處理
##各公司面試心得
以下多半是這半年疫情期間的面試心得,全部都是視訊,我底下提到的多半是針對最後一
輪,onsite輪的面試。
公司排序依照我印象深刻跟面試特殊程度,跟難易或時間無關。
部分公司有NDA,所以不會提供各公司面試題目細節,請參考上方一般性FW題庫。
以下為均為我個人經驗,許多公司可能各組差異極大。
Startup因為可能面試人數較少,雖然他們應該不會看PTT,但我覺得針對性太強,所以暫
不寫出名字。
#Blue Origin
Jeff Bezos的火箭公司,因為工作性質不接受H1B,OPT(但可能看組)。
因此面試全程都是美國人,比較特別的是要寫個小文章討論你對宇宙探險的看法,我寫了
大概一張A4,但好像他們期待是接近小論文的形式,後來HR跟我講之後發現這佔面試比例
不小的部分。
除了寫文章以外,還有一小時個人簡報,全組會聽你介紹過去做過什麼事情,一小時後再
個別coding面試,全程大概6小時。
#Apple
影像相關的組,因此影像相關問題比較多,整體題目不難,但會看重API設計以及testing
,每個面試官多半會問些少量behavioral questions,少量設計問題。
面試全程7小時,我請HR切成兩個下午。
#Qualcomm
面試過程全部印度人,題目中等但英聽大考驗,我多半會打在online coding介面上跟對
方double check 他剛剛說過的重點。約5小時。
ARVR相關組的音訊職缺,感覺他們喜歡問比較難的然後再逐步放提示,分析題目跟問到重
點會是面試關鍵,有單獨幾輪是問behavioral questions跟設計問題。全程約6小時。
#Oracle
徵FW專長但是問了不少SW演算法,約5小時。
#Nintendo
音訊職缺,大部分題目不難但bar riser那關突然變超難,約4.5小時。
#Colgate
高露潔,對!就是牙膏那個,電動牙刷相關職缺,視訊面試但對面沒人,錄影之後對方回
去看,我覺得是很糟糕的面試經驗,缺乏互動。
#Startup-自駕車-Z
蠻看重系統設計的感覺,題目定義很多細節很完整。
#Garmin
影像問題佔比較多,一般FW問題次之,全部大概5小時。
#Samsung
題目都在上一段基本題庫中,但有幾個follow up是有點挑戰性,約5小時。
#BlueBerry
回家作業可能要花一下午,要裝VM, 他們的系統, 某題庫, 然後再寫指定需求。我看到就
懶的寫了...
#Startup-智慧手環H
比較特別的是他們需要firwmare加ML人才,切成許多小輪,2+2小時考firmware,1+1小時
跟founder\CEO聊天,2小時考ML,ML考試時可以Google、可以用任何常見API。
#Startup-自駕車-I
影像相關問題很多,感覺要找耐加班的。
#Startup-自駕車-B
影像相關問題很多,還有一些ML問題。
#Startup-IoT-S
Coding 1小時,跟founder CEO CTO Team lead聊天4小時。
#Tesla
題目有許多底層細節,有些題目解答不是唯一,感覺是看會用怎樣的設計來解題。
#SpaceX, Boring company
鋼鐵人旗下公司一起寫,基本題不難但感覺會期待你架構嚴謹且bug free。然後設計類題
就是pseudo code加互相討論,還有部分天馬行空創意題。
#Masimo
醫療器材大廠,題目範圍廣,大概上面題庫區的都有各問到一些。
有一半的面試官是專業且認真,熱心跟我介紹不同產品跟組裡未來方向
但其中幾個面試官邊面試邊吃飯就算了,還有對著視訊剃牙的 =_= ,全程大概6小時。
#Startup-自駕車-R
題目偏演算法,以leetcode標準來看不難,但以C\C++來寫略有挑戰性。
#Startup-助聽器-W
音訊處理問題為主,題目對於沒做過音訊的頗難,但給的提示算詳細,仔細審題之後不難
。
#Marvell
綜合式的firmware題,好像比較注重這code執行效率。大概5小時。
#Microsoft
behavioral questions佔比很大,coding題目不難,但比較重視code的scalability
還有設計。
#Amazon
有幾次經驗不錯,有幾次極糟,遇到面試官放鳥超過一次,面試官非Firmware相關,甚至
直接跟我說:他們是誰有空就來面試,不是看專長跟領域。
感覺面試官都會期待特定標準解答。
#Verifone
Hiring team人都不錯,但HR team外包混亂到不行,有5個人在南亞的HR跟我講4個不同的
onsite時間。
#Google旗下生醫新創
Firmware相關題目不難,但是問了很多生醫\生技領域學術問題。
#Startup-機器人-E
簡報+多輪聊天,期待是從HW FW SW都有涉略的人,題目也會均涵蓋一點。
#Intel
五輪,每輪都是大約20分鐘coding,20分鐘討論改良前面coding設計,20分鐘
behavioral questions。
##結語
疫情期間都是遠端面試,因此比較好安排更多onsite,但明顯可以感覺到LinkedIn上面職
缺大幅減少,甚至有些拿到口頭offer後跟我說hiring freeze了。
再加上有些公司也裁員了,競爭對手也變多了。
我這半年大概面試約50間公司,約2X間到最後一輪,拿到8個offer,加州佔4個其他分散
各州。
但這文章希望可以拋磚引玉,有些公司我沒寫太多心得,但可以給不知道投哪些公司的作
為參考,也可以知道有哪些還在徵人。
文章中有不足或疏漏的部分歡迎各位補充!
希望各位求職順利!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 75.72.60.151 (美國)
※ 文章網址: https://www.ptt.cc/bbs/Oversea_Job/M.1597533013.A.523.html
薪水部份我也沒拿過SWE offer不知道怎比
但根據一些薪水比價網站跟我身邊朋友聽的數字
FAANG跟類似等級的TOP20 Tech FW薪水大約是SW 8成
一般 Tech FW薪水大概是SW 6成
影像問題多半是image processing,copmuter vision大多流行用ML:CNN RNN之類了吧
Firmware容易被問到的問題 大多是軟硬整合,HWSW那邊要有概念但當然不用太深入
譬如你有個Gyro sensor會顯示角度,你怎麼透過I2C取得value,怎提供給SW APP
假設HW那邊資料更新率是X Hz,SW跟FW要資料的頻率是Y Hz,會有什麼設計差異或限制
※ 編輯: cair (75.72.60.151 美國), 08/16/2020 10:03:45
也就是疫情期間WFH才能安排如此密集的面試
#我在三月的時候拿到兩個大公司的口頭offer
結果都因為疫情hiring freeze了 因此開始了瘋狂面試之路
而且可以明顯發現Linkedin上面職缺爆減
取而代之的是很多仲介公司跟約聘職缺
大部分科技公司都是HR-> 一小時初面-> 4-6小時virtual onsite
有些可能是兩輪初面,startup可能則是一小時面試*N
Linkedin上面前20頁常看到的都那些,我翻到差不多背下來了
我建議搜尋的時候可以自己設定 多組 職缺+地點 各看前五頁
會比同一個搜尋條件看20頁有效率多
譬如 Firmware+LA Firmware+SF Firmware+Seattle
還有AngleList也能看一下
#四五六月大概是海投跟面試練習的時間
在公司上班的時候可能第一輪HR電話都不好意思接
既然WFH當然就隨時想接就接囉,這期間大概每天有2-5通HR phone screen
不過有很多約聘的也是不請自來一直打
我這期間也面試了幾間約聘的想說當練習
但過沒多久就發現約聘面試太簡單,後來就都直接推掉了
一小時的coding我大概每周會有1-3場
還有一點,因為我在東岸有時差可以利用,這點讓我時間管理上很方便
西岸兩點我這邊五點了,約西岸下午我幾乎都可以不影響工作的面試
onsite輪有時候就要配合請假,反正今年也不能去哪玩了,假用一用吧
所以主要就是利用時差+WFH+請假
畢竟WFH嘛 就算真的面試卡到上班時間,我晚上補點進度也就可以
#六下旬到七月開始進入收尾階段
這部分最重要的是調整onsite輪的速度,有些公司太快的故意約晚一點
有些公司動作慢的要多寫信催一下
但我也不是調得很好,有幾個offer來太早、拖了兩周還是只好拒了
有幾個更好的公司面試排太慢也只好拒了
最後大概是喬到五個offer分別在10天區間內進來
我中間也有面試被打槍到很絕望,覺得面試遙不可及,都跑去開104了XD
※ 編輯: cair (75.72.60.151 美國), 08/18/2020 08:15:42