國外面試心得Booking.com/Line/Microsoft/Amazon

Min-Fu Yang
9 min readAug 18, 2018

最近遇到一些人想轉職軟體工程師,想說分享一些個人去年的面試經驗,讓大家了解一下軟體公司針對工程師是怎麼面試的,希望對大家有幫助。

自我介紹:
四大CS碩畢業,畢業後在一家外商待了快四年。

共面試四家,接下來說明一下詳細流程。

  1. 阿姆斯特丹Booking.com (被拒)
  2. 福岡 Line (Offer GET)
  3. 蘇州 Microsoft (Offer GET)
  4. 東京 Amazon (婉拒面試)

阿姆斯特丹 Booking.com

時間:2017/5
方式:透過FB看到徵人廣告就去應徵了
語言:英文
結果:英文不合格
過程:一開始HR會打來聊你的背景、做過的專案、個人特質等等,說明面試流程等等。

1. Phone Interview
對方會打電話來並用e-mail給你一個網址,可以共同編輯寫code,
對方工程師有兩個人,問了兩題,沒有太難,常寫code通常都可以寫得出來,不過過程中有一段英文聽不太懂所以卡了一下子。
後來就接到了通知說要去荷蘭on-site,他們會負擔來回機票跟四天的住宿,
他們會有agent幫忙訂所有的機票跟飯店,你只要跟他說想要的班機跟住宿
的日期就好,這點還蠻不錯的。

2. On-Site Interview
後來就去荷蘭面試,順道跟太太去比利時跟法國玩兩個禮拜。
面試當天一開始HR跟你說明這邊有多好啊,公司怎麼樣等等的。
之後開始第一輪面試,有兩位工程師一起面試,題目是跟搜尋有關的演算法,並不會太難,面試官一開始提一些需求,請你設計演算法,之後請你優化。
不過我那時候時差沒調回來還很想睡,而且英文溝通上有點誤解面試官的意思, 所以沒有表現得很好。

第二關是System Design,題目是有關Load Balancer的設計,過程中面試官會問如果在某情況之下,你要怎麼改善你的設計等等,經過剛剛的轟炸之後,頭腦比較清醒了,所以表現得還不錯。
最後一關是一個主管來做Behaviral Test,有問到過去遇到過印象深刻的Bug、加入之後可以為Booking.com帶來什麼貢獻,還有一些情境題等等。

結果:他們認為我英文不夠好被拒絕了…不過後來今年9月又收到那位HR的信,問我要不要再去面試,我想等我想再去歐洲玩的時候再找他好了XD。

福岡 Line

時間:2017/7
語言:英文
方式:FB上看到Top Career的徵人廣告就去應徵了,Head Hunter是個台灣人,所以溝通上還蠻方便的。
結果:Offer Get

1. Offline Assessment
一個Word檔,上面有幾個問題,
包括一些一般性問題跟演算法,大概五題。
2. Offline Assessment
一份線上考題,範圍蠻廣的,包括演算法、OS、Java、iOS等等的問題,
大概十二題,沒有限制填答的時間,不過需要一次寫完。
3. On-Site
地點在台灣的Line總部,那隻兩層樓高的熊大還蠻吸睛的,
當天到了之後,HR帶你到一個房間,面試官有兩個,
一位外國人、一位日本人,一開始寒暄一下之後,
針對上一份線上考題,一題一題深入地問,
有聊到Java的底層、演算法、OS、Computer Network等等的問題,
我就清楚的把我知道的內容說明給他們聽,
過程中常會用到白板畫圖或寫code來說明,整個過程大概是兩個小時。
4. Phone Interview
地點也在台灣的Line總部,是連線到日本東京的跟一位高層面試,
台灣這邊有一個翻譯,對方用日文問一些一般性的問題:自我介紹、
為什麼要應徵Line、做過的專案等等,翻譯都會翻給我聽,
對方可以聽英文,我就用英文回答。
接下來HR開始說明有關薪資結構還有職級等等的資訊之後就結束了。

過了一週後,Hunter就通知說收到Offer了!

蘇州 Microsoft

時間:2017/7月中 ~ 2017/9月初
語言:中文 + 英文
方式:HR透過LinkedIn聯絡我
結果:Offer Get
過程:一開始HR先用電話跟你聊一下你的背景、意願跟動機等等,後來寄了一份文件上面有一題演算法,說一天內回傳,我想說沒有很難就馬上寫完回傳了,之後收到phone interview邀約。

1. Phone Interview (1 hour):
方式:Skype,以及Skype共同編緝區域寫code。
流程:一開始問了一些Java、物件導向、設計模式跟資料庫Index的底層實作等等的問題,接著出了一題演算法,我寫了一個版本之後,開始討論要如何優化,後來我想到幾個地方可以優化之後時間上有點超過,他說不用實作沒關係就結束了。

過幾天後就收到on-site邀請,再過了幾天,
HR跟我說美國那邊說需要再加一場Phone Interview,
所以過幾天就進行第二次Phone Interview

2. Phone Interview (1 hour)
方式:Skype,以及Skype共同編緝區域寫code。
流程:出了一題算法題,還蠻有趣的,過程中需要證明一下你的算法是正確的,Interviewer人蠻好的,會引導你,我證明完且寫出來之後有挑出一點小錯後就結束了。

