Xn2kytah761utnjnop7b

Eason Kuo | 郭奕成         

五年的後端開發軟體架構經驗,主要使用 Python 輔以 Node.js, C# 。曾任微軟技術顧問將來銀行資深後端工程師,並共同創辦過一間金融科技公司擔任技術長帶領工程團隊與產品的技術開發,是一位細心具有溝通協作分析決策,有著工程領導客戶協商人才培訓商業運營思維的問題解決者。目前同時為 DDD TW 技術社群的核心志工講師一員。

技術網誌:分享開發及除錯經驗 - 點部落 - 郭董<3小花園note.koko.guru

Sr. Backend Engineer / Architect / Technical Consultant / Head of Engineering / CTO 

Taiwan, [email protected]

Work Experience

Sr. Backend Engineer - Canner 易開科技 2020.12 - Now

Python Sr. Backend Engineer - NextBank 將來銀行, 2019.10 - 2020.05 

擔任中台資深後端工程師,負責實現中台業務需求解決技術議題設計中台架構開發行動與網路銀行的後端功能串接 ESB 整合核心系統,提供開戶、會員雙因驗證、轉帳、DebitCard 等功能。 

• 協作溝通:促進中台與 App 團隊制定 API 規格 (開戶、會員功能、轉帳、DebitCard 等功能 );負責與 Infra 團隊討論伺服器的網路路由架構以及部署的規格;參與協助 BA/SA 與廠商確認核心功能需求與串接格式。 
• 系統開發:使用 Python 與非同步框架 Starlette 搭配 Uvicorn ASGI 伺服器及 Gunicorn workers 開發後端系統,使用 unixODBC 與 Microsoft ODBC 整合存取 SQLServer;使用 Pytest 以及 Stub/Mock 技巧來撰寫自動化測試,以解耦被測程式間的依賴問題與測試互動的目標。
• 軟體架構:使用 DDD 思維分析業務需求,依領域知識與各子領域作為系統的邊界,以業務角度而非技術角度分割模組化,再搭配戰術建模模式與 Clean Architecture 架構開發實踐中台後端軟體架構。
• 領導制定:領導團隊制定建置版本控管流程與 Code Review 的標準,並整合 Azure DevOps 使用。
• 面試訓練:協助建立中台團隊,參與面試塞選及團隊新成員訓練,包統架構設計,協作流程、維護以及文件撰寫等教育。   

Co-founder / CTO / Sr. Backend Engineer / Architect - Addweup  2016.03 - 2019.03

  • 系統開發:創業初期獨立分析服務需求技術可行性設計系統架構開發 WebAPI 使用者操作網頁
  • 組織團隊招募硬體/前端/APP/後端工程人才,訓練分配任務,組織 4 人工程團隊。於 3 個月內完成推出第一代產品。   
  • 技術願景:根據公司資源目標規劃產品演化技術願景、可行性、架構、工具堆疊與後續工程團隊人員配置與需求。
  • 工程領導帶領工程團隊管理追蹤專案進度優化推出了二、三代由手機和平板操作的系統服務
  • 團隊整合促進工程、營運團隊協作溝通,分析業務需求、技術可行性,評估公司資源、規劃時程翻譯技術詞彙達成共識,推進專案
  • 客戶溝通協作協助促進營運團隊企業夥伴商討產品的技術合作提供可行方案制定規格。完成了香港 Paypal、支付寶、微信、香港 KKBOX、AsiaMiles、WageCan、Callcar、Hami Point8 間企業的系統合作商討。 

  • 開發 6 個後端系統包含:用戶訂單系統、外幣選擇方案與費用試算系統、前台職員操作系統、辦公室助理 Chatbot 與外幣選擇方案第三方金流點數串接系統 ( 含 Paypal、微信、支付寶、HamiPoint、WageCan、Callcar...等 ),提供 200 支以上 Restful Web API。 
  • 採用 PythonFlask 開發並以 SQLAlchemyORM 存取關聯式 MySQL、使用 Redis 快取,透過 Docker 部署至 AWS 雲端。搭建 Nginx 做反向代理、快取與附載平衡,後期因成本因素採用 GCP Cloud
  • 規劃系統架構重構指導團隊建置 MVC 架構、導入 Service / Repository 層和 DI / IoC 設計並降低耦合提高內聚
  • AOP 設計例外處理、安全驗證、事務 Transaction 與 Logging 紀錄。  
  • 採用 Unit Of Work 處理多模型交易一致性,透過 Prefetch 解決 N + 1 效能問題。  
  • 導入 Domain-Driven Design 拆分 Monolithic 的系統邊界。 

