About

我是 ffbli
最後任職於 Nexusguard Software Specialist, Applicaiton
畢業於台北科技大學資訊工程所碩士
我的專長是電腦科學,程式語言是我用來解決問題的工具

一生懸命

人生就像是一場角色扮演遊戲
在什麼時間,在什麼地方,是什麼角色,就是扮演好自己的角色
盡力去做好自已應負的責任

一以貫之

喜愛程式
每每沉侵於解謎的快感
腳踏實地,一步一腳印,在不斷重複的流程中

  • 好求甚解
  • 目標完成
  • 驗證測試
  • 持續改進

精益求精,感受到自己的成長

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

Projects

Nexusguard (泰鼎)網路安全科技有限公司

DNS Protection

DNS Protection

跟 DNS 相關的 DDoS 防護服務

角色:開發負責人

負責項目:

  • 前後端開發及維護
  • 重構系統,增進穩定性、安全性及可維護性
  • 資料庫設計
  • 整合公司其他系統

Hubble

Hubble

即時監控全球 DDoS 情況

角色:成員

負責項目:

  • 前端開發及維護

九星資訊股份有限公司

Deepblu 社群平台

Deepblu 社群平台

類似 Facebook 的潛水主題社群平台

角色:前端開發負責人

負責項目:

  • 前端開發
  • 改寫成 React SPA
  • Server Side Render 解決 SEO
  • Google Map 相關應用

台灣牛經資訊有限公司

FDT操盤手

FDT操盤手

使用實際行情的股票、外匯、期貨、虛擬交易平台,結合比賽和社群功能,提高使用者粘著度

角色:前後端開發人員

負責項目:

  • 後端 API 開發 & 後台前端開發
  • 資料庫設計
  • 程式重構

FDT財富管家

FDT財富管家

多股市交易,多銀行資金管理和理財顧問交流

角色:前後端開發負責人

負責項目:

  • 後端 API 開發 & 後台前端開發
  • 資料庫設計
  • 開發 IM (Instant Messagin)

多普達國際股份有限公司

LearnMode 學習吧

LearnMode 學習吧

將 Dopod 過去的系統整合,原本只能由平版存取,開放到網頁,讓更多人可以。新增個人學習管理 & 學習履歷紀錄、UGC 開課功能 & 課程管理、線上看影片、書籍、考試、教材搜尋、影片轉檔、MS Office 轉 PDF、Google & Facebook 整合、Mobile Web、SEO 等功能。

角色:開發負責人

負責項目:

  • 系統架構設計
  • 資料庫和靜態資料重新規畫
  • 程式重建
  • 遷移計畫
  • 轉檔排程器
  • API 開發
  • 維護 Android APP

Classroom (IRS 即時反饋系統)

Classroom (IRS 即時反饋系統)

提供老師在上課中使用的 IRS 即時反饋系統,讓老師和學生能夠在上課中能更有趣互動,使上課不會無聊。可以使用 App 或 Web 同步投影片、同步手繪、即時問答 & 投票器提供老師在上課中使用並有後台教材管理。

角色:開發負責人

負責項目:

  • 系統架構設計
  • 資料庫設計
  • 建立投影片編輯後台(像 google 簡報 UI)
  • 維護 Backend
  • 利用 Lua 做實作線上人數和有誰在線上功能
  • Cache Server 分流
  • API 開發
  • 維護 Android APP

Practice (線上考試工具)

Practice (線上考試工具)

提供學生線上考試和老師指派測驗,並能即時獲得測驗結果和統計,錯題解析並有自動和手動批改及後台出題和考卷管理功能。

角色:開發負責人

負責項目:

  • 系統架構設計
  • 資料庫設計
  • 資料管理後台
  • 統計報表
  • 維護 Android APP
  • API 開發

資料統計後台

資料統計後台

Dopod 系統使用情形資料統計後台。

角色:開發負責人

主要功能:

  • 系統架構設計
  • 資料庫設計
  • API 開發
  • 統計報表

Dopod 形象官網

Dopod 形象官網

角色:主要開發

負責項目:

  • 全部

Books (電子書閱讀工具)

Books (電子書閱讀工具)

讓老師可以提供學生上課和補充教材的電子書閱讀工具。

角色:開發負責人

負責項目:

  • 系統架構設計
  • 資料庫設計
  • 資料管理後台
  • API 開發
  • 維護 Android APP

Course (影片播放工具)

Course (影片播放工具)

讓老師可以提供學生補充教材的影片播放工具。

