Nelson 寫些 iOS 開發的東東

Hire Me

Github / GitHub Awards / LinkedIn / Blog

  • 10年以上工作經驗,6年以上 iOS App 開發經驗
  • 熟悉敏捷開發流程
  • 熟悉如何優化與重構軟體架構
  • 熟悉如何使用版本控制系統
  • 樂於分享開發經驗,有自己的部落格
  • 喜愛開放原始碼,可參考我的 GitHubGitHub Awards 頁面
  • 碼天狗技術週刊的共筆作者
  • 資訊工程背景
  • 語言能力:中文(精通)/ 英文(尚可)

技能

Objective-C, Git, Blogging

工作經驗

EscapeX LIMITED (2017 年 6 月~現在)

軟體經理

資廚管理顧問股份有限公司 (2015 年 11 月~2017 年 5 月)

iOS 技術主管,資深 iOS 開發工程師

iCHEF 是一套由餐廳開發給餐廳使用的 POS(Point of Sale) 系統,它以輕巧便利的 iPad 取代了傳統龐大笨重的主機。它的客戶數每年以倍數成長,目前已經有超過 2200 家餐飲業者使用,業務已延伸到東南亞各國。

成就與責任
  • 提高團隊整體實力(帶頭撰寫文件、訂定程式碼規範、提高 Code review 強度、教導 Git 使用方法)
  • 調整程式架構,並修正多處記憶體洩漏問題,提高穩定性與彈性
  • 設計下一代產品與 SDK 架構
  • 面試 iOS 工程師
負責專案
Local Network SDK

iCHEF app 可以同時在多台 iPad 執行,其中一台是主機,其餘的是子機。此外 iCHEF app 也要能在沒有外網連線的情況下運作(內網連線是必須要有的)。

Local Network SDK 提供了方便的介面讓主機跟子機溝通,它使用 Apple 的 Bonjour 服務來廣播主機位址以及讓子機找到主機,發現彼此之後就建立 socket 連線溝通。

Redux SDK

Redux 是一個用來處理資料變化的框架,它包含四大元件:State、Store、Reducer、Action。它規定 只有單一資料來源(也就是 State),只有 Reducer 可以修改資料,以及單向資料流

Redux SDK 實作了 Store 元件,並定義了 State、Reducer、跟 Action 元件的介面,讓開發者可以專注於如何設計與實作這三個元件就好。

Printer SDK

iCHEF app 會傳資料到印表機,這些印表機可能是不同廠牌或不同型號,而各家廠牌都有自己的 SDK。開發者可以透過這個 Printer SDK 取得印表機的資訊以及將列印資料傳給印表機,而不用去擔心各家廠牌 SDK 的差異。

iCHEF 3 Architecture

在設計 iCHEF 3 架構的時候我們有幾點要求:

  1. 主要功能模組化,可以很簡單就加入或拔除。
  2. 單一資料來源,避免多重資料來源或是資料狀態不可預期。
  3. 主機跟子機能輕易地同步資料。

美商 SpoonRocket 台灣分公司 (2014 年 6 月~2015 年 8 月)

iOS 主管,資深 iOS 開發工程師

SpoonRocket,出自 Y-Combinator 的新創公司,總部座落於加州柏克萊,立志提供平價、高品質、且快速送達的餐飲外送服務。

  • 管理與面試 iOS 工程師
  • 建立與維護三款 APP,給顧客/司機/派送中心使用
  • 建立程式碼規範,產出具有一致性的程式碼
  • 調整程式架構,提高穩定性與彈性
  • 與後端合作,設計有彈性的 API
  • 協助設計團隊規劃介面與功能
  • Growth hacking,三個月內讓來自手機的營收成長 50%,半年內讓 app 跟 web 的使用者比例達到 1:1

寶利拾(Polydice)股份有限公司 (2013 年 7 月~2014 年 6 月)

iOS 開發工程師

寶利拾的產品是「iCook 愛料理」,是全台最大的食譜分享網站,擁有超過十萬道食譜。

  • 維護與開發 iOS app
  • 調整舊有程式碼架構

勝華科技,軟體事業部 (2011 年 11 月~2013 年 6 月)

軟體工程師

勝華科技的一個全新事業部,專注在開發網路服務與手機 App。

  • 管理 iOS 及 Android app 開發團隊,並訂定開發時程
  • 共同訂定產品規格
  • 導入 Git 版本控制系統與開發流程
  • 獨立設計與開發 iOS app

同事評價

High level senior iOS engineer who helped us set up the proper infrastructure around the development and distribution of our iOS app, and made the right architectural decisions for the platform. His depth of knowledge and expertise in the iOS ecosystem is a huge value add on any team.

- Anson, CTO @ SpoonRocket

Very accountable colleague that you can deeply trust on fixing shit things and designing solid architecture. Deep knowledge and strong background, highly recommended.

- Xdite, Engineering Manager @ SpoonRocket

An experienced iOS developer and mobile team leader - he has a strong knowledge base about mobile app and also can work in productive way. When we got mess in our apps, he only spent half year for rebuilding 3 apps. What an amazing skill. Thanks Nelson.

- Alex, Engineering Manager @ SpoonRocket


Has solid knowledge of iOS development & related topics, and could pick up things quickly. More importantly, he is able to apply these skills to company projects, and also contribute to open source projects.

- Richard, CTO @ iCook

An exceptional software developer and always delivering high-quality application and code with his passion. With solid knowledge and experienced skills, Nelson made our app very smooth and reliable to our users. He also has good communication skill and always pay attention to details so that he can be a good team player on our iOS development team. I'd happily work with Nelson and recommend him to anyone looking for a senior iOS developer.

- Lawrence, Co-Founder @ iCook

作品集

更多作品請參考我的 GitHub 頁面

  • CHTCollectionViewWaterfallLayout

    • 讓開發者以類似 Pinterest 的瀑布流方式呈現資料,它在 GitHub 上得到 3K+ 個星號,包括 Flickr、GroupMe、Tumblr、Funliday 以及其他 APP 都使用了我這個作品。
  • AutoHighlightSymbol

    • Xcode 的 plugin,當選中某個變數的時候,同一個變數都會自動加上背景高亮度。當想要追蹤某個變數在函式的哪些地方被用到時,這個 plugin 就會非常有用。
  • NSTimer-Block

    • 為 NSTimer 加上 Block 能力,避免常見的 memory leak 問題。