德安資訊股份有限公司 Tayih Information Co., Ltd.
後端工程師 Backend Engineer
2023/11 - 至今 2023/11 - Present
聚焦餐飲 SaaS 與門市營運系統,負責高流量訂位、點餐、廚房顯示與品質安全強化等後端服務。 Focused on restaurant SaaS and store-operation systems, delivering backend services for high-traffic reservations, ordering flows, kitchen display operations, and platform quality and security hardening.
餐飲 SaaS 系統 訂位模組專案 Restaurant SaaS Reservation Module
- 透過 Partition Table 與 Cache 分散資料庫查詢壓力,並採用 Optimistic Lock 控制庫存競爭。經使用 K6 壓力測試下,庫存查詢服務可穩定承載 2000+ QPS,且 P95 latency 維持在 50ms 以內。 Reduced database pressure with partitioned tables and cache layers, then controlled inventory contention with optimistic locking. Under K6 load testing, the inventory query service sustained 2,000+ QPS while keeping P95 latency under 50 ms.
- 設計並實作一套可擴充的 Job Engine,開發者可透過自訂 Cron 語法排程巡檢、多租戶資料源切換、佇列分派與 Thread Pool 非同步執行背景任務。 Designed and implemented an extensible job engine that supports custom cron scheduling, multi-tenant data source switching, queue dispatching, and thread-pool-based asynchronous background execution.
- Engine 依 JobType 動態派發 Executor,並具備殭屍任務恢復、狀態追蹤與重試機制,並以介面抽象化落實開閉原則,降低新任務擴充成本。 Built dynamic executor dispatch by job type with zombie-job recovery, status tracking, and retry handling. Interface-based abstractions kept the engine open for extension while reducing the cost of adding new jobs.
- 為專案自 Spring Boot 2.7 升版至 Spring Boot 3.2,並解決衝突。 Led the upgrade from Spring Boot 2.7 to 3.2 and resolved framework and dependency conflicts along the way.
Qrcode 點餐系統 QR Code Ordering System
- 透過策略模式組合工廠模式,重構並實作多支付渠道類別,使支付渠道未來擴充不易相互干擾,且易於撰寫測試,避免把不同金流邏輯耦合進單一交易流程。 Refactored multi-channel payment flows with a strategy-plus-factory design so new payment channels can be extended independently and tested without coupling all gateway logic into one transaction path.
- 以 AOP + ConcurrentHashMap 實作菜單同步鎖與超時回收,解決多餐廳、多節點情境下的重複同步與資料競爭。 Implemented menu synchronization locks and timeout recovery with AOP and ConcurrentHashMap, eliminating duplicate sync jobs and data races across multi-restaurant, multi-node deployments.
- 導入 Quartz,依餐廳設定動態註冊每日同步排程,並在服務啟動時自動載入全租戶的餐廳任務。 Introduced Quartz to register daily synchronization schedules per restaurant configuration and automatically bootstrap tenant jobs on service startup.
Qrcode 點餐系統(品質與安全強化) QR Code Ordering System: Quality and Security Hardening
- 導入 Flyway 作為 SQL 版控工具。 Introduced Flyway to manage SQL version control and schema changes.
- 配合客戶 ISO 資安治理要求,系統性處理 SonarQube code smell 與 vulnerability 警示,並完成多項 CVE 風險套件升版與相依性修補。 Worked through SonarQube code smell and vulnerability findings to satisfy ISO security governance requirements, including dependency upgrades and remediation for multiple CVE risks.
- 將測試覆蓋率自 2% 提高到 82.8%。 Raised automated test coverage from 2% to 82.8%.
- 依據第三方滲透測試報告修補高風險弱點,包含導入 XSS 攻擊防護、登入 API 導入圖形驗證碼以防止暴力破解。 Resolved high-risk issues identified in third-party penetration testing, including XSS defenses and CAPTCHA protection on the login API to mitigate brute-force attacks.
KDS 廚房顯示系統 Kitchen Display System
- 建置餐飲 KDS 後端系統,採用 Spring Boot、JPA、WebSocket、Oracle DB 與排程機制,支援廚房看板與菜口畫面的即時訂單同步,提升出餐資訊更新速度與營運可視性。 Built the backend for a restaurant KDS using Spring Boot, JPA, WebSocket, Oracle DB, and scheduled tasks to support real-time order synchronization across kitchen and pass screens.
- 面對多機台高頻更新場景與客戶地端機器效能不佳的瓶頸,將廚房訂單資料查詢與 WebSocket 推播非同步化,改善多機台同時更新時的吞吐能力與穩定性。 Addressed throughput bottlenecks caused by high-frequency updates and weak on-premise hardware by making kitchen order queries and WebSocket pushes asynchronous.
- 實作廚房作業狀態機,將備餐、叫餐、劃菜、清桌、取消清桌、取餐通知等流程收斂為具交易一致性的服務層邏輯。 Implemented a kitchen workflow state machine that unified meal prep, callout, plate marking, table clearing, clearing rollback, and pickup notifications into transactionally consistent service logic.
- 因應地端機器 Windows Server 2016 版本無法安裝 Docker,透過 NSSM 工具實現 Java 進程守護。 Used NSSM to supervise Java processes on Windows Server 2016 environments where Docker could not be installed.