Full time兩年回顧

Tags
Engineering
Career
Self Improvement
Created
Oct 9, 2023 01:07 AM
Edited
Oct 8, 2023
Description
歷經兩次裁員。想更近一步升到L5。

Preview

離上一次寫回顧也差不多隔了一年,上次寫的是一年回顧,當時的內容有很多跟更一開始的6個月回顧有關聯;但這次兩年回顧,在期間發生了很多事情,不僅讓我學到不同的東西,眼界也變得很不一樣。
這一年間,歷經兩次裁員,工作上除了自己的專案外,也開始擴展工作內容到整個組和整間公司了。比起對工作的熱情和成長的渴望,更能站在別人的立場思考。

兩次裁員

在我寫完上一次的一年回顧後沒過多久,公司發動了第一次裁員,嚴格說起來公司在我加入前已經有裁過一次了,當時是因為疫情關係。然而,在今年的七月又有一次裁員,我加入公司後,見證了兩次裁員。在這兩次裁員中,分別走了兩位我們組的manager——路克和山姆。

尼可升職

走了兩個直屬上司後,尼可終於得到他想要很久的職位,他被升成新的manager。其實他是名副其實,畢竟他身為tech lead,早就在做manager的事情。只是現在被官宣後,他要參加的會議更多,不過工作內容沒有太多變化,所以說workload加重了。雖然他升職了,但我覺得他工作內容還是比較偏向Tech lead一點。不過這也驗證了,升職機會常常發生在re-org之後。

新老闆

除了尼可升職外,我們也來了一個新的skip manager,新老闆,從AWS挖來的史考特。一起工作一個月,講了幾次話後,覺得確實是蠻適合當我們新老闆的,他的經歷和技能很符合我們目前所需,而且當過管理職,也讓他有能力去推動一些我們engineer比較難做到的事,例如組織方向和team culture。不過目前他還在陣痛期,逐漸適應這份工作吧。

最近跟別人合作的難處

最近在忙一個新產品的專案,是一個internal feature,但有三個engineering team一起合作,除了我們IoT,還有Embedded和Devprod。光是工程師,加我就起碼有四位,而我們四個超級不同的。我是只要完成專案,大致上有遵守best practice不要太差太亂就好。另一位從別組借過來的工程師,常常跟別人吵起來,而且非常有自己的原則,有好幾次都需要尼可的關注。另一位印度同事是我們這個專案delay主要原因,他的部分有太多commitment都沒有如期完成,而且就算完成也是部分完成,總是差這個差那個。跟他溝通也很困難,他很喜歡敘述自己的工作details,但我們基本上只在意我們對接的部分,尤其是delay的時候,而且他的promise完全不能相信,常常講好的事都會被推翻。最後一位看起來稍微有點年紀的白人,平常比較少跟他接觸,直到最近跟他接觸後才發現可怕的地方,他比較著重focus在他自己的任務,像是在他自己的機器上跑過的話,他就不太理後續了,也不管對接的部分,他會explicitly說不能用就是別人的問題。
這個專案最失敗的地方,我認為是design doc沒有更新,更沒有人approve,有太多verbal commitment了。不過經過這個專案,我學到非常多。我重新認識到,我不應該把自己的expectation放到他人身上,即使是peer/coworker。每個人都非常不一樣,根據成長背景和文化差異,做事風格也會大相徑庭。這個時候,design doc就是彼此之間的contract,必要時才可以保護好自己。同時也發現,每個人工作的目標不一定是完成專案,滿足需求,讓公司賺錢;甚至當project delay的時候,感覺大家已經變成不管專案,只想保護自己了,尤其在這兩年有兩次裁員的公司。

技術的提升

Soft skill

Scrum Master

今年我被指派擔任組內的scrum master,不太記得是被指派前還是指派後,我越來越熟悉組內事務,甚至可以對別人的專案也有一定的理解,因為不僅僅是我已經熟悉我們的工作內容,我還常常幫人家看PR和doc。除此之外,我也能在問好問題,和指出問題核心,並幫忙解決。這個我覺得或許是scrum master最大的收穫,而不是叫人家開會standup和確保每個sprint大家都有事可以做。甚至,我認為這項所得,可以幫助我提早練習成為tech lead。

Technical skill

如果是一季之前六月份來看我technical skill的進展的話,可以說是毫無進展,但最近我在做一個跟CI/CD有關的專案,而且麥可斯的加入,讓我不斷在Rails有明顯的進步。
先說Rails的部分,之前大部分的code都要參考別人寫的或是公司內有類似功能的code,對於寫出來的code實際上或是底層做的事,有點得過且過的感覺。這不太是我的風格,雖然不想找藉口,但是Rails真的是一個非常不好學的framework,太多相似功能的東西和各種奇特魔法,再加上doc寫的爆爛的ActiveAdmin。不過現在,終於有很多點都連接在一起的感覺,慢慢地覺得自己也可以被稱為是Rails Engineer了。
回到新的CI/CD的專案,借此機會,我稍微了解一下大致上CI/CD是怎麼運作。準確的說,玩了一下Prow, ArgoCD, K8S, controller之類的東西。目前可能會傾向,希望之後有更多學習k8s的機會,畢竟是很可以transfer的技能。然後如果有時間,自架一個CI/CD的personal project好像不錯。

