【學長姐帶路】Amazon/Foodpanda/Google 軟體工程師面試心得
原標《資工女孩轉職中 — 冰河期前的面試》
文/Laurice
在刷了半年的題目後,我投出了履歷給第一間公司。因為一些私人因素,我本來的目標是日本,後來因為種種原因而投了瑞士,最終還是留在了台灣。
![【學長姐帶路】Amazon/Foodpanda/Google 軟體工程師面試心得](https://www.technice.com.tw/wp-content/uploads/2024/07/cyber-security-company-employee-developing-blockchain-based-database-processing-system-cybernetic-officer-coding-machine-learning-software-protect-mainframe-encrypted-files_482257-40524-3-2-1024x683.jpg)
這篇文章所記錄的是2022年9、10月開始的面試經驗,距離2022年底、2023年初的科技業大裁員僅有幾個月。
以下會分享我有投遞履歷的公司,包括Amazon (Japan), Indeed (Japan), Google (Japan/Switzerland/Taiwan), Woven planet (Japan), Apple (Japan), Microsoft (Taiwan), Foodpanda (Taiwan), IMSLP (Remote),有沒有面試、面試的過程以及結果,各家公司面試流程、內容等都是會改變的,這篇只能當作參考,正式的面試還是要自己問公司喔~
無聲卡:Apple (Japan), Microsoft (Taiwan),就不多贅述了,反正就石沈大海。
Indeed (Japan)
投履歷的時候,請朋友牽線了內部員工,跟對方聊聊天之後對方便幫我內推了,到這邊還很美好,但過了幾天HR就寄信過來說目前不招人了,大門就此關上。
Woven planet (Japan)
這家是Toyota的子公司,但性質上是美商,所以我請了朋友牽線裡面的員工,幫我內推。第一關是回家作業,對方會提供一個github repository,裡面有spec以及一些test,而我必須根據spec寫出對方要求的東西,如果想要多寫功能也可以。因為只是要架個簡單的網站,所以我用比較熟悉的framework寫完就交出去了。
結果:拒絕,我申請的team對我的作業不太滿意,但不提供feedback,所以我花的時間沒有讓我得到任何的回饋。
IMSLP (Remote)
這家是個樂譜網站,我平時就會使用,所以看到他們在招人、Full remote、薪水也很不錯就直接寄信投遞履歷,很快就得到了回信約了第一場面試。這家比較偏基金會性質,所以沒有HR那些,跟我約面試的人,就是目前正在管網站的人,算是非常小規模,每個員工基本上都需要獨立作業。整個面試都是用中文。
第一關面試是Leetcode hard難度的題目,我覺得跟其他公司不同的是,對方沒有期望我一上去就給個完美的解,這麼難的題目是想要知道我會怎麼解決難題,願意花時間討論、了解我的想法、知道我卡在哪裡,進而給提示引導我完成題目。本來預計時間是一小時,我最後面了一個半小時才好不容易寫出來,很幸運的對方還是讓我進了第二關。
第二關面試前,對方在信中說我可以用任何語言、任何framework,第二關會需要我在三小時內獨立架一個網站出來,可以上網查我任何需要的資源。面試時,對方給了我他想要的網站功能,而我需要針對需求,設計不同的endpoint,包括是哪一種restful API、參數要傳什麼、如何處理使用者傳過來的資料、Database要怎麼設計等等,接著根據設計將網站實作出來。在討論的過程中,我時常詢問對方的看法,怕一不小心我做出來的東西不是對方想要的,也常常提供不同的解法詢問對方要哪一個,但這部分變成最後我沒有進到下一階段的主因。第二關面試我面得很有成就感,在短時間內,從理解需求、設計整個網站到實作,雖然不是什麼很難的網站,但最終是有成果的,讓我久違的感受到了死線前的熱血。
結果:拒絕,對方想要找的人是能獨當一面搞定整個專案的人,我在第二關中詢問太多對方的意見了,雖然技術上沒問題,但決策方面目前沒達到對方要求。這是我碰過最認真的回饋,對方回了一封非常詳細的信跟我說我的優缺點,以及最後拒絕的原因,比起不給回饋的公司,這次的面試體驗我非常喜歡。
Amazon (Japan)
一樣請朋友牽線了內部員工,順利地得到了內推及面試機會。Amazon的面試有三個階段:Online Assessment、Phone interview、Final interview,面試前,HR會先約個簡單的meeting說明面試流程以及準備方式。整個面試流程都是用英文,不需要會日文。
Online Assessment是最基本的入門測驗,沒有面試官,只有兩題要在時限內寫完的線上題目。Amazon會寄連結過來,我只需要在他給的截止日期前,撥出一些時間,在1.5小時中完成那兩題題目並且送出,他會當場跑judge知道分數,一翻兩瞪眼。這個測驗是我這波面試的第一個coding測驗,面對最不拿手的上機考,1.5小時中我花了前30分鐘在慌張,真的是看著題目腦袋一片空白,想說完蛋了,我什麼都寫不出來,第一關就要被刷掉了。還好,後面讓自己冷靜下來後,發現題目超級簡單,只要舉幾個例子就發現規律,這才好好的把兩題寫完交出,得到滿分,總共花不到一小時。簡單來說,我花在慌張的時間,比我真正寫題目的時間還多。
Amazon正式的面試一場60分鐘,Phone interview一場,Final interview四場,每一場都會有tech以及behavioral的部分,面試官主要都是我應徵的那個team的人。Behavioral會以Amazon的Leadership Principles為主軸,所以事前要先針對每個原則準備一些故事,在面試官問問題的時候,在回答中體現出你擁有Amazon想要的Leadership特質。Amazon的Coding題都是用內部的平台,不能編譯、不能執行,可以想成最單純的記事本,在提供面試連結的時候也會一併給Coding連結。
Phone interview是正式面試的第一關,但題目的難度與Final interview類似,先對面試官簡單的介紹自己,接著就會進Coding題目,難度大約在Easy到Medium,通常只有一題。答完Coding題後,就會進到Behavioral的部分,面試官會問你過去某些經驗,像是遇到困難的經驗、工作上討論的經驗等等,記得要帶入Amazon leadership principles。
過了Phone interview後,HR就會寄信約後面Final interview四場的時間,一次約完,我自己是兩天就把四場全部面完了。四場中會有三場Coding相關,一場System design,Coding的面向包括了演算法、資料結構、物件導向等等,一樣每場前半是tech後半是behavioral。
Amazon面試中有一件很有趣的事,某一場中,面試官題目貼出來沒多久我就跟他說了作法,面試官傻眼,問我是不是看過該題,我也很誠實地回答了是,於是他又貼了一題,但我依然看過,很快就給了作法。面試官無奈的說你就挑一題寫吧,但以題目的難度,其實兩題都寫完綽綽有餘,所以我就把兩題寫完了。
Coding面試方面蠻順利的,而且順利得有點誇張,因為我幾乎每一題都看過(小聲),但System design我真的不太會回答,雖然有準備,還是沒辦法很好的掌握面試官想要我多說哪些方面,而會在他們沒有興趣的部分太過深入,我自己是認為這部分沒有面得很好,可是因為沒有回饋所以我也不知道是不是真的是這樣。
結果:大概面試完的兩星期後HR寄信跟我約會議,告知我雖然有過,但是我被降階了,我本來目標SDE II (L5),面試結果顯示我只能SDE I (L4),問了原因,HR卻不給任何的解釋,沒有任何特別原因,只說了here and there (OS: 所以where???),而當時我投的部門沒有L4的缺,所以要等之後有沒有機會,然後進入科技業大冰河期,沒有然後。
總結:Coding題不難,Behavioral題要花點時間準備,System design問答還沒有很熟練,HR不會給任何有用的feedback,至今還是不知道為什麼降我階。關於科技業中不同公司的level,我推薦大家可以參考levelsfyi,我本來在Yahoo是IC3,對到Amazon會是SDE II (L5),這也是為什麼我很在意這件事,畢竟我在Yahoo也花了快兩年才上去。
Foodpanda (Taiwan)
請了我的前主管幫我內推,所以順利的拿到面試機會,Foodpanda是我比較晚投遞的公司,時間點與其他公司不同,是2023春季。第一關是線上的測驗,跟Amazon一樣給連結讓我自己找時間線上寫,一小時中要解兩題,雖然還是很緊張,但比起Amazon的Online Assesment,已經不再慌亂,很順利的就把兩題解出來,難度也不難。
通過線上測驗後,HR來信約後面的面試,總共有四場,面試官來自各個不同部門,所以我也會趁機問一下部門的文化以及工作內容。第一場是聊天場,聊技術相關問題以及一些個人經歷、做事方式等等,我最不緊張的場;第二場是Coding場,題目難度中等,一樣也問了一些技術相關的問題;第三場是System design場,我在答的過程中時常被說他這部分不需要知道得這麼詳細,果然還是不太會回答這種;第四場又是聊天場,更深入的討論一些技術問題以及behavioral問題。
整體而言面試體驗不錯,跟Yahoo的蠻相似的,會讓我自我介紹以及問問履歷上相關的,也會多跟我聊聊我這個人。
結果:拿到了資格,但當下沒有職缺,前主管有幫我詢問新加坡那邊有沒有缺,可是新加坡那邊需要我是更高的位階才願意用我,到了我簽了另一家的offer時才終於有台灣的缺,但為時已晚。
Google (Japan/Switzerland/Taiwan)
這大概是我這波面試中最精彩的部分,光是上面有三個國家大家應該就可以知道這是個非常長的故事,不只故事長、地理範圍很長,整個過程也很長,橫跨了整整一年。
2022的八月中,我請朋友幫我內推Google,而Google全球的網站是通用的,所以內推後,我便登入去選自己有興趣的職缺。我先投了日本的職缺(8/9),等了一個禮拜,幫我內推的朋友發現我的狀態直接變成reject了(事後發現應該是該缺關了),而我卻沒有收到任何的信。所以我又上去看看其他職缺,想到瑞士風景有夠漂亮,就投了瑞士Google的職缺(8/16)。
沒想到瑞士的HR一上班(8/16)馬上回了信跟我約時間做初步的聊天以及給我面試準備指南,於是我也迅速地回信約了時間。又隔了一天(8/17),日本HR才姍姍來遲寄信給我說,如果我對日本還是有興趣的話,他可以接管我接下來的流程,啊所以前面在幹嘛?一定要等到我去投其他國家沒業績了才要理我?然而在我迅速地回了信後,又過了快一個禮拜(8/23),日本HR還是什麼事都沒做,我寄信問了目前狀況,他才跟我說現在hiring freeze沒缺了呦。所以過去一個禮拜我在等心酸的?不問也不會update。
在跟瑞士HR聊完天(8/26)後,對方寄信跟我確認面試時間以及因為我沒有在瑞士工作過,還特別幫我安排了瑞士Google的員工跟我聊聊天。由於我本來就打算再準備一下下再面試Google,所以回信約聊天排在九月、面試排在十月初,接著瑞士HR就放了假直到9/20回來。
然而他一回來,就寄了一封信來,內容是日本的HR跟他聊了一下,所以他需要確認我是不是真的要瑞士的職缺。看到信的當下我心裡只有一堆問號,日本HR前面雷就算了,現在是連我投其他國家的都要擋我就對了?自己拿不到業績連別人都不給?自己在八月就跟我說日本Google目前不招人,怎麼跟瑞士HR講得好像我非日本不可?我也只能壓著怒氣回一封信說,日本HR自己跟我說日本現在不招人了,所以我現在瑞士是第一順位,順手cc了日本HR,讓他不要再搞我了,前面拖拖拉拉,後面我申請其他國家的職缺還要參一腳,到底有完沒完。
終於解決了日本HR之亂,跟瑞士的員工聊一下瑞士Google的工作環境、文化、生活等等,進入了第一關面試 — Phone interview,由於我是申請瑞士(UTC+2)的職缺,所以面試時間安排上可以在台灣(UTC+8)的晚上,對我來說非常友善,精神好又不用請假。Google的coding題終於不是用Google doc,也改成用內部的文字編輯平台,反正也是不能編譯、不能執行的平台,但至少不會幫我把句首大寫了。Google的面試官不限於我申請的職缺的部門,所以在面試過程中會接觸到各個不同產品的員工。
Phone interview(10/4)順順的過了,如同大家聽說的那樣,進去就給題目,然後面試者確認一些細節,先講想法,如果複雜度可以的話,面試官就會請你正式寫code。過了三天(10/7),瑞士HR非常有效率的跟我約了會議,恭喜我進入下一階段 — Virtual onsite interview。
Onsite interview總共有四場面試,三場Coding一場Behavioral,三場coding跟phone interview是一樣的,難度也都介於medium到hard之間,會有一到兩題,兩題可能相關可能不相關,真的比其他公司難一些,我有一面的延伸題甚至只有口述大概做法,沒有時間把程式寫出來,但我覺得大致上解得還行。Behavioral則是我最不擔心的,不過他問的問題有點出乎我意料,不是問過往的經驗,而是問多元與包容相關的問題。每一場面試後面也會留一點時間讓我問問題,讓我對瑞士Google有更多的了解。
在整個面試結束後約兩個禮拜(11/3),瑞士HR跟我約了會議講結果,Behavioral的面試結果非常好,但Coding的普普,拿到了資格但又被降階了……我目標是Google的L4,然而因為Coding有些面試官分數給得不是很好,所以我變成非常頂尖的L3(Strong L3??),且因為目前沒有適合我的職缺,所以要等等看。
Google有一點很特別,當初投的職缺跟後來match的職缺不一定一樣,面試結果可以在各國及各team之間通用,以我來說,就是先面完試,才到team match的流程。
中場結果:終於拿到了Google的資格,但被降階(L4 -> L3),以及目前瑞士沒有職缺所以要等等看。Google的面試結果可以保留一年,也就是說直到2023/10我都可以用這個面試結果申請其他職缺。後來相信大家都知道了,Google首次全球大規模裁員,會有缺才怪。
等著等著,中間瑞士HR還是會跟我聯絡說他正在努力,甚至祝我新年快樂,最後一封信則是說瑞士大概是沒缺了,要不要考慮Google波蘭,我看了看覺得還是先不要。
到了2023的5月底,我本來的瑞士HR已經離職,換了另一個HR。注意到我還在痴痴地等待著,寄了封信跟我說現在還是沒有缺(畢竟他們搞不定裁員),問我對Google波蘭跟羅馬尼亞有沒有興趣,我當機立斷請他幫我把履歷轉回來APAC區,我先放棄瑞士美麗的風景🥹
很快地,負責亞太區的HR寄信聯絡我,還一度以為我是歐美人,跟我約會議簡單聊一下現在的狀況後,就幫我開始找亞太的缺match,雖然他有幫我推給非台灣的職缺,但最終對方主管對我沒有興趣,所以繞了一圈我終究回來match台灣的缺。
跟願意收我的各個不同產品的主管及工程師聊過後,我排出了志願序,亞太HR動作非常迅速地幫我送給Hiring Committee審核,希望在主管的支持下我可以從資深L3變成菜鳥L4。過了兩個禮拜,依舊失敗了,Hiring Committee只審核過我L3的資格。這邊要感謝亞太的HR,非常認真幫我爭取L4,最後終於爭取到加兩場面試,把這兩場面試的結果也放進去考量,如果夠好的話我就有機會拿到L4的資格。
於是時隔快一年,我又要面試了,我想速戰速決,於是牙一咬請他們幫我排在一個下午面完。兩場面試跟之前的難度差不多,不同的是,因為是台灣的工程師,所以我終於可以講中文了。面完後,有一場普普,但另一場不錯,最後又再兩個禮拜後,我終於拿到了心心念念的Google L4!!!!最終在2023年八月初正式拿到Google offer。
結果:拿到Google Taiwan的L4 offer,我最終也決定加入了。
總結:算是終於為我這段時間的刷題及各種面試劃下了句點。但我對Google的面試如同我多年前的感覺一樣,依舊非常討厭,整個面試流程其實對我這個人一點興趣都沒有,只想叫我寫code、很快寫出跑很快的code,我這個人怎麼做事、平常的態度一點都不重要,老實說,這個面試ChatGPT可能答得比我還好。另一個是雷的HR真的超雷,日本的HR現在想想都還是覺得生氣,但我很喜歡瑞士的HR,非常的有效率而且友善,甚至會在面試前一天特別寄信祝我好運,亞太的HR也非常的棒,我甚至很生氣的跟他說過Google不能單用Coding決定我是L3還是L4,而他也很努力的幫我爭取到了最好的結果,拿到L4的時候我超級感動的。
以上就是這一年來我的各種面試,趕在下一份工作前寫出來,希望可以幫助到對面試有興趣的讀者,沒興趣的話當睡前故事看看其實蠻舒壓的。
只能說我的運氣真的挺好的,第一次認真刷題找工作就碰到科技業寒冬,各個大公司裁員,不過最終還是有個不錯的結果。
也要感謝這一路上幫助我的所有人,家人朋友不管是被我煩說不想刷題、拿各種題目問,或是面試前各種亂崩潰跟緊張,都被好好的包容跟安撫了。朋友還特別求了工作御守給我,真的是揪感心。
※本文由 Laurice 授權勿任意轉載,原文《資工女孩轉職中 — 冰河期前的面試》
___________
你也有經驗想分享嗎?快來投稿賺稿費吧!
瀏覽 401 次