Skip to content

工作經歷 Work Experience

日本 NEC 集團|統智科技股份有限公司

資深前端工程師 Senior Frontend Engineer

2024.11–2025.08|Taipei, Taiwan

工作職責與團隊帶領

  • 擔任前端組 Leader,帶領 3 名前端工程師,負責技術指導、任務協調與開發問題排解
  • 參與前端架構設計與技術決策,透過 Code Review 維持程式品質與團隊開發一致性
  • 協助團隊成員釐清技術問題與設計思路,透過技術討論、Code Review 與文件建立進行經驗分享與知識傳承
  • 與 PM、Backend 及相關團隊協作,參與需求釐清、技術方案評估與開發落地

前端架構與工程化改善

  • 推動 Vue 2 → Vue 3 技術升級,重新整理元件架構與 TypeScript 型別設計,提升系統可維護性與後續擴充能力
  • 導入 Monorepo 架構,整合多個應用與共用套件,改善跨專案程式碼共享與維護方式
  • 重構 i18n 多國語系架構,統一 JSON 結構、Key 命名與管理規則,降低多語系功能的維護成本
  • 提案並導入 Node.js 至內部開發流程,擴充前端團隊的開發工具與應用範圍

開發規範與知識分享

  • 從 0 到 1 建立前端開發規範,包含 Conventional Commits、Branch Naming、ESLint、Prettier 等團隊共同開發標準
  • 規劃共用元件與專案資料夾結構,提升不同專案間的開發一致性與可維護性
  • 建立 Onboarding Guide,整理開發環境、專案架構與團隊開發流程,降低新人熟悉專案的門檻
  • 建立並維護 Frontend Wiki,將架構設計、開發規範與實務經驗文件化,作為團隊知識共享與技術傳承的基礎

主要技術: Vue 2 / Vue 3、TypeScript、JavaScript、Node.js、Monorepo、i18n、ESLint、Prettier、Git

藍星球資訊股份有限公司

2017.10–2024.11|Taipei, Taiwan

職位歷程: 前端工程師 → 高級前端工程師 → 主任(前端組)

主任(前端組)

2022–2024

團隊管理與技術帶領

  • 擔任研發部前端組組長,帶領 4 名前端工程師,負責團隊管理、人力配置、任務規劃與成員績效考核
  • 依據專案需求、時程與團隊成員能力進行工作分配,協調多個專案的前端開發資源
  • 作為 PM 與 RD 之間的溝通橋樑,協助需求釐清、技術可行性評估與開發落地
  • 負責團隊 Code Review,透過 GitLab Merge Request 檢視程式品質、實作方式與開發一致性
  • 協助團隊成員處理開發與技術問題,透過技術討論與經驗分享進行知識傳承

工程改善與知識分享

  • 建立新人訓練與 Onboarding 機制,協助新進工程師熟悉開發流程、專案架構與團隊開發方式
  • 擔任前端讀書會組長,規劃內部學習與技術分享主題,推動團隊技術交流與知識共享
  • 參與公司後台系統架構與維運流程改善,提升共用功能的維護與開發效率

代表專案

  • 桃園市儀表板(RD Leader):導入 Nuxt 3,參與前端架構規劃與城市數據視覺化平台開發
  • 桃園資料開放平台(RD Leader):擔任專案 RD 主要溝通窗口,協調開發事項與 Issue 分配,參與地方政府資料平台建置

獎項與成就

  • 111 年度最佳表現獎:獲公司年度績效表揚,由總經理親自頒發

高級前端工程師

2019–2022

  • 擔任多項專案 RD Leader(專案 RD 主要協調角色),負責開發事項協調、Issue 分配與專案進度推進
  • 負責前端需求實作與任務拆解,並與 PM、UI/UX、Backend 協作完成專案交付
  • 參與公司後台系統模組化與前端架構改善,累積大型專案架構與長期維護經驗
  • 評估既有技術與後續維護需求,在新專案導入 Vue 2,將專案開發由原先以 jQuery 為主的模式轉向 Vue 元件化開發,後續負責專案持續採用 Vue 技術棧

代表專案

前端工程師

2017–2019

  • 負責網站前端功能開發、互動功能與資料呈現,與 UI/UX、Backend 協作完成專案需求
  • 參與文化典藏、政府開放資料與知識管理平台等不同領域專案,累積不同類型資訊平台的開發經驗
  • 主要使用 JavaScript、jQuery、HTML、CSS 進行前端開發,建立前端開發與跨團隊協作基礎