想升L5

最近一個月,隨著新老闆的到來,我也重新思考,自己想要什麼,在1:1的時候要討論什麼。短期內,我果然還是想升到L5,而且我覺得我的能力是看挑戰看看了。

Junior vs Senior

Junior和Senior的差別,或者是說L4 (Mid)和L5 (Senior)的差別是什麼?我們公司其實對級別的要求比一般大公司高,畢竟我們人少budget也有限,每一個級別的差距會很明顯。不過一般而言,大部分公司L4的要求基本上就是能獨立完成自己的工作,對development cycle理解夠深,而我們公司還會要求L4稍微要幫助他人。L5在我們公司就非常的明確要有leadership和mentorship,對其他組也要有一定的影響力。
在跟尼可討論的時候,尼可總是非常含糊的說明L5的職責,但經過好幾次的討論後,我得到的結論是「信任」,L5給人的感覺就是,出現就會讓人鬆一口氣,可以代表自己的組來處理事務和影響別組或是公司決策。有什麼業務或專案,給L5一定沒問題。一句話就是L5就是公司真實戰力的最底層,不需要過濾專案難度或複雜度,交給他他會負責搞定。

Task/project priority

除此之外,我發現其實每個人根本沒有時間處理所有事,尤其是那些會議很多的leader或是待了很久的Senior(有時候也是懶),所以了解任務的優先順序就變得非常重要。最重要的一定是incident, production issue,和有deadline的事。雖然很不情願,但是事實是,大部分時候,別人的事和需求不一定是自己的priority,同理,別人也是這樣看待我們的需求。我在這過程中,發現很多上位的人,基本上不會理其他人,像是被分到oncall的lead,如果不是production issue,基本上不會ack別人的問題和需求。我們組的tech debt和request也堆的跟山一樣高,但尼可和其他資深的也沒有想要更努力或花時間全部解決。一方面是我們的資源確實不夠,一方面是幫助他人鮮少會對自己的評比有正向幫助,不如如期完成重要的quarter projects。

未來又如何?

回來寫部落格

最近開始回來寫部落格了,發現如果不用部落格整理自己所學所想的,會很難進步。近期應該會盡量每天花30分鐘先把過去的筆記整理統總,然後一一上傳。因為量實在太大了,所以也不知道下次回顧前可不可以全部都整理好傳上去。不過目標是把所有學到的都放在自己的部落格上,或許放完後會把心力放到部落格的code上,也或許會增加其他內容。

要轉組嗎?

在今年年初到年中的時候,尼可也有問過我有沒有想轉組,並不是主動問我,而是看出我已經開始對於組內一些重複的事務開始疲倦了,組內的工作越來越難滿足我的求知慾。但轉組是很大的轉變,目前應該是比較不會這樣做,畢竟人與人之間的信任要重新建立,轉組後,在這動盪不安的時候,尼可也很難保護我。目前還是希望可以讓身份的問題趕快解決,和希望新老闆可以讓我們組有一些轉變。

Technical Skill

前面不斷提到,越來越難加深自己的技術,但實際上我還是有很多都不會很多不懂。我覺得最主要原因是我已經進入我們組的comfort zone了,其實有很多技術在我們組內是可以專研的,但因為不需要,所以大家包括我都沒有對使用的工具有更深的認識,整天都在忙業務內容。所以以下稍微提一些可以加強的部分:
  • AWS
    • IoT
    • SQS
    • Lambda
    • IAM
    • DynamoDB
    • S3
  • Golang
  • Rails
  • K8S
  • Bazel
  • Datadog
  • Terraform
 
比較少用到但可以增加的部分:
  • AWS
    • CloudWatch
    • VPC
    • Security group
    • ElasticSearch or OpenSearch
    • CertificateMangaer
    • SecretManager
  • Kafka
  • gRPC
  • Relational DB/SQL
 
比較general但很實在的:
  • Network
  • Database
  • Design Data-intensive Application
 
其他:
  • GraphQL

Re: 六個月和一年的回顧

回去看了一下之前的回顧,有很多煩惱都已經不在了,說明我是有成長的,很多想法在今天也不適用了。我自己在個人生活和成長方面,也有往想要的方向進行。非常讚!
過去的我說過:「我猜我是害怕,過幾年後回頭看,才發現我沒開始任何我想做的事,而且我想做的事都要花數年之久,那我漸漸的就會放棄,最後就躺平,等著go next。」