本文整理了 Instagram 的 Principal Engineer (IC8) Jake Bullum 的訪談內容,分享了他從基層工程師晉升到 IC8 的經驗,以及他在工作中保持平衡的秘訣。
Jake Bullum 的背景介紹
-
Jake Bullum 目前是 Instagram 的 Principal Engineer (IC8),曾兩次從 Staff Engineer 獲得晉升。
-
他負責一些被認為是「不可能的」或「愚蠢的」項目。
-
儘管工作充滿挑戰,他仍然能夠保持良好的工作生活平衡。
職涯發展歷程
從 Facebook Groups 開始 (IC6)
-
Jake 以 IC6 的職位加入 Meta (當時的 Facebook),加入了 Facebook Groups 團隊。
-
當時團隊人數迅速擴張,他加入時團隊規模已達 700 人。
-
由於疫情和選舉,他的初期工作進展較慢,大部分時間都是獨立作業。
轉戰 Instagram Web
-
由於對目前的工作內容不滿意,他轉到了 Instagram Web 團隊,擔任 IC6。
-
他原本希望在 Meta 從事 UI 和 Web 開發,但加入 Facebook Groups 後主要負責後端系統。
-
在 Instagram Web 團隊,他的技能得以充分發揮,並迅速做出貢獻。
晉升至 IC7
-
由於表現出色,他的經理給了他領導多個團隊的機會。
-
他曾有過領導多個團隊的經驗,因此有信心勝任 IC7 的職位。
-
IC7 的職責範圍包括領導多個團隊或負責不同的業務領域。
晉升至 IC8
-
IC8 需要更大的影響範圍,並能解決更重要的問題。
-
他負責的項目是對前端進行遷移,將其遷移到主要的 Meta 技術堆疊上,這個專案被許多人認為不可能或沒有意義。
-
這個項目需要與 150 個團隊合作,並涉及遷移大量流量,對整個組織產生了重大影響。
如何選擇項目
-
Jake 通常會選擇對業務有重大影響的項目。
-
這使得他經常參與後端基礎設施的開發。
-
他認為移動端的重要性日益增加,後端系統也變得更加重要。
領導風格與團隊合作
領導他人
-
Jake 認為他的優勢在於與人溝通、協調團隊,以及激勵他人。
-
他喜歡看到團隊成員成功,並努力幫助他們發揮潛力。
-
他的目標是讓團隊朝着共同的方向努力。
技術領導 (Tech Lead) 的角色
-
Jake 認為技術領導的責任是確保項目成功完成。
-
技術領導需要確保團隊成員朝着正確的方向努力,並在必要時親自參與編碼或解決問題。
與團隊成員建立信任
-
他會根據 diff 的風險程度調整審查的嚴格程度。
-
對於非核心系統或不影響生產環境的程式碼,他會給予較寬鬆的審查,以加快開發速度。
-
他信任團隊成員能夠修正程式碼中的錯誤,即使程式碼有潛在的風險,他也會接受並相信團隊成員會及時修復。
時間管理與工作生活平衡
時間安排
-
Jake 會劃分「專注時段」,避免在上午安排會議,並盡量減少週三和週五的會議。
-
他會將一對一會議集中安排在週一下午。
-
他會根據專案的需要靈活調整時間安排,並在需要時取消不必要的會議。
保持彈性
-
他隨時願意與他人交流,即使在午餐時間或外出時也會接聽電話。
-
他會盡力滿足團隊成員的需求,確保他們獲得所需的資訊。
如何提出好的問題
-
Jake 認為提出問題時應該真誠,不要試圖偽裝或使用套路。
-
真誠的問題更容易找到合適的回答者,並獲得更有價值的資訊。
工具與系統
VS Code 筆記系統
-
Jake 使用 VS Code 記錄工作和生活中的點點滴滴。
-
他使用單一資料夾,避免過度分類,並使用檔名搜尋和時間戳來快速找到需要的資訊。
-
他還使用 VS Code 擴展程式來建立檔案之間的連結,並以圖形化的方式呈現他的思緒。
AI 的應用
-
Jake 每天都會使用 ChatGPT 等 AI 工具。
-
他認為 AI 是一個強大的工具,應該善加利用,但也需要注意其潛在的錯誤。
給年輕工程師的建議
-
選擇能讓你發揮優勢的團隊。
-
保持積極樂觀的心態,享受工作。
-
做真實的自己,不要過度偽裝。
-
持續學習和成長,掌握新工具和技術。
-
勇於承擔風險,不要害怕失敗。
-
保持開放的心態,樂於助人。