ShopBack 離職禮物——記事本、咖啡、襪子和個人卡片

在 ShopBack 的六個月:後端實習的尾聲

昨天是我在 ShopBack 的特別一天——Town Hall 日,六個月旅程的句點。帶著滿滿的感謝、回憶,和對接下來的期待。 在後端核心體驗團隊擔任軟體工程師實習生的這半年,我有機會參與各種有影響力的專案——從客服和 Watchlist Service,到 Notification Service,最後是 Travel 專案。能夠在高流量的真實系統中貢獻,留下第一個工程師的實際足跡,是非常難得的經歷。 剛開始的時候,我一邊摸索一邊學習,有時候會卡關,但一直都在進步,一直都很享受這個過程。即使只是觸及了大規模系統設計的皮毛,我很慶幸能成為這個充滿熱情、樂於合作的團隊的一部分。 透過這些經歷,我也深化了解決問題的方式——尤其是善用 AI 工具,做到從分析、Spec Review,到實作和報告的端到端流程。 感謝我的主管 George Lee,他的智慧和對「Work Smarter」的示範讓我獲益良多。也感謝 Shih-Yuan Chen 和林一豪在客服服務的帶領,Hao-Ping Shih 在 Notification Service 的支持,以及 Nick Chen 和 Tim Pei 在 Travel 專案的指導——還有所有在這段旅程中給予幫助和協作的人。 在 ShopBack 工作既鼓舞人心又令人興奮——置身於一個快速成長的公司和鼓勵主人翁精神與好奇心的文化中。 這一章結束了,但所有的學習、友誼和能量,都會帶著往下走。 向前,繼續前行。

November 20, 2025 · 1 分鐘 · Yi-Wei Lien
Shopback app 選擇面板 — 列表中的商家圖示

讓我重新理解「有影響力」的那個小功能

在 Shopback 有一個功能,我當時幾乎沒多想。 需求很單純:PM 有一個 app 內選擇面板的設計——一個讓用戶從列表中選取項目的小 UI 元件。設計稿上要在每個項目旁加上商家圖示。我的部分是跟前端團隊協作,確保後端整合正確接上。沒有什麼技術難度,純粹是協調工作:PM 有想法,設計有 spec,我幫忙把兩端串起來讓功能可以上線。 就這樣。 上線後,stakeholder 分享了數據。那個面板的進入率——看到頁面後實際點進選擇面板的用戶比例——從大約 10% 跳到 40% 以上,提升超過 30%。 我記得看到這個數字的時候,停頓了一下。 我原本隱隱持有的模型 在這之前,我對軟體工作的影響力有一個安靜的假設:影響力跟難度成正比。問題越難,就越重要。系統遷移、效能重構、不直觀的演算法——那才是「真正的工作」。UI 調整?清單上加幾個圖示?那幾乎算不上工程。 但數據不同意。 那個面板的改動影響了大量用戶的操作。它改變了人們打開 app 之後做的事。而我花了更多時間做的那些工作——跨服務 API 遷移、錯誤率降低——固然重要,但它們對用戶的可見影響是比較安靜的。基礎設施工作通常都是如此。 圖示是半天的協調工作,換來 30% 的行為轉變。 為什麼好設計是真正的工作 圖示真正做到的事,是給面板裡每個項目一個身份。加圖示之前,列表項目大概只是文字或通用條目。加了之後,每一行都有視覺錨點——一個在說「這是一個真實的東西、一個可辨識的東西、值得你注意的東西」的信號。用戶對這個信號做出了回應。 這不是新觀念。但「知道設計很重要」和「看著設計在一個你指得出來的指標上發揮作用」,是兩件不同的事。 我更新的東西是「工程貢獻」的範圍。讓後端整合正確接上,讓圖示在對的時間載入,又不破壞面板原本的行為——這是真實的貢獻。不性感,但它是讓 PM 願景可以上線的那個東西,而能上線的東西是推動數字的那個東西。 關於驕傲這件事 有一件事我沒有完全預期到:看到數字的時候,我的感受是什麼。 那種驕傲不是來自技術難度,而是來自效果。我碰過的東西改變了大量用戶打開 app 之後的行為。這和乾淨解決一個困難問題的滿足感不太一樣——沒那麼智識性,但更連接到真實的人。 我覺得這是軟體業值得追求的那種驕傲形式。不是「我解決了一件很難的事」,而是「我做的東西現在已經是某些人移動世界方式的一部分了」。即使那個移動很小——多點了一個按鈕,看到了之前沒看到的東西。 有影響力的工作不一定是房間裡最難的問題。有時候,它看起來就像一排圖示。

