[爆卦]Google Firmware 面試是什麼?優點缺點精華區懶人包

為什麼這篇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小時。

#Facebook
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
fr75: 你年資幾年?在這疫情中拿到這麼多面試機會 08/16 08:24
fr75: 這方面薪水大約多少?跟一般SWE怎比? 08/16 08:26
fr75: 影像方面問題是指image processing還是甚至是computer visio 08/16 08:31
fr75: n?還是關於影像格式跟傳輸? 08/16 08:31
fr75: 你被問到設計的問題都只是存軟嗎 還是包括硬體或硬體應用? 08/16 08:33
flyawayla: 我猜5年以上,近10年之類的,看一下上站次數就知道了 X 08/16 09:30
flyawayla: D 08/16 09:30
台灣2.5年 美國4.5年
薪水部份我也沒拿過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
jason61206: 推推 蠻棒的! 08/16 10:12
lakeinlake: 推!很詳細!作者本身有身分? 08/16 11:04
cair: 來美國留學加工作6年 一年前拿到綠卡 今年用力面試 08/16 11:07
cair: 也是從OPT H1B的慌亂緊張中過來的 08/16 11:08
baby0326sky: 哇!謝謝分享 08/16 12:05
matyih: 能拿這麼多面試很猛 08/16 12:48
jk842323: 感謝分享 08/16 13:04
lrvine: 感謝分享! 08/16 13:07
laba5566: Blue Origin很猛 08/16 15:01
ShakeHandtw: 感謝分享,好文章 08/16 16:06
andersonchen: 這把我們TEAM 常考的全部包含了.. 08/16 17:42
cair: 樓上歡迎分享一下啊,看看各公司不同面試觀點 08/17 01:43
kevin70636: 推一個 感謝分享 08/17 02:26
expiate: 感謝分享 08/17 05:14
j83435001: 原po好帥 08/17 10:59
torso: 是在職面試嗎?50間!好強的時間管理! 08/17 15:54
Findagreen: 請收下我的膝蓋 08/17 19:45
fifi82726: 面這麼多是怎麼安排offer時間的阿 08/18 00:32
urmfo: 推 08/18 00:48
paselalps: 也想知道原po如何安排不同公司收到和回覆offer的期程 08/18 02:16
b0690151: 實用 推 08/18 07:00
分享一下我自己疫情期間的面試排程
也就是疫情期間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
ckang: 我也是FW 這篇太強 08/19 09:05
paselalps: 感謝分享 08/19 12:41
semm: 前室友神人快拜 不刷題還可以拿到一堆offer 08/20 14:17
NAMESTANLY: 推一個 08/21 11:32
NAMESTANLY: FW比SW不值錢 QQ~ 08/21 11:37
jason770301: FW要轉一般SW也很容易吧。再刷題就好了 08/21 15:39
joey11121: 推,很少看到國外底層 08/21 18:26
kingnamefu: 推~光看經驗分享就覺得超強的! 08/30 23:02
russellluo: 滿厲害的內 09/09 21:05
seal46825: 推 10/29 00:27
erial: +++ 01/05 01:17

你可能也想看看

搜尋相關網站