1121735
徐士庭
精誠資訊 數位保險應用服務處
💼 個人工作詳述
📈 技術學習與成長
💬 自我評估及心得感想
Section 01
個人工作詳述

教育訓練階段

① Angular 框架學習

透過公司提供的影片教材,由淺入深學習 Angular 前端框架。從認識模組結構與元件生命週期,到掌握資料雙向綁定、HTTP 請求串接後端 API,以及路由設定等核心功能。

  • 理解 Angular 的 Component-Module 架構與相依注入(DI)機制
  • 實作資料繫結(Property Binding、Event Binding、Two-way Binding)
  • 學習 RxJS Observable 處理非同步資料流
Angular TypeScript RxJS

② SQL 資料庫訓練

系統性複習並深化 SQL 語法,透過公司實際題庫演練業界常用的資料查詢技巧,強化對關聯式資料庫操作的熟練度。

  • 掌握 JOIN(INNER / LEFT / RIGHT)、子查詢、群組聚合等進階語法
  • 練習 Stored Procedure 與 View 的應用情境
  • 透過題庫演練理解業界資料撈取的常見模式
SQL Server T-SQL Stored Procedure

工作職責

① AI Code Review 機器人

獨立開發一套整合 GitLab CI/CD 與大型語言模型(LLM)的自動化 Code Review 系統,目的是在開發者提交 Merge Request 時,自動觸發 AI 對新增程式碼進行分析並在 GitLab 上直接留下審查評論。

主要功能:

  • 串接 GitLab API 取得 Merge Request Diff,過濾出新增程式碼行
  • 整合 LLM(Ollama 本地模型)進行程式碼品質、潛在錯誤與可維護性分析
  • 自動將 AI 評論回寫至 GitLab MR 的對應程式行
  • 調校 System Prompt 提升 LLM 評論的精準度與格式一致性
🤖 AI Code Review 系統架構圖
💬 GitLab MR 上的 AI 評論示意
Python GitLab API Ollama LLM CI/CD

💡 此項目從需求定義到系統設計、開發與測試皆由本人獨立完成,是實習期間最具挑戰性與成就感的專案。

② Playwright 自動化測試報表系統

在公司現有的 Playwright E2E 測試框架基礎上,開發客製化報表功能,讓測試結果能以更清晰的格式呈現,方便團隊追蹤測試覆蓋率與失敗案例。

  • 研究 Playwright 的 Reporter API,實作自定義 Reporter 類別
  • 統計各測試案例的執行結果(通過、失敗、跳過)並產出 HTML 報表
  • 在報表中整合截圖與錯誤堆疊追蹤,方便快速定位測試失敗點
📊 Playwright 客製化測試報表畫面
Playwright TypeScript HTML Report E2E Testing

③ 金鑰管理系統

協助開發並研究金鑰管理系統的核心模組,涵蓋密碼學原理的實際應用,包含非對稱加密金鑰對的產生、儲存與安全管理機制。

  • 研讀密碼學基礎:對稱加密、非對稱加密、雜湊函數的差異與應用場景
  • 實作 RSA / AES 金鑰產生與加解密流程
  • 學習金鑰生命週期管理(建立、輪替、吊銷)的設計概念
  • 研究 HashiCorp Vault 等業界金鑰管理工具的架構設計
Cryptography RSA / AES Key Management Security

實習期間完成進度

一月 至 二月
Angular 框架學習 + SQL 資料庫訓練
透過公司提供的影片教材系統性學習 Angular 前端框架,同時深化 SQL 語法能力,透過題庫演練掌握業界常用的資料查詢模式,為後續專案開發打下基礎。
三月
AI Code Review 機器人 — 需求分析與架構設計
分析部門對自動化 Code Review 的需求,研究 GitLab API 串接方式,評估 LLM 模型選型(本地 Ollama vs 雲端 API),完成系統架構設計文件。
三月 至 四月
AI Code Review 機器人 — 開發與調校
完成核心功能開發:GitLab MR Diff 擷取、LLM 整合、評論回寫。反覆調校 System Prompt,優化 AI 評論的精準度與輸出格式,並在部門 GitLab 環境中進行實際測試驗證。
四月
Playwright 自動化測試報表 + 金鑰管理系統研究
開發 Playwright 客製化 Reporter,同時投入金鑰管理系統的研究與密碼學基礎學習,理解企業級安全系統的設計思維。
五月 至 今
專案整合與成果收斂
彙整各專案的學習成果與文件,協助部門進行系統交接與知識傳遞,完成實習期末報告準備。

遇到的挑戰與解決方法

⚠️ 挑戰一:LLM 輸出不穩定

LLM 的評論格式與內容因每次生成而異,難以直接解析回寫至 GitLab。

解決: 透過精心設計 System Prompt 與 Few-shot 範例,約束模型輸出結構;加入後處理正規化邏輯,確保格式一致性。

⚠️ 挑戰二:OKD 容器平台學習曲線

公司使用 OKD(OpenShift 社群版)作為容器平台,與一般 Docker 使用方式差異較大,初期部署時遭遇權限與網路設定問題。

解決: 系統性閱讀 OKD/Kubernetes 官方文件,搭配詢問部門前輩,逐步理解 Pod、Service、Route 之間的關係並完成部署。

⚠️ 挑戰三:密碼學概念抽象難懂

金鑰管理系統涉及大量密碼學理論,數學推導複雜,與實際程式碼的對應關係不直觀。

解決: 以「為什麼需要它」的問題導向切入,先理解應用場景,再回推原理;搭配實際程式碼範例加深理解。

工作中扮演的角色

🚀 獨立開發者