October 10, 2025 · 1 分鐘 · Yi-Wei Lien
我的 Cmoney 員工識別證——連奕維,工程部·後端組

我在 Cmoney 的第一份實習——也可能是最後一個「真正手寫程式碼」的年代

第一份的結束 4 月 20 日。在 Cmoney 擔任後端開發工程師實習生九個月後,最後一天。 第一份實習很奇特。你不知道自己不知道什麼,所以你無法分辨哪些是正常的,哪些是這個地方特有的。現在回頭看,我覺得自己在最關鍵的地方運氣很好:我落腳在一個有真實程式碼、真實規模,以及一個把教導這件事認真看待的導師的地方。 Cmoney 是什麼樣的地方 Cmoney 是台灣最大的金融資訊平台——700 萬 App 下載量,股市資料、投資組合追蹤和散戶投資人廣泛使用的金融分析工具的核心基礎設施。這裡的後端不是新創公司的乾淨程式碼。它是十年的生產歷史、累積的決策和繼承下來的限制。在這裡工作,你會感受到那份重量。 我在核心後端積極進行微服務重構期間加入。目標是把業務邏輯從單體架構中抽出來,放進有版本管理的服務合約。我的工作是為旗艦產品的九個後端 API 實作這些重構。 用艱難的方式學 OOP 我從課本學過物件導向程式設計。Cmoney 教了我 OOP 實際上能帶來什麼。 我繼承的程式碼沒有清楚的關注點分離。業務邏輯直接在 Controller 裡。資料存取散落各處。狀態在層次之間洩漏。測試全綠——程式碼無法維護。 重構它意味著在改善之前先理解它為什麼這樣寫。而要理解這件事,我首先需要搞懂 ASP.NET Core、C# 的型別系統,以及本該存在但不在的那些模式。 Tom——我的導師——在這件事上展現了我後來才完全體會的耐心。他沒有只告訴我要改什麼。他解釋為什麼原本的設計會造成問題,原本的模式應該是什麼,以及如何在不影響另一端 700 萬用戶的情況下逐步遷移過去。這是一種和懂得那些模式不同的能力。它是知道這些模式在什麼時候重要。 到了第三個月,我已經從問「這裡我該怎麼做」,變成問「這段程式碼假設了什麼,這個假設現在還成立嗎」。這個轉變才是真正的收穫。 規模下的金融 API 這個領域有它自己的挑戰。金融資料在開盤時不是一般流量。數百萬用戶同時刷新投資組合、執行選股器、查看即時股價。只有在那個規模和那個時間窗口才會出現的並發邊緣案例。你很快就學到「測試時可以跑」和「真實負載下可以跑」是兩種不同的主張。 我深入熟悉了 C# 的高並發模式——async/await、連線池、時效性資料的快取策略——因為替代方案是在交易日早上九點發生事故。 最後一個「真正手寫程式碼」的年代 我在 2025 年 4 月離開 Cmoney。兩三個月後,產業開始快速移動。 Agentic Programming——AI Agent 從頭到尾處理從 Spec 到程式碼到測試的完整實作——從 Demo 變成了真實工程師使用的真實工作流程。「初階開發工作」的樣貌開始即時改變。 我還不確定這對早期職涯工程師意味著什麼。但我知道,那九個月手動繼承破損的生產程式碼、在早上九點追著 Bug 穿越三個服務層、和導師爭論這個抽象層到底值不值得那個間接性——這類學習不會被 Agent 抽象掉。理解程式碼在做什麼,以及設計是否合理,仍然是難的那個部分。 也許改變的是,機械性的部分變快了。判斷力這個部分沒有。 感謝 感謝 Tom,用應有的方式教我 ASP.NET、C# 和 OOP——透過有真實後果的真實程式碼。感謝在每一步都解釋「為什麼」的耐心。 感謝整個團隊,以及在我到來之前流過 Cmoney 歷史的大量工作,讓我能貢獻其中一小部分。 ...

April 20, 2025 · 1 分鐘 · Yi-Wei Lien