謝俊宥

後端/Devops 軟體開發工程師 ・Taipei, TW

[email protected]

0988091205

具備 6-7 年的後端與 devops 工作經驗,目前在團隊內主要常用語言為 Golang 與 shell script ,在過往的經歷中導入 Docker, Kubernetes, CI/CD, Grafana 等監控工具,減少管理服務成本,使工程師們可以更專注於開發與專求技術,免於過頻繁的處理 server 問題。


我擅長與其他團隊溝通,因為在過往的經驗中長時間的與不同單位合作與協商,例如: 客服團隊、MIS團隊、PM或者其他 RD 團隊,並且有 devops 和後端開發的經驗。 我會主動尋找一些工具來幫助我節省更多的工作時間與優化專案底層,讓我有更多的時間可以專心追求技術的樂趣。

工作經歷

後端工程師  •  伊諾科技有限公司

五月 2023 - Present

主要職責:

 1. 後端需求開發 

2. 跨部門溝通與合作。


《需求開發》

1. im 專家 api 串接

api 開發與串接內外部api串接:串接體育賽事資訊,專家文章資訊,三方 api 等, 透過 gorutine,sync.Mutx,waiting group 等方式加速資料處理。 

2. 優化 config 調用方式,引用 env,validate package 減少撰寫重複的 code

跨部門溝通與合作

1. 與 devops 團隊合作等 ci & 服務部署須留意事項。

後端工程師  •  麻豆傳媒

五月 2022 - 三月 2023

主要職責:

 1. 擔任後端組長一職,帶領 4 人 golang 技術團隊開發完成各項需求開發與進度追蹤。 

2. 跨部門溝通與合作等需求功能對焦。


《需求開發》

1. modeltv 專案

串接第三方api:gash 金流付款與退款、查單等 api 串接、中華國際金流 api 維護與流程優化、綠界開立發票、身份審查、寄發 mail、telegram bot 

內部功能api:訂單、使用者數據分析等其餘前後台 curd

《優化架構》

1. 於 response 埋入 log trace id 透過 trace id 可於 5 分鐘內找到對應 log ,提升問題處理速度

2. 引入各項資料庫的 connection pool (mysql、redis、mongo),減少 server 與各 db 的 tcp 連線建立的資源耗損

3. 導入 redis rpush 與 brpop 達到 Queue 功能

4. 導入cronJob 架構與開發

5. 導入 pprof 提供查找 cpu、memory、goroutine 等資源耗損

6. 線上 dockerfile 建置

7. 優化代碼增加緩存、減少不必要的 gorm preload, 用戶數據收集,高併發處理使用 channel , goroutine, waitgroup 進行優話

8. Redis 增加緩存與避免雪崩處理(分散緩存紀錄時間,計時器定期更新緩存過期時間) 

9. gitlab ci 建置上版自動化工具


後端工程師,Devops工程師  •  長青資訊股份有限公司

九月 2018 - 五月 2022

《導入 Golang與微服務架構》
建置能穩定獨立運行且具高網路傳輸性能的服務,藉以減少故障停擺風險,降低服務之間的依賴性。

1. 架構規劃與汰換:初期除了需維運 PHP 現有服務外,同時進行Golang 底層架構的規劃與設計、新專案開發,並將PHP 專案全數重構為Golang。

2. 導入微服務架構:設計分佈式服務,按造業務拆分各項服務,引用 grpc 做微服務之間的溝通橋樑,建置—遊戲中心、會員中心、管理者中心、圖片中心等專案,提高系統乘載量以及服務穩定度,降低服務間彼此依賴。

《導入Docker 與 kubernetes》
運用 docker 與 kubernetes ,大幅降低維運成本,如減少虛擬機的管理工作、開發人員管理 server 的時間與成本等,讓開發人員能專注於程式與邏輯撰寫。

1. 初期—Docker導入:為了便利建立與管理服務,開始規劃導入 Docker,以手動於機器上建置 Container,大幅縮減建置服務所需耗時。
2. 中期—K8S導入:隨著 Container 服務越來越多,維運成本也隨之浮現,有幸遇上公司大力推廣導入 K8S ,逐漸將 Container 轉向 K8S 上做管理。
3. 後期—Helm導入:考量到降低各環境的建置成本,導入 Helm 管理 K8S,透過一套 template 部署於各環境。
4. 優化:透過 grafana、prometheus、elasticsearch、datadog 等 log 監控server 效能運作,使開發人員能快速並清楚了解自身產品的效能運行程度與問題追蹤

《導入CICD》
考量 Jenkins 學習成本較高,多方參考後選擇使用Golang的Drone。

1. 大幅縮減部署時間與建置專案規則的繁雜度
2. 結合 telegram 推播通知結果,即時監控程式上版狀況


後端工程師  •  中佑集團 凡谷興業

七月 2016 - 七月 2018

1. 伺服器管理
『伺服器架構、虛擬機連線配置、機器對外、開放防火牆、DNS解析設定、F5負載平衡、套件安裝...』等細節設定,皆需要與專案人員及MIS人員討論,至虛擬機器建制完成後的Apache或Nginx配置、檢查機器。ex:機器規格、機器數據監控、套件版本檢查、連線測試、DNS解析或憑證、logroate等設定。

2. 專案開發 & Bug issue tracking
具備Restful API的設計經驗,在專案開發過程中導入「敏捷式開發」,了解MVC概念運作方式,專案開發上使用Git協同專案作業,也曾用過PHP的Laravel框架自行練習PHP語言、究過Google開發的Go Lang,但實際在專案上開發時,是使用Node JS與Express框架進行開發。

因工作職務主要是負責維運偵錯,也曾經協助專案人員排除Memcache、Redis連線、資料存取、Port連線異常,故也略懂該項技術的運作方式;另外也時常會接到同事間反應與機器有相關的問題,ex: Apache 或 Nginx異常(服務異常停止、設定檔吃錯Position、新增設定檔設定)、Domain連線時好時壞、機器空間異常增量...經歷過這些經驗後,當再次接到問題時,更能掌握問題點,並縮小問題查找範圍,大幅降低問題處理時間。


學歷

Asia University of Taiwan 亞洲大學

資訊多媒體應用學系

2011 - 2015

連結


技能


  • DevOps
  • DevOps / CI / CD
  • Backend Development
  • backend engineer
  • Golang Backend
  • Kubernetes/Docker
  • Helm Charts
  • Helm
  • Linux
  • Redis
  • Shell Script
  • MySQL / Mariadb
  • Git
  • PHP development

語言


  • Chinese — 母語或雙語
  • English — 中階