資深Blockchain developer, 國泰金控,區塊鏈技術發展科 2022.11- 迄今
以研究區塊鏈應用為主與落地應用開發,參與國內首檔STO系統開發,主要負責與臺灣集中保管結算所資料交換規格、程式設計與溝通修正,以及科內的技術研究workshop與讀書會,導入後端新技術與前端技術支援。
使用技術
- backend:express、nestjs、typeorm、prisma、keystonejs、graphQL
- frontend:nextjs、tailwindcss
開發
- 在STO(證券型代幣)專案中負責功能開發和財務報表開發,並與臺灣集中保管結算所進行串接溝通和修正規格。
- 結算資料上傳:設計並規劃每日結算資料上傳的retry與備援機制,確保資料的正確性和可靠度。
- 開發排程系統::導入新的NestJS框架開發排程系統,並記錄每次排程的執行時間,翻寫不再維護的Grafana套件,確保系統的可靠性和效能。
- 處理系統所有未通過弱掃套件:把npm所有相依未能通過低安全性的套件以clone後更新版本與測試或原生的方式完成功能,通過證券規範的安全性弱掃。
教學研究與開發協助
區塊鏈的生態以node與reactjs為主,呼叫智能合約與前端互動,cefi還是會搭配backend,以及遇到express在套件是否有持續維護與整合未最佳化,挑選nestjs,orm以prisma取代原有typeorm,有更強大的typesafe,在撰寫query階段就可靜態檢查。正好遇到nextjs 13.4取代react+webpack,協助前端搭建react與導入tailwindcss。
教學分享則是以side project的實作,講解架構與功能實現,對應當前部門技術的過渡,獨立完成side project規劃與功能,db schema設計,帶領三位同事共同完成兩個教學研究。
1. 部門對外的技術部落格
backend:keystonejs(整合prisma與apollo graphql)
frontend:nextjs 13.4 (app directory)、tailwindcss
規劃與prototype,使用miro,設計完UI flow與近似mockup,使用tailwindcss切版,使用keystonejs,定義完schema產生graphql api供前端做到SSR與SSG,使用
fuse.js 設計靜態搜尋,上線時不需要使用資料庫。
2. 電子菜單
backend:nextjs、prisma
frontend:
refine(後台)、nextjs(前台)、tailwindcss
對應目前內部使用到的功能
- swagger document (Openapi)
- auth (JWT實作兩個獨立的登入)
- validation (request驗證)
- rest api
- webscoket
- prisma(ORM)
- CRUD
- relation
- complex query (購物車、訂單、菜單)
Team leader (Backend Engineer), 奧丁丁集團 2020.3 - 2022.4
任職於區塊鏈實驗室,部門主要承接以區塊鏈解決方案的B2B的專案與公部門標案,與BD和UX根據需求設計商業邏輯定義產品,系統流程規劃、專案管理及顧客溝通、技術諮詢,主要為後端開發,前端開發、資料庫設計、流程規劃、區塊鏈應用(私鏈、以太、Polygon)。
使用技術
- backend:Laravel(PHP)、 flask,fastapi(Python)、Node(Express, Koa)
- frontend:Vue2、Vu3、原生Javascript、alpinejs
- 工具:miro(user story mapping)、Jira(scrum)
- DB::Postgres、Mysql
- Cloud: AWS, GCP
- Devops:Docker、K8S
工作內容
- 導入Jira ,內部教學與Scrum概念給公司所有Product Owner。
- 政府專案標案簡報、期 初 中 末會議(技術支援)。
- 外部合作案軟體交付,教育訓練。
- 專案評估:使用技術,工作內容安排,軟體架構,DB Schema設計,商務邏輯規劃。
- 軟體開發:70% 後端,30%前端,
- 文件撰寫:使用openapi、markdown撰寫。
- 測試撰寫:Laravel使用phpunit、Pest,Python使用Pytest,前端則使用Selenium用於開發時快速填寫表單與模擬使用者行為測試。
- 部門開發流程建立:user story mapping去拆解需求與流程,在sprint開始起解決UX架構,同時讓backend和UI先行開發,才到末端的frontend。
- 面試與新進人員試用期評估。
負責專案
- 林務局-台灣林產品生產追溯系統 2,3期
- 期初簡報,講解系統,回覆評審委員各項事務。
- 後端、前端
- 系統架構與商業邏輯判斷與評估
- SOFIVA 慧智基因-DNA檢測流程紀錄
- OwlTing NFT Marketplace
- 產品規劃:與BD討論產品可行性與規格,確保產品在商業邏輯上的正確,安排開發流程,定義產品基本功能與未來擴展彈性。
- 軟體架構
- 後台CMS(使用Laravel Nova)的介面與客製化功能。
- 前台API設計。
- 前端component規劃與工作拆解。
- 串接自架Ploygon節點於Minted token、deploy contract(erc721,erc1155)
- Product owner:將user story轉換成工程具體工作,並拆解與協助團隊估時與進度掌握。
- 美國 The Harvest Chain
- 軟體架構、後端API設計。
- 使用私有鏈,用log方式記錄每隔個流程紀錄的表單資料。
- 第三方iot資料串接,存入 nosql的influxdb
- NFT活動與表單產生器
- 使用inertiajs,作為Laravel and vue3整合工具。
- 使用 drop and drag前端設計,方便使用者快速產生表單與活動。
Senior Software Engineer , 親子天下(天下集團)2018.12- 2020.3
獨立開發專案,配合Pm與設計協同devops完成專案與佈署。
- 後端:使用Php(Laravel)、Python(Flask),進行外部網站,以及功能性Api。
- 前端:使用 Vue.js (vue router, Vuex )進行SPA與Chrome Extension開發。
- 使用Google Cloud的gce運行Laravel, Gae運行功能性的Api,以及Firebase + algolia + firestore搭建活動型serverless網站。
- 撰寫單元測試做自動化測試(phpUnit, pytest, Selenium)。
- 導入Laravel Nova CMS,並開發Package提供專案重複使用。