Software Engineer - Lativ 米格國際 ,  2015.12 - 2016.03 

  • 使用 C#Asp.Net MVC 開發 Lativ 內部 ERP 與物流所需之系統 。
  • 使用 Entity FrameworkORM 定義、存取資料庫,使用 LinQ 語法做資料查詢。
  • 透過 autofac extension 來實作 DI (相依注入) 和 IoC (控制反轉)。
  • 撰寫單元測試做自動化測試,使用 Git 版本控管工具 。
  • 建置 MVC 架構與 ServiceRepository 層使服務的業務邏輯與資料存取能職責分離和解耦。
  • 採用 Unit Of Work 處理多模型交易一致性,透過 Prefetch 解決 N + 1 效能問題。  

Technical Consultant, Microsoft , 2014.09 - 2015.09

Microsoft Consulting Service Department

提供微軟技術服務給金融企業客戶,透過客製化、研發客戶需求之軟體、協助解決系統問題,增加其價值在現有系統。因專業的服務、細心與態度,獲得客戶、主管的讚賞與 7 次續聘邀約。

1. Office 企業內部 Word/Excel 文件浮水印版權軟體之開發 (台灣銀行/永豐銀行) 

  • 使用 C#Office 增益集.Net framework 獨立開發系統,連接到 XPS 印表機列印文件 / 產生 PDF 檔案。  
  • 建立 DDLWeb 服務 ( .ashx 泛型處理常式建立 Http handler) 兩種 API 方案,提供客戶諮詢教育訓練,開發 VBJava 兩種 Sample Code 範例並文檔化手冊。該系統更成為部門販售的產品化系列之一。  

2. ATM 白名單監控系統 (台企銀) 

  • 採用 C#.Net Framework 1.1 獨立開發 Windows NT4/2000 環境白名單監控程式,透過背景程式回報伺服器異常狀況,並定期接收伺服器更新的白名單列表至 ATM 上,與提供硬體 ATM 製造商的企業夥伴協作測試系統。

 3. eBank 對企業客戶用的網路銀行系統 (大眾銀行) 

  • 主管肯定指派協助 8 位資深技術顧問編組的大型網銀三年專案,使用 C# Asp.Net MVC 框架開發,搭配 TFS 版本控管,負責開發商業邏輯功能和系統除錯,捕捉底層架構漏洞教導新進人員專案架構、環境以及開發方式。  

Education

Honors | Awards

2020 年底於 DDD TW Conference 年會第二日工作坊擔任講師分享:前進 DDD 戰術建模

2020 於 Domain-Driven Design Taiwan 技術社群台中巡迴場場分享主題:「DDD 戰術實作

2020 於 Domain-Driven Design Taiwan 技術社群 10 月 Meetup 分享主題:「DDD 另一半拼圖 – 戰術開發
2020 於 Domain-Driven Design Taiwan 技術社群擔任 《Working Effective with Legacy Code》 讀書會協辦人之一導讀「 Working Effectively with Legacy Code - CH12 - 14」 

2019 投入並擔任 Domain-Driven Design Taiwan 技術社群核心志工與講者分享 「Implementing Domain-Driven Design - Context Maps,並於一日對外培訓坊授課主講「DDD 中的值物件 (Value Object)

2016 Microsoft MVP Award ( 微軟最有價值專家獎 )

再次榮獲 2016.07 - 2017.07 的 Microsoft MVP Office 自動化開發領域專家獎。

2015 Microsoft MVP Award ( 微軟最有價值專家獎 )

榮獲 2015.07 - 2016.07 的 Microsoft MVP Office 自動化開發領域專家獎,並前往西雅圖總部參與全球 MVP Global Summit

企業獎第三名, 臺大黑客松 HackNTU2015

與 Nathaniel Chen, Suki Huang, Ian Hong 組隊參加兩天一夜黑客松,提出名為 BarbeCup 的解決方案,於夜店或相似場域導入物聯網技術,解決夜店常見安全與社會問題,並提升社交及娛樂面向之整體體驗。BarbeCup 結合App、手環以及酒精濃度感測器,提供一基於夜店場域中安全問題的解決方案。負責後端的 Web API 開發。