角色:開發負責人

負責項目:

  • 系統架構設計
  • 資料庫設計
  • 資料管理後台
  • API 開發
  • 影片轉檔
  • Youtube 整合
  • 維護 Android APP

Android Launcher

LearnMode launcher

整合社群概念來引發學生學習興趣,其主要功能跟 Facebook 相似。

角色:維護

負責項目:

  • 改善系統 Mogodb 效能不佳且易當機問題
  • 改寫成 Node.js
  • 後台維護
  • API 開發
  • 維護 Android APP

LMS 展示

LMS 展示

用來展示 LMS 系統和 UI 設計,無實際功能

角色:開發人

負責項目:

  • 全部(含 UI 設計)

台灣數位學習股份有限公司

PMS, Powercam Media System

PMS, Powercam Media System

改名為 FMS

是個適合學校、企業或個人安裝的多媒體影音平台,支援 Powercam 及一般常見格式的影片上傳並轉檔成 MP4 來適應各個不同的閱讀平台。也支援相簿、PDF、MP3、文件等多種不同格式的多媒體上傳、另外也有線上直播等功能。

角色:開發負責人

負責項目:

  • 系統設計規劃及開發
  • 可自訂首頁區塊及 css,跟 iGoogle 類似,有訂閱 RSS、html 區塊、slide 播放...功能
  • 線上觀看多媒體 (Video、PDF、MP3、相簿、文件)
  • 行動裝置頁面
  • Powercam 上傳並轉檔
  • 演講網轉移至 PMS
  • PMS windows 安裝包 (整合 apache+php+mysql)
  • 資料可以分享至 powercam.cc
  • PMS 自有訂閱(類似 RSS)
  • PMS 分散式結構,將靜態檔案轉移及近端 server 由近端 server 供使用者下載
  • PMS 子母架構,由 portal 母站,主控可以建立多個不同的 PMS 子架並將資料集中在母站,例如大學可以為各個不同系所建立子站,學生由母站進入
  • SEO
  • 客戶 server 維護
  • 系統更新機制

PowerCam.cc

PowerCam.cc

已轉移至 www.camdemy.com

MOOCS 概念的雲端分享平台,主要功能為提供講師可以製作自己數位學習教材分享(或販賣)給大家觀看的平台,並以 PowerCam 錄影(或影片)教材上傳並將其轉成 MP4 影片檔,給使用者直接於 Web 觀看,並支援 iPhone、iPad 及 Android 等行動裝置觀看。

角色:開發成員

負責項目:

  • 匯整 PMS 公開分享影片
  • 影片轉檔
  • mobile device 專用頁面
  • SEO
  • 資料轉移至 www.camdemy.com

iLMS, Learning Management System

iLMS, Learning Management System

專為學校所設計的線上學習管理系統,主要功能有學習管理、課程管理、社群管理、ePortfolio、課程地圖等。

角色:開發成員

負責項目:

  • ePortfolio & 個人 blog
  • 課程地圖
  • 分組作業
  • 可自訂首頁區塊及 css
  • MP4 轉檔
  • SEO

TMS, Training Management System

TMS, Training Management System

為企業所設計的訓練管理系統,主要功能為課程管理,內外訓、學習進度追蹤、問卷、課程認證與稽核。

角色:開發成員

負責項目:

  • 行事曆
  • 公文流程
  • MP4 轉檔

知識管理 Blog

知識管理 Blog

知識管理為主的 blog 平台,每個 user 都有自己首頁,可上傳 PowerCam 及各種多媒體檔案

角色:開發成員及維護

負責項目:

  • 由純 ajax 網站重寫改為傳統架構(當時 google seo ajax 網站還未抓取資料)
  • 投票&活動功能
  • Server 維護
  • SEO

PowerCam

PowerCam

已改名為 EverCam

桌面及簡報錄影軟體

角色:成員

負責項目:縮圖演算法調教

其他

Coursera Materials Downloader

Coursera Materials Downloader

可以快速下載 Coursera 課程內容的教材,包含了影片、字幕和投影片

lite ng (暫稱)

lite ng (暫稱)

喜歡 AngularJS 的 data biding 和 interface
喜歡 React 只做 MVC 的 V 專心在 UI 上
試著寫一套這樣想法的 Javascript framework

asyncUpload

asyncUpload

一個使用 Ajax 的 File Uploader 可以非同步上傳檔案並客製 Progress bar

tagInput

tagInput

