Daniel Wang | 王性驊

五年的後端開發軟體架構經驗,主要使用 Golang 輔以 Node.js, Python 。

理科的邏輯思維、及文科的柔軟論調兼備,擅長在既有框架下兼顧創造的彈性,能以價值導向做出最佳的技術選型。

曾在老闆與同事之間規劃進度及溝通,帶領專案上線、將產品從零至一打造的經驗也曾是趨勢科技資深後端工程師。是一位具有溝通協作分析決策,有著與客戶協商商業運營思維的問題解決者。

           

   

Senior Software Engineer Taiwan, 
[email protected]

工作經歷


赫斯超感股份有限公司.  Senior Backend Engineer 2023.04 ~ 

【工作內容】主導開發 VR MMORPG 即時傳輸 Server. 並達成下列功效
  • 主導開發 VR MMORPG 即時傳輸 Protocol,成功減少傳統 Json 和 XML 資料大小達 25%,有效節省網路傳輸頻寬。
  • 優化服務的 Linux TCP 通訊,將原本的壅塞控制演算法換成 Google BBR 演算法,極大地提升了通訊吞吐量達 3 倍,提供更順暢的遊戲體驗。
  • 開發高效率的 code 產生器,能自動產生四種語言(Dart、TypeScript、Go、C#)的 client 程式碼,大幅加速開發進程,節省開發人員的工作時間。
  • 使用 GoGo Protobuf 傳輸,相比傳統 Protobuf,有效提高了傳輸效率達 4 倍,減少了資料傳輸的時間成本。

TrendMicro.  Senior Backend Engineer 2022.06 ~ 2023.04

【工作內容】 協助開發 Vision One 企業級使用者行為收集與分析警示系統 Backend,處理每日百萬流量,並成功達成以下目標:
  • 開發並持續優化 Vision One 企業級使用者行為收集與分析警示系統的後端模組,以應對日益增長的百萬流量,確保系統穩定可靠。
  • 運用 OTA 技術,實現對企業用戶 Client 的遠端更新,提升用戶體驗並加快功能推送速度。
  • 積極倡導 DevOps 文化,負責開發、測試和部署的全流程,成功將應用程式上雲,並大幅縮減上線時間。
  • 使用普羅米修斯、Grafana、ADX、loki 等監控工具來追蹤系統性能和資源使用情況,並優化系統效能。
  • 進行測試左移,撰寫 Design Document 以及測試文件,確保代碼質量和軟體功能的穩定性。
Dylde0raw2qcywmunmaw

Surpavity Inc.  Senior Programmer 2021.03~2022.06

【工作內容】 Netpute 平臺 是一款類似讓人可以上來玩 Web Game 的平台,一款遊戲同時線上人數達兩萬,我們最多遊戲時,遊戲數量達到100 款。
  • 透過自己撰寫的 Golang 後端框架 TianTing,從 0 到 1 發展設計 Netpute 平臺
  • 基於產品需求和技術特性,積極進行技術選型,設計並搭建了完整的服務架構,確保系統具有高可用性和擴展性。
  • 考慮到使用場景,設計並選擇適合的資料庫結構,包括 Redis、MongoDB 和 MariaDB,以確保系統能夠處理大量並發操作。
  • 負責在 Google Cloud Platform (GCP) 上搭建產品的基礎建設,使用 Kubernetes 等容器技術來實現高效的部署和擴展。
  • 設計並建立了 CI/CD 流程,使用 GitLab 和 Drone 工具來實現自動化的代碼測試、部署和交付,提高團隊的工作效率。
  • 設計並開發了會員系統、留言板系統、商城系統以及 web game 動態 host,為 Netpute 平臺提供全面的功能支持。
  • 保證商城系統交易的一致性:使用 Redis 的分布式鎖功能,我們確保了在同一時間只有一個用戶能夠訪問和修改相關資源,從而避免了數據競爭和可能的交易錯誤,保障了交易的正確性和一致性。
Dylde0raw2qcywmunmaw

鈊象電子, 高級軟體工程師|2019.09 -2020.12

【工作內容】
   1. 專案遷移至 Kubernetes - 達成高可用並拆分成微服務
  • 協助專案成功遷移至 Kubernetes 平台,實現伺服器高可用性和彈性擴展,確保系統穩定運行。
  • 負責將原本的服務拆分成微服務架構,使各個服務可以獨立部署、運行和維護,提高開發效率和系統可靠性。
  • 使用 Protobuf + gRPC 技術作為服務間溝通的橋樑,提高服務間通訊效率和效能。
  • 將服務部署最少 3 個 Pod,以確保在服務故障時能夠保持高可用性和持續提供服務。
  • 成功建立 ELK Log 收集系統,將遊戲伺服器的 Log 資料以 Console 輸出交給 FILEBEAT,並將 ELK 部署至 Kubernetes。
  2. 自動化 CI/CD 流程
  • 使用 GitLab-CI 實踐自動化 CI/CD 流程,包括自動單元測試、自動打包和自動部署至 AWS EC2。
  • 執行自動單元測試,確保程式碼的品質和功能穩定性。
  • 自動打包並部署至 AWS EC2,加速上線時間並簡化部署過程。
  •  配置 LineNotify,當部署失敗時及時通知相關人員,確保問題能夠快速解決。
  3. 伺服器重構與串接第三方金流服務
  • 成功將遊戲伺服器從 Python 重構至 Golang,提高服務效能和處理能力。 
  • 負責串接第三方金流服務 (GameTower、MyCard、藍新金流),實現玩家充值和支付功能。 
  • 使用 mariadb 作為資料庫,確保資料安全和可靠性。 

Dylde0raw2qcywmunmaw

鈊象電子, 軟體工程師|2017.09-2019.09

【工作內容】 
  1. 共用底層開發與後端優化
  • 負責開發專案共用的底層,實現 Http 封包傳輸加密,使用 Socket 建立 TCP 連線,並解決連線中的黏包問題,確保資料傳輸安全和可靠。
  • 實踐遊戲會員與第三方會員的綁定,提供多樣化的會員服務 (串接google 會員以及 apple 會員)。
  • 設計並實現網頁客服系統,提供便捷的客戶服務功能,提供聊天功能。
  2. 資料庫優化與伺服器容器化
  • 優化伺服器 QPS,建立 Thread pool,有效減少開啟與關閉 Thread 的消耗,提高伺服器處理能力50%。
  • 將遊戲伺服器 Docker 化 ,節省 50% 部署時間

學歷

銘傳大學, 碩士學位, 資訊工程, 2015 ~ 2017

Netflow流量管理監控程式設計與實作( python + Maria DB)

Nxvqsmdofppt3kmrk1i6

銘傳大學, 學士學位, 資訊工程, 2011 ~ 2015

Nxvqsmdofppt3kmrk1i6

技能


雲端技能

  1. Google Cloud Platform
  2. Kubernetes


程式語言

  1. Golang
  2. Python


資料庫相關

  1. MongoDB
  2. Redis
  3. PG


版本控制

  1. Git


CI/CD

  1. Drone


其他

  1.  Ubuntu
  2.  docker

SideProject


  • 使用 golang 撰寫遊戲伺服器
  • 高雄金城武 (Line Bot 口罩查詢機器人)
  • Line Bot 解謎尋寶遊戲
  • 使用樹莓派控制家電