這裡是《齊姐聊大廠》系列的第 5 篇
(前 4 篇見文末)
每週五早上 8 點,與你嘮嘮大廠的那些事。
小齊說:
大家週五好,又到了每週五早上 8 點的《齊姐聊大廠》系列。
今天邀請到我的校友,Evens,跟大家分享他在谷歌的實習和工作經歷。
Evens 大佬先是暑假在谷歌實習,畢業後正式加入谷歌,並且在超級短的時間內完成了升職,讓我們一起來學習下吧。
實習的經歷
實習的時候是在紐約的 office,當時專案是搭建一個小平臺完成一次資料遷移。因為谷歌的編譯、執行、釋出所有工具鏈都是內部自研的,因此花了不少時間在學習和熟悉新工具上。這也是所有新員工入職之後面臨的第一個挑戰。
不過這些新工具不難學,因為谷歌提供了一系列的 codelab。codelab 會一步一步地指導該在哪裡修改程式碼,做什麼樣的配置,最後搭建出一個 RPC server,或者聯通資料庫,或者開發一個小 app。
基本上每個內部工具 都有一個或多個對應的 codelab 幫助大家快速上手
新工具的文件和 wiki 通常比較完善,否則沒法吸引新使用者。如果看完文件還是有地方不懂,或者遇到了文件沒提到過的問題,內部還有一個類似於 quora、stackoverflow 的問答平臺,大家可以去提問,也可以去回答。然後一般使用者量大的工具,他們的 team 還會提供 office hour,可以直接面對面問問題。
小齊問:那有用到什麼技術框架嗎?
用的是 Java 加上谷歌的一個 API 開發框架,Google Cloud API。因為是資料遷移,所以 Spanner 資料庫打了不少交道。
因為都是內部的工具,所以遇到的問題通常沒法在網際網路上搜尋到。震驚:世界上最大的搜尋公司內部竟然是一座“孤島”!
實習的專案
實習專案的 scope 是 intern host 早就定好並且得到 approval 的。一般都會控制在能讓實習生在 9-10 周左右完成的那個量。
我當時的專案是已經有了 design doc 和詳細的大步驟,我只需要按著這個一步步實現就行了。
後來跟 host 聊天瞭解到,這其實是他本來要做的東西,然後打包給我了,所以他自己對這個專案的內容和難度有很深的認識,也指導我少走了很多彎路。
小齊問:host 是類似於 mentor 的角色嗎?
不全一樣,每個實習生既有 host,也有 mentor,還有一個 cohost。。。
host 負責 intern 的專案進展和技術指導,cohost 也是對 intern 專案提供幫助和做一些 code review,mentor 不負責專案的進展和技術難題,而是回答一些非專案相關的 general 的問題,比如怎麼轉正呀,怎麼找到好吃的食堂呀 那層樓有好吃的零食呀之類的,以及回答一些 intern 不好意思問 host 的一些問題,比如覺得自己壓力大,專案難不知道怎麼快速入手,或者 pair 的那個 intern 不太給力我該怎麼辦之類的。
總結來說就是,host 和 cohost 負責專案進展,確保 intern 能完成這個專案。mentor 更多是給 intern 安利谷歌。。
實習中穿插了很多 intern events,主要是幫助實習生之間互相認識,以及結交一些已經在谷歌工作的員工,尤其是自己感興趣的組/部門裡的大佬。
實習末期
等到了專案的末期,整個 PA(production area,大概是“部門”的那個概念)的實習生會一起給 VP 做 presentation,介紹做了啥專案,三個月的實習期收穫了什麼(不過我也不確定是不是每個 PA 都這樣)。
我記得 VP 要每個實習生說實習中最痛苦的事情是什麼。
10 個裡面有 9 個抱怨 learning curve 太陡峭了,來了一堆新概念新名詞要學,VP 眼鏡都直了。。(因為對於待了很多年的員工來說,這些工具都像呼吸一樣自然了)
然後他跟其他人說以後設計 intern project 的時候一定要預留 ramp up 的時間給 intern。
之後 host 和 cohost 會分別寫一份 feedback,在加上兩輪轉正面試,一共四個 feedback,交給 hiring committee 決定是否轉正成功。
正式加入谷歌
然後畢業就入職成為全職員工了。
因為之前實習過,所以入職之後感覺都是熟悉的感覺。
有很多谷歌員工自造的單詞,比如 googler,noogler。很多內部東西都以 g 開頭,比如 gbike, gbus, gride。我個人感覺有點自成一派的“傲嬌”?
領了一頂 Noogler(new googler)的帽子,才發現實習時候發的帽子上面印的是“intern” 是不同的帽子。奈何搬家的時候扔掉了 ?
小齊問:入職感覺咋樣~比實習更累嗎?
其實還好,因為實習的時候專案有 deadline,結束前做不完就掛了 LOL
全職的很長一段時間裡反而沒有 deadline。
一般新員工約定俗成會有一個月的時間 ramp up,並且剛入職會有各種新人培訓。但是我實習的時候都經歷過了 所以很快進組幹活了。。
一開始從修 bug 開始 組裡已經提前留好了 bug 給我 ?
然後慢慢會有一些好專案交給我獨立完成。
我老闆當時剛從 TL 轉成 TL manager,可能也在適應他的新角色。所以除了 1:1 以外都沒有過多過問,基本上是我自己野蠻生長。
TL: tech lead,每個團隊都會有一個 manager 和一個 tech lead
那同時組裡有個小哥就被任命為 TL 了,此時他才加入谷歌 3 年,就已經從 L3 升到 L5,而且在組裡還有其他 L5 老員工的情況下被委任為 TL。
小齊問:所以是這個新 TL 對你影響更大嗎?
對的。打交道更多是 TL 基本 code review 都是他負責,然後各種問題也只能找 TL。
(小齊說:下文會有一段專門來講 tech lead)
老闆(manager)的話,直接的影響其實不太多,更多是那種潤物細無聲的。從來不會 push,但是如果碰到問題 他會很熱心的幫忙解決,但是對新人來說可能不是很友好。因為新人也不知道自己該做什麼,這時候一般更希望有人可以指明方向。
我覺得老闆還是挺對我脾氣的。給我留了(過於?)充足的空間自己發揮也不會過問太多。但是來問的時候我總有成果可以彙報。然後雖然不怎麼過問但是要找他他一定在那裡能夠幫到我,這個過程中彼此就建立了信任。
過了一段時間老闆也熟悉他的新角色了,我們組開始擴張,新很多內部轉組和新員工加入進來了。
升職
等入職快 9、10 個月的時候,我已經在小範圍 lead 一個專案了,這時候老闆主動鼓勵讓我嘗試去準備升職的事,然後給了很多意見和建議,對我倒是幫助很大的。
谷歌的升職有一套 ladder 和對應的標準,老闆當時跟我一條條解釋他對我的 expectation 是什麼,並且我當時達到了什麼的程度,還有那些地方可以提升。然後在接下來的半年裡提升我的 promo packet,最終是在 16 個月的時候升職。
小齊說:這麼快升職,有什麼心得嗎?
一點小心得就是要儘早搞清楚遊戲規則。升職的那些 policy 內網都有專門的網頁詳細介紹,熟悉這些規則會少走些彎路。
另外就是按照下個級別的 expectation 來要求自己,工作的時候多想想怎麼提升自己的 impact 和 leadership。除此之外就是提升自己技術實力啦,能出活才是硬通貨。
接下來就專門講講對我影響最大的 TL 小哥。
最好的 tech lead
TL 小哥人非常聰明,反應特別快,並且業務能力出色。一個人能搞定很複雜的問題並且對專案各方各面(設計、開發、測試、整合、上線、監控等等等等)都具備豐富經驗。由於是美國長大,語言文化完全不是問題,人很 nice 並且玲瓏剔透,和組員及 manager 關係非常融洽,並且非常得上幾級老闆的器重。
可能是我見過真人裡最聰明的了。他的聰明有別於典型的學霸,是真的因為智商高所以一般人覺得難的問題在他手上可以迎刃而解(學神?)。對於這種老天賞飯吃的猛人,我等普通人是羨慕不來的。
不過這些都是他自己得天獨厚的硬實力。接下來想說的是他作為一個 TL,好在哪裡(可能也是好 TL 共同具備的一些素質)。
- 對組裡產品的整個框架、業務、到程式碼細節都非常熟悉
由於對 codebase 非常熟悉,因此在 design review 的時候能夠一針見血地指出設計所存在的問題。例如可能與某種場景衝突,可能會在別的地方造成副作用,可能違背長期規劃會引入 tech debt。。。
由於熟悉產品中 tricky 的地方以及背後的原因,老闆遇到一些產品層面上的問題都會來詢問他的意見,並且他提出的看法也深受重視。也是 TL visibility 的體現。
由於非常聰明,定位線上問題、在程式碼中找 root cause 也是快得飛起。有幾次當面問他問題,我還在讀方法前面的註釋,他已經跳轉了幾次找到了關鍵的程式碼行。
- 對技術具有一定的掌控力,能夠為整個組設立 technical direction
狗家技術框架自成一套,並且不斷更新換代。TL 小哥對常用技術的瞭解自不必說,對於新技術也廣有涉獵。得益於此,他常常很積極地推動新流程和使用新技術。
當組員對某些技術問題爭論不休時,他能很果斷地做出決策,並且清楚解釋決策背後的考量,讓人信服。
有一點令我感到尊敬的地方在於,他從來不會因為自己是 TL 而忽略其他同事的看法。如果同事對他的決策有質疑或者未能完全接受,他會很耐心的與之繼續探討並作出修正。
- 維護組員並且指導組員成長
他曾經跟我說過,如果專案作出了什麼成果,credit 都是我的;但是如果過程中出現了什麼問題,他永遠會會給我兜底。
我堂堂八尺男兒,聽完竟然有些感動。
他也確實是如此踐行的。
比如:
a). 某次大組出遊,正值我 oncall,收到一個使用者 page。我回酒店房間處理。他知道後給我發訊息,說這個時間點我們算是 out of office,不用響應使用者 support 的 ticket,只要我們的服務沒有 down 就可以等回去了再弄。我問如果使用者很著急怎麼辦,答曰使用者的 priority 不是我們的 priority,只要我們的 service works as intended,問題就不在我們這邊。因此也不用花費私人的時間去處理。
b). 另一次 oncall 結束,有一個使用者 ticket 我忘記交接給下一位 primary。後來使用者過來 ping 有什麼進展。TL 過來問我,我心想這是我留了收尾當然得把事情負責到底,於是跟他說這是我遺留沒做完的事情,我繼續把它完成。他說他來找我只是單純瞭解下一些細節,看看是否是交接流程本身有一些遺漏;他來找我也並不代表他要我繼續跟進這個事情,既然我的 oncall 結束了,他建議直接交給當前的 oncall 就好。不過又說如果我一定很想做完這個事情,他當然不會攔著我。
我剛進組時,TL 小哥側重指導具體技術的用法。等我也漸漸成為組裡較資深的組員時,TL 小哥身體力行指導我如何綜合各方各面的考量去做 technical decision。
- 踐行 G 家價值觀
小哥還是挺踐行狗家價值觀的,例如總是假設他人的觀點和行為是出自於善意。組員犯了錯誤,他也不會記仇,很寬容地幫助大家覆盤,並且從規範流程的角度出發嘗試預防錯誤再次發生。
- 熱愛產品,積極響應使用者的問題
小哥是真的熱愛自家產品,由衷地感到驕傲的那種。並且非常積極熱情地在各自 mailing list 裡回答使用者關於我們產品的問題。
非常感謝 Evens 大佬給我們帶來的分享和思考,這是《齊姐聊大廠》系列的第 5 篇,如果你喜歡這篇文章,不要忘記點贊哦!~也歡迎留言告訴小齊你感興趣的大廠~
更多幹貨文章見我的 Github: https://github.com/xiaoqi6666/NYCSDE
我是小齊,終身學習者,每晚 9 點,自習室裡我們不見不散 ❤️