[北美] Facebook 面試經驗 + 內推已刪文
大家好! 今年因為受到了許多人的幫助, 包含板上的資源, 來回饋一下希望能幫助到
未來的板友們 :) 多年沒發文章, 不通順請多包涵.
個人背景:
112 EE PhD. 領域是 ML 在某多媒體的應用, 畢業後在西雅圖新創公司做了兩年
Research Scientist. 在 Facebook 面的是 Research Scientist track 而且是
pre-allocated to the team, 所以 bootcamp 完全沒選組...
面試過程:
recruiter 寄信想聊聊 + 有認識的朋友也在 FB 但是不同 division, 加上一些
因素覺得也該是多看看的時候了, 所以就跟 Recruiter 約了電話聊聊.
聊完之後覺得是個不錯的機會所以就開始走流程. 大致上可以分成以下幾個階段:
1. Exploratory talk:
因為這個 recruiter 是專門為幾個 team 在找人加上專長在特定領域, 在電話中
就聊到這個缺就是在這個 team, 差別只在於是要面 Software Engineer 或是
Research Scientist. 於是安排了一個跟 team manager 約半小時的閒聊, 內容
大概就是過去的一些 project / 對 Facebook 為什麼有興趣 / manager 大致說說
team 未來的方向 / etc ... 完全沒有問任何 coding, 但是我覺得從談過去的
project 這部分還是能多多少少挖出你在這領域的底子有多厚.
2. Technical screening:
過了幾天 recruiter 通知可以繼續進行, 可以選擇 Engineer / Scientist track.
仔細問了一下其實就是面試的幾關會略有不同 ( system design / ML design ).
因為個人對 ML 比較有把握加上確實對 Scientist role 比較有興趣所以就還是選了
Scientist track. Technical screening 就是半小時的純 coding interview, 可以
選要 by phone 或是 in-person, 個人建議還是 in-person 好, 能在白板上畫圖可以
省下不少唇舌. 這關基本上就是一個 interviewer 走進來開始問 coding problem,
對你的 background 完全沒興趣. 我被問到的事後查了一下是一題 Leetcode 上的
medium 題再加上變形 (沒刷到, 當場真的抖了一下, 還好經過簡單的 hint 後解出).
3. On-site:
又過了幾天 recruiter 就來約 on-site 了. 大致上就是說會包含 coding / design /
culture 幾個面向 (其實好像大公司都差不多). 比較特別的是 Facebook 會盡量讓你
知道 what to expect and how to prepare, 例如: https://goo.gl/sgaaMn
recruiter 也會盡量把你準備好, 這一點我覺得很不錯, 真正 on-site 的時候有一種
安心感... 原因當然 1. 成功招到人是算在 recruiter 的 performance 裡面的. 2.
這也有點希望面試者當下在自己的 100% 狀態, 如果這樣還不是個 match 那就可以比較
有信心的說真的不是個 match, 以降低錯看面試者的機率 (並不是說就完全沒有了, 至少
"較低"). 個人還滿贊同這個想法的, 比一些公司喜歡出怪招看臨場反應來的有道理多了.
我的 on-site 關卡 coding 部分基本都是 Leetcode medium 題, 全用 C++ 作答, 沒有
使用到 C++11/14/17 的 feature 但是有用到比較少用到的 data structure (例如
priority queue), 因為不常用所以 syntax 有點記不起來, 不過 interviewer 基本上
不要求這個所以演算法上沒問題就可以了. 這部分在每個 session 結束前都有拿到
interviewer 正面的評價, 我想原因應該是我寫得很快 (每個 session 都寫到第三題),
而且沒什麼 syntax 的錯誤, coding style 也有特別注意.
再來 design 的部分包含 ML design 以及自己領域的 design, ML design 基本上就是
一個跟自己特定領域可能不相關, 但是在 Facebook 內做 ML 相關應用的 interviewer
來問一個以 Facebook 為背景的 ML 問題, 通常是分類或推薦. 確實, Facebook 內部的
多數應用也都可以被簡化歸類到這兩者之一...
舉例來說, 分類可能就是問: 給你一個粉絲專頁跟一個使用者, 請設計一個系統來預測
這個使用者會不會幫這個粉絲專頁按讚?
推薦的話, 可能就是問: 請設計一個能夠依照相似度推送交友清單給每個使用者的系統?
(以上都不是我碰到的原題, 但是簡化過後的核心問題都是類似的)
這個部分最麻煩的其實是要先把問題 "ML" 化, 也就是如何把這簡短的問句展開成具有
完整 input / output / model 結構的東西, 然後想辦法把剩下的 45 分鐘嘴砲完...
因為是 "design" 問題, 所以沒有標準答案, 當中 interviewer 會不斷的問你為什麼
要這樣做, 有沒有其他辦法, 取捨是什麼, etc.
特定領域 design 的話也很類似, 只是場景變成特定應用了, 這關我面的不好, 就沒
什麼特別好講.
最後 culture 的部分就是注意要依據 STAR (Situation, Task, Action, Result) 來
作答, 盡量以實際的經驗為主, 避免"如果是這樣我會..."的答案.
4. Offer:
所有的面試都結束後, recruiter 會收集 feedback 然後決定是否開 offer. 這部分跟
大家的面試經驗大同小異. 跟 recruiter 多要一點的方法也不外乎拿其他 offer 來喊
價 / 說明離開現職的損失 / ... 總之如果有具體的事證, 應該都不難談的. Facebook
的 package 在業界是很有競爭力的 (尤其在西雅圖), 一般來說應該都能讓人滿意.
在這邊想特別聊一下簽證, 因為我非公民沒綠卡工作簽還是那種不能轉移的類型, 所以
換工作真的是特別特別的麻煩... 但是 Facebook 在簽證 / 綠卡這塊是出名的友善,
所以後來也是公司出了律師把簽證都辦了.
----------------------------------------------------------------------------
以下是雜談與心得.
1. 如何被 recruiter 找: 因為前一份工作還是有發表 paper, 可能做的東西剛好相關.
不過進來之後發現 Facebook recruiting 其實超積極, 每天都在瘋狂寄信, 所以自己
應該也沒那麼特別 XD.
2. 怎麼準備 coding interview: 神書 Cracking the Coding Interview 必看! 不只
教你如何解題, 還教你如何解題. 好我知道聽起來很奇怪, 第一個解題是指如何寫出
solution code. 第二個解題指的是如何 walk your interviewer through your idea.
其實面試解題不是只有把 code 寫在白板上, 如何跟你的 interviewer 溝通的重要性
並不亞於 code 的正確性. 試想如果有一天你有個同事 coding 超強但是他沒辦法跟你
解釋他的 code 跟 idea, 跟他一起做 project 一定不容易. 線上系統的話首先當然是
Leetcode, 不過個人覺得完全沒必要刷完 (因為我就沒刷完, 大概刷了 300 ). 刷得多
不如刷得精, 許多 hard 的題目解法思維往往無法套用在其他題目上, 只能硬背, 刷這
樣的題目個人覺得有點浪費時間. Lintcode 是另一個好的系統, 因為他有免費的公司
標籤以及頻率, 我那時候是 Facebook 高頻率題目都刷過兩遍 (其實沒幾題), 其他大
公司的高頻題目也盡量刷過一遍. 另外找朋友 mock interview 也是必備的.
3. 怎麼克服面試緊張: 找朋友 mock, 還有找其他公司面試當練習 (感到抱歉).
4. Internal reference: 在 Facebook 內推人是要寫 review 的 (記得 Google 也是),
我很幸運有一起工作過的朋友比我早加入 Facebook 並且願意幫我寫好的 feedback.
這個 feedback 一般來說不會用到, 但是如果你的面試表現在邊緣的話就會被拿來參考
了. 另外 recruiter 可能也會根據這個 feedback 來決定你的 interviewer 是哪些人
(通常會是好幾個來自不同 team 的人).
----------------------------------------------------------------------------
更新:
5. 如何看 Facebook 目前有哪些缺: https://www.facebook.com/careers/jobs
6. recruiter 雷不雷很重要! 面試時 on-site 前後各有一個 recruiter. 我滿幸運的,
第一個 recruiter 很專業, 經常沒事就打電話來問說有沒有問題, 準備的如何, 或是
又想到什麼東西可以幫到我. 第二個就... 除了 on-site 的時候有把我帶到面試的地方
之外, 沒有特別有幫助, 還好第一個 recruiter 在 on-site 準備期間還是經常聯絡.
也聽過認識的朋友被 recruiter 陰一把結果面試過程完全不符合預期的例子 (可能是
recruiter 太菜或是完全沒有 technical background, 也可能是單純不用心 XD).
我自己也是被 G 家的 recruiter 弄了一下, G 家在西雅圖有 S 辦公室跟 K 辦公室,
on-site 當天我依照信裡的指示到了 K 辦公室, 結果沒人來接我, 時間都過了才接到
recruiter 電話說他搞錯了其實所有人都在 S 辦公室等我... 離開時櫃檯還說這種事情
經常發生 XD. 還有 A 家的 recruiter 明知道我跟前一份工作有 NDA 還硬是要排一個
一小時的 technical talk! 還好那時候已經決定要去 F 所以就怒拒. 總而言之, 面試
其實充滿各種不可控變數, recruiter 的素質跟公司的強度有時候真的不是成正比的.
建議如果大家覺得一開始跟 recruiter 聊起來苗頭不對, 不如換個 recruiter 以免面
錯 team 被拒又要等一年.
7. Facebook 在西雅圖給跟 Menlo Park 一樣的 package 是真的. 因為不收州稅的關係
實質收入會高一點, 算是變相鼓勵大家移往西雅圖, 原因的話跟當地政府政策有關.
不過在哪裡面試跟加入哪裡的 team 是可以分開的. 我一個同事就是加州面試但是最後
還是選西雅圖. 我當時面完也是可以選 NYC / MPK / SEA.
----------------------------------------------------------------------------
最後是內推.
經歷過幾次找工作, 也深深體會到其實要被看見很不容易. 如果有板友對 Facebook 有
興趣但是不知道有哪些職位可以投, 或是需要幫忙內推, 歡迎站內信與我聯絡.
我知道板上之前有一些內推的風波, 在這邊先聲明一下, 並不是給我履歷了, 我就一定
會內推到系統裡. 如同前面所說, 內推是要寫 review 的, 因此我會花一點時間跟你
聊聊, 確認我能夠花時間寫出你我都覺得合理的 review, 我們再來聊要怎麼內推.
祝大家工作/學業順利, 有個美好的 2019!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 199.201.64.3
※ 文章網址: https://www.ptt.cc/bbs/Oversea_Job/M.1545648330.A.9A7.html
推
12/24 21:24,
7年前
, 1F
12/24 21:24, 1F
推
12/24 22:51,
7年前
, 2F
12/24 22:51, 2F
推
12/24 23:42,
7年前
, 3F
12/24 23:42, 3F
推
12/25 00:03,
7年前
, 4F
12/25 00:03, 4F
推
12/25 00:50,
7年前
, 5F
12/25 00:50, 5F
推
12/25 02:18,
7年前
, 6F
12/25 02:18, 6F
可以的, 歡迎站內信聊
※ 編輯: m1010 (50.35.74.43), 12/25/2018 04:05:39
推
12/25 04:27,
7年前
, 7F
12/25 04:27, 7F
推
12/25 04:58,
7年前
, 8F
12/25 04:58, 8F
推
12/25 10:05,
7年前
, 9F
12/25 10:05, 9F
強者我學長什麼時候 return 救股價 XD?
推
12/25 10:27,
7年前
, 10F
12/25 10:27, 10F
推
12/25 13:33,
7年前
, 11F
12/25 13:33, 11F
以上兩位一併回答: 可以幫推非 coding 相關的缺, 但是因為我沒有相關專業, 要麻煩
你們先寫個跟 job description 比較合的 self-promotion, 這樣我寫 review 比較有
可信度 :)
推
12/26 01:00,
7年前
, 12F
12/26 01:00, 12F
應該有, 我們 team 就有配 PM. https://www.facebook.com/careers/jobs 找找看?
※ 編輯: m1010 (50.35.64.238), 12/26/2018 07:00:42
推
12/26 13:21,
7年前
, 13F
12/26 13:21, 13F
推
12/26 18:53,
7年前
, 14F
12/26 18:53, 14F
推
12/26 19:31,
7年前
, 15F
12/26 19:31, 15F
推
12/26 20:00,
7年前
, 16F
12/26 20:00, 16F
推
12/27 03:07,
7年前
, 17F
12/27 03:07, 17F
推
12/27 14:50,
7年前
, 18F
12/27 14:50, 18F
→
12/27 14:51,
7年前
, 19F
12/27 14:51, 19F
→
12/27 14:52,
7年前
, 20F
12/27 14:52, 20F
推
12/28 07:37,
7年前
, 21F
12/28 07:37, 21F
→
12/28 07:37,
7年前
, 22F
12/28 07:37, 22F
→
12/28 07:37,
7年前
, 23F
12/28 07:37, 23F
→
12/28 07:38,
7年前
, 24F
12/28 07:38, 24F
推
12/29 00:21,
7年前
, 25F
12/29 00:21, 25F
→
12/29 19:36,
7年前
, 26F
12/29 19:36, 26F
→
12/29 19:37,
7年前
, 27F
12/29 19:37, 27F
→
12/29 19:41,
7年前
, 28F
12/29 19:41, 28F
→
12/29 19:41,
7年前
, 29F
12/29 19:41, 29F
推
01/03 13:04,
8年前
, 30F
01/03 13:04, 30F
推
01/06 02:35,
8年前
, 31F
01/06 02:35, 31F
推
01/09 15:08,
8年前
, 32F
01/09 15:08, 32F
Oversea_Job 近期熱門文章
PTT職涯區 即時熱門文章