昇恆昌組別第二名 ( 全國前十強 ), 13th ATCC 全國大專院校商業個案大賽2015.05

與 Cynthia Kao, Yun Cheng Chen, Xuan Fu, Lina Pan 組成一個跨校跨領域的 5 人隊伍,參與昇恆昌企業組,設計行銷企劃案,協助企業提升形象與業績。 並以人文價值為推廣昇恆昌品牌的核心理念出發,定位昇恆昌是台灣故事的紀錄者。規劃「百人百臉擺出你的生活態度」等系列行銷活動,並透過影片來收集年輕人在台灣土地上發生的故事,進而打造一座專屬年輕人的候機室。 負責專案中的技術上可行性規劃與研擬、活動網站建置與設計數據收集方式。

團隊組第一名與個人最佳 Windows Phone App 獎, 第二屆微軟社群之星2014

與 Nathaniel Chen, Suki Huang 組隊,協助微軟技術相關資源推廣與活絡社群,開發微軟技相關服務。提升微軟應用程式數量與品質。於社群網誌上分享微軟開發技術上的訊息新知、撰寫技術文章,並舉辦技術講座至校園推廣和分享,同時協助回覆微軟 MSDN 社群上的開發者提問。負責撰寫技術網誌分享、並於台中科技大學講座演講分享微軟技術

進入複賽階段, Intel's App Innovation Contest, 2013.10

與 Rick Ch, Hsin-Yu Shih 組隊參與遊戲類競賽,製作 Windows Phone App - CatcherGame 進入複賽並獲得 AIO 裝置。負責指導團隊與遊戲開發與遊戲架構設計、物件導向設計。

第一名金牌獎, 社會關懷組, 第六屆全國大專盃創業競賽 , 2013.06

參加第六屆全國大專盃創業競賽, PrimeSight 視障輔助穿戴式輔具產品為出發,規劃產品導入市場策略、通路銷售、財務規劃與營運企劃榮獲社會關懷組第一名。

PrimeSight 視障輔助穿戴式輔具 代表學校參展, 典範科技大學成果展, 2013.05

PrimeSight 視障輔助穿戴式輔具 獲得電資學院金手獎, 台北科技大學, 2013.05

PrimeSight 參展, 新一代設計展, 2013.05

第二名, World Citizenship 組, 台灣區, Microsoft Imagine Cup Worldwide, 2013.03

與 Huang Yi Ting, Mark Pan 組隊,並邀請設計背景的 Timo Ho 組隊優化原先的 EyeKinect 系統,改名 PrimeSight 製作穿戴式輔具雛形並獲得台灣區 World Citizenship 組的第二名。負責優化先前的商品辨識系統效能與系統的軟體架構。

微軟特別獎、趨勢公司特別獎、飆機器人公司特別獎 、傑出團隊獎, 台灣軟體創作達人, 2012.09

與 Huang Yi Ting, Mark Pan 組隊,提出一套名為 EyeKinect 系統,為解決視障者行走時所面臨的問題,利用紅外線深度資訊和彩色影像資訊,將體感器攜帶在視障者身上,使用語音與震動器告知視障者,幫助視障者處於陌生環境時能得知前方狀況,降低意外發生並提升生活便利性之視障輔具,並榮獲多個企業獎項。負責 Kinect 的 RGB 影像處理的分析,開發建置商品辨識系統。

系上佳作, 資訊工程系專題實務競賽, 台北科技大學, 2011.10

與 Cheng-Yi Huang 組隊製作畢業專題,並結合影像處理、Kinect 體感器、遊戲設計、物件導向設計製作出「以體感器實作之Kinect體感遊戲 - Move Your Body」專案,獲得系上佳作。負責處理 Kinect 來源的 RGB 與 Depth 影像分析、設計與開發動作演算法偵測動作子系統,提供給遊戲串接使用。


Side Projects

ERP 管理系統 2019.10 - 2020.05 (外包接案)

  • 簡介:四人團隊,協助為行銷廣告公司開發 ERP 後台之會議紀錄、部門個人業績計算 (年月季)、差勤管理 (加班、公差、請假、報帳、簽核與年統計) 與綜合管理設定等子系統。 
  • 平台工具:使用 Node.js、Express 框架與 LowDB (客戶要求 ) 開發。

