Last updated on March 6, 2021
這篇來聊聊去 Facebook 總部軟體工程師面試 的心得。雖然有朋友的內推,但一開始因為人資的問題導致連聊的機會都沒有,差點出師未捷。幸運的是,後來在另一位人資的幫忙下,終於開啟了面試的流程,最後也順利拿到 offer。整個過程中,我感受到了臉書做事的超高效率,堪比新創,跟我這次面的其他大公司很不一樣(見《Google Facebook Quora LinkedIn AirBnb 面試經驗分享》)。加上人資的問題,這次面試也讓我肉身體驗到臉書的 “Move fast and break things”。
內推投履歷
所謂出外靠朋友,當我感覺自己準備得差不多時,就請以前 CMU 的同學幫我內推臉書了。對大部分的人而言,內推是拿到面試最好的方法之一,因為這相當於在公司內除了人資以外有人願意為你背書。所以平常對人要和善點,積積陰德啊!
來自第一位人資的閉門羹
內推後隔一兩天,就收到人資的信,他表示想約時間聊個天。聊天的過程挺愉快的,他表示會去問問內部做 ML (Machine Learning) 的那些組之後再來進行下一步的面試。正當我以為一切都很順利時,悲劇就發生了。
過了整整一週,我都沒有收到人資的信。我就寄信去問他有沒有進展,他說還在詢問相關的組。然後又過了幾天,他表示所有做 ML 的組在今年都已經沒有名額了。驚訝之於,我也向他強調我可以去不做 ML 的組,但他說現在公司的政策是只招募有五年以上的軟體工程師,而 ML 工程師則不在此限。因此,人資表示我今年已經沒希望了,只能等他們明年的缺額。在此時,我已經完全放棄這次面試臉書了,只能自認倒霉。
一個人資不夠,你有試第二個嗎?
後來又過了一週,我收到了來自另一位臉書人資的信。他看到了我的履歷之後覺得不錯,於是我們約了時間聊聊。在電話中,他表示很多臉書ML 相關的組都非常缺人,尤其是做 ML 相關的。
我當下滿頭問號,並且告訴他上一位人資告訴我的那些事。他說他完全沒有跟那位人資接觸過,所以也完全不知道對方為何會得出這種錯誤的結論。反正就是台灣政壇上常見的黃金切割,不想為此多做解釋。
雖然莫名其妙,但至少我又有機會可以面試了,所以也沒有太追究這些細節。這次的這位人資感覺非常專業,回信極快以及會主動提供我大量準備面試的資料,跟上一位的差別非常顯著。
Facebook 總部軟體工程師面試 :跳過電話面試
因為我告訴這位人資我正在激烈地與其他公司面試中,如果有不錯的 offer 我大概就會去了。他就主動讓我跳過電話面試,直接去 onsite 以加快步伐,追追進度。這種省時間的禮物我就開心地收下了,我們就直接約了 onsite 面試的日期。與此同時,他也再三強調如果其他公司有任何進展就要讓他知道,需要的話他還可以更快!
Facebook 總部軟體工程師面試 :Onsite Interview
與一波三折的人資相比,面試的流程就平順許多,每個步驟都安排得很周到。遇到的每個面試官感覺都很專業,態度也不錯。中午吃飯是跟幫我內推的同學一起吃,聊聊近況八卦很放鬆。吃了拉麵、煎餃、泰式奶茶、蛋糕,餐廳真的很棒。
這次以前我已經有去過幾次臉書總部找朋友混吃混喝,順便玩 Oculus。我原本以為會去同一個地方面試,結果是約在原本總部對面剛蓋好不久的新總部。裡面的設備比之前的更新,還有一個屋頂空中花園,很多餐廳與零食。比較重要的是不少做 ML 的組都正在搬過來,而他們將是面試我的人。
這一天共有五輪的面試,每輪 45 分鐘。其中有大概一半的部分是問跟 ML 相關的,而另一半是軟體工程相關知識。即使是 ML 的環節,也會伴隨不少工程相關的問題,畢竟我投的是 ML engineer 而不是 researcher 。可以分為以下這些:
- 三輪寫扣
- 配合履歷、behavior 與 ML 理論問題
- 大規模系統設計
- ML 產品設計與對應的系統設計
除了寫扣,其他的問題都是滿開放的。尤其是產品或系統設計,比較像是在跟面試官討論而不是報告一個解法。整個過程我們大量使用白板來討論問題與思路。每一輪都在同一個會議室裡所以很方便,可以直接把背包丟著。
因為人資很忙,結束時是由最後一輪的面試官送我離開,他自己正在帶一個做 ML 的組而且缺人中,所以他就主動把他的信箱給我並想保持聯絡。他也很熱情地帶我參觀這個新辦公室,我們就一起去吃冰淇淋後才分開,我還外帶了一些冰淇淋回家吃。
面試結果
面試後馬上收到人資的信,表示他們 48 小時內會告訴我進展。我在週五去面試,在週三就收到正式通知表示已經通過了。人資說每個面試官的評價都不錯,尤其是最後那位面試官(冰淇淋那個)特別幫我說了不少話,所以很順利。他還表示希望我直接加入他的組,而不用在 boot camp 裡慢慢選。
一般來說,跟臉書簽約時是不必選組的。等到你正式入職後會先有一兩個月的 boot camp 讓你熟悉環境與各組,等 boot camp 結束時才正式加入你想去的組。當然只要雙方願意,你也可以先選好組再簽約,各有利弊。我自己是比較想要先選好組,因此聽到冰淇淋面試官這樣提議,我很開心。
雖然面試通過了,但人資知道我還在跟其他公司面試,所以他也很識趣地不催我,但也不給我開 offer。因為他不想當第一個報價的,大概是覺得跟漫畫一樣先手必輸吧。
Sell Chat
即使在等別的公司出結果,人資也沒讓我閒著。為了推銷臉書,他安排了一堆跟我可能有關係的人來電話聊天。有之前的面試官,也有台大(不認識)的學長。希望能藉由這些讓我更了解臉書而想加入他們。這些電話他稱之為 Sell chat,推銷自己公司的概念,其實跟 Quora 的 reverse interview 差不多(見《Quora 面試分享與火災警報應對指南》),這次透過電話而已。
這些電話基本上蠻輕鬆的,就是對方大力推銷他們自己在臉書的工作經驗,想拉人入會就是了。大家感覺上都很熱情,熱情到像直銷一樣,不過至少聽起來像是很喜歡自己正在做的東西。我也順便問了一下在臉書工作的生活品質怎樣,因為網路上它的 WLB (Work Life Balance) 很差,而這些人口徑一至地說他們覺得很好,沒有那麼誇張。
薪資談判 Offer Negotiation
直到我告訴人資我在 Quora 那邊拿到的 offer 後,他才願意告訴我臉書的價碼。這個價碼其實不錯,但因為我有先做好功課,在各論壇調查過跟我類似背景的人在臉書的待遇是怎樣,所以我知道其實還有議價的空間。所以我就跟他說我在當時公司的薪水,並表示這個價碼並沒有非常吸引人。他聽到後馬上在電話中聯絡相關部門,在短短三分鐘就幫我要到更多 $$$,非常有誠意,但同時他也坦白說已經無法再加碼了。這符合我查到的資料,所以我也相信了,在日後跟 Google 的加碼中,我也就沒有為難他。
這裡多講兩句,很多人面試完就鬆懈了,但我認為薪資談判正是投資報酬略最高的步驟。只要你有做好功課,你就能大概知道人資有沒有真誠地對待你。你就有可能只透過幾句話,就能平白多拿到不少錢。想想你都已經努力準備面試了這麼久,最後只因為少做了點功課就少了一台特斯拉的薪水,不覺得很可惜嗎?
至於如何做功課,請把我在《東岸留學生找矽谷工作與 CMU Career Fair TOC》這篇裡面提到的那些論壇都去爬一下,讓自己心中有個底。如果真的沒時間,那至少去把 Blind 的近期相關討論爬一爬,一定會有幫助的。
Facebook 總部軟體工程師面試 :Offer 抉擇: G vs F
不得不說臉書的 offer 是非常吸引人的,那些 Sell chat 也多少有點用。我在最後其實就只是在 Google 跟它之間選擇而已,不考慮其它公司開的 offer。最後因為 Google 無腦 match 臉書的 offer ,以及其它各種長期規劃的考慮下,我還是婉拒了臉書。
順便聊一下,我當時糾結這兩家公司時有做個小型的民意調查,去問過不少在業界朋友的意見,包含當時正在這兩家公司的人。出乎意料地,除了正在臉書工作的朋友意外,所有人都是選 Google,前提是兩邊開出來的價差不多。跟我預期的真的差很多,我原本以為會是五五波或是六四波呢。很好奇這是否為普遍大家的偏好,還是我的舒適圈太詭異。
結語
平常要多做好事,累積陰德。不然就會像我一樣遇到一個問題很大的人資,差點導致我直接錯過這次面試。還好後來陰德可能積得不少,第二個人資就非常優秀,在整個面試過程都很幫助我,後來我們就直接講中文了。當我打電話去婉拒 offer 時是真的覺得很可惜,耗費他這麼多心力(以及幫我內推的同學)。這次的經驗也讓我體會到人資的重要性,好的人資真的可以帶你上天堂。
另一個重點就是談薪資時真的做好功課,既然都花這麼多時間唸書刷題了,撥出一點時間出來調查薪水絕對是很值得的。當然更有效的還是手上有其他不錯的 offer ,才能把談判籌碼握在自己手上。