由於之前有做了六個月的回顧,所以前半段會先回覆一下之前提到過的內容,看這後半年的經歷有沒有讓想法改變。
Re: 半年回顧 —— 軟體工程師 6 Month Retro as a Software Engineer
Re: 身為一個剛步入職場的工程師,要怎麼適應Work from home?
由於在工作上有些不滿足,我下班後會讀書進修自己,或是研究一些我感興趣的技術,也會寫一些side project。
隨著時間,我工作load越來越多,也就少了進修和side project的時間了。最大的原因是我的工作增加了很多coordination和communication,甚至大家也越來越依賴我了。一方面覺得自己有被受到重視,自己在公司開始有了一席之地,一方面,有時卻又想自己一個人安安靜靜完成自己的project。這個現象是很正常,我的感受也是許多工程師會有的,在這過程中,我學到兩件事:
- 學會say no
- 多加使用manager和tech lead
我學會push back別人的需求,也懂的不要過度承諾他人需求。除此之外,每當有額外需求,並且manager和tech lead不在討論中的話,一定要適時的把他們加到討論裡,或是讓所有討論都是公開的,都是有紀錄可循的。如果manager無法幫你當場做出判斷說,這個task會不會影響這個quarter或sprint的roadmap,那就可以祭出「我很想做這個project/feature/task,如果『某個你在做的project/feature/task』可以被deprioritized,那我就有時間做。」,然後剩下的就讓manager自己決定。
我漸漸的會做超過當前sprint規劃的tickets,超過每個sprint的capacity。但在這過程,我也開始漸漸自我懷疑,我會不會造成別人的困擾,或是我跑得太快了?
我在這六個月的感受是,fuck them,根據自身狀況做和學該做和想做的事就好,不要在乎是否做得比別人多或少。如果真的很在意自己太快,也可以某種程度的去幫助他人和幫他人提速,例如:多幫別人code review來unblock別人、別人卡住的時候協助pair programming等方式。
除此之外,我在近一個月開始,每個禮拜會進辦公室一次,見見其他同事,下班後也會和一些朋友去逛逛San Francisco這個大城市。
右邊是在我公司附近的街道,去公司上班有種完成當初對在矽谷工作的想像——走在繁忙高樓大廈中,各式的商業人士,在地球的一隅,創造著世界大部分使用的工具。
在這一區有各式各樣公司的辦公室,包括Yelp, LinkedIn, Google, Zillow, Salesforce, Slack, Microsoft, NerdWallet等,從大到小的科技公司。
唯一不滿意的是,Bart大部份時候都有大麻的味道,混雜其他味道後,最後變成一個不是很舒服的感覺。除此之外,每次去SF,我都帶著新奇又開心的心情 🙂
Re: 追求Breadth or Depth?
經過一年後,可以說,team上大部分的工具都已經會使用了,也因為有花時間在某些project上,我也學會其他人不會的知識了。在這個階段,可以說有80%的breadth,也有40%的depth(在公司使用的領域內掌握40% in-depth knowledege)。所以,我變得極度想成為某個領域的expert,也積極的在工作上尋找機會,所以說,depth是我目前主要的方向。不過,在工作上,不管是往breadth還是depth發展,最重要的還是完成手上的task。我算是在一個工作環境良好的公司上班,身邊有非常多學習機會,即使不用主動去尋求機會,我都可以在breadth和depth的道路上同時邁進。
Re: 什麼是Platform Engineer?
以我在公司看到的而言,platform是提供工具和管理工具的組織。
到現在我也還是認同這句話,不過我會再加上self-serve的概念,提供的tooling必須只需要極少量工程師的維護,讓使用者可以自己讀文件就能使用的工具。例如AWS就是一種給工程師使用的platform,而Platform Team就是必須在公司內部,提供類似於AWS的Platform,給自己公司的用戶(工程師)。
更實際的例子,如果公司內有Kafka,那Platform Team可能就要管理和維護Kafka,甚至建構一層系統在Kafka之上,讓大家更方便,更有效率的使用Kafka。那層系統可能是,模組化的Terraform,可能是scripts,也可能是UI,也可能還有Dashboard來監測Kafka本身的狀態,更甚至是監測公司內部Business Logic的資料。
不過這些都是我自己對現在看到的Platform Engineering的想法,有可能五年後就會隨著需求演進,變成另一個概念了。
後半年
我學到什麼?
Technical
除了更加精進之前提到過的技術外,摸了一點bazel, k8s, Kafka。同時也慢慢的開始,自我探索一些design pattern和architecture的東西。
我覺得現在這個階段是,要我學一般公司在使用的東西,我都可以很快上手,因為有了各式技術的基礎,慢慢的可以把點跟點連在一起。然而,我更想要的是專研某種工具,甚至可以提出問題,質疑工具使用的正確性,工具本身的好壞,各式使用場景與tradeoff。
同時,我也不停地思考,怎樣是好的code,怎樣才是好的架構,符不符合use case的需求。
Soft
Soft skills是我在這兩季點的最多的技能。由於需要跟更多不同的人合作,並且支援和回答stakeholders,我的溝通能力突然進步很多。甚至,我參加了一場有CTO的會議,和另一場有SVP的會議,都有在會議中報告和回答他們提出來的問題。我也自己drive了一些projects,無論是主管還是同事,都對我另眼相看。由於我有一點完美主義,會去drive一些projects都是因為很多事情看不下去,但其實這也是在規模相較小的公司的好處,有非常多的機會或者說工作。
在這六個月的過程中,我學到兩件事,第一是有些人需要不停的push,甚至要motivate他們,才能一起把project完成。在我們公司,尤其今年的大環境不好,每個人都非常忙(用更少的資源完成更多的事),再加上project ETA估錯,中間有人離職,project被rescope或re-priortize,都會讓人煩心,還有可能無法把原本該完成的任務完成。但這時候,身為組內的一員,只能不斷的拉著其他人,把工作完成。我或許比較幸運,我的方法是,自己這邊不斷趕進度,跟各個組瘋狂確認需求,完成development和PoC,別人看到我這麼努力,和效率這麼高時,在稍微雞湯這個project的impact,大家就被帶起來了。
第二件事跟第一個完全相反,而且是偏向mindset的部分,我清楚地認知到「這不是我的公司」,喜愛的project或task,甚至組別,都有可能在明天就被改掉或砍掉,再怎麼辛苦做,我都只是公司的資產一部分,所以在情感上還是要稍微切割一下。
結合學到的第一件和第二件事的結論是,努力地完成工作,並帶動大家,但還是要了解,有些事情是無法控制的,專心的著重在自己能夠控制的地方就好。
我到底在追求什麼?
Re: 我到底在追求什麼?
我也常常被身邊的人影響,除了系上的同學以外(灣區有大量的immigrant和留學生),同溫層中的台灣人中國人印度人,許多人來讀master,甚至轉系轉專業,每個人為的就是進到FAANG工作,也就是這裡有些人說的「上岸」。
前幾天去SF Google跟朋友吃飯的時候,說到:「五年前,大家都想進Google,想著可以創造世界上大部分人都會使用的產品。五年後,大家進了Google,想著今天中午餐廳可以吃什麼免費午餐。」
其實矽谷大部分的工程師,薪水都非常高,是美國全國數一數二高的職業,甚至我時常認為工程師很多都被overpaid。即使不在FAANG或薪水也超高的Unicorn工作,二線或新創公司的工資也可以讓多數人衣食無憂。即使沒有簽證身份問題,許多人還是積極想進大公司,因為如果你不進去,你以前的同學、朋友、同事就會進去,並且賺得比你多,那個壓力不是從生活經濟上,而是從peer之間。
在矽谷,大部分人下班後的生活也是在聊,「你在哪家公司上班?」「薪水多少?」「最近股票漲了跌了。」「要買房了嗎?」當你在那個環境久了以後,受到他人影響,會變得跟別人問一樣的問題,聊一樣的話題。已經沒有人在聊「工作有不有趣」、「工作有沒有挑戰性」,都是「老闆願不願意給自己加薪升職?」或是「哪間公司的餐廳更好吃?」這篇換日線的文章「終於成功留下來,然後呢?──那些在「美國舒適圈」裏的台灣人,下一步去了哪裡?」,我覺得講的很貼近我看到的。
我在六個月前,也甚至會懷疑為什麼不跳槽跟大部分人一樣去大公司呢?不過,當聽到越來越多,在工作上不滿足,不開心的朋友,向我抱怨時,我才知道自己的工作有趣多了。六月份時,有一位同事跳槽去Dropbox,幾個月後向我們分享,他去了Dropbox後自己的時間變很多,工作變得比較無聊,他不確定自己喜不喜歡那份工作。聽完這些後,我也更加確定,工作有不有趣,有沒有挑戰性,能不能學到新東西,可不可以得到成就感,這些對我更加重要。
現階段的我,短期內,不打算操心能不能多賺多少錢,而是想要榨乾在工作上可以得到的各種機會,我想要學習更多知識,跟更多人一起合作,完成更有影響力的projects。我想要得到能力,讓我日後可以有更多的「自由」,可以去創造我想做的事,去組建我想要的team,甚至開創我想要的公司或組織。
有什麼我可以做得更好?
在這後面六個月,我最大的遺憾,或者說可以改進的地方,就是自我學習的時間。其中三個月因為女朋友來美國找我,我把時間都留給她了,但希望下次即使她在,我也可以每天留個15-30分鐘,自己看書、寫筆記、寫部落格、自我成長、做side project。
中間斷掉以後,我發現我很多書沒看完,很多我喜歡的文章或部落格好一段時間沒看了,也很久沒有整理自己的部落格,就好像很久沒有整理自己的思緒。所以,我還是要挪點時間做些靜態的活動,梳理自己的思緒。
另外,我的身體在前幾個月也出了狀況,變得很容易焦慮,也常常失眠,直到近期我才找到方法解決。每個人的狀況和原因不一樣,我自己大致上是,鄰居太吵,缺乏外出,運動不足,和工作壓力。每一件小事堆疊在一起,就變成很嚴重的失眠了。後來,我慢慢開始冥想,開始寫Bullet Journal,幾乎每天健身,每個禮拜出一次遠門去公司,偶爾跟朋友在一起,才慢慢改善。如果要說有什麼可以做得更好的,我希望更早重視自己身體健康,早點辦健身房會員,早點過著mindful的生活。
減少Social Media的使用
Social media的其中一個metric就是「使用者的使用停留時間」,例如Facebook會希望使用者,長時間停留在他們的頁面上,這樣他們的廣告才可以得到最大效益,而我們的注意力也被這些social media剝奪了。我最初想減少social media使用的原因,就是因為想做的事情太多,但注意力一直離不開手機,導致我浪費了許多時間,無法善用時間完成我自己的目標。同時太關注ig,facebook,又會讓我焦慮,看著別人光鮮亮麗的生活,很容易把我的目光從我在做或者想完成的事情上,轉移到別人在做的事,彷彿自己也要活得像別人一樣。
JOMO (joy of missing out),是用來形容喜歡享受當下的生活,同時不被social media束縛,不需要向任何人報告自己的生活近況,對他人而言就像是消失在這個世界一樣,但對自己而言,只不過是把所有專注力都留給當下,享受著當下的時刻。與其總是把注意力放在華麗的social media上,不如放下手機,專心享受著自己的生活,專注完成自己想要完成的事,不需要在意別人是否注意到自己的存在。
所以,我把我的手機設成早晚scheduled notification,這個模式就像是開了勿擾,只有在一天中的兩個時間會把未讀的訊息、email、手機通知,一起打包同時通知。我只留了我的line是即時通知,因為女朋友和家人都是用line聯絡我。現在我的手機螢幕使用時間大約是3h多,包括開車看地圖、健身房滑手機紀錄進度、做菜看食譜、晚上和家人女朋友講電話視訊。我一天花在social media(包括youtube)的時間不超過1h。目前還在實驗改進,我希望之後還可以再減少,把更多時間留給想做的事。
沒有台大考了,怎麼辦?
前幾天和黃浩去SF的Little Italy,聊到我們這個階段的共同煩惱,國中目標考建中,考上了建中考台大,考上台大出國讀Master,出國讀Master後進Google,進了Google然後呢?在人生中每一個階段,我們立志達成下一個階段最頂尖的目標,像是玩遊戲闖關一樣,不斷地一關一關打倒Boss,然後得到獎勵,但是到最後我們想要的是什麼呢?
許多剛畢業在矽谷科技業工作的工程師,可能都會有類似的煩惱,花了許多年的努力,最終成為工程師留在矽谷,然後就喪失了人生目標。我身邊的人有的選擇躺平20幾30歲過著半退休生活,有的人覺得先拿到綠卡,其他事再說,有的人選擇享受人生。在矽谷的工程師,大多都過著很穩定的生活,尤其是移民,畢竟從自己的國家大老遠跑到美國,選擇高薪的工作,為的多是尋求穩定經濟來源更好的生活。
但有個偉大的人說過:「人如果沒有夢想,和鹹魚有什麼區別?」
人生只有一次
我來到矽谷的初衷還是成為頂尖的工程師,創造自己的團隊或是公司。比起去大公司成為無足輕重的小螺絲,我還是比較適合加入小公司,從頭打造一個產品、團隊、公司。
除了原本的目標沒有變外,我意識到今年已經26歲,由於重讀大學,讓我比同年齡的人晚了大約三年出社會,但如果是master畢業的話,那就跟我差不多一樣時間出社會。我已經開始覺得時間越來越少了,比起以前,總覺得未來有很多時間,對一切充滿希望。但現在這個時間點,我察覺我會的東西很少,完成的事情不多,不僅僅是在工作上,包括在人生中其他想做的事。
我一直很想把自己的身材練好,以前覺得之後有時間再去健身房練就好,現在先專注別的事情上,時間就被浪費掉了。直到我看到Top Gun Mavericks其中一個clip,一群人在沙灘上打橄欖球,每個人身材都超好,Tom Cruise當然也是,但可以看到,因為他的年紀,皮膚的光澤和肌肉的緊緻程度,跟其他演員都不一樣,以他的年紀而言,已經算是很好了。我當時就意識到,即使我以後再去健身房把身材練好,但也會因為年紀,無法跟年輕的時候的我相比了(如果我年輕時有練出來的話)。人生年輕時只有一次,如果可以在那一次就展現最好的身材的話,何不在時間內完成?
身材和健康只是其中一個例子,對我而言,想完成的目標還有非常多,包括彈鋼琴學音樂、練好英文、學會日文和韓文、學攝影、學潛水、多露營和戶外活動、多探索不同的國家和文化。每一件事都不是一朝一夕就能完成的,這個人自學鋼琴三年,都還只是入門等級(我的理想是Animenz),每一個目標都是要花數年以上的時間才能完成。但我非常相信Marginal Gain,只要每天進步1%,一年後就可以成長37倍,最困難的還是持之以恆。所以我現在慢慢的培養一個一個興趣,每次都記錄,配合Bujo和其他工具,構築整個系統。等到我培養起一個後,如果時間允許,我就會再繼續培養下一個。
我猜我是害怕,過幾年後回頭看,才發現我沒開始任何我想做的事,而且我想做的事都要花數年之久,那我漸漸的就會放棄,最後就躺平,等著go next。