接著就收到了On-Site邀請啦,他們會補助兩天的餐費、住宿費以及所有的
交通費、來回機票等等,不過跟Booking不一樣的是要自己保留發票或票據,之後還要填表格,給他們匯款資訊等等,稍微麻煩了一點。
不過HR還蠻有誠意的,在機場準備要登機之前,打給我說到飯店安頓好之後,要不要一起吃個飯聊一下,所以當天晚上HR就請我跟我太太吃晚餐,隔天早上就去on-site了。

3. On-Site (1 hour)
一開始就請我自我介紹,聊一下做過的東西,問了Web Server遇到流量peak的時候要怎麼解決,因為沒有處理過這樣的問題所以只能靠以前大概看過的解法回答,沒有回答得很詳細。
之後出了一題算法題,我寫完之後,討論了一下要怎麼優化,修改了一下之後就結束。
最後面試官帶我去他們的餐廳吃飯,邊吃邊聊了一些有關公司的事情,
過程中還有三、四個其他部門的人參一咖聊了一下。

4. On-Site (1 hour)
一開始被問了一些Scala的問題,應該是看到我的履歷上有寫的關係,
不過因為我才開始用Scala一年而已,對一些知識不是很足,只能盡量回答,看來履歷上還是要寫有把握的才行啊…之後出了算法題,
跟面試官討論了做法跟如何優化之後就開始寫Code,過程中面試官還出去了一下,寫完後剛好他回來,就跟他講解code,他說很接近最佳解了,並說哪邊可以稍微修改一下後就結束了。這個面試官感覺比較不那麼親切(人還是不錯),出的題目算比較難的,應該是個Bar Raiser的角色…

(註)Bar Raiser: 通常公司為了避免Hiring Manager想要趕快招人進來而降低難度,所以通常會安插其他部門的人負責其中一兩關把關面試難度。

5. On-Site (1 hour)
Interviewer: Hiring Manager (Principal Engineering Manager)
一開始就稍微聊一下,然後問一下之前有用英文面試嗎?我說沒有,
接下來就都改用英文跟對方溝通,過程中也出了一道算法題,跟對方討論一下解法,寫完並跟對方講解完code之後,對方說沒什麼太大問題,
後來我問了蠻多有關未來工作內容、流程、team的組成、在這邊的生活等等的問題。

整體面試下來感覺蠻好的,HR很有誠意,面試官也都蠻親切的,都很願意跟你討論。因為我有工作經驗,以為他們會考一些System Design相關的題目,後來蠻意外的全都是算法題。
隔天在蘇州觀光的時候就接到電話說通過面試了,要開始跑Offer流程了。

東京 Amazon

時間:2017/8
結果:婉拒面試
LinkedIn上收到HR說台灣有聯合招募會就報名了,應該蠻多人都有收到的。

1. Off-line Assessment
時間: 70分鐘
內容: 三道題目,大概是LeetCode Medium等級,全部寫完且測資全過。

後續:從蘇州回來後就寫信問Amazon HR有沒有通過,對方說通過了,
並希望我台灣面試會的時候去on-site,不過時間在10月中…
後來考慮到因為我已經有Microsoft Offer,而且我跟我太太都不會說日文,物價又高,生活上不太方便,所以就拒絕了。

面試感想:

1. 勤寫LeetCode:我自己是都挑Medium跟Hard寫,Hard寫累的時候就換Medium寫,當你習慣寫Hard之後,遇到Medium會比較容易想出解法,寫完之後也會看一下別人的解法,對自己也蠻有幫助的, 我常常坐捷運通勤的時候就挑個題目先在腦袋裡想,到公司的時候再把它寫出來。

2. Mock Interview:我跟我朋友每個禮拜輪流做一次英文的Mock Interview,練習用白板寫Code跟學習溝通,這樣面試時可以無縫接軌。

3. Mindset很重要:面試官不是要考倒你,而是想知道你過程中如何思考、
如何跟面試官溝通等等,所以跟面試官討論非常重要。如果他們只是為了看誰寫的出最佳解,幹嘛叫你來on-site?直接把題目撒出去看誰最快寫對就好了啊XD。

4. 英文很重要:國外公司就不用說了,即使是外商的中國分公司,因為有很大機會需要跟各國工程師合作,所以難免需要英文面試,不過不用很流暢,
至少能聽懂對方講什麼,而且能表達自己的意思就好,有點卡沒有關係,不過如果你是要去BAT的話這就可以跳過了。我自己是坐捷運通勤時會聽CNN Student News聽個一兩遍,每天聽就會慢慢習慣了。

5. 不要想太多,就去試試看唄:不要被自己的想法困住,我認為軟體產業還在上升中,有機會都可以去試試看,我也是把每次面試當作練習的機會,所以都沒有想太多就去試試看,反正沒有錄取多一次面試的經驗也蠻不錯的,幸運的話還能賺到免費機票跟住宿呢。

最後決定去微軟了,Offer內容有興趣的人可以上一畝三分地看看,剛好上面有人分享,非大陸地區且帶家人的話relocation fee會高很多,蘇州房價跟台中差不多,環境清幽,算是蠻適合生活的地方。

Line的Offer的話,應徵時Head Hunter通常會跟你說大概的數字,不會差太多,可以去Top Career網頁上應徵,會有Head Hunter聯絡你,希望這些分享可以幫助到大家。

--

--

Min-Fu Yang

A Software Engineer@Microsoft. Passionate about Big Data technology, JVM related knowledge, and Algorithm