Senior Front End Interview (2023 H1)
分享一下最近面試美國資深前端工程師 (ex-Meta E5) 的面試經驗,包含了 Aviator.co、Graphite.dev、Clipboard Health、Retool、Databricks、Cruise、Dropbox、Transform.co。最後拿到了 Aviator、Retool 跟 Databricks 的 offer,然後跟 Cruise 和 Dropbox 取消 onsite。
這是我人生第二次在美國找工作,上一次是七年前剛畢業的時候,完全對於這次找工作沒有任何把握。在離職的狀態下全心刷題刷了兩個半月才覺得手感順了。最後總共刷了 325 題 (110 easy, 196 medium, 19 hard)。
不過開始面試之後發現 leetcode 比重不大,面完兩次 onsite 之後就刷的很不起勁,然後有感覺手感就又掉了下來。幸好又再面完兩個 onsite 後就上了喜歡的公司,就不用再繼續面了。
Front End 的準備教材我這次都是看 https://www.greatfrontend.com/ ,雖然說沒碰到一樣的題目,但看完之後還是心理比較有個底的感覺。
面試種類
這次面到的每家公司都把 front-end 獨立出來,完全沒有面任何 backend 相關的東西。Designing Data-Intensive Applications 跟 bytebytego 的東西都不太需要看。總共遇到的種類有:
Leetcode easy/medium (x7)
- 沒有遇到 DP, Graph, Tree, LinkedList
- 遇到 best time to buy & sell stock,但 requirement 說時間複雜度完全不 care,幸好有看到
- Startup 面的時候讓我自己決定開發的環境,我用了 VSCode 但差點不知道怎麼用 CLI 跑 typescript,debugging 也有點生疏,幾次面下來才慢慢有了個簡易的 TDD workflow
FE Coding (x5)
- 用 https://coderpad.io/ build react component
- 主要都在寫 business logic,CSS 跟 UI 的部分幾乎沒問
- useContext, useRef 這些稍微複雜一點的也都沒問
Past Experiences (x6)
- 跟 manager 討論過去做過的 project 的細節、impact 是什麼、我在 project 中的角色是什麼等等
FE System Design (x2)
- 不用寫 functional 的 code,純粹討論如果要做比方說 i18n 要怎麼做、要做 google sheets 要怎麼做,一邊設計一邊討論些不同做法的 pros & cons
FE Design (x1)
- Designer 給我一個 Project 跟很粗糙的設計,說我們最近要來做 xxx 功能,在想做這個功能的同時可以把他 build 好一點讓其他地方能共用,問我會怎麼 approach 這樣的問題
FE Infra (x1)
- 討論關於 refactoring 和 testing 的經驗跟 philosophy
System Design (x1)
- 設計餐廳的訂位系統,討論前端跟後端溝通的 API
Debugging (x1)
- 給了一個 github repo, 裡面有兩個 js 檔案跟兩個 unit test 檔案,有四個 test failure 要解
Refactoring (x1)
- 給了一個 github repo, 裡面有個 js 要 refactor,然後解釋 refactor 背後的想法
心態調適
這次雖然是達到了夢想中的結果了,四個 onsite 拿到了三個 offer,裡面又有兩個是我覺得超讚的公司,而且 Databricks 還是出名的 high bar,真的是會讓自信心膨脹了一些。不過一路面試下來也還是很多失誤的地方跟低落的時候:
- 十二月時佛系投了 Alltrail,結果跟 HR 講以前的 project 和這次找工作的目標講的零零落落,聊完後過個年就被拒了
- 有第一次面 Front end coding 時 requirement 才做 70% 的
- 有一個我超想去的公司,結果 onsite 第一輪面 debugging 面完就覺得沮喪到不行的。(一開始太有自信覺得我以前 debugging 超強的啊,就連 VS Code 裡的 debugger 都沒有特別去看要怎麼用,結果整場都在通靈,感覺解 bug 速度很慢很 junior,bug 也沒全部解完)
- 有另一個我超級想去、跟我做過的事超級 match、被我當作保底的公司 (他們要我搬去紐約所以我一直在糾結),花了好多時間糾結完了覺得好像要搬去紐約也是可以。後來跟兩個 co-founder 聊他們一副還是很想要我、有錢有缺的樣子,兩輪面試也跟面試官很 connect 的順利答完所有問題,結果收到了個罐頭拒信。那天得失心超重覺得真的是蠢到不行, offer 還沒到手都不要想太多。
- 跟 Designer 面試完的當下覺得跟面試官很 connect,但結果還沒出來時週末一直在想我到底回答的是好還是不好,然後越想越覺得好像其實好像可以講的更好的,也是把自己搞得有點沮喪。
- 有一天下午面了四輪有三輪在講過去經驗的,面到我都有點懷疑人生,不知道以前做的東西到底有沒有 impact。最後一輪的時候我累到面試官給我 15 分鐘問問題,我問了五分鐘就語無倫次,草草的提前結束掉。本來準備又要來爆哭一場,結果十五分鐘後馬上就收到 HR 的口頭 offer,拯救了當時的心情。
心得的話大概是
- 把 onsite 拆兩天的比較有時間調整情緒跟充電,避免連環爆。
- 面對沒面過的面試種類如果能找人 mock 一下應該會不錯,不然就是多面幾家,用前面的經驗來當練習。
- offer 還沒拿到前都不要太有得失心,自己覺得差的對方不一定覺得差,自己覺得好的對方也不一定覺得好,面完就要 move on。
喜歡我的文章的話歡迎鼓掌給我些鼓勵,也會幫助演算法讓更多人看見!