我精通 Golang 且擅長後端開發,在資料庫方面,對 SQL 和 NoSQL 皆有所涉略,明白資料庫 index 及 transaction 的使用場景。有能力使用 Docker、Kubernetes 進行開發及除錯,此外,也了解微服務架構需要注意的開發細節。
我重視程式碼的擴展性和維護性,但在職場所見的程式,大多數不具備這些性質。因此我利用下班時間研究軟體設計理論,例如 DDD、Clean Architecture、CQRS,同時每月參與社群活動,也自費報名知名講師( Joey Chen 91 )線下課程,從各方面精進程式品質,以系統化的方式撰寫可測試性的程式碼。
對於未來的工作方向,希望累積大型團隊的合作經驗,不侷限自己只從事 Golang 後端職缺,也想嘗試以下工作內容:資料工程師、區塊鏈合約、大數據框架 Spark、Python 等。
★★★ 精通 ,★★ 熟悉 ,★ 有經驗
▲ 興趣自學
★★★ Golang
★ C、Python
▲ JS Prototype Chain、Redux 、 ReactiveX
★★ Relational DB
★ PostgreSQL、MySQL
★ MongoDB、Elasticsearch、Redis
★ Kafka
★ RabbitMQ (AMQP 0.9.1)
★★ Domain-Driven Design
★★ OOP
★ Concurrency
★ Microservices、Event Driven Architecture
★ GCP
★ Linux Ubuntu
★ Docker、Kubernetes
★★★ JetBrains IDE
★★ Vim、VS Code
★★ Git Command
1. 研究 GCP IaaS api,設計跨雲整合流程,和網路工程師合作,讓不同雲平台可以互通網路
2. 設計 Choreography-based saga 事件流程,使用 rabbitmq 驅動雲端平台的服務,
並使用語義鎖實現分散式系統的交易隔離性
3. 規劃 undo log 儲存流程,實現 saga 補償功能
4. 以 DDD 的概念,從問題空間出發,依照業務問題拆分 package
5. 使用 Mongo 4.0 transaction 功能,確保並發情境的資料一致性
6. 設計 Golang error 及 call stack frame,同步 log 至 ELK 系統,追蹤錯誤原因
7. 基於 RBAC 權限模型,設計多租戶會員系統
1. Kafka 串接 Streaming ETL Pipeline,處理 message 重複問題
2. 提供 http api,處理 Redis Cache 資料一致性 問題
3. 撰寫 Elasticsearch Aggregations 語法,規劃 cold data 刪除週期
4. 開發 command line 工具,簡化建置 prod. 環境的工作流程
5. 分析公司微服務的設計方式,了解程式碼不容易維護的原因
1. 維護 api gateway(golang),串接分散式系統上游服務
2. 學習 container,協助資深工程師,一同維護 k8s cluster
3. 學習各種 DevOps 工具,Jenkins CI/CD
4. 母公司放棄海外市場,台灣部門解散,全員資遣
1. 以 C 語言開發 HA-8618 網路型對講管理總機
2. 使用 MCU,透過 I2C protocol 實做 watch dog 及 警報訊號偵測
3. 參考電路公板,設計 OrCAD 電路圖 及 規劃 GPIO
4. 示波器分析電子訊號,排除硬體電路問題
根據 Clean Architecture 和 DDD 思想,提供 Golang 常用的技術元件並展示我的程式碼風格。
實現 Line Login,同時了解 OAuth 2.0 授權流程,著重 Authorization Code Grant Flow (授權碼流程)