一個類似 Linkedin 的 skills 的 tag 輸入元件,使用 Angular、React、Jquery 等不同方式實作。

asyncJob

一個 http base 的 async 工作排程器
為了有較好的 UX 體驗,可以讓前端網站將需要長時間工作的事項,丟進排程器,讓其工作在 Server 背後執行,前端即可立即返回,使用者就可以不用等得
例如:使用者上傳影片並轉檔

tagInput

Robot program game

用程式操作機器人的遊戲,以前曾經玩過樂高機器人,覺得是很適合學寫程式的工具,不過樂高機器的價錢偏高,也不一定可以讓學校引進,所以有很多這類的網頁程式遊戲,例如 Code.org、CodeCombat,變的只要有網路,就能使用,所以就試著寫一個,當然現在還有一些更先進的玩具,整合 Arduino,操作搖控車、直升機...等,更有趣更好玩,例如 Webduino、Tickle,發揮 Maker 精神。

WordToPDF

利用 com 元件,將 word 和 powerpoint 轉成 PDF,使用 MS 自身的元件,轉出的效果較 OpenOffice 來的好

postJson

一個簡單的 jquery plugin,request API 時使用 ajax post 傳送 application/json 資料到 Server

台北科技大學研究所

D2MCE, Dynamic Distributed Mobile Computing Environment

D2MCE, Dynamic Distributed Mobile Computing Environment

行動裝置上建立分散式共享記憶體的平行運算平台,提供函式庫,藉以減少運算時間、提供負載平衡、減少電源消耗…等,並使用 PXA270 做為實驗平台。撰寫 Benchmark 量測效能,後來被學弟拿來做臉部識別並取得效能上的提升。

使用 D2MCE 製作對戰貪食蛇

使用 D2MCE 製作對戰貪食蛇

連線對戰的貪食蛇遊戲,利用 D2MCE 的 DSM 容易使用的特性,僅需更改少量的程式即可以將單機遊戲變成對戰遊戲。做遊戲主要是測試 D2MCE 效能和資料的正確性。

安全隨身罩(Security Taken with Yourself, STY)

安全隨身罩(Security Taken with Yourself, STY)

功能:行動加密裝置、將封包加密

Creator XScale-PXA270 為開發板,主要功能有電腦透過 STY 與其他電腦加密資料傳輸、在STY上建立 Web 管理後台,設定網路環境、透過 RS232 交換金鑰。

Robot Search System

Robot Search System

功能:利用機器人尋找路徑並繪製地圖

利用機器人尋找現實上欲到達目標之各種可能之路徑,並繪製地圖。目標之地點可能是某樣欲尋找東西,或是某遇難者。但沿途可能潛在各種危險,或是人類無法行走,所以藉由機器人來幫助人類探索。

Camera Mouse

Camera Mouse

利用 OpenCV 的 CamShift,藉由 Camera 影像擷取追蹤物件。當物件移動時,便會控制 Windows 的滑鼠游標,模擬滑鼠操作。藉由此技術便可以發展一些影像動作遊戲或是提供行動不便者另一種操作電腦的方式。

中國科技大學

校園行事曆

校園行事曆

簡單的校園行事曆。給各行政單位可以同時登錄新學期的行事曆。

LDAP Mail

LDAP Mail

LDAP(Lightweight Directory Access Protocol)此系統主要是提供校園內某些單位利用 LDAP 快速寄送 mail 到所指定的老師及學生,只需要在 Excel 內提供姓名便可以自動查詢該人員的信箱,並可以寄送 mail。

耗材管理系統

耗材管理系統

電算中心因有包含全校電腦維護,固有電腦零件及周圍物品的採購,為了能夠有效的記錄物品的使用記錄,故建置此系統。

Netflow

Netflow

使用 Perl 模擬 Telnet 到 CISCO Switch/Router 存取 Netflow 的流量統計資料,並整理顯示於網頁上方便查詢。做為校內網路是否有異常之依據。

宿舍流量管理系統

宿舍流量管理系統

自動化的宿舍管理系統,包含建立白名單和自動鎖 IP/MAC 功能。

醫療自動排診系統

醫療自動排診系統

功能:一般網頁、行動裝置介面、管理者介面(均包含掛號、排診、查詢、醫師班表等功能)

畢業專題,功能包含掛號、排診、查詢、醫師班表等功能 及行動裝置介面(WAP)

RPG 遊戲系統之建構與研究

RPG 遊戲系統之建構與研究

用 C++ 和 DirectX 8.0 開發 RPG 遊戲