AI Code Review 機器人從需求定義、系統設計到完整實作,皆由本人獨立完成,在主管的方向指引下自主推進,培養了完整的專案開發能力。

🔬 技術研究者

針對 LLM 行為調校、Playwright Reporter API、密碼學系統設計等較前沿的技術領域進行深入研究,並將研究成果轉化為可用的實作方案。

「具備自主推進專案的能力,能在不確定的技術環境中持續探索、找到可行的解決路徑。」

Section 02
技術學習與成長

這次實習橫跨了 DevOps 工具鏈、AI 應用開發、測試自動化與資安系統設計等多個技術領域,以下是最具代表性的四個技術成長面向:

01

OKD / Kubernetes 容器平台實務

從零開始認識 OpenShift / OKD 這套企業級容器平台,理解其與標準 Kubernetes 的差異。學習如何將應用程式打包為 Container Image、撰寫 Deployment YAML 設定、配置 Service 與 Route 進行對外暴露,並排查部署過程中的 Pod 異常狀況。這是第一次在真實的企業容器環境中進行應用部署,對 Cloud-Native 架構有了更具體的認識。

OKDKubernetesDockerYAML
02

LLM 行為調校與 Prompt Engineering

在開發 AI Code Review 機器人的過程中,深入研究如何透過 System Prompt 設計引導 LLM 產生符合預期格式與品質的輸出。學習了 Zero-shot、Few-shot 等 Prompt 策略,理解模型 Temperature、Top-p 等超參數對輸出多樣性的影響,並透過反覆測試建立了對 LLM 行為模式的直觀感受。

Prompt EngineeringOllamaLLMFew-shot
03

Playwright 客製化 Reporter 開發

深入研究 Playwright 的 Reporter 擴充 API,理解測試框架的內部事件模型(onBegin、onTestEnd、onEnd 等 Hook)。自行實作一個客製化 Reporter 類別,能夠在測試執行完畢後產出包含詳細執行統計、截圖嵌入與錯誤追蹤的 HTML 報表,讓測試結果的視覺化呈現更貼近團隊需求。

PlaywrightTypeScriptTest AutomationReporter API
04

密碼學基礎與金鑰管理系統設計

從應用場景出發,逐步建立對密碼學的系統性認識:理解對稱加密(AES)與非對稱加密(RSA)的適用情境差異、數位簽章的驗證機制、憑證鏈(Certificate Chain)的信任模型。進一步研究企業級金鑰管理系統的設計原則,包含金鑰生命週期(建立→使用→輪替→吊銷)與存取控制機制。

RSA / AESPKI密碼學Key Lifecycle

個人非技術面學習

🎯 自主推進工作習慣

面對獨立開發的專案,學會在沒有明確步驟指引的情況下,自行拆解問題、規劃開發順序,並定期向主管彙報進度、確認方向,培養出更主動負責的工作態度。

🤖 AI 作為學習與開發工具

將 AI 工具(ChatGPT、Claude)整合進日常學習與開發流程,用於解釋不熟悉的技術概念、協助 debug、生成程式碼草稿。同時也體會到 AI 輸出需要批判性驗證,不能盲目採用。

🗣️ 職場溝通的事前準備

在向主管報告或尋求協助前,學會先整理問題的背景、已嘗試過的方向與具體的卡點,讓溝通更有效率,也更能從前輩的回饋中獲取有價值的建議。

Section 03
自我評估及心得感想

自我評估

這次實習對我來說是一次真正「從零到一」的完整開發體驗。AI Code Review 機器人這個專案,讓我第一次獨立承擔從需求分析、系統設計到開發測試的完整流程,而不是只做某個功能的局部修改。這個過程讓我清楚認識到,「能寫程式」與「能獨立開發一個完整系統」之間的差距有多大。

在技術廣度上,這次實習涵蓋了 DevOps、AI 應用、測試自動化與資安等多個面向,雖然每個領域都只是入門,但這種多元的接觸讓我對軟體工程的全貌有了更完整的認識,也更清楚自己未來想深耕的方向。


實習心得

實習前,我以為「AI 應用開發」是一件很有趣但也很遙遠的事;實習後,我發現它其實是一個非常工程導向的問題——LLM 的能力有上限,真正的挑戰在於如何透過架構設計、Prompt 調校與後處理邏輯,讓 AI 的輸出符合業務需求。這個認知的轉變,讓我對 AI 工具的使用從「覺得神奇」變成了「思考如何讓它穩定運作」。

另一個重要的體會是:在職場中,「不知道」本身不是問題,「不知道怎麼找到答案」才是。這次實習中遭遇了許多文件缺乏、前例不足的情況,學會了如何在不確定中保持系統性的探索,而不是等待別人告訴我答案。


未來改進方向

☁️ 深化 Cloud-Native 技能

持續深入學習 Kubernetes 生態系(Helm、Operator、GitOps),朝向能夠設計與維運雲原生系統的方向發展。

🧠 強化 LLM 工程能力

系統性學習 RAG、Fine-tuning 與 AI Agent 架構,將 AI 應用從「單次問答」提升到「自主完成多步驟任務」的能力層次。

🔐 資安與系統設計深度

加強密碼學與資安系統設計的理論基礎,理解更完整的威脅模型與防禦策略,為日後參與安全敏感的系統開發做好準備。

📝 技術文件撰寫能力

培養將技術決策、系統架構與 API 設計清楚書面化的能力,讓自己的開發成果能夠被他人理解、維護與延伸。

「這段實習最珍貴的不是學到的技術本身,而是在沒有標準答案的情況下持續前進的能力——這是任何課本都教不了的。」