在這個宇宙中,所謂穩定就是持續變好,並沒有停留在原地這回事。
這句話是我在不斷學習和進步的過程中領悟到的重要道理。這句話告訴我們,世間萬物無不在變化:所有的事物,要麼是進步,要麼是衰退。因此,想要持續變好,就必須不斷進步,即便只是微小的改變,因為沒有一樣東西會永遠維持不變。這與古老的智慧「學如逆水行舟,不進則退」有異曲同工之妙,但範圍更廣。
在 Day22 中,我解釋了離職的觸發點,並重點談到了公司文化和溝通的關聯性,讓我們了解到溝通不是只有一個人的事情。而 Day23 則是介紹了我第二份工作的生活,發生了一個人一輩子可能都遇不到的有趣故事,非常推薦去看。
接著,我將會聚焦在第三份工作的成就和貢獻上。鑑於鐵人賽的限制,這部分將相對簡短,但這並不意味著我的成就有所降低。
在前一篇文章中,我描述了如何在寧夏夜市附近的月租旅館安頓下來。隨著對工作觀念的不斷深化,我發現自己不再認為同兩份工作之間需要有一段休息期。因此,我決定要無縫銜接到下一份職位,這一目標也順利實現了。
2022 年農曆新年過後,我開始著手求職。在充滿自信的狀態下,整個面試過程相當流暢。總計面試了五到六家企業,最終獲得兩個職位邀請。值得一提的是,有一家與我前任公司業務相似的上櫃公司也邀請我面試。雖然我提出的薪資要求比前一份工作高出 50%,但最終未能獲得錄用。然而,這並不讓我感到沮喪,因為根據以前的經驗,我判斷出該公司的公司文化很可能跟我的前任公司相似。
2022/02 我跟前公司提出離職後,我直接壓離職日期 2022/03/02,然後跟新公司說好 2022/03/03 入職,這都是發生在同一週的事情,非常有趣。但也因為兩家公司都離我在寧夏夜市附近的旅館非常近,所以都是走路 20 分鐘了。
我在工程師群組的特別喜歡寧夏夜市的朋友知道後,甚至訝異的表示「兩份都在寧夏夜市附近,也太爽了。」頓時我整個人笑出來。
隨後,我加入了一間專注在遠端醫療視訊看診系統的新創公司。
公司產品有主力在 web 醫療視訊系統以及其醫生端(web)、行政管理端(web)、病人端(app),而我們就是分別各自負責不同的系統。
醫生端(Web): 主要是給醫生使用的 web 系統,主力是視訊以及醫療建議等等。這也是公司較為老舊的產品之一,但是卻保留下來,因為資深工程師認為還能繼續延續下去。
新/舊行政管理端(Web): 主要是給行政人員管理使用,像是排班、病人和醫生管理等等。為什麼會有新舊,主要是當時有一個舊版,但是舊版整體狀況還挺糟糕的,所以我們的資深工程師認為應該要用新的比較快,所以就有了新版本的行政管理系統,在當時是兩者並行使用,並持續移植舊功能進去並且優化。
病人端(App): 使用 React Native,支持 iOS 跟 android,這款 App 讓病人能更便捷地預約和參與遠端看診。這也是老舊產品,保留下來使用,原因是功能太多,重新開發太費時。
我們的產品旨在解決醫療機構面臨的多種問題,包括但不限於視訊看診的技術挑戰,如視訊品質和穩定性。同時,我們也提供了便捷的後續管理和追蹤系統。
因為我的主力是 React 方面的 Web 開發,當初面試被錄取也是因為公司看中我的全端技能,而且有需要還可以兼著開發 React Native,甚至是後端。所以我負責內容如下:
醫生端(Web): 我的開發主力大致都落於這裡。
新/舊行政管理端(Web): 這部分由另外一位工程師負責,但是後來她提出離職後,這個部分負擔就落到我身上了。對我來說算是次主力開發。
病人端(App): 因為我沒有相關經驗,但是基本上程式碼是差不多的,所以大致就是 debug 時,我會去研究一下問題點,然後再來判斷一下到底是 App 的問題還是 Web 的問題。這部分是由另外一名工程師負責的,我算是偶爾打醬油一下吧。
一次偶然的機會,我去了一間大醫院看診。然後我親眼目睹了一個場景,令我非常感動。我當場看到一位醫生,一邊幫我現場看診,然後一邊用我開發的看診系統幫別人看診。
我當下超想跟那位醫生說 「那是我開發的」 「那是我開發的」 「那是我開發的」 。在這次經驗中。我也體會到 自己的付出確實對於社會有一份貢獻。
這是我非常在乎的一件事情,因為能夠為社會帶來貢獻並且持續創造正面影響,這會讓一個人變得非常有價值。而我也在這次經驗中更加確定自己會持續努力,使得自己可以對社會帶來正面的影響。
讓我們回到最開始入職時,由於我之前工作中,除了自己建立環境外,也協助其他人建立環境的經驗,而我也寫過一些描述建置環境相關的文章。
所以我自己有有了一套流程,我主要都仰賴 homebrew,透過 homebrew 來快速安裝 iTerm2、Zsh、Oh My Zsh、Node.js、nvm、yarn、pnpm 等等的工具。
我入職第一天,公司就給了我一份設定指南文件,但其中多數步驟,如直接安裝 nodejs,並不符合我的風格,所以我就自己摸索。主管建議我如果遇到問題,可以詢問座位旁邊的女工程師。然而,我沒有遇到任何困難,僅用半天時間就完成了所有設定。這讓旁邊的女工程師感到相當驚訝。
並且主管在當天就指派給我一個他們認為相當重要的任務——實現視訊界面的倒數計時功能。
公司提供的是計時收費的諮詢服務,但界面上缺乏剩餘時間的顯示,這經常引發客戶和醫生的不滿,導致超時費用經常被要求免除。
這個挑戰被交付給我。初看之下,任務似乎簡單——只需調用一個 API 來獲取剩餘時間,然後顯示出來。然而,在實作過程中,我發現事情遠比預想的複雜。
等我開始實作後,我發現由於涉及到視訊通話,需要在雙方都成功連接後才能啟動計時器。因此,這一任務實際上分為兩個步驟:首先確保雙方都已連接,然後才啟動倒數計時。此外,當時間超過預定時限時,計時器的顏色還需變更以提醒用戶,另外是兩者的計算方式會不一樣,一個是倒數,另一個是正數,所以會有切換上的問題。
在確認需求並多次溝通後,我開始著手實作。由於原始碼的結構相當混亂,我花了不少時間才找到正確調用 API 的位置。
前面我說得好像有點複雜,但實際上從下午交代給我到下班前,就完成了這項任務,這樣也贏得了主管和座位旁女工程師的高度評價,這讓我感到非常滿足。
這一經歷不僅證明了我的工作能力,也展示了我在不需要別人協助的情況下解決問題的獨立性。
如同最開頭引言那句「在這個宇宙中,所謂穩定就是持續變好,並沒有停留在原地這回事。」我也是一直持續的讓自己保持在進步的路上。寫到這時期的狀態也想起來,自己從第一份工作光是環境建置就忙得手忙腳亂,甚至需要頻繁求救。到第二份針對 Windows 環境,我還可以把它弄得開發起來跟 Macbook 有八成像。而到了這份,已經變成游刃有餘的環境建置了,我想一直持續穩定成長就是這麼回事吧。
我也一直保持這樣的好習慣,所以每次回頭檢視自己都會發現自己跟以前不一樣了。
希望你會喜歡這篇文章,下一篇我將介紹我面臨第三份工作的老舊程式碼的挑戰,並且我是如何把它修正,甚至讓這個產品的壽命可以再度延長更久。
文章就說到這,有什麼想法或問題,歡迎隨時找我聊聊!
這篇文章也會同步發在 medium 上,如果有興趣歡迎追蹤我。
medium: https://medium.com/@hugh-program-learning-diary-js
email: u88803494@gmail.com