36024_106558492726157_8084906_n.jpg

Tony

我叫做Tony,本名是謝東桂。是個喜歡邏輯且希望能夠一個步驟做到許多目標,不喜歡多餘的事情。

從小是個很喜歡數學的小孩,數學可以用邏輯來推理出很多答案,也讓我間接培養了思考邏輯的能力。在單親家庭且獨子的生活環境下長大,使我有獨立自主的能力,秉持這樣的能力讓我獨立完成App專案且僅使用一個半月的下班時間。因為喜歡學習新知及挑戰更多事物,所以常常上網查詢相關技術及獨立在外接case。

東南科技大學工業工程系畢業 

目前職業:C++ 、App雙系統軟體工程師

Skills


C++ (IDE:Vim)

  • 實作 FFmpeg 硬解、軟解在 Android 和 iOS 上

  • 實作 OpenGL 在 Android 和 iOS 上

  • 實作多執行緒環境

  • 暸解 Socket (Bind IP、Select 功能)

  • 暸解語法並實作過 CMake、Make 檔案

  • 會使用 Vim 的 CSCOPE 快速理解大型專案
  • 熟悉 Vim 基本指令方便快速開發專案

  • 暸解操作 Pointer Variable


Shell Script

  • 熟悉暸解語法並實作過多個腳本


Android (IDE:Android Studio)

  • 瞭解Design Patterns (e.g. MVC)

  • 熟悉Opencv 影像辨識功能且實作過

  • GCM訊息通知功能

  • Bluetooth / Beacon 連接及傳送訊息

  • 照相、掃描QRcode功能實作

  • API功能介接實作
  • Aop功能實作(無痕Track User資料)
  • Hot Fix熱修復功能(使用Numa套件)

  • 實作也熟悉RegularExpression語法

  • Listener Pattern(解決Asnyc時間問題)

  • 多語系功能實作

  • 熟悉Gradle工作流程

  • 實作過Java code跟Html溝通

  • FaceBook、Google登入實作

  • 上架App專案

  • 使用Su權限指令
  • 實作Content Provider
  • 實作Broadcast傳送及接收對其他App


iOS (Objective-C、Swift, IDE:Xcode)

  • 瞭解Design Patterns (e.g. MVC)

  • 熟悉Opencv 影像辨識功能且實作過

  • 了解使用Block技術

  • APNS訊息通知功能

  • Bluetooth / Beacon 連接、讀取、寫入資料

  • 掃描QRcode功能實作

  • AutoLayout功能實作

  • Table View介面實作

  • GCD Timer功能實作(多執行緒功能)
  • Delegate功能(解決Asnyc時間問題)
  • 熟悉RegularExpression語法

  • 熟悉CocoaPods Syntax
  • 多語系功能實作

  • FaceBook、Google登入實作

  • 上架App專案


CSS3 / Html5 (IDE:Vim)

  • 暸解基礎Tag及符號
  • 瞭解RWD方式
  • 瞭解Animation做法
  • 熟悉Margin屬性變動
  • 熟悉vh、vw單位來適應各尺寸螢幕
  • 熟悉position屬性設定效果
  • 瞭解浮動後的屬性變化
  • 熟悉Element顯示種類差異


JavaScript / jQuery (IDE:Vim)

  • Webassembly (FFmpeg、FAAC) 解碼 H264、H265 影像

  • 使用 WebGL 將影像資料畫到 Canvas 上顯示

  • 封裝影像資料成 MP4 格式並備份到電腦

  • 瞭解基礎方法宣告及實作
  • 瞭解prototype屬性使用

Git 版本控制

Git 熟悉 commit、branch、checkout、merge、 reset、push、pull 等指令

SQLite

  • 熟悉基礎Crate Table、Insert、Update、Delete、Select

  • 熟悉大多進階功能,如:Foreign Key、column-constraint、Left join、Inner join、Add a new column、Check schema version

  • 有實作一個方便使用大多數功能的SQLite3 Library

開發經歷 (目前開發了1個C++專案、6個iOS專案、4個Android專案)

C++專案目錄

PeerSDK (iCatch)

這是在可取國際公司負責的C++專案。主要用於使用HTTP方式跟後端拿取資料。

  • 使用多執行緒方式增進效能
  • 使用 FFmpeg 硬、軟解 H265、H265資料
  • 使用 OpenGL 畫出影像
  • 封裝影像資料成 Mp4 格式
  • 使用 Make 結合 Shell Script 及 CMake 語法,編譯出 Android 及 iOS Library

Android專案目錄

SoCatch (iCatch Inc.)

這是在可取國際公司負責的App。主要用於串接使用 FFmpeg 解碼H264、H265影像、PCM、ADPCM聲音輸出、聲音資料轉成ADPCM。使用 OpenGL 將影像顯示在螢幕上。封裝影像資料成 Mp4 格式備份到手機、將影像資料轉成png或jpeg存到手機。

  • 使用 JNI 與 C++ 溝通
  • 使用 P2PTunnelAPI 實作 P2P 連線
  • 輸出 PCM 聲音
  • 使用 Variant 建立 OEM 專案

VZ TAIWAN 智慧觀光 (資策會)

這是在第二個公司資策會大數據所時做的,主要是使用觀光局景點資料,在這個專案我主要實作了Detail頁、在地玩互動裡的照相跟藍芽功能、品牌設計頁。

  • 實作接收Beacon功能
  • 實作照相機功能
  • 實作Nuwa熱修復功能(使用Gradle工具)
  • 實作Aop技術(用於User Track)
  • 實作Side Menu(側邊滑入欄)
  • 實作Zbar QRcode功能
  • 實作多語系功能
  • 上架App

LuckyPa (資策會)

這是我在外面第一個接的case,這也是獨立自己完成的專案。這個專案主要是使用Bluetooth Server技術來實作開啟停車場閘門出入口,大約花費一個月時間完成該專案。

  • 獨立完成
  • 實作Bluetooth Server
  • 實作SlidingUpPanelLayout介面(由下往上滑出畫面)
  • 實作解讀儲存在手機中QRcode資訊
  • 實作MessagePack加密
  • 實作xor加密
  • 實作JWT加密
  • 實作FaceBook、Google登入
  • 實作Google GCM功能
  • 實作Google Analytics功能
  • 實作Google Map功能
  • 實作Google Location功能

發票王 (IGPSD)

這是在第一個公司IGPSD時開發的,是第一個且獨立完成的Android專案,藉由掃描發票上QRcode後取得發票資訊,有用Decode QRcode方式或使用財政部發票Api方式兩種方式取得。取得後有使用couchbase-lite-android套件將資訊存入資料庫。 

  • 獨立完成
  •  實作QRcode功能
  •  實作寫入資料庫功能

iOS專案目錄

SoCatch (iCatch Inc.)

這是在可取國際公司負責的App。主要用於串接使用 FFmpeg 解碼H264、H265影像、PCM、ADPCM聲音輸出、聲音資料轉成ADPCM。使用 OpenGL 將影像顯示在螢幕上。封裝影像資料成 Mp4 格式備份到手機、將影像資料轉成png或jpeg存到手機。
  • 匯入自建的 framework 
  • 使用 P2PTunnelAPI 實作 P2P 連線 
  • 輸出 PCM 聲音
  • 導入其他專案為 Library 方便建立OEM專案

發票王 (IGPSD)

這是在第一個公司IGPSD時開發的,是第一個寫的App,功能跟實作跟旁邊的Android版本一樣。 
  • 實作QRcode功能
  • 實作寫入資料庫功能
  • 實作Side Menu功能

風獅爺商店街 (IGPSD)

這也是在第一個公司IGPSD時開發的,主要是顯示金門風獅爺商場上的商品資訊及場地資訊,大概花費1個半月時間。
  • 實作Table View介面
  • 使用AutoLayout技術
  • 實作APNS功能
  • 實作多語系功能
  • 上架App

Hunter BTT (VigorCloud)

跟美國Hunter公司合作開發的藍芽控制灑水器,此專案主要使用了Bluetooth通訊協定進行讀值、寫值來控制灑水器。
  • 使用Swift語言開發
  • 實作Bluetooth功能讀值、寫值
  • 實作RTL語言(Arabic、Hebrew)顯示畫面
  • 實作自定義Picker View來顯示數值的單位
  • 點選輸入框時,將鍵盤自動貼齊當前輸入框底部

MommyCare (VigorCloud)

跟台欣生物科技公司合作開發的計算女性安全期的App。搭配使用的藍芽溫度計讀取當下測量到的溫度後,進行安全期演算法預估出未來六個月的安全期。
  • 使用Swift語言開發
  • 實作Opencv 影像辨識功能
  • 實作Bluetooth功能讀值、寫值
  • 實作折線圖畫面
  • 實作即時更新和增長溫度圖表

ComfortIndex (VigorCloud)

跟台欣生物科技公司合作開發的監測環境空氣品質的App。搭配使用的藍芽監測器讀取當下環境空氣的溫度及濕度資料,計算出濕熱指數(Humidex)判斷當前環境空氣品質。
  • 使用Swift語言開發
  • 實作Bluetooth功能讀值、寫值
  • 實作點陣圖畫面



Experience


大學時期 2010/09 ~ 2014/06


大學三年級時開始覺得自己的本科系在未來沒有什麼好出入,所以當時就自己思考了之後想做的事,最後到了巨匠開始學習寫程式方面的課程。

  • 開始巨匠課程,學習Android跟ios系統開發

IGPSD任職 2014/12 ~ 2015/07


這是我的第一份工作。因為這家公司是個新創公司,所以我幾乎要處理大大小小的事,在這段期間我培養了雙系統的開發基礎

  • 實作了2個ios專案及1個Android專案


資策會任職 2015/09 ~ 2017/07


這是我的第二份工作,主要是撰寫Android專案。在這個時候我遇到了一位資深工程師組長,他帶領我學習了一些優化code的方法,有關使用Promise來處理異步任以及使用Eunm使用在switch case上,讓程式碼可讀性更高。也讓我實作較深入的技術,比如使用Gradle實作熱修復功能或是使用Aop切入程式碼來監聽使用者紀錄

  • 學習MVC架構開發專案

  • 實作一些艱深任務(Aop、Nuwa) 打深了程式可讀性重要性及做法
  • 獨立接case


VigorCloud(雲晟科技公司)任職 2017/09 ~ 2019/10


在這家公司時,因為已經有了一些工作經驗,所以在這家公司上班時有帶過兩個新人進入職場,在過程中學習到如何跟新人溝通並教導他們如何快速解決問題及專案開發優化。也碰巧有遇到主管去度蜜月,我接手了一些主管相關工作,像是專案進度規劃及面試應徵者的工作,增加了一些主管職位經驗。

  • 教導新人進入職場
  • 擁有面試應徵者經驗
  • 規劃專案進度流程

iCatch Inc.(可取國際股份有限公司)任職 2019/11 ~ 2022/10


因前一家公司跟這家公司合併後,我也一起加入到這家公司。在這家公司時,有實作有關Android的su權限相關的指令,如開關機、點擊手機上的某個Location以及模擬按下實體返回鍵,也有學習到如何在Android上實作Content Provider、兩個App間使用Broadcast傳遞資訊。

之後我也有接手一個使用C++的SDK的專案,用於跟後端透過HTTP方式拿取資料,也有使用FFmpeg解碼H264、H265影像資料,接著使用OpenGL方式畫出影像到螢幕上。

然後也有開始接手Web前端的工作,有使用最新的Webassembly技術將FFmpeg轉成可在Web前端使用。影像資料用FFmpeg解碼後,再用WebGL畫到Canvas上。接著也有完成將影像資料轉成MP4格式在Web端下載下來。

原本有打算接手開發Firmware,所以有使用過Virtual Box建立Linux環境,並使用Command Line管理Linux。Firmware是由多個Process組成,而每個Process會用特定的Make Target編譯出來,所以中間也接觸了解了Make語法。

  • 在Android開發中使用su權限指令
  • 在App之間使用Content Provider及Broadcast溝通訊息
  • 熟悉了解C++語法
  • 使用FFmpeg解碼H265、H265影像資料
  • 使用OpenGL、WebGL畫出影像
  • 使用Webassembly技術開發Web前端功能
  • 使用Virtual Box建立Linux環境
  • 熟悉了解Command Line管理Linux
  • 熟悉了解語法並實作過Make File
  • 熟悉了解語法並實作過CMake File
  • 熟悉了解語法並實作過Shell Script File





   

What can I do for you?


不易出錯的APP

熟悉app流程事件,瞭解物件的指標特性,嚴謹的資料判斷。


良好的程式編寫

了解code的Design Patterns,目前有實作一個活用性高的HTTP Request Library。


熟練IDE工具

知道內部Instruments工具拿來做優化App,活用LLDB、ADB指令來迅速找尋Bug。


擅於搜查問題

懂得使用英文敘述方式找出對應的解答,勤於看英文官方文件,直擊核心問題點。


瞭解系統架構

知道ios及android底層系統架構及技術,便於找尋合適的Library及可能發生問題的地方。


自傳


過去到現在


目前總共實作了5個ios專案及3個Android專案,且有一個獨立完成開發專案的經驗,擁有豐富的App開發經驗,對於App的流程控制有一定的瞭解。


本身不是本科系出來的所以常在網路上自學及探討程式語言,最近了解到程式語言的編譯過程為高階語言藉由編譯器(或直譯器)轉化為低階語言(機器語言),低階語言在直接對處理器執行命令,在電學上稱之為Electromagnetic pulse(電磁脈衝)。


自己有利用邏輯能力做了一個Library,來加強寫code的速度及可讀性,以達到最佳化Coding時間,也便於日後接case和開發專案能夠更加快速。


對未來期許


希望能夠越來越深入了解Code的原理,最終願望是可以獨當一面,創造更多軟體世界的可行性、多樣性,讓自己成為軟體世界的貢獻者之一。