代表專案

  • 臺北市議會新聞知識系統
  • 臺北市政府資料開放平台
  • 國家漫畫史料調查與典藏計畫
  • 臺灣歷史博物館研究資源管理系統
  • 經濟部標準檢驗局知識管理入口網

主要技術: Vue 2 / Vue 3、Nuxt 2 / Nuxt 3、TypeScript、JavaScript、jQuery、HTML、CSS、Git / GitLab、a11y

工程實務 Engineering Cases

公司後台模組化

背景與問題 Background

公司承接的專案大多需要建置後台管理系統。雖然各專案的業務內容與資料欄位不同,但介面結構與操作模式高度相似。

類型內容
共通結構Header、Footer、Sidebar、列表頁、詳目頁、編輯頁
專案差異主題顏色、顯示欄位、表單內容與資料相關設定

每個新專案若重新實作相似頁面,會產生重複開發並增加初期建置時間;各頁面若分別判斷角色與操作權限,也會使邏輯分散、提高後續調整與維護的複雜度。

工程目標

  • 降低重複開發:將共用 Layout、列表頁、詳目頁與編輯頁模組化,讓不同專案主要處理實際差異
  • 統一權限管理:集中管理頁面與操作功能的權限規則,避免判斷邏輯散落於各個頁面與元件
設計 Design

1. 權限控制 Permission Control

後台系統需要依照不同角色控制可存取的頁面與可執行的操作,因此將權限機制集中管理,避免各頁面各自實作權限判斷。

權限層級控制範圍
頁面層級控制使用者能否進入特定頁面;沒有權限時,即使手動輸入 URL 也無法進入
元件/操作層級控制頁面中的按鈕、操作功能等 UI 是否依使用者權限顯示

權限規則集中後,新增角色或調整權限可從統一的位置處理,也不需要在每個按鈕分別撰寫授權判斷。

2. 列表頁模組化 Config-driven List

後台列表頁通常包含篩選、表格與分頁等共通結構,因此將這些 UI 與操作模式封裝為可配置的共用元件。

各專案提供以下 Config 設定,即可產生所需的列表頁:

  • 顯示欄位與欄位設定
  • 查詢與篩選條件
  • 列表操作功能
  • 各專案需要的其他設定

共通的頁面結構與行為集中維護,各專案則保留調整顯示欄位及操作功能的空間。

3. 編輯頁動態欄位 Schema-driven Form

編輯頁使用 Object 定義 UI Schema,透過 type 決定對應的表單元件,例如 inputselectdate,以及其他專案需要的欄位型態。

js
{
  label: '商品名稱',
  field: 'name',
  type: 'input',
  required: true
}
Schema 設定用途
欄位名稱與資料 Key定義欄位與資料的對應關係
顯示順序調整欄位排列
欄位型態決定使用的表單元件
必填設定定義欄位是否必填
專案欄位配置配合不同專案調整表單內容

共用元件再根據 Schema 產生對應的編輯頁,讓不同專案主要透過調整欄位設定完成表單需求,而不需要重複撰寫大量相似的 Form UI。

主要考量包括:

  • 減少重複實作:將相似的表單結構抽離為共用元件
  • 提升調整效率:新增、移除或調整欄位時,優先從 Schema 設定處理
  • 維持一致性:統一不同後台專案的表單結構與元件使用方式
  • 降低維護成本:集中維護共通的表單行為與 UI
工程考量 Engineering Considerations

模組化的目標不是抽象化所有功能,而是共用高度重複且相對穩定的結構與行為。

考量處理方式
共用性優先抽離反覆出現的 UI 結構與操作模式
可配置性透過 Config / Schema 處理欄位、查詢條件與操作功能等差異
可維護性集中管理共通邏輯,避免相似程式碼分散在不同專案與頁面
擴充彈性無法由既有 Config / Schema 涵蓋的特殊需求,保留客製實作空間

隨著後期專案的客製化需求增加,也持續調整共用化的範圍。例如早期部分特定功能因 API 回傳格式較固定,曾能納入共用設計;後續因不同專案的 API 與業務需求差異增加,便不再將其作為固定的 Config 項目,而是保留各專案自行處理的彈性。

Layout、權限控制、列表頁與編輯頁以共用元件、Config 或 Schema 統一處理;專案特有的業務需求則保留個別實作彈性,在共用與客製化之間取得平衡。

專案經歷 Projects

以下為任職藍星球資訊期間參與的專案,依時間由近至遠排列。

