每家公司在物色適合自己的員工,同時我也在物色面試我的公司 就像交女友一樣彼此要互相滿意才能交往。
中文姓名: 吳銘嘉 thai
英文姓名: thai
出生年月: 1985 / 01
性別: 男
最高學歷: 私立亞洲大學 - 光電通訊系 - 大學 - 台灣 - 2006 / 09 ~ 2010 / 07
婚姻狀況: 已婚、育有一女
手機: 0916446623
Email: [email protected]
Line ID: thaiwu
-
企業名稱 擔任職務 任職期間 離職原因 盈滿有限公司 技術總監 2021 / 11 ~ NOW 在職中 天堂遊戲有限公司 遊戲部經理 2021 / 1 ~ 2021 / 10 生涯規劃 天堂遊戲有限公司 遊戲部 Principal Software Engineer 2020 / 3 ~ 2021 / 1 內部晉升 天堂遊戲有限公司 遊戲部 Senior Staff Software Developer 2019 / 10 ~ 2020 / 3 內部晉升 中極顧問 Senior Techician Director 2018 / 08 ~ 2019 / 10 公司結束投資 嘉碼科技 資深軟體工程師 2016 / 11 ~ 2018 / 08 公司較養老,技術無法提升 精誠資訊-精誠隨想 SoftMobie 軟體工程師 2015 / 02 ~ 2016 / 10 生涯規劃 興旺國際(GPK) web前端,html,jquery 2012 / 07 ~ 2014 / 05 生涯規劃
- 12年軟體開發,博奕經驗8年多,6年管理經驗,熟悉老虎機、棋牌類、魚機、麻將類遊戲開發、架構設計、風險控制、RTP控制,處理高併發經驗豐富,喜歡分享開發經驗、擔任技術經理。
- 團隊溝通順暢(注重人和,能傾聽他人想法、理解同理並提出解決辦法,細心指導)
- 耐力佳,注動細節,細心,對於所負職責皆能盡心盡力完成,珍惜工作及技術上磨練,自我管理佳,能擔責並處理解決,主動性高。
- Algorithm
- Data Structure
- Web Server/Application Development
- Game Server
- Epoll/Reactor
- Multithreading
- Multiprocess
- Coroutine
- Websocket
- RESTful API
- Cluster Systems
- Microservice
- High Availability Systems
- Inversion of Control
- Depedency Injection
- JavaScript
- Typescript
- SQL
- AQL
- Golang
- puml
- markdown
- shell script
- Casino Management System
- Slot Game
- Texas Hold'em Game
- Poker Game
- Fish Game
- mahjong[麻將] game
- Nodejs
- Redis Cluster
- Docker
- Mysql
- ArangoDB
- Jenkins
- Mssql
- Swagger
- Nginx
- Jira
- Git
- PM2
- Nats
- Jetstream
-
- 【專案開發】:第三方體育平台開發、第三方電子遊戲平台開發、APP 娛樂城平台開發、USDT 轉入轉出錢包服務。
- 【工作職責】:
- 帶領團隊開發第三方體育平台。
- 帶領團隊開發第三方電子遊戲平台開發。
- 帶領團隊開發 APP 娛樂城平台開發。
- 帶領團隊開發 USDT 轉入轉出錢包服務。
-
天堂遊戲- 電子遊戲部- 遊戲部經理 / Principal Software Engineer / Principal Software Architect (管理 55 人) 2021 / 1 ~ 2021 / 10
-
【專案開發】:websocket 底層開發、電子遊戲平台開發、遊戲注單查詢平台、後端管理操作平台。
-
【工作職責】:
- 使用 golang 撰寫公司專用的 websocket Framework 讓寫 game server 的 RD 不用處理通訊跟 buffer 傳輸的底層,還有主動推播、多播、廣播、topic 訂閱、反訂閱 topic、廣播整個 topic、cluster 廣播等等機制,傳輸格式從 golang object 自動轉換成 buffer 壓縮傳輸封包。
- 使用 js 撰寫 cocos 前端使用的 SDK 讓前端不用處理怎麼跟公司的 websocket server 通訊的機制,全部都由 SDK 統一處理,讓前端專心開發遊戲畫面,不用處理後端傳來的 buffer 格式轉成 js object 的過程。
- 制定公司專用的 packet layout 前後端傳輸的專用封包。
- golang websocket framework 底層封裝 MQ 溝通機制,做 cluster 時可以互相推播不同 server 上訂閱同一個主題的玩家。
- 錢包系統重構:開發第二代錢包系統設計規劃。
- 老虎機、棋牌、魚機、麻將類遊戲平台開發、注單查詢平台開發、RTP 控制、風險控制系統開發。
- 直接管理接近 30 人(純RD),間接管理接近 55 人(包含美術)主要職責遊戲後端、注單 web 前後端、遊戲 cocos 前端、美術 2D、3D 管理分配任務時程。
-
【工作成就】:
- Yggdrasill Framework websocket 底層開發。
- JS Client SDK for Websocket Server。
- Golang Client SDK for Websocket Server。
- 電子遊戲平台系統,包含注單查詢、RTP 、風控等等系統。
- 第二代錢包分散式系服務。
- 包網平台社群系統。
- 電子遊戲、線上棋牌、線上中國各地麻將(大眾、紅中、血戰、血流、溫州、上海、貴州)產品陸續從 2020 年 6 月上線至今。
- 第二次從零開始建置完整團隊,從最初 4 人到 55 人
-
- 【專案開發】:開發建置15款遊戲(撲克類與老虎機類)及後端架構,風險控制,RTP控制。
- 【工作職責】:
- 帶領後端團隊製作博弈遊戲 Microservices 架構、開發賭場現場的系統。
- 開發遊戲:老虎機-算分計分、Jackpot、多人對戰德州撲克、多人開獎百家樂。
- 使用 Go 開發德州撲克-GRPC、老虎機-算分計分、CPU 運算類型。
- 設計 nosql db schema 到 redis cluster 跟data modeling。
- 採用異步 IO epoll 機制,linux 底層的 user/kernel thread Event loop 數學模型 nodejs 處理頻繁 IO 的架構。
- 設計前端遊戲 SDK,包含開發文件,讓前端後端不用理會連線登入邏輯只需要呼叫api,專注在前端遊戲畫面開發,不用處理建立連線的方式, 傳輸的封包,使用 binary,減少傳輸量。
- 處理高併發連線、資料量。
- 使用 shell sceipt、Jenkins 等等工具,從單元測試,整合測試,上版,訂版,部署上測試環境。
- 設計分拆微服務架構,如分佈式交易事務控制系統,並製作微服務文件檔。
- 培訓RD教育訓練、專案管理、任務分配適合的人選、跨團隊溝通協調,與PM開會功能實作的時間週期。(開發部門、測試部門、專案經理) 。
- 【工作成就】:
- 使用 puml 跟 markdown 撰寫文件,建立由開發環境到生產環境的上版流程。
- 微服務架構設計分拆。
- 使用 nosql Arangodb ssd 每秒新增8萬筆資料,一條 websocket 可以每秒處理18萬 message,一個核心可以處理25萬req。
- 優化演算法,Golang 機率工程師開出的驗證程式執行一千萬次要兩分鐘,nodejs 可以直接跟 c/c++ 溝通協作,優化後 nodejs 演算法只需要25秒到30秒,一秒可以執行40多萬次,直接提升5到10倍的速度。
- 測試穩定度,使用 I7 8700 ram 16G Linux 桌上型主機記憶體16G百家樂,可承受8000人的48小時穩定運行測試不出錯。
- 培訓五位剛當完兵的初階工程師 RD 共同協作開發與傳授開發經驗。
- 曾經發生過 server bug 沒帶電腦回家的情況,使用手機 ssh 到公司改 code 修復 bug 上版上線主程式,完成手機 codeing 的成就 XDDD。
- 第一次建置 RD 團隊,從 0 人到 8 人。
-
- 【專案開發】:新架構開發、賭場管理、百家樂算分、會員、後台管理、查詢注單、忠誠、獎勵點數、反水、首存、代理抽成系統。
- 【工作職責】:
- 主要以 API Server 框架開發,重寫舊案改版從 C++ 現在改成 Typescript + KOA2。
- 使用 IOC,DI 等等設計模式來架構新的 api server 的 base 框架,並培訓其他同期工程師如何利用這套我開發的框架來持續開發新的功能,單元測試是用摩卡,文件整合測試用了兩種 Dredd 跟 Newman。
- 文件整合測試,以 dredd跟 newman,api 文件則使用,swagger來撰寫。
- 自動化建置就用 Jenkins 來幫忙處理 git commit 之後 自己跑測試。
- 開發使用 jslint、tslint 通常寫完一個功能測試,使用 git hook,當commit時, 會自動執行這兩種測試確保代碼符合我的預期運行。
- promotion server 架構功能開發,動態載入平台商需求,首存優惠、反水優惠、代理抽成、存款送禮等等優惠動態載入演算機制。
- 安卓手機-現場龍虎榜 operator 專用 APP 跟 api server 開發。
- 打線安卓手機開發、APP 跟 api server 開發。
- 協助舊系統 c++ QT 轉到新架構系統 nodejs api 框架上且 DB Schema 不動也不修改,符合 GLI(Gaming Laboratories International) 標準。
-
【工作成就】:
- 專案測試涵蓋率是90%以上,使用通用架構,加速寫 mock 跟測試代碼的效率。
- 尊博的賭場跟娛樂廳,使用的 api 系統 Base 框架持續被使用中且持續用來開發新的功能系統。
- 尊博的娛樂廳跟賭場的龍虎榜,operator 使用的 APP 操作系統穩定使用中。
- 撰寫良好的訓練文件,讓公司可以繼續培訓新的 RD 使用新的 base 框架來開發新的功能。
-
-
-
- 公司尾牙如果需要員工排演,表演給客戶看,或是充當服務人員,不是我所希望的工作。
- 老婆小孩在台北上班上課,目前爸媽在台中退休生活,因爸爸有肺腺癌第四期,所以希望一週內兩天的遠端工作、全薪假或輪調台中或是台北工作,但仍以公司為主。
遇颱風假我可以配合公司同事正常工作,不會硬拗放假,責任在我,應該做的皆會於時間內完成,因應專案狀況配合加班。
有幸能加入對員工慷慨的公司,會同樣慷慨回報,全力以赴。
-
興旺國際在職時期,當時提出離職,是決定砍掉重練技術,靠著我自學加上上課的輔助,至恆逸上課半年,雖比不過大學四年,但是這濃縮的課,除上課認真外,下課之後我半夜經常看原文自己靠翻譯爬文去增加自己基礎。
因個性是打破砂鍋問到底,非常好奇,想知道原理,因此每天睡眠時間都非常的少,原本上課到一半還有衝動想回去重考大學四年,考過國立資工系。但在老師建議下選擇優先進入職場磨練,再去考國立在職碩班,也因此結束課程後,成功進入精誠資訊的 android 開發部門,接受挑戰。
對寫程式的熱忱與自學能力是這些經歷佐證了,我的自信與行為。
-
-
很多很雜的心得,如果沒耐心看那可以跳過了,已經自我介紹結束了。
-
從公司新創一開始就進來了,一年內從沒有任何遊戲跟後端架構到完成15款遊戲,包含老虎機,百家樂等等,前四個月人員都還未定位招募時間,實際開發時間只有半年多一點。
帶團隊製作博弈遊戲 Game Server Micro Service 架構,主要是帶領後端工程師開發博弈遊戲,老虎機算分計分,Jackpot,多人對戰德州撲克,多人開獎百家樂等等算分,風險控制,RTP 控制。
因為公司沒有 DBA,我從 nosql db schema 到 redis cluster data key data modeling 的設計。
Node 雖然是單線程處理 event loop 但是底層遇到 IO 事件,自動使用 C++ 來處理多線程的異步 IO epoll 數學模型。
機率工程師給演算法規則,他會用 golang 來寫驗證程式,不過我們收到滾輪表之後,會用 nodejs 重寫一遍計分程式,優化演算法,golang 的驗證程式執行一千萬次要兩分鐘,優化過後的 nodejs 演算法只需要25秒到30秒,一秒可以執行40多萬次,核心計分演算法是整個程式核心,cpu 最吃重的地方,但是往往卻沒有真正好的演算法工程師來做優化,導致整個系統卡在這裡。
在 websocket 上使用c/c++ binding 的 nodejs 版本,一個 process 可以承受百萬 alive websockets 連線只吃 500mb 記憶體。
壓測老虎機連線包含 redis 跟寫入 db 注單,一個 nodejs process 可以每秒承受2000連線,每秒 spin 一次。
正常一台桌機Linux i7 16核心 16g記憶體使用 pm2 開12個process cluster 做 load balancing 可以承受 2000 * 12的同時上線服務人數,瓶頸會在 redis 需要做 cluster 跟微服務化分區服務等等。
中極 CTO 是前 Google Cluster 項目技術經理,很幸運從他身上學到很多、微服務切割的原則與判斷原則。
離開中極顧問,因為高層一些政治角力問題,老闆不給錢,所以公司被迫解散。
-
尊博科技分公司,嘉碼科技是博弈公司 目前主導一個 API Server 框架開發的案子, 主要重寫本來舊的案子從 C++ 現在改成 Typescript+KOA2。
有用 ioc,di 等等框架來設計這個 api server,單元測試就是用摩卡,文件整合測試用了兩種dredd 跟 newman,api 文件就用 swagger 來撰寫,自動化建置就用 Jenkins 來幫忙處理 git commit 之後自己跑測試。
平常開發都會用 jslint、tslint 通常寫完一個功能測試也是寫好的(目前專案測試涵蓋率是90%以上) 有用通用架構,加速寫mock跟測試代碼的效率。
api 開發完也會補上 swagger 文件的異動,因為我有使用 git hook,當我 commit 時,都會自動執行這兩種測試確保代碼符合我的預期運行。
當然還有要求測試涵蓋率必須高於80%才能 commit, 不然第一關 commit 就先逼自己要多寫這些測試, 也是未來重構等等的基礎測試保證。
e2e 測試就等跟前端整合之後, 在利用 jenkins 來保證,前端不變的情況下, 只有後端的修正不影響前端,且保證符合預期。
還有壓力測試符合需求,以上測試都成功就建一個專案包,還缺 docker 的技術來保證還原測試資料庫、在中極服務時,以實現這段。
每次有任何 bug 或是 QA 回報,都會把情境測試補上,確保不會發生重複的 bug,自我要求代碼品質。 平常單子就用公司正在用的 jira 來管理跟 git 上開單處理分支的問題還有合併等等。
懂 java 跟 javasceipt 的都知道 java 跟 javascript 就是狗跟熱狗一樣的關係 進入這家公司前,我對 javascript 不熟。 所以大概花了一個月時間先做 bug 維護,再一個月後開始開發新功能,最後寫新案子。
甚至後面又轉成 typesceipt 大概兩個禮拜就上手開始開發框架給組員來使用開發新的 API Server 對於我來說語言的轉換我是不會排斥。
-
從2015年做到2016年十月底
做過的案子大部分都是證劵相關,也有音樂類型的,畢竟是屬於接案公司,所以主管交付什麼案子就做什麼了。
我的 blog:
https://thaiwu0107.github.io/ThaiWu/
我的 github:
-
第二份工作是在一家線上博弈公司一開始應徵網頁前端 HTML 與 CSS 的開發。
美工是由美工人員提交給我版模,我負責製作成前端網頁樣式,再交給後端人員處理,主要製作活動頁面與公司首頁還有線上運動賽事周刊與博弈相關的製作。
後來因為一些因素有人離職,我就順勢接了活動企劃與管理各部門的人員工作與產品時程控管助理,變成了一個各部門的窗口。
除了製作網頁外,還負責協調各部門的時程與溝通 主要是因為網頁的製作只有在過年過節或是大型球賽才會有新的活動才需要改版,平常就沒有網頁可以做就將這些事務交給我順便教我學習,我也很高興能夠學習更多博弈相關事務跟活動規劃等等博弈相關知識。
後來有個金流部門的主管要離職,因為平常關係良好又很信任我,他就將與大陸第三方金流的申請流程與處理異常程序還有金流的一些務業窗口等等事務都教會我後才離職。
爾後來我也負責公司的金流申請與客服部,異常問題也是交由我處理還有與大陸第三方金流溝通的技巧,都是我沒接觸過的領域,我也非常開心答應接下這些任務從中摸索與學習。
-