台灣球員 Wiki 維基百科資料爬取程式 (外包接案)

  • 簡介:協助味全龍開發台灣球員資料收集腳本,以 Google App Script 抓取台灣維基棒球館球員資料填入至 Sheet 中 
  • 平台工具:使用 Javascript 、Google Sheet API 與 Google Document API。 
Paragraph image 00 00@2x

數字人力銀行 CSS 反爬蟲破解腳本

  • Github:scraper-fourone-jobs 
  • 簡介:起因是在 Python Taiwan 看到有網友詢問如何抓取某人力銀行網站資料,並發現該網站使用 CSS 反爬蟲保護,於是藉由一個下午破解並分析字型檔案還原編碼取得正確內容 
  • 平台工具:使用 Python 3.7, requests, lxml, fonttools 解析字型檔的編碼格式,並對抓取的亂碼來源做編碼取得正確結果。

Paragraph image 00 00@2x

自動化客戶合約大量生成程式

  • Sheet 連結: https://reurl.cc/e8yRm7
  • 簡介:Google App Script 外掛程式,提供 Google Doc 合約範本並抓取表單欄位資料合併生成多份 PDF 合約檔案
  • 平台工具:使用 Javascript 、Google Sheet API 與 Google Document API。 

Paragraph image 00 00@2x

自動化台灣旅宿網資料收集爬蟲腳本 

  • Github :  scraper-TW-hotels
  • 簡介:協助平台旅宿業的女友自動化抓取全台各大有營業執照的名宿資料。 
  • 平台工具:使用 Python 3.7, aiohttp, requests, selenium , lxml, beautifulsoup 非同步方式抓取旅宿資料,選擇性透過 XlsxWriter 寫到 Excel 中或儲存至 Json 中紀錄資料。

Paragraph image 00 00@2x

BarbeCup

  • Slide:https://reurl.cc/2y0xv 
  • 簡介:組隊參加台大黑客松所製作的項目,於夜店或相似場域導入物聯網技術,解決夜店常見安全與社會問題,並提升社交及娛樂面向之整體體驗。透過結合 App、手環以及酒精濃度感測器,提供一基於夜店場域中安全問題的解決方案。
  • 平台工具:使用 MediaTek LinkI ONE 與 Arduino 開發 IOT 酒精濃度感測器,傳輸資料給部署到 Azure 的 Django Restful API Server ,透過 Android 開發的 APP 或 Android Ware 手環兩種裝置收到消息。

Paragraph image 00 00@2x

百人百臉擺出你的生活態度活動網站

  • 網站網址:http://ygeneration100.koko.guru
  • Github : ygeneration100
  • 平台工具:使用 Python 2.7、Django 1.7.2 建造網站,部署到 Heroku 上。
  • 簡介:大學參加 13th ATCC 全國大專商業競賽昇恆昌企業組,製作的活動網站,藉由分享百人擺臉活動內容、提供影片內容上傳、文案投稿,讓青年分享自己經歷的台灣故事,並以瀑布牆刊登。

Paragraph image 00 00@2x

Catcher Game ( Windows Phone Game )  

  • Github : WP-Catcher-XNA-XAML
  • 平台工具:採用 OOP、Design Pattern、C#、XNA 3.0 遊戲框架開發,以 Windows Phone App XAML 啟動 XNA 圖像引擎繪製在 Windows Phone 平台上。
  • 簡介:開發的一款火災救援橫向捲軸遊戲,操作手持安全網的兩位消防員,拯救從高樓跳下來的人。遊戲會有特殊道具掉落增加遊戲性,如擴張安全網、加速移動、縮小安全網、移動遲緩。

Paragraph image 00 00@2x

PrimeSight ( 科技可魯 ) 視障輔助穿戴式輔具

  • Github : PrimeSight 
  • 平台工具:在 Visual Studio 2012 使用 C# 5.0、.NET Framework 4.5,透過 KinectSDK 讀取深度與彩色影像,EmguCV 2.4.0 分析並開發電腦視覺辨識系統,整合 Arduino 1.0.4 達到語音和震動的警示作用
  • 簡介:開發一套利用 Kinect 體感器的紅外線深度、彩色影像等資訊的穿戴式輔具,透過電腦視覺與影像辨識,分析前方路況與生活資訊,並使用語音與震動器告知視障者。

Paragraph image 00 00@2x