桃園市資料開放平台

建置前後台,以 Open Data 為主體。

Role: RD Leader
Tech Stack: Vue 3 / Nuxt 3

  • 擔任專案 RD 主要協調角色,負責與 PM 溝通及 RD 工作分配
  • 參與前、後台開發

桃園市儀表板

建置城市數據視覺化前台,以圖表呈現及圖表間的資料連動為主要功能。

Role: RD Leader
Tech Stack: Nuxt 3

  • 擔任專案 RD 主要協調角色,負責與 PM 溝通及 RD 工作分配
  • 提議並導入 Nuxt 3,成為公司專案中首個採用 Nuxt 3 開發的專案
  • 參與城市數據視覺化與圖表間資料連動功能開發

某電商平台改版

既有電商系統改版,除原有功能外,包含購物流程優化、非會員購買,以及特定商品需單獨結帳等需求。

Role: RD Leader
Tech Stack: Vue 2 / Nuxt 2 / i18n / GTM

  • 擔任專案 RD 主要協調角色,負責與 PM 溝通及 RD 工作分配
  • 負責前、後台商品相關功能
  • 負責購物車相關功能
  • 串接 GTM
  • 實作多國語系(i18n)

桃園市立大溪木藝生態博物館-大溪學文化資源網

各分類包含大量資料欄位,並具有上稿審核流程;主題專區提供近 20 種元件供使用者編輯內容。

Role: RD Leader
Tech Stack: Vue 2 / Nuxt 2 / a11y

  • 擔任專案 RD 主要協調角色,負責與 PM 溝通及 RD 工作分配
  • 參與前、後台功能開發
  • 實作無障礙相關需求

國立臺灣歷史博物館-影音資料庫

Role: RD Leader
Tech Stack: Vue 2 / Nuxt 2 / a11y

  • 擔任專案 RD 主要協調角色,負責與 PM 溝通及 RD 工作分配
  • 負責所有前、後台前端開發
  • 實作無障礙相關需求

國立臺灣歷史博物館-近代臺灣報刊資料庫

Tech Stack: Vue 2 / Nuxt 2 / a11y

  • 負責所有前、後台前端開發
  • 實作無障礙相關需求

國立臺灣歷史博物館-校園生活記憶庫

Tech Stack: Vue 2 / Nuxt 2 / a11y

  • 負責所有前、後台前端開發
  • 實作無障礙相關需求

國家人權博物館-檔案資訊系統暨資料庫建置計畫

Role: RD Leader
Tech Stack: Vue 2 / Nuxt 2 / Chart.js

  • 擔任專案 RD 主要協調角色,負責與 PM 溝通及 RD 工作分配
  • 負責所有前、後台前端開發,包含首頁、典藏資料介接等功能
  • 改寫圖片編輯套件
  • 使用 Chart.js 實作圖表相關功能

羅東林管處-蘭陽地區林業文化歷史檔案保存整合系統建置計畫

Tech Stack: Vue 2 / Nuxt 2 / Chart.js

  • 負責後台主題專區相關功能
  • 使用 Chart.js 實作圖表相關功能

灃食飲食-灃食飲食常識庫

Tech Stack: Nuxt 2

  • 負責圖表資料介接
  • 負責新聞資料介接

經濟部標準檢驗局-知識管理入口網

Tech Stack: JavaScript / jQuery / Gridstack

  • 負責首頁相關功能
  • 負責知識文件資料介接
  • 負責帳號權限相關功能
  • 使用 Gridstack 實作版塊拖曳功能

國立臺灣歷史博物館-研究資源管理系統

Tech Stack: JavaScript / jQuery / Bootstrap

  • 使用 Bootstrap 進行頁面切版
  • 負責部分模組資料介接
  • 整合影片播放套件
  • 改寫圖片剪裁套件

文化部-國家漫畫史料調查研究及數位典藏計畫

Tech Stack: JavaScript / jQuery

  • 負責後台部分模組資料介接

臺北市政府-資料開放平台

Tech Stack: JavaScript / jQuery / ECharts

  • 參與前、後台前端開發
  • 負責開放資料介接
  • 負責圖片資料介接
  • 使用 ECharts 實作圖表相關功能

臺北市議會-新聞知識系統

Tech Stack: JavaScript / jQuery / ECharts

  • 參與前、後台前端開發
  • 負責新聞資料介接
  • 負責圖表資料介接
  • 負責部分帳號權限相關功能
  • 使用 ECharts 實作圖表相關功能