我是 ffbli
最後任職於 Nexusguard Software Specialist, Applicaiton
畢業於台北科技大學資訊工程所碩士
我的專長是電腦科學,程式語言是我用來解決問題的工具
About
一生懸命
人生就像是一場角色扮演遊戲
在什麼時間,在什麼地方,是什麼角色,就是扮演好自己的角色
盡力去做好自已應負的責任
一以貫之
喜愛程式
每每沉侵於解謎的快感
腳踏實地,一步一腳印,在不斷重複的流程中
- 好求甚解
- 目標完成
- 驗證測試
- 持續改進
精益求精,感受到自己的成長
Summary
- Over 4 years of experience in RD management
- Over 13 years of Business & System design
- Over 16 years of experience in Web system development
- Over 4 years of industry experience in DNS
- Over 4 years of industry experience in Social network
- Over 7 years of industry experience in E-learning
- Familiar with Coding、PHP、JavaScript、Node.js、CSS、HTML、Vue
- Familiar with MySQL & MongoDB
- Familiar with Git
- Familiar with Unit Test、TDD
- Have web system security concepts include XSS, SQL Injection, CSRF
Experience
Software Specialist, Application / Nexusguard (泰鼎)網路安全科技有限公司
2017/9 ~ 2022/6
- 開發和維護 DNS Protection 相關系統和商業邏輯。
- 維護並逐步改寫舊有的無 framework 的 php + js 的系統,移植到 Node + Vue.js 前後端分離的架構,改善系統穩定和安全性問題,且藉由 Vue 可以實現現代化 UI。
- 將舊有存到 SSDB 系統資料,在逐步改寫系統時,移到 MySQL,解決 SSDB 像無人維護,不穩定等問題,且因為關聯式資料,使用 MySql 較為合適。
- 將舊有系統從 GCP 遷移到 AWS,並重新規劃佈署 server 的架構,來實現 HA、並降低 server 成本,且因移至公司主要系統同一個 VPC,來降低管理成本。
- 建立公司自有的 UI Components,達到可重複利用 Components 來加速開發。
- 將系統全面 Docker 化,且利用 docker-compose 來建立和佈署開發、Staging 和 Production 環境。
- 持續改善系統,由原本每周 1~3 次出狀況。改善到數個月一次,其中絕大多數是商業邏輯理解不同的問題。
- 利用 jenkinsfile + gitlab + docker-compose + Zoom 建立 CI/CD 自動化流程,加速開發、測試、佈署流程。
- 建立前後端開發 template 和程式規範,令所有專案可以重複利用且依循同一套準則撰寫。
- 引用 A successful git branching model 結合 Gitlab 改善開發流程。
- 利用 TDD 持續撰寫可測試程式來改善 coding quality。
- 持續 Code review 來改善 coding quality 和提升團隊實力。
Front-End Team Leader / 九星資訊股份有限公司
2016/8 ~ 2017/8
- 帶領 Front-End team 開發社群系統。
- 建立前端團隊,配合公司要採用前後端分離架構,以利一個後端 API 可以與 WEB、iOS、Android 共用。
- 重寫舊有的 php + js 前後端混合一起的系統,改採用 React + Node,以實現前後端分離,令團隊能更專注在前端技術,實現互動性較好的現代化 UI。
- 前端使用 Server Site Render 架構,以解決 SEO 問題。
- 利用 React 建立公司自有的 UI Components,實行公司 Design Guildline 的 UI,並達到可重複利用 Components 來加速開發。
- 利用 Vagrant 來建立開發環境,降低開發環境建置成本。
- 引用 A successful git branching model 改善開發流程。
- 持續 Code review 來改善 coding quality 和提升團隊實力。
- 與 OPS 團隊一起建立 CI/CD 自動化流程,加速開發、測試、佈署流程。
Web Team Leader / 台灣牛經資訊有限公司
2016/2 ~ 2016/8
- 帶領 Web team 開發公司金融和社群系統。
- 建立和改善前端、後端系統架構。
- 建立和改善開發流程。
- 開發比賽系統後台和使用 hybrid 架構的 mobile web (Node + hapi + Angular)。
- 開發 IM (Instant Messagin) 前端介面 (Vanilla JS)。
- 開發理財系統後端 API 和管理後台 (Java + Maven + Spring MVC + Vue.js)。
- Code review、Pair programming、TDD 等方式,來改善 coding quality 和提升團隊實力。
技術經理/多普達國際股份有限公司
2012/12 ~ 2015/09
- 帶領約十個人左右的 RD 團隊(包含台灣和上海)。一同開發與設計線上學習系統,系統範圍包含 Web 和 Android APP 平版。該系統約有十萬個使用者,每日約有一萬人使用。
- 整合分散的不同系統於一個系統。原先有 Social、Books、Classroom、Practice、Course、Data Analytics 六個子系統整合成一個 LMS 系統,包含新功能建立、系統架構重構、資料庫和靜態資料重新規畫、程式重建、使用 Angular 改善前端及遷移計畫。
- 改善 Social 系統 Mogodb 效能不佳且易當機問題,包含 Mongodb 索引重構,改善 Erlang 程式邏輯及查詢條件使用不佳。
- 使用 PHP + MySQL 開發線上考試系統,包含系統設計、資料庫設計、資料管理後台、統計報表、維護 Android APP。
- 利用 Node + Mongodb 收集使用者操作資訊及 MySQL Master-Slave 建立不影響 Production 的 Data Analytcs 系統,並使用 Hightcharts 繪製統計圖表。
- 利用 Node + Express 改寫原本 Social 系統用 Erlang 寫的 Backend Server,增進效能和改善 Erlang 不易維護問題。
- 使用 Elasticsearch 搜尋技術建立,線上學習教材搜尋引擎,方便使用者在各種情境下的搜尋條件,與 MySQL 比較尋搜效率大幅提升。
- 使用 H264 編碼並封裝成 mp4 做線上影音播放平台,並利用 Node + Express 建立轉檔工作排程器的 Backend。
- 開發 IRS (Classroom) 系統,建立投影片編輯後台(像 google 簡報 UI),維護 Long Polling (Python + tornado) 的 Backend 並利用 Lua 做中間層,實作線上人數和有誰在線上功能。
- 利用 Node + Express + Socket.io 開發線上即時訊息功能的 Backend。
- 維護公司 Learnmode luncher、Books、Practice、Course、Classroom 五隻 Android APP。
- 在各個學校內建立類似 CDN Server 來分散靜態資料(MP4、PDF)及 IRS 的負載,約有 7x 台 Server,並建立 Hearbeat 機制自動切換和檢查檔案機制,避免使用者無法存取資料。
- 使用 .net C# 操作 COM 元件將 Office 文件轉成 PDF 文件。
- 使用 Git + Gitlab 取代 SVN,並引用 A successful git branching model 改善 Production 和 Staging 開發流程。
- 引用 SCRUM 每日站立會議,快速了解開發瓶頸並快速解決會阻礙進度的技術問題。
- 引用看版(Kanban)方法,快速了解專案狀態及資料分享。
資深工程師/台灣數位學習股份有限公司
2008/09 ~ 2012/12
- 使用 PHP+MySQL 建立 E-learning 系統,包含企業用(TMS)、學校用(LMS)、個人用(PMS)不同領域系統。
- 利用 Wowza Streaming Engine 做線上直播系統,包含直播完畢自動轉檔成一般 Web Video Streaming 及線上聊天室(Long Polling)。
- 使用 Kendo UI 建立行動裝置網頁。
- 開發可自訂網頁區塊及樣式(跟 iGoogle 類似)功能。
- 開發後端資料分享功能,可以把所有使用此系統的教材資料,統一成一個網站。
- 跨瀏覽器開發(IE6~10、Firefox、Chrome),並利用 CSS Hacker 等技術。
- 使用 VistualDocumentRoot 建立可以直接操作開出不同網域及資料獨立的子站。
- 使用 NSIS 將(PMS + Apache + MySQL + PHP) 包裝成 Windows Installer。
- 使用 ImagicMagick 改善系統縮圖品質。
實習生/中國技術學院電算中心
2003/07 ~ 2006/05
- 使用 .net C# 開發校園行事曆系統、LDAP 查詢系統、耗材管理系統。
- 使用 Perl 模擬 Telnet 到 Cisio Switch/Router 存取 Netflow 資料,並利用 Perl CGI 建立網頁瀏覽功能。
- 使用 Perl CGI 建立一個自動化的宿舍管理系統,包含建立白名單和自動鎖 IP/MAC 功能。
Education
台北科技大學/資訊工程所/碩士
2006 ~ 2009
中國科技大學二技/資管所/學士
2003 ~ 2006
中國科技大學五專/資管系/副學士
1998 ~ 2003