PTT推薦

[心得] google embedded SWE 面試心得

看板Soft_Job標題[心得] google embedded SWE 面試心得作者
michael0728n
(蒜˙遠古)
時間推噓50 推:50 噓:0 →:13

去年面試google時recruiter問要走一般SWE流程還是embedded

當下覺得很難選,上網找又很少embedded SWE面試資訊

事後想想不如自己寫一個吧

板橋辦公室新啟用應該也有些embedded SWE缺吧,面試進來可以把座位填滿XD


主要關注在embedded SWE面起來有什麼差,以及準備過程

不會提到問了什麼題目

======== 背景 ========

一線IC設計廠5年經驗,然後轉戰新創

之前面過兩次google

第一次leetcode刷了大概40題,面到onsite被HC reject

第二次刷了大概300題,onsite不夠好沒送HC

(HC = hiring committee 一個會議決定這個人是否通過,詳情不是很清楚)

======== recruiter 接觸 ========

recruiter直接透過email來詢問,大概是因為之前有面過吧

我回覆有點忙幾個月之後再說,就陸續信件往返了幾個月

想說來面看看,recruiter也有大概說明面試流程

我當時的理解是這樣:

phone interview => (virtual) onsite => team match => 談判跟錄取

事後回來看也是這樣

======== phone interview 準備 ========

recruiter 給的資訊來看這邊general SWE跟embedded SWE沒差

另外先前不知道看哪篇文章說刷題分門別類刷比較有效率

這次嘗試此方法來熟悉一些類別,的確很有效,尤其是找回記憶特別有效

熟悉的方法:

針對要熟悉的類別 (leetcode有幫題目分門別類)

先刷該分類的easy,刷了幾題確定基礎能寫出來

再去刷mid,刷到10~15min能AC就差不多了

分類就array, tree, linklist, DP之類的,常見的資料結構跟演算法都刷一刷

這邊弄完大概一百出頭題

======== phone interview ========

題目大概在leetcode easy~mid之間,follow up有到hard我只有口述想法

面起來感覺的確跟embedded無關

另外題目完全沒看過但很有趣

======== onsite interview 準備 ========

過了幾天recruiter說通過了並轉介給另一個recruiter

先聊了一下並有問說我想要走general SWE流程還是embedded SWE流程

當時得到的資訊是說走 embedded SWE會有一些關是domain interview

面完通過之後team match主要會跟需要embedded SWE的主管談
(這邊印象模糊,不太確定是不是這個時候得到的資訊)

最後可以拿到offer的話job title也會是SWE


當時覺得很難選(所以有了這篇文章)

我選了 embedded SWE 流程,然後recruiter信件給了我一些資料跟說明

有提到面試包含domain interview / general SWE interview

/ system design interview / soft skill interview(?)

資料裡面有提到embedded domain大概要準備哪些知識

列的超多,但大概七八成就是OS課本裡面那些章節

我準備這些知識的步驟是這樣

1. 先上網查相關知識有個概念

最好是能找到一些大學OS網站的投影片看一看概念比較全

2. 想一下它們跟之前工作做過的project有什麼關聯

或是實際上在linux寫kernel driver or user space program怎麼用這些知識

3. 上網搜尋Linux怎麼實作這些知識(或直接看code)

或是各家硬體怎麼運用這些知識

例如我可能想知道Linux怎排程的,或是CPU cache有什麼實作技巧/各層多大之類

4. 試想如果我來面試別人,針對這些知識怎麼問問題

列出這些問題的中英文跟我擬好的回答

(因為我有排到非台灣site的面試官所以英文變更重要)

當時是弄了很久,擬了大概三四十題吧(有些抄網路上的),最後被問得不多但還是有用

我不確定有沒有更好的準備方法


刷題部分我是分類刷一刷後隨機刷

有看 cracking the code interview 我覺得幫助算大

裡面的trick都看過,但就當整理複習

快到面試的時候大概想了一下如果我是面試官我針對embedded SWE會問啥

針對這種問題去刷 (array / bitwise之類的)

面試前看了一下大概三百出頭題 (包含phone interview前刷的)

======== virtual onsite interview ========

因為不能講題目,列點列出一些經驗

* domain interview 寫白板題的時間還是佔不少

寫完對面有問我一些,跟題目有關的 OS 或 embedded 相關問題

然後題目的包裝我感覺都比較像是日常工作會遇到的問題

(幫總統規劃飛去各州演講的最短路徑我感覺就不像是日常工作會遇到的問題XD)

有這樣的題目包裝,蠻容易延伸問 embedded 相關知識

* general SWE interview 那關,對方應該還是知道你是面embedded SWE

我被問到的題目我感覺還是有embedded相關,但不知道是不是general case

* system design 也是 embedded 相關,一樣要花時間寫code

* coding難度(體感),一半的關卡有問到leetcode hard,至少都有問到mid

沒有一題是網路上有看過的

* 有一關軟實力,細節有點忘了,就問一些日常跟同事工作相處的經驗

======== misc ========

* team match 就是了解一下 team 也讓主管了解你

可以趁機問一下部門技術線或風氣之類的

之後如果你要去主管也要你,就再往下走

* 在任何一個stage收到recruiter的信約時間說要short talk / small chat

我認為都沒有正面或負面的意思

有收到reject消息過,也有收到pass往下一關消息過

電話接了才知道

* 整個面完我感覺embedded SWE需要更多一點 embedded or OS 相關知識

但沒有被問到很瘋狂的演算法問題

整體面試差異比想像中小,沒有因為是面embedded就很少code很多知識問答

(只能說我的經驗是這樣,不確定是不是普遍現象)

再讓我選一次我還是選擇走embedded SWE流程

因為跟之前工作有強相關準備起來還是比較有底

* 不用全部都面的超好也有機會上

我virtual onsite有幾關事後知道自己有些地方講錯,還好還是有過HC

* virtual onsite都遠端,我是分幾天面,也有排到非上班時間面

(我排到有幾場是一大早,所以就有猜測到是不同時區面了)

======== 刷題心得 ========

刷題我是leetcode另外開一個session刷,最後寫了三百出頭題

刷的時候卡十分鐘就看討論,看完不寫,書籤起來,隔天寫

寫的出來也一定看討論,看有沒有更好寫法,有更好寫法就比照前面步驟隔天寫

有時候寫完會發現,上次準備面試的自己,也有寫過這題

回去看以前自己的寫法,常常完全看不懂

才有感覺程式的可讀性很重要,前一次大概是太注意刷很多題沒管coding style

這樣是不行的會炸開


但有些hard看完解法之後覺得解法太專一只能用在這題,我就會擺著不管他

有可能你之後真的一輩子沒看過這種解法了,就自然忘記吧

但也有可能又在其他hard看到這種思路

看過兩三次有點印象的話,那我還是會花時間吸收(仔細看懂+寫個兩題)

也因此學了一些思路

刷到面試前我hard大概可以解掉六成


另外刷到一半有體悟,刷題大概要鍛鍊兩個部分

其一是寫程式速度跟穩定性,各種基礎工具寫的越熟速度越穩

例如某題你可能一看就知道是array binary search

寫的不熟會卡一些奇怪的地方,right index要指哪裡,要不要加一之類的

寫的熟你可以很快寫出來,甚至直接呼API看面試官有沒有叫你要自己實作

另個例子是寫tree traversal就會想說recursion截止條件是要怎樣

是要傳進來node是null截止還是node的child是null就不往下繼續呼叫

卡一些奇怪的地方,多想幾分鐘,就比較吃虧

其二則是用什麼資料結構跟演算法解題,也是一般比較會被注重的地方


二很重要,整關炸開通常是二沒想到

但是一也很重要,一做得好,暖身題或題組第一題可以快速解決

等於是幫後面的難題爭取思考時間,也有更多餘力注意corner case之類的細節


另外有空的話找人幫mock interview會有很大幫助

習慣時間壓力是一個點,有人幫你看,你的解釋是否能容易被聽懂,也是重要

要不然就多面幾家練習也行(?)

======== 總結 / take away ========

* 體感來說,選embedded SWE面試,會被問一些 OS / embedded 相關問題

白板題比較像日常工作會碰到的問題,然後借助題目延伸問相關知識

跟general SWE 面試沒有差到太多

* 面embedded SWE 進來就是掛SWE

* google 還在招人


祝大家2021都能快樂工作囉

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.213.153 (臺灣)
PTT 網址

kyrie7702/17 16:06強者推,刷題的部份說得很細XD

fig49802/17 16:30推強者,感謝分享!

Swark032102/17 16:32強者,推五星推推

yamakazi02/17 16:44我跟你面同一個職位,但刷題第一關考三題middle,第二關

yamakazi02/17 16:44都在都問domain knowledge。

原來如此,可能不同面試官還是有差異

shiauji02/17 16:59感謝分享

mpjp02/17 17:03推推 謝謝分享

Csir02/17 17:11強者!!

benian02/17 17:12強哥推推

decheng02/17 17:15推,可以分享一下怎麼談package 嗎?謝謝

aas556602/17 17:49

Inglenook02/17 17:51

summerleaves02/17 18:24

wvwvwvwvwv02/17 19:40

xpasser02/17 19:41

kangan98702/17 20:39

yislin02/17 20:49推刷題心得

orz81101702/17 21:04onsite題目有那麼難喔QQ 謝謝分享

我的體感是難的題目會在幾層follow up後浮現 至於如果因為時間關係沒有摸到那些follow up 會不會因此吃 不推薦錄取 我就不知道了

eju90167702/17 21:47

cha12297702/17 21:54general SWE interview都常都是找SWE來面

cha12297702/17 21:56*通常 所以 題目不見得和embedded相關

cha12297702/17 21:57可能你的見試官有特別選題

cha12297702/17 21:58另外面試官的確看的到你面的職位

感謝補充資訊~~

kuochuwon02/17 21:59感謝分享 很有條理

ortuortu02/17 22:31推!!

※ 編輯: michael0728n (111.71.213.153 臺灣), 02/17/2021 22:56:09

aria052002/17 23:33推 google現在有比較prefer新鮮人之類的嗎

philip8022002/17 23:41強,推詳細

wulouise02/17 23:42好奇原po學校是EE/CS嗎?

bnd032702/17 23:45恭喜恭喜

wulouise02/17 23:50應該說科系,打錯成學校

craig0802/18 00:22推分享

cha12297702/18 00:29一直都收不少新鮮人 問題在怎麼得到面試機會

cha12297702/18 00:30絕大部份新鮮人都是白紙 面試資源有限不可能都找去面

cha12297702/18 00:32新鮮人最好的管道是實習 不用和已就業的人競爭機會

e1251816633902/18 00:57好奇原po有碰到印度籍的面試官嗎?我去年碰到有點崩

e1251816633902/18 00:57XD

Lucifer1089602/18 01:07

Gazella02/18 02:25謝謝分享

taipoo02/18 02:51推分享

plcc12202/18 07:43

GameDemon02/18 10:02感謝分享!

GameDemon02/18 10:03不知道大大可否再多分享一些system design/domain的部

GameDemon02/18 10:03分 還要寫code感覺有點難想像會怎麼出題 謝謝

iammuse02/18 10:44

surfingbboy02/18 22:12我覺得我認識你耶 蒜

Yujjlin02/18 23:23推推

viper970902/18 23:44推分享

kiki8615102/18 23:49推分享

NTU5566NTHU02/19 11:14感謝分享

hao199302/19 11:15推強者

remmurds02/19 12:41推分享

codefarmer02/19 13:55希望大大能分享更多systems design 的部分

celesti02/19 18:33恭喜 不過google給的比一線ic設計廠多嗎?

celesti02/19 18:34可以分享加薪幅度嗎?

zmcx1602/19 21:39推分享

sarsman02/19 22:27推推

tomap4101702/21 12:47強者

ntddt02/21 16:07推faang面經

chiahere02/23 09:41強者推推

imjeffreylee02/23 18:57感謝分享

ppc02/24 01:35推分享

n1canhelpu02/25 02:32想請問是用C刷題呢? 還是C++ 謝謝

powerccc03/06 14:42朝聖推推 蒜頭哥萬歲<3