2021 SWE New Grad 找工雜談

卓伯鴻
17 min readApr 11, 2021

--

因為疫情影響,今年對新鮮人找工作是相當不友善的一年。這篇文主要記錄了我一年來的找工方法流程、時間線以及心路歷程。

目錄:
找工方法&流程
投遞履歷
準備面試
各公司流程&時間線
心路歷程

背景:

Education:
2019-2021 U of M ECE MS (Signal Processing & Machine Learning)
2014-2019 NTU EE BS
Working Experience:
2020 Amazon SDE Internship (@Palo Alto)
2018 Dell SWE Internship (@Taiwan)
2017-2019 NTU ACCESS IC Lab RA (w/ publications)
2020年幾乎沒進過的校園 (Author: Scott C. Soderberg | Provider: UM Photo Services, Scott C. Sode)

公司統計:

Offer: Microsoft, SambaNova, Hive AI
OnSite Rej/Fail: Health@Scale, Sunrise
Phone/Screen Rej/Fail: Facebook, Verizon Media, Ambiq, Moloco, SIG, Lutron, Mayo Clinic
OA Rej/Fail: Roblox, Pure Storage, DRW, JP Morgan, Twitter ...
最後選擇去Microsoft Azure Compute Team

前言

讓我們把時間回溯到2020年的7/31,我從實習的老闆口中得知沒有return offer。我2020 Summer是在灣區的Amazon實習,老闆是個台灣人(大學指導教授的國中同學),對我也是照顧有加,所以在通知我沒有return offer之後,還花了一個半小時安慰我。我還記得他說,「沒拿到return offer只會是你人生中的小失敗,但最可怕的不是失敗,是對自己失去信心。」我非常感謝他當時給我這碗雞湯,並在這一年遇到低潮、質疑自己的時候,能以此激勵自己。

找工方法&流程

投遞履歷

我的找工時間點跟正常人相比算是蠻晚的,我在八月中的時候請朋友內推了一些大公司的職缺(e.g. Facebook, Apple, Twitter),但是回覆都是無聲或免洗oa。到十月都沒有收到面試機會的我有點低潮,就沒有認真地刷職缺。直到學校學期結束(12月中)才開始認真地海投履歷,一直陸續投到三月初才停止。

我主要投過三種方法投遞履歷:

  1. 內推

說到內推,大家一開始都會找比較熟的朋友或學長姐在幫忙內推,開口求人比較不尷尬,然而不是每個人都很幸運的擁有豐沛的network資源。經過朋友的介紹,才偶然得知了一個台灣人建立的內推網站叫做半路出家軟體工程師在矽谷。裡面基本上除了大公司之外,一些中型公司(e.g. Stripe, Square, Ambarella)也都找得到願意熱心幫忙的人。除此之外,有一個fb社團叫做台美人求學求職合作社也是一個性質類似的社團,能在上面請廣大版民幫忙求職相關的問題。

我覺得朋友圈要能同時涵蓋大部分的中型公司應該是不太容易,所以這類型內推網路的建立實在是相當有幫助。另外我也有聽常在一畝三分地逛的朋友說,其實地裡也是蠻多中國人有在做類似的事,不過我沒有上去求助的經驗就是。

2. LinkedIn

LinkedIn應該是最well-known的求職網站了,公司釋出職缺的時候,LinkedIn更新的速度算蠻快的,如果天天都有看職缺更新的話,也可以把握在職缺釋出的三天內馬上投遞履歷,我也有搭配另外一個整理new grad職缺的網站消息。關於profile的話,我在前篇找實習的拙作中,已經有討論過了,因此不再重述。但額外加一個點是,LinkedIn的大頭貼有一個actively seeking for job的邊框功能,據說加上這個邊框的話,在LinkedIn上的recruiter比較容易注意到。

3. Handshake & Career Fair

這個網站主要是給校招的recruiter使用的,因為登入是用學校帳號,所以也比較容易被同校的recruiter或是hiring manager看到撈起。這個網站上的職缺也比較多是0–2年work experience的缺,對new grad來說也是比較友善。我有一些部分面試機會就是在上面match到的,但大部分都是新創公司。

Career Fair的話,2020的版本是疫情版本,所有的event都轉成online meeting,大致流程就是先去搶與recruiter的time slot,然後在career fair當天進去不同公司的meeting room聊個十分鐘的天,有些recruiter會在十分鐘內問一點點淺薄的technical問題來決定要不要給校招的連結,所以career fair前還是可以稍微準備一下,我自己遇到的分別是考C++跟Java的一些基本概念,C++的話有問pass by reference, pass by pointer的差別,Java就問一些try catch finally的邏輯以及final這個key word的不同情境下的功用。

準備面試

跟找實習很不一樣的地方是,正職的面試更多輪而且考的方向也不一定局限於刷題,主要方向如下。

1. LeetCode

講到刷題,一定得先附上卡恩學長的名言:

「刷題げるは耻だが役に立つ」(刷題可恥,但是有用)

常常可以看到一畝上面說刷到800多題才開始,我反而覺得刷爆沒這麼有用。只要掌握幾個基本的演算法、資料結構以及他的基本模板,就可以導出各種花式的題目。我是受到 Adrian Hsu 的啟發,先把各個模板背熟,然後抓出每個模板的經典題,然後反覆刷到可以秒解的程度(想得跟打字一樣快)。如果覺得麻煩,不想自己做模板的同學,也可以參考Blind上的一個75高頻題,然後從裡面歸類出模板,一樣刷爆,只能刷爆。(註: Blind是一個只能用公司信箱註冊的平台,上面會有匿名分享薪資包裹或是討論選offer的地方)

我通常都會混雜著新題跟模板題一起刷,同時複習經典題並看看自己對各個演算法的掌握度。然後在面試前,會去一畝三分地上找面經或是Leetcode上有該公司的新題及高頻題刷。總體來說,面試中遇到面試官考演算法才是最不需要擔心的。

2. Basic Domain Knowledge

這個主題蠻依據面試的組來決定的,如果招的職缺是General SWE,拿到offer才做team match的話,一般在面試過程中,是不會有特別的domain knowledge的。

以我自身的經驗,因為我有丟一些ML相關的職缺,所以就有考ML的domain knowledge。ML的domain knowledge就跟上課的內容比較相近了,舉凡從regression, evaluation metrics, SVM, gradient boost, decision tree到各式deep learning的應用或是原理,都有可能考,我個人是讀相關的課的講義,然後自己再做成筆記熟讀(蠻像是學校考試的)。

我也有遇到面backend team,所以就考基本的client-server model 如何運作,network七層架構分別有什麼功能,cookie / session 的差別。Compiler team就考cache 和 processor的原理。

總體來說,如果在面試前,已經明確的知道是面哪個組的話,domain knowledge往往是重要的,畢竟以面試官的角度來看,不會有人想跟基礎知識都不知道的人一起工作。試想如果是一個ML team,但是新進同事卻連什麼是back propagation都不知道,那溝通肯定是會有很多障礙的。因此對basic knowledge的掌握度低,我覺得是蠻致命的失誤,就算是再簡單的東西,也非常建議在面試前拿出來重新讀一次。

3. System Design

這個部分對於new grad的面試就比較罕見了,我遇到考system design的情況有二,其一是你已經把面試官準備的問題都秒了,還剩下個十分鐘,面試官就隨口問了個system design的題目,像是請設計一個google doc。其二是這個面試官就想考考這個new grad的反應力跟邏輯,畢竟system design這種比較接近know-how的東西,對於沒有工作經驗的人來說,也只是把答案背起來進去考試而已。

雖然遇到的機率真的不高,為了上岸身體還是很誠實的去找了這方面的資源。經已然在工作的朋友推薦:The System Design Primer。這是一個針對system design interview的懶人包,裡面概括了大部分的高頻題跟回答時可以cover到的點,如果覺得還不夠,可以去看Grokking the Design Interview

4. Object-Oriented Design

我覺得這種類型的是比較難以準備的,畢竟題目會像是叫面試者隨便設計一個物件。例如,設計一個簡易的小畫家。我覺得這種類型的題目,就是順著出題者的意思,先寫一個可以動的版本,再針對一些oo的特性,像是encapsulation, abstraction去optimize原版的設計,或是思考如何scale up或是無痛加入更多feature。

面試技術總結

大部分的面試都可以分成三個部分,1)自我介紹+Behavioral Question 2) Technical Question 3) Q & A。如果以一個標準的面試時長45分鐘來切的話大概是10/30/5。

從第一個部分開始,我遇到大部分的面試官都是簡單自我介紹完之後叫你開始自我介紹,這個時候以一個沒有工作經驗的new grad來說,通常是會簡單介紹你之前實習或學校研究的經驗。然後,面試官會依據跟職位的關聯性,選擇dive in其中一個project,看看你對這個project的ownership。因此,在面試前絕對要熟讀自己的resume,並搞清楚各個project的細節。畢竟被問到自己的project,然後無法用英文流利的解釋,通常會被當成這個人對自己的project ownership不夠,也是一大致命傷。

也有些面試官會問一些常見的behavioral question來看面試者是否是個可以合作的人,最常見的一個問題就是”Why xxx company?”,面試官也會多少透過這些問題來判斷,你是否是真心想要來該公司工作,或是判斷。關於這方面的題目,其實去google “interview behavioral question”就可以查到一堆整理好的高頻題,我自己是有對大部分的高頻題,先擬好答案,以免在面試的時候要臨場反應,如果對自己的臨場反應跟英文實力都蠻自信的同學就不用這麼麻煩了XD。

第二部分的technical question不外乎就是上面敘述到的四種類型,通常我都會在面試前先上一畝把近幾個月的面經看過一次,雖然高機率不會遇到同樣的問題(大公司面試官很難遇到同一個),但是能先掌握出題方向還是比較有利的。最後一部分,通常是準備一兩個問題來問面試官,畢竟直接說「沒有問題」然後就結束這個session也是有點尷尬,可以放一些詢問工作情形或是team-related的問題。

各公司流程&時間線

由於我大概是十二月開始認真的投遞履歷,主要面試也都集中在一月底到四月初,以下公司我會盡量以時間先後排序。

  1. Lutron: 這間公司本業是做智慧燈具系統的,所以需要一些軟硬人才來他司IoT部門,他的headquarter位於Philadelphia, PA,公司規模有一兩千人,是一間私人公司。我在2020年12月初時上LinkedIn投遞履歷,過兩週後接到一面,但是面的不好,behavioral question的部分沒有好好準備英文講太爛,過兩天就收到拒信了。看一畝上的統計,他司主要還是在校招招人,東岸學校基本上都會去(非疫情時刻),然後蠻注重交流表達能力的,對於skill set matching比較不在意。
  2. Hive AI: 這是一間做data labeling的新創公司,位於San Fransisco, CA,公司規模大概是一兩百人,然後目前在D輪融資。我2020年12月底的時候在handshake上投遞履歷。在2021年1月底的時候接到hr call,然後面了兩輪電面+Virtual Onsite,每輪大概間隔一週(我都約最早的time slot)。他司的hr十分的有效率,大概兩天內會出結果,最後我有拿到他司的offer。
  3. Health @ Scale: 這是一間做healthcare資源分配的新創公司,位於San Jose, CA,公司規模小於50人,目前在A輪融資,他司主要是在研發階段,應該還沒有產品出來,主要招募的是前後端以及Machine Learning Scientist/Engineer。我在2021年1月初的時候在handshake上投遞履歷(MLE position),2月初面第一輪,過了兩週面了virtual onsite,兩天後通知rejection。面試官的能力水平都挺高的,我遇到的大部分是來自名校(e.g. MIT, Stanford)的PhD以及教授,感覺員工整體水準跟hiring bar也不低,對生醫電資產業有興趣的朋友可以試試看。
  4. Moloco: 這是一間做data-driven廣告行銷的科技公司,公司營利模式還挺複雜的,位於Palo Alto, CA,他司人數小於兩百人,目前還在C輪融資中,主要金主是Samsung,算是一間韓資公司。我在2021年1月初的時候在handshake上投遞履歷(entry-level MLE),1月底接到hr call,2月初一面,過兩天收到rejection。我面試的感覺是他司想要找即戰力(PhD或在業界工作過兩三年的人),很明顯我不qualified 。
  5. Ambiq: 這是一間做AI chip的新創公司,創辦人是UM ECE的教授(DD Lab的兩位, David & Dennis),總部在Austin, TX,他司也是一兩百人左右,已經C輪融資。我2021年1月初在handshake上投遞履歷(entry-level MLE),1月底接到hr call,2月初一面,過兩天收到rejection。跟前一家一樣,很明顯感受到他司想找即戰力。他司主要的產品是在micro device上做ML的事情,如果有相關經驗的朋友也可以試試看,個人覺得公司整體蠻promising的。
  6. Sunrise Future: 這是一間quant新創公司,總部在Chicago, IL,公司規模在一百人左右,他沒有公開融資。我在2021年1月初在handshake上投遞履歷(SWE),在二月初的時候接到hr call,過一週一面,到3月初才通知結果並約Virtual Onsite,目前還沒得到結果回覆。雖然我投的職位是SWE,還是有遇到一些考quant position才會遇到的問題,面試官的水準也都蠻高的,想必hiring bar也是不低。
  7. Sambanova System: 這是一間做AI chip的新創公司,創辦人是UM ECE Architecture大佬,總部在Palo Alto, CA,公司規模在四到五百人之間,目前剛過D輪融資,投資人主要是科技業的投資公司(e.g. Google Venture)跟Wall Street投資公司,離上市應該不遠了。我在2021年2月初的virtual career fair跟recruiter聊過並投遞履歷(校招管道)。在2月底的時候一面,過一週二面,再過兩週virtual onsite,過一週被通知得到offer(April 1)。他司的team從硬體到high level ML compiler都有,算是蠻廣泛的。面試官平均水準也挺高的,最後有遇到一個很有理想的Hiring Manger,在面試最後聊得很開心,他分享說他在CMU CS PhD畢業之後,有拿到兩家大廠跟他司的offer,最後選擇來他司。如果對VLSI Design或是對ML Compiler有興趣的同學也可以考慮他司,個人覺得蠻promising,而且福利給得相當不錯。
  8. Verizon Media: 就是原本的Yahoo, Oath (2021 Fall更新:又變回Yahoo了),大公司應該不用我介紹XD。我在2021年2月初的virtual career fair跟Hiring Manager投遞履歷。Career fair當天就有問一些technical的問題,姑且算是一面。三月中的時候,通知約二面,我在一些基本的software knowledge上答的不好,過兩天拿到rejection。我面的team base是在Champaign, IL,他司的招募好像還是組招偏多。
  9. SIG: 這是一間在Philadelphia的quant公司,公司規模快兩千人,目前是間私人公司。我在2021年2月初的virtual career fair跟recruiter投遞履歷,過兩週接到一輪behavioral question的面試,但兩週後通知不match所以reject。
  10. Microsoft: 2020年8月底的校招履歷被recruiter撈起來,在2021年3月初的時候被recruiter聯繫,約了兩週後一輪電面(最快的schedule),又過了一週約virtual onsite。Onsite前我也不知道確切的組是在做什麼,只知道在Azure Compute之下,在2021年4月初面完onsite,過兩天拿到offer。微軟的招募流程一直是蠻謎的,也不像是Amazon, Google會廣發面試,主要招募方式是校招跟hiring event,我在一畝上有看到一篇文章分析之,消息來源不明可以姑且看看。
  11. Facebook: 因為今年沒有招收swe new grad,我投的是一個research缺叫做AI residency program,他的面試也是一輪電面+一輪onsite。我在二月初投遞履歷後,2021年3月初約了一面,面的過程相當順利,在4月初的時候收到拒信,估計是head count滿了。
  12. Mayo Clinic Research: 這是一間在Minnesota, WN的醫療機構,主要在做MRI research。我2021年2月初的時候在handshake上投遞履歷(SWE),2020年3月底突然接到一輪面試(也是final round),主要在behavioral question,看適不適合加入research team,兩天後收到拒信。整體來說算是意料之外的面試,完全忘記有投他司XD。

心路歷程

在得知沒有return offer的當下,只能用晴天霹靂來形容我的心情吧,我覺得我在實習的過程中鬆懈了,因為有完成份內任務,就沒有表現出積極的樣子,manager最後在review的時候也有說technical的部分contribution是沒問題的,但是我的mentor覺得我在leadership principle的部分不qualified。

我應該是我所知的朋友來北美Amazon中,唯一一個沒有拿到return offer的人。遇到這樣的不順利,確實會產生很多負面的情緒甚至是否定自己,但是要怎麼接受自己的失敗,一直是我這一年來最大的功課。

因為這樣的失敗心裡,我在2020 Fall的時候雖然也有在找工作,但是沒辦法提起最大的努力來做。直到2020年末覺得不能再這樣消極。於是開始廣撒履歷,幾乎是只要有sponsorship,pay在平均水準的職缺我都去申請了。也許是因為2021的景氣稍微回溫了,所以從一月到四月算是面試不斷,也有維持住面試的手感(英文對話能力),最後能拿到Microsoft的offer我得說真的很幸運(Microsoft的recruiter向來很謎),但這三個月付出的心力也讓我覺得這份offer是well-deserved。

最後,我還是想用實習的manager對我說的一句話作結,「最可怕的不是失敗,是對自己失去信心。」只要還對自己抱持著希望,就能熬到機會來臨的一天。

感謝你花了這個時間讀了這篇,如果有問題想討論的話,以下是我的聯絡管道

個人聯絡資訊

LinkedIn: https://www.linkedin.com/in/bo-hong-cho-641036192/

FB: https://www.facebook.com/jay.cho.96/

Telegram: bhcho

--

--

卓伯鴻

Currently a Software Engineer @ Microsoft Azure Compute