從工程師到研發處長(下)
本篇是「我的職涯地圖:一個工程師的 20 年回顧」系列的第 8 / 12 篇。你可以從系列總覽開始閱讀,也可以直接接著看本文。
2020 年,我在那家公司進入了第三年。
前兩年我一個人建起了整個後端系統,從 API 到部署到監控,每一塊都是我一手搭建的。但隨著公司業務成長和客戶需求的變化,系統的複雜度開始超越一個人能處理的範圍。
我的角色也開始轉變。2021 年三月,我的職稱從 Principal Engineer 調整為研發部副處長。
SaaS Multi-Tenant:醫療資料的特殊挑戰
公司開始接觸更多國際客戶,系統需要從單一部署升級為 SaaS(Software as a Service)的 Multi-Tenant 架構。這在一般的網路服務中不算特別困難的事,但在醫療領域,Multi-Tenant 架構面臨一個根本性的挑戰:各國對於醫療資料的儲存和傳輸有嚴格的法律規範。
美國有 HIPAA(Health Insurance Portability and Accountability Act),歐盟有 GDPR(General Data Protection Regulation),其他國家和地區各有各的規定。共同的原則是:醫療資料不得隨意出境,必須儲存在特定的地理區域,傳輸過程必須加密,存取必須有完整的稽核記錄。
在 Multi-Tenant 架構下要同時滿足這些不同國家的法規,是一個極具挑戰性的設計問題。你不能簡單地把所有客戶的資料放在同一個資料庫——某些國家的法律不允許。你也不能為每個客戶都建一套獨立的系統——那太昂貴也太難維護。
我的解決方案是在架構層面做資料隔離,確保每個 tenant 的醫療資料存放在符合當地法規的雲端區域,同時在應用層面保持統一的程式碼基礎,方便維護和更新。這個架構設計的過程,是我在技術上最有成就感的經歷之一。
AI 自動診斷系統
如果說 SaaS 架構是系統的骨幹,那 AI 自動診斷系統就是這個系統的大腦。
我和公司的 Data Scientist 合作,規劃和部署了一套自動診斷系統。這套系統利用 AI 模型分析心電圖數據,輔助醫生做出診斷判讀。
技術上,我們使用了大量的 AWS Cloud Native 解決方案:
用白話來說,這個系統的運作就像一條自動化的工廠流水線:
醫生或設備端透過 API Gateway(大門口的警衛,驗證身份和權限)把心電圖數據送進來。CloudFront(CDN)在全球各地快取靜態資源加速存取。數據進來後放進 SQS(訊息佇列,像排隊的號碼牌,確保每筆數據都不會遺失也不會被重複處理)。
核心的工作流程由 AWS Step Functions 編排——你可以把它想像成一個流程圖引擎,每一步做什麼、成功了往哪走、失敗了怎麼重試,全部用 JSON 定義清楚。它會按順序呼叫不同的 AWS 服務:先用 Lambda(無伺服器運算,按次計費不用養伺服器)做數據前處理和格式轉換,然後把處理好的數據丟進 SageMaker(AWS 的 AI 模型訓練和推論平台)跑 AI 模型做診斷分析,最後用 SNS(Simple Notification Service)把結果通知派送給相關的醫生和系統。
同時也串接了 GCP 的 Datastore 和 Cloud Run,因為我們的主系統跑在 GCP 上,診斷結果要寫回去。這是一個真正的混合雲架構——計算密集的 AI 推論放在 AWS SageMaker 上(因為它的 ML 生態系統最成熟),日常的應用服務跑在 GCP 上。
整套系統的設計理念是:醫生把心電圖數據送進來,系統全自動完成分析、產出報告、通知醫生查看結果,不需要任何人工介入。這不只是技術上的突破,更是產品價值上的跳躍——它讓醫療診斷的效率大幅提升,讓更多病患能夠更快得到專業的判讀。
團隊從 1 到 3
在那家公司的後半段,團隊成員從我一個人逐步成長到三個人。
帶團隊和自己寫程式是完全不同的事。以前所有的決定我自己做就好,現在要考慮其他人的想法和成長。以前一段程式碼我自己看得懂就行,現在要確保團隊成員也能維護。
我開始投入更多時間在 Code Review 和系統架構的持續優化上。帶領小組成員一起討論設計決策,學習並導入適合的開發技術,促進團隊的技術提升和交流。我也為新進同仁安排了 OWASP Top 10 網站資安風險防護的導讀——畢竟做醫療系統,安全性絕對不能妥協。
同時,我繼續在團隊中推動各種工程實踐:構建 GitLab CI/CD 流程,將 Code Release 的頻率從幾週一次提高到一到兩週一次。導入 API 自動化測試工具,用 Newman Script 簡化測試流程。規劃了 Audit Log、Emergency Alert System 和 User Activity Monitoring。評估並導入 Code Analysis Tools。
這些事情每一件都不特別華麗,但它們像積木一樣,一塊一塊地把團隊的工程品質堆到了一個更高的水準。
連續兩季 Peer Review 最佳員工
在那家公司的四年裡,最讓我珍惜的成就不是任何一個技術突破,而是連續兩季考核獲得 Peer Review 最佳員工。
同事的評語集中在兩個關鍵字:「熱心助人」和「非常有效率」。
這和在 CatchPlay 拿到的「最值得信賴的共事夥伴」遙相呼應。不同的公司、不同的同事、不同的工作內容,但他們對我的評價有一個共同的核心:這個人會讓團隊變好。
我想這可能跟我骨子裡的價值觀有關。我一直相信:技術是用來幫助人的,不是用來展示自己多厲害的。寫一段同事看得懂的程式碼,比寫一段只有自己看得懂的炫技程式碼,價值高太多了。
離開的時候
2022 年四月,我離開了待了將近四年的老東家。
四年的時間,從一個人建起整個後端,到帶領一個小團隊,再到成為研發部副處長。從 PHP + Laravel 的純後端開發,到 SaaS Multi-Tenant 架構設計,到 AI 自動診斷系統。這段旅程的成長幅度,超過了我之前所有工作經歷的總和。
離開的原因不只一個,而且不全是關於職涯成長。
那段時間,加密貨幣市場崩盤,我的投資被嚴重波及。FTX 交易所倒閉,台灣的加密貨幣收益平台 Steaker 也跟著半倒,我有一筆不小的錢卡在裡面,拿不出來。身為一個二寶爸,家裡突然出現一個財務破洞,壓力可想而知。
同時,我每天趕著去幼兒園接女兒,幾乎每次都遲到,天黑了她一個人站在門口等。
這時候一家教育科技公司給了我 Director of Engineering 的職位——技術總監,薪水比現在好,而且可以遠距工作。更大的舞台、更高的薪水、接送女兒的自由——三個理由疊在一起,我幾乎沒有猶豫。
職涯中的重大決定很少是單一原因驅動的。你以為是追求成長,但其實是財務壓力、家庭需求、和職涯野心交織在一起,把你推向下一個路口。
我帶著在公司練就的所有武器出發,以為已經準備好了。但我不知道的是,前方等著我的不只是挑戰,還有我職涯中最煎熬的一年。