HOME ABOUT CONTACT

2024年台灣谷歌(Google)面試心得

Rain September 2, 2024
Outline

懶人包

職缺資訊

緣由

面試過程和心得

總心得

懶人包top

職缺名稱: Senior Software Engineer, GPU platforms
職等: L5
小道消息: 部門正在擴編(應該是因為新的團隊),工作偏操
LeetCode準備: 大約40題 (懶得刷題,全難度都有,但這不是重點,詳看後續內文)
實際面試/總共面試: 2/5 (二面後結束,總共有五關面試)
面試結果: 感謝Phone Call

職缺資訊top



基本上就是要找一個開發過網路技術、軟硬體設計和嵌入式系統驅動(GPU Driver)相關工作經驗的人。
工作內容有點包山包海,年資最低要求是10年,但本人工作才快7年,只好硬著頭皮試試看。

緣由top

某天在LinkedIn上有位來自澳洲Google HR的邀請,並且表示過去我有GPU Driver的工作經驗,想介紹一個職缺邀請我來參加面試。 收到資訊的當下是蠻驚訝的,心想居然澳洲的Google HR會找上我,但由於我的新工作才剛上工沒有多久,因此就婉拒掉他的邀請。

後來過了一段時日,他似乎在台灣找了一圈還是找不到合適的人選,又回來跟我聯絡這個職缺依然開缺,問我是否有興趣來參加面試, 我想了想,雖然知道自己完全沒準備,也不曉得自己對Firmware還有無興趣,另外也知道自己是被拉去做業績的, 但想說體驗一下Google的Interview也不虧,就答應了他參加面試了。

面試過程top

全部面試的介紹如下:

There will be a total of 5 x 45 minute interviews with Google Software Engineers on Google Meet.

The focus of the interviews are below:

Embedded Domain Focussed Interview / GPU related
Focusing on coding in [C or C++] and Embedded domain knowledge relevant to the role and your Embedded expertise

1x Low-Level/Embedded System Design Interview
System Design interview

1x Googleyness and Leadership Interview
A non-technical interview.

2x Software Engineering Embedded Coding Interviews
The interviewer will be interested in your coding ability, your knowledge of computer science principles (data structures, algorithms etc.) and how they can be used in your solutions

Interview Order: We will start with the Embedded domain interview, and low level system design.
If the feedback from those are positive we will do the Embedded Coding interviews.

-------------------------------- 分割線 --------------------------------
實際面試的順序不一定是照上列的那樣,至少我覺得Interview Title好像對不起來,而且似乎面試官不會知道面試者現在是第幾面。

HR Phone Call:
HR是澳洲人,全程英文介紹了職缺內容,並且介紹完之後,有詢問我的期望薪水,整個Phone Call大約15分鐘。 聽說這關HR是會確認一下面試者的英文能力的,我自己是感覺好像有那麼一點點,看到網上有人在這關就被刷掉了...不曉得是不是真的

第一場面試:
面試官是台灣人,全中文面試,整場面試一小時(這跟上面的介紹不符)。前面雙方自我介紹了一下,面試官表示他也是前幾年才加入Google,過去有十幾年的經驗都在做GPU。

題目開始前,面試官說:"就當作我們是合作夥伴,現在要一起計畫一個Project",所有的設計想法都可以寫在共享的文件檔上,題目內容大約是90~95%屬於網路技術相關,只有5~10%有問到GPU相關的。 還好問的題目在之前的工作經驗也稍微有涉略,因此還算是有把基本的設計架構寫出來,最後有被問到Follow-up的問題(面試官有特別提及),雖然我也有回答,但不確定是不是他要的答案。

後來還剩下一些時間,面試官詢問有沒有想問的問題,我就問了一下實際工作內容的部分,然後就結束了第一場面試,完全沒有考Coding。

整個面試過程的感覺還算不錯,但要有點耐心,必須把每一個想法詳細具體地說清楚,面試官會一直不斷追問。 不過在面試後段閒聊到工作內容之後,有感覺到這個職缺似乎跟我猜測的一樣,直白地講蠻像以前在台商豬屎屋工作的感覺,從職缺資訊看起來就蠻像的。

第二場面試:(不太順利)
面試官是台灣人,剛開始我用中文打了聲招呼,以為應該又是全中文面試,但後來面試官用英文回我,我便知道這場面試他想用全英文面試了,還好自己本身也習慣用全英文開會,因此就沒那麼緊張。

他說明這場面試是45分鐘,沒有自我介紹,直接開頭就問我習慣用什麼語言寫Code,我回他說C++,然後他可能是在共享文件裡調整了程式語言的設定之後,就開始直接說題目了。

題目聽完之後,我第一個感覺是這題目也太大了吧,這要怎麼馬上寫Code給你,於是我問他說:"我要現在寫Code(或Pseudo Code)給你看嗎?",他回說:"沒有沒有,我們現在只是在計畫"。 我心想那應該就跟第一場面試一樣吧,憑著自己過去的經驗和依稀的記憶先寫下想法吧。

寫完初步的想法之後,一樣面試官繼續追問,但這次感覺跟第一場面試不一樣,因為他問的問題並不是延伸問題來完成這個計畫, 而是他不曉得我這是什麼設計,所以在整個面試的過程中我就一直不斷地解釋和回答面試官的釐清問題,然後在這過程中面試官也會丟一些他自己想考驗的問題,但有很多情況是我沒遇到過的。 我有跟面試官表示我沒遇過這種狀況,需要一點時間思考一下,然後有可能他想嘗試引導我,但在我聽來只是又把問題重複了一次,並且一直確認我有沒有聽懂問題,我就又跟他說,我在思考你的問題的可能答案是什麼,我盡可能地講出想法, 然後他又再重複了一次,而且似乎不想給我太多時間想,可能因為面試時間只有45分鐘。

我記得中間有一段時間講到我過去的GPU工作經驗,但似乎我的描述又跟面試官的經驗不太相符,有個問題我是這麼回答的:"我們會在ASIC階段或是在FPGA的Server上去做GPU測試,這其中會有一份Register File, 知道哪個位址可以去驅動GPU,並且把執行結果輸出到DRAM上,然後再從DRAM撈出資料去跟Golden Sample比對",面試官問:"這過程有沒有用到Lock?",我回:"沒有,也可能是我沒涉略到,我在做測試的時候並沒有用到Lock", 我們在這過程就鬼打牆了好多次。

整個面試過程感覺非常不順利,而且沒辦法一起共事。這場面試也有點亂掉了,我的意思是應該跟面試官預想的不太一樣。到面試尾聲時,面試官又丟了兩個題目,一樣是我沒碰到過的狀況,屬於網路技術的問題, 我又跟他說明我需要點時間想,然後一樣,他又再重複一次題目,確認我有沒有聽懂。到最後更讓我哭笑不得的是,面試官直接切換成中文說:"還是我用中文跟你講?",我苦笑了一下說:"好啊,不然用中文說說看"(我心想我不是沒聽懂,我是要一點時間思考)。 到最後還是沒有回答他的問題,因為時間到了,但我也無所謂了。

最後面試官還是意思意思一下問我有沒有想問的問題,我就一樣問了實際工作內容,他表示剛剛問的問題都是工作內容會碰到的,然後沒有其他說明,急忙著就結束了這場面試。我心裡大概也有數了,這場應該是直接No Hire的評價。

總結第二場面試的問題大概60~70%是網路技術問題,30~40%是GPU Driver相關的問題,不確定是不是有想考Coding,畢竟面試官前面還問我習慣用什麼語言寫Code,但到頭來也沒考Coding。 從介紹來看,也不確定頭兩次的面試到底有沒有打算考Coding,但確定的是都是考System Design。

兩場面試結束之後,其實已經打算跟HR說可以停止後續的面試了,因為這個職缺我很確定沒有興趣,我相信面試官應該也覺得我不夠符合,但就看看HR回報Feedback時怎麼說了。

第二次HR Phone Call
幾天後,安排了第二次跟HR的Phone Call,主要是講前兩次面試的Feedback,評價聽起來不確定是哪個面試官給的評價,總的來說就是相關技術欠缺,而且在開頭的時候HR就說"Bad news",我就知道已經結束了。 由於我也沒什麼想問的,雙方彼此感謝花費時間參與/安排面試之後,就結束了通話,通話時間3分鐘結束。

總心得top

可能本身就抱著平常心來面試吧,所以過程中有不順利的地方也不覺得有什麼,但有個點我還是蠻喜歡的,我很喜歡谷歌這樣的面試考題(我知道不是只有谷歌會這樣面試), 它可以馬上知道面試者的專業和經驗之外,也能知道面試者在遇到例外情況時的反應和思維,以及如何跟同伴一起合作解決問題的態度,這是用一個題目就能鑑別面試者綜合成果的考題設計,是非常棒的題目。

我對台灣谷歌的工作沒什麼評價,單純只是覺得面試完之後,我對這個職缺不太感興趣。但薪資以台灣地區來說,也算是給得很高的科技公司了,若想追求高薪和履歷加分,確實還是蠻值得一試。 每次經歷過一場面試之後,也會更清楚知道自己要的是什麼,我覺得被邀請來參加面試還是有不錯的收穫,至少我可以大膽地規劃自己未來的職涯和生活。

Last updated:

Related Artical List

  1. 軟韌體工程師面試考題 - 程式碼考題
  2. 軟韌體工程師面試考題 - 專有名詞解釋
  3. CAD工作對應徵EDA職缺有哪些幫助
  4. 我在竹科從台商到外商之路
  5. 聊聊我覺得有毒職場具備了哪些特徵

Article List