Summer 2020 SDE intern summary

Daniel You
15 min readFeb 20, 2020

--

Google Cloud Platform (https://cloud.google.com/)

What doesn’t kill you makes you stronger.

前言

從去年九月底來到美國後不久開始找實習,截止至今只拿到三家 Phone Interview,並在感恩節前後分別被Facebook跟Intuit拒絕了,當時心情真的盪到了谷底。年底回台灣放假,卻在桃園機場行李轉盤前收到了Google的面試邀請,回美國後面完一個月就很幸運地拿到offer了。一路走來很感謝當初準備Facebook幫我mock的Jack跟Jialu,還有身邊每一個聽我崩潰的大家。

在開始往下讀之前,可以先讀一下強者我朋友Adrian Hsu, I-Le Wu, 跟Shang-Yun Yeh 的文章,我這篇比較注重在心境上的調整以及自己的一些看法(不完全對就是),至於要怎麼準備、要怎麼或是從哪裡找內推等等可以參考他們。

首先先從唯一的offer開始好了,大家可能比較有興趣。

Decision: Google Cloud Platform @ Pittsburgh

SDE Intern offer letter from Google (Summer 2020) 求職暫時告一段落,感謝一路上幫助過我的人們。

Google SDE Intern outline

  1. Referral/apply through Google Careers
  2. Back-to-back phone interview [對,第一輪就是back-to-back兩次面試]
  3. (optional) Additional phone interview
    [俗稱”加面”,當兩個面試結果分歧或是面試分數在及格邊緣時才會有]
  4. Hiring Committee approval [俗稱的”過HC”]
  5. Project Search [俗稱的Team Match,也是每年最多intern fail的地方]
  6. If matched with one or more teams, waiting for final approval
  7. Approved, welcome to Google!

Google近幾年來不論intern/full-time在過HC後都有Team Match。簡單來說他們希望可以在發offer之前讓有開intern缺的team自己來找人,這過程是double-blind的:
1. 面完一個team之後HR會要求我們給feedback,看自己喜不喜歡
2. 面試你的manager也會在兩週內給出他的feedback (HR跟我說manager通常一週內會給,但他們最多有兩週可以決定)
3. 只要雙方都是positive feedback,HR就會通知你對方想跟你move forward

到了這個階段,你可以決定你是否要confirm你的interest,confirm之後就會送去final approval,之後就會收到Welcome to Google了! (不過我不知道如果同時有多個或是前前後後有多個team都是這樣的情況的話會怎樣)

Timeline (Offer)

10/01 一畝上找到內推
11/12 跟 11/25 HR寄信要求附上成績單 (要兩次)
12/17 HR約面試
01/15 Back-to-back phone interview
02/04 HR通知過Hiring Committee
02/06 Team match request from Google Cloud Platform @ Pittsburgh
02/07 Team match request from Core Search @ Mountain View
02/11 Team match w/ Google Cloud Platform @ Pittsburgh / Team match request from Engineering Platforms @ Sunnyvale
02/12 Team match w/ Core Search @ Mountain View
02/13 Team match w/ Engineering Platforms @ Sunnyvale
02/13 當天給HR我的preference,一小時後收到matched w/ GCP
02/19 Welcome to Google

其中最tricky的地方就是Team Match了,一旦過了HC,當初面試前填的questionnaire跟你的資料就會進入到intern pool裡面,HR當初跟我說

Your profile will be visible to all intern managers once you got approval from the hiring committee and project search begins.

此時此刻就開始team match了,即便信中寫HR會先跟你講電話討論一下或是可以給你問問題,等待時間也是從過HC開始算的。一般而言intern在pool裡面只能待6到8週,如果超過這時間都沒有match到任何team,HR就會直接conclude你的application(講難聽點就是下次再來吧)。

以我自己來說,我在2/4 HR下班前收到過HC,所以我的profile會在2/5開始被看到,很幸運的是我在第二跟第三天收到了兩個team的邀請,約在隔週的禮拜二跟三各面一個,並且在隔週二面試到一半收到第三個team的邀請,馬上約了禮拜四面,也就是我過HC隔週二三四各面了一個team (面到後來差點虛脫),雖然很開心有很多team來但是心理壓力真的是大到無法想像。

禮拜四下午3點半面完最後一個team(Engineering Platforms,做software routing的,跟我的能力興趣都不太合,跟manager尬聊了半小時後就掛掉電話了)之後,心情很差,因為好不容易有一個機會但是卻不是自己有興趣的team,最後趕在下午4點把三個team的feedback寄給HR,卻意外的在一小時後收到HR通知說GCP的manager要move forward with me,看到信的當下真的是嚇呆了,距離面試完還不到一個月呢…

接下來的兩個工作天HR跟我要了一些個人資料及確認實習時間等等基本手續,終於通知match上的第三個工作天(就是今天!!)拿到了official offer並且也簽下去了。

Hey, Google, see you in Pittsburgh!

什麼時候開始投履歷

來UC San Diego讀書前一年,我就陸陸續續在一畝上看別人分享找實習跟正職的經驗,其中有一句讓當初的我想了很久

投得早不如投得巧,找工作很看運氣跟機緣的。

由於我大學很混,大部分時間都待在學術單位(交大跟UIUC的實驗室)跟研究機構(中研院),當兵完在Jack的建議下找了一家新創當SDE intern體驗一下讓自己的履歷看起來比較像是來找工作而不是來申請學校的(都是research經驗加上大學跟研究所都是ECE),那時候矇矇懂懂,而且不算花太久就找到了,所以一直沒什麼經驗。

但這近半年來讓我體會到在美國找完全不是這麼回事:

大公司 (e.g. Facebook, LinkedIn, Amazon, Google, Apple, etc.)

找大公司的好處很多:
1. 網路上面試經驗很多,Leetcode甚至有tag題可以刷
2. 開的headcount多小公司非常多

但大公司待遇好(薪水, 工作簽, 穩定度)相對競爭也非常激烈,而且他們會為了diversity分配給各學校一定的名額,也就是當他們招到跟你同學校的人到了一定的數字就不會再發面試了,或是甚至面試本身就發很少,所以先不論能不能面過,像我這樣履歷不是很突出的人光是要拿到面試就很困難了。

中小型企業

那你可能會想找中小型企業,但中小企業可能很多比大公司還更難進去:
1. 網路上面試經驗少,有些面試還考超難(看過很多人分享中資企業很多都考Leetcode Hard等級,一般大公司對intern普遍沒那麼嚴格)
2. 開的headcount很少,可能一個summer就只招一些或甚至個位數的intern
3. 有些企業只收美國公民或是綠卡持有者 (我都不是QQ)

尤其第三點,光是這點就可以刷掉大多數SDE的求職者了,還有一點就是我室友去年暑假在東岸小公司實習到現在還被欠了10k多美金的薪水還沒拿到。

整體而言,我認為應該採取的策略是大公司要早投 (8~9月)。

參考歷年開缺最多的時間點,像Google據說都是11.12月附近開缺最多,同時也是我目前看過也聽過最多人team match上的時間點,一旦過了這時間點就真的很難很難match上了。至於Facebook,目前觀察是7.8月就有很多人開始面試或是面完等結果,有一個都市傳說是感恩節前Facebook會拒絕一堆人(我就是其中一個),所以如果過了感恩節還沒面到或是還在等結果真的要有心理準備,不過我是面試Facebook的General SDE intern(競爭最激烈),如果一開始面試就是被轉到特定的team面試的話情況可能會不一樣。Google的話我後來加入的Google Intern Pool群組裡面還有一堆人等了1.2個月都沒team來找,相較之下我是真的真的很幸運在一週內就直接match上了。

Do not hesitate!

很多人剛到美國都會覺得自己還沒準備好,不論是改履歷、刷題、準備面試等等,往往都會錯過秋招的黃金時間。我會建議來之前就把履歷改好,找別人看過,最好是已經在工作的英文母語人士或是已經在工作的學長姐們,讓他們好好地幫你整頓一下你的履歷,這部份做好自己也會比較有信心開始投履歷,畢竟如果履歷連自己都覺得不行,就沒自信投出去了。

刷題雖然可恥,但卻可以幫你找到工作。

我認識不少歧視刷題的人,我也同意會刷題不代表會寫code。我身邊有很多人本來就很聰明,他們努力刷題並且融會貫通,看到比自己更厲害的人都這麼認真了,我真的覺得自己要更認真去追上他們。

題可以不用刷很多,但要刷的有品質。

只要cover到各種基本題型,我覺得100~200題其實就可以了,剩下都是變形或是需要靠臨場反應來解決的。

但如果你要面Facebook,我是真心覺得可以把近六個月tag題從頭到尾刷個幾遍,因為Facebook大多數時間演算法都是問原題,所以大多數人一輪都會做Easy-Medium或是Medium-Medium或是一題Hard(實習的話),如果面試中沒辦法解到兩題,很多時候都會fail。

另一個極端就是Google,Google是出了名愛考String類型而且幾乎不考原題的,所以當初面試Google前即便我2個月沒刷題了,我還是只拿了Google tag下string的題目寫了幾題就去面試了。

Mock, mock, mock

絕對絕對要在面試前有幾次mock interview,如果你運氣很好身邊有朋友或是學長姐願意幫你mock interview,一定要好好的感謝他們!畢竟英文不是我們的母語(即便英文很好,也要練習怎麼去用英文討論跟解題),所以整個流程都要順過好幾次,確定你可以習慣在面試中持續講話並且同時思考怎麼解題,再來就是要練習表達自己的想法,尤其面試像Google這種不考原題的公司更為重要,只要不要完全不會,可以好好得表達自己的想法並寫出來就會有機會通過面試!

Timelines

以下是我面試其他兩家的timeline: Facebook, Intuit (照時間排列)。

Leetcode Facebook tag 下近六個月的題目。當時面Facebook最後一輪是11/14,當時我記得我是做了20x/239,三個月後的現在(2/19) 我依然有203/258的進度,可見Facebook其實可以認真刷tag.

FaceBook (Rejected)

10/03 請朋友內推
10/08 HR text我約隔天on-campus interview (要求延期)
10/09 約一面 phone interview
10/24 一面 phone interview (Medium-Medium原題)
10/30 通知一面過+約二面
11/14 二面 BlueJeans Video Interview (Medium-Medium原題)
11/26 HR通知 not to move forward at this time

Intuit (Rejected)

10/08 透過GHC發OA (跟我自己申請的email不一樣,我猜是透過學校發)
10/11 Completed OA + 約一面
10/18 一面 Video interview w/ Karat
11/21 通知二面 Video interview
12/03 二面 Video interview BQ
12/20 Email通知 not to move forward

原本期待著Amazon今年也可以當大乾爹幫大家上岸,但感恩節過後就陸續有消息說連面試完的都在排waitlist,更不用說我這種到現在都還沒拿到OA的人了。

反思

其實從去年入學,看到身邊的朋友9.10月開始都是一堆OA跟面試甚至有offer,我一直在想難道自己真的不夠資格拿面試嗎? 後來我發現一件事,即便有人跟我一樣大學都是讀EE/ECE然後研究所又因為沒上CS跑來念ECE (至於上了USC CS沒去念又是另一個故事了…),他們在台灣或是中國都有不錯的實習經驗,Appier / 聯發科 / Synopsys / Cadence,或甚至是Google / Alibaba / Microsoft等等本來就是軟體的大公司,拿到的面試絕對會比我這種履歷真的很普通又讀ECE的多很多,不然就是只能等著Amazon大發慈悲把大家都招進去(我沒有這個機會QQ)。

如果還有機會,我絕對會建議來讀書前一定要去一個名聲響亮的公司實習,像我當初就是很懶暑假就跑去實驗室待著做研究,就錯失了很多機會。再來就是千萬不要期待每年都有像去年的Amazon或是幾年前的Google一樣,瘋狂招了一堆人進去intern,像今年Facebook new graduate幾乎停招、Uber hiring freeze、Amazon intern目前全部都在waitlist,甚至有很多人跟我一樣連OA都還沒拿到。

世界上最可怕的是,看到比你聰明的人花比你更多時間跟心力努力著。

我真心覺得我的履歷不如我身邊大多數的朋友出色,但我運氣真的不錯:

第一輪back-to-back幾乎是秒解,面試我的妹子問完follow up以後很開心的說你很聰明然後開始聊天,剛好她是在Google Photos,我個人也很常用也很喜歡Google Photos,所以我猜她給了我一個strong hire。

第二輪back-to-back我也是很快寫完但有一個小bug,我在自己run test case的時候發現並馬上改正,問完follow up後本以為會跟第一輪一樣開始聊天,可是面試我的男工程師卻丟給我一個不用寫code的設計題,那是我從來沒有在面經看過了類型(跟一開始給我的題目完全沒關係並且完全不要求寫code只說要給想法,而且還問很細),最後我給了一個我自認為還行的解答,並且在面試時間到之後主動說我想暸解一下題目應該怎麼想,最後他講的跟我講的很類似,雖然中間我腦袋一片空白,卡住了一陣子,但我想應該至少有一個weak hire或是hire吧。

總結

找工作是長期的,尤其是第一份工作特別困難。像我是來唸一年多就要畢業的人來說,實習只有一次機會,不成功便成仁,心理壓力自然很大,但被拒絕真的不要灰心,不能說一定會有下一個面試,但真的不要難過太久。

被拒絕難過理所當然,但一定要把難過停在收到拒絕信的當天,讓它過去吧,畢竟對方都move forward了,為什麼你還要留在原地難過?

希望還在找工作或是以後在找工作看到這篇文章的人都可以堅持下去,在台灣讀大學的期間充實自己、來美國後認真投履歷,Be prepared!

感謝

首先當然是感謝強者我老大Ahmed幫我強推Facebook,讓我即便在面試發很少給男生的情況下也可以在一週內就速速拿到面試,雖然最後被拒了,但我下次會更努力的!

再來很感謝Jialu在認識我不久後就願意給我準備方向並幫我mock,原本說好要暑假Menlo Park見的,但看來只能等我Full-time留加州才有機會了。

最後感謝強者我老大,a.k.a 面試&Offer收割大師Jack,去年10月幾乎都把大公司面完一輪了,並且從大學就一路拉拔我到現在,還及時叫我別在外面浪了趕快投履歷,才有今天的我,暑假上工前一定去San Francisco找你玩。

最後的最後,感謝我爸媽願意送我出國,雖然我幾乎不跟家裡聯絡,通常也只報喜不報憂,但希望你們知道我會好好照顧自己的!

--

--

Daniel You

Software Engineer @ Google | UC San Diego M.S. in Electrical Computer Engineering (class of 2020)