086da96.jpg

范致宣

[email protected] •  Taipei, Taiwan

前端工程師,喜歡跟設計師密切合作並透過最新的技術實現,兼顧美觀與易用的介面以及效果。 希望自己做出的產品能夠不僅自己滿意,使用者也愛不釋手。


目前已有 3 年以上的 Web 全端開發經驗,以及 9 年以上的 Web 專職前端經驗。

技能

  • HTML5, CSS3 and JavaScript(ES6)
  • jQuery, D3.js, CreateJS,
  • AngularJS, React
  • Grunt, Gulp, Webpack, npm, yarn
  • Git
  • Bootstrap
  • GraphQL
  • PHP, Python, Perl, MySQL 

經歷

資深軟體工程師 三層肉股份有限公司, 107/07 - 現在

負責新鈴木太太、新鈴木太太後台及公司官網的所有前端部分。


資深前端工程師 升鼎科技股份有限公司, 106/05 - 107/07

負責升鼎科技開發項目的所有前端部分。


資深軟體工程師 時習數位股份有限公司, 102/05 - 106/04

負責時習數位(ParrotTalks)所有的前端部分,與後端 Laravel 配合(大多以API的形式,少數使用 Laravel view),完成設計師設計的 web app, landing page 以及 Chrome extension.


軟體工程師 慧邦科技股份有限公司, 99/02 - 102/05

全端工程師,主要使用PHP與部分Perl,負責與 flash 前端介接活動需求、製作活動網站、活動後台、數據後台、跑資料、維護遊戲 server,後期有製作 HTML5 遊戲上架 Windows Store ,並且當了組長一小段時間。


系學會資訊部長 國立中央大學通訊工程學系, 94/09 - 95/06

舉辦各類資訊技能教學活動、製作B宣(ASCII art)、舉辦中英文打字比賽以及協辦資電學院電玩大賽。


資訊社內政部長 台北市立建國中學, 91/09-92/06

平日負責硬體教學社課,寒、暑訓時除了幫忙訂便當之外也會插花教一點PHP課。

學歷

  • 國立中央大學通訊工程學系, 93/09 - 97/06, 畢業
  • 台北市立建國中學, 90/09 - 93/06, 畢業

專案(由新至舊)


新鈴木太太(前台及後台), 2017 - 現在

 

  • 使用技術:Webpack、React、GraphQL、Service Workers、Server-Side Rendering (SEO)、Express
  • 三層肉在職時期
  • 日本雜貨選物電商網站
  • 新站於 2020 年 12 月上線,新功能持續開發中
  • https://loveiizakka.com


益川資訊官方網站, 2019 - 現在

 


I Hear You Twitch, 2017 - 現在

 

  • 使用技術:ES6、WebExtension API、Gulp
  • 個人專案
  • 第一次寫跨 Chrome 跟 Firefox 的擴充功能,同一份 code 可以兩邊適用
  • 希望自己開台的時候不要漏聊天室訊息
  • 使用者數 1000 出頭 (2021/05)
  • https://github.com/pc035860/i-hear-you-twitch


嗨... 英雄榜, 2017 - 現在

 

  • 使用技術:ES6、AngularJS、Firebase Real-time Database、Firebase Cloud Functions、fuse-box、Gulp、PWA
  • 個人專案
  • 想要試試看 Firebase Cloud Functions 的小專案,特地用 Real-time Database 搭配 Cloud Functions 做出了一個可以在 Firebase 下面排隊查詢 Battle.net API 的功能
  • 網站本身主要功能是方便魔獸世界玩家查詢角色資訊
  • https://hi-armory.tw


ParrotTalks PDF隨手查, 2017

 

  • 使用技術:ES6、AngularJS、PDF.js、Sass、Webpack、Gulp
  • 時習數位在職時期
  • 除了 Chrome extension 提供載入 PDF 的功能之外,為 Chrome 以外的使用者或是比較喜歡隨手查型式的使用者,提共網頁版的 PDF即點即查 解決方案
  • https://www.parrottalks.com/pdf-reader


R葵的實況大平台, 2016


  • 使用技術:Google App Engine、Firebase、TwitchAPI、ES6、React、Redux(+ recompose, reselect)、Sass、CSSModules、Webpack、Gulp
  • 個人專案 (時習數位在職時期)
  • 為實況主小葵製作的精華影片剪輯/投票平台,可以使用 Twitch 帳號登入,後端資料使用 Firebase,部分後端使用 Google App Engine
  • 製作完成之後沒有好好推廣,基本上目前沒有人在使用
  • 製作的緣由可以查看網站內的「關於」頁面
  • 網站現在已經下線,程式碼留在 GitHub
  • https://github.com/pc035860/twitch-hl-miao11255


TimeTags for YouTube, 2016 - 現在


  • 使用技術:ES6、React、Redux、Sass、CSSModules、Webpack、Gulp
  • 個人專案 (時習數位在職時期)
  • 方便自己在 YouTube 長影片上加上時間戳記的 Chrome extension,介面很簡單不過為了跟 YouTube 頁面配合,寫起來下了不少功夫;核心的理念就是希望能夠邊看影片邊加戳記,並且最好可以不要使用到滑鼠
  • 這是第一次嘗試使用 CSSModules
  • 最近更新後可以同時支援舊版及新版 YouTube
  • 使用者數接近 4000 (2021/05)
  • https://github.com/pc035860/yt-timetag


菸酒生臉書封面產生器, 2016


  • 使用技術:ES6、CreateJS、AngularJS、Sass、Webpack、Gulp
  • 時習數位在職時期
  • 純前端完成的封面產生器,<canvas> 內的構圖由 AngularJS 建立的 CreateJS directive 完成,同時利用 Web Font 來達成不同字體輸出的效果
  • 為了讓上傳到 Facebook 之後的效果達到最好,下載的圖檔是製作中顯示圖的 3 倍放大版,由於構圖內沒有用到任何不是向量的東西,放大版不會出現任何糊掉的東西
  • https://www.parrottalks.com/note/grad-gen


ParrotTalks Reader 好讀書籤, 2016


  • 使用技術:ES6、Webpack、Gulp
  • 時習數位在職時期
  • Reader 完成後不久,配合推出的好讀書籤。特色就是點一下就能把整個網頁變成 Reader 網站內的好讀模式,並且效果比在 Reader 網站輸入網址還要好。
  • https://reader.parrottalks.com/bookmark


ParrotTalks Reader, 2016 - 現在


  • 使用技術:ES6、React、Redux(+ recompose, reselect)、Sass、Webpack、Gulp
  • 時習數位在職時期
  • 純 React 製作的英文文章閱讀器網站,搭配有即點即查(使用隨手查)以及儲存單字功能
  • 手機版的製作有與設計師特別討論,除了基本的RWD之外,也提共較適合手機的操作方式
    另外也運用了 Webpack 的 chunk 功能讓主要 container component 的載入都是非同步的
  • https://reader.parrottalks.com/


ParrotTalks 隨手查, 2016 - 現在


  • 使用技術:jQuery、Velocity.js、Sass、Webpack、Gulp
  • 時習數位在職時期
  • 與關鍵評論網國際版合作的功能(我們開發,嵌入在他們的網站),於往後的自家專案裡面也有使用到,將隨手查載入網站之後就可以使用它即點即查(或是選取查詢)的功能,也支援我們的 NLP 精準字義
  • 因為手機版採用與桌機版不同的方式來呈現結果,運用了 Webpack 的 chunk 技術來讓它只載入需要的部分
  • https://international.thenewslens.com
    點進任何文章後,點擊左側的「Translate to read fluently」即可啟動
    手機版可以在桌面板點擊啟動後,縮小視窗寬度來觀看


ParrotTalks 抄筆記 - 新增單字, 2015


  • 使用技術:ES6、AngularJS、Redux、Sass、Webpack、Gulp
  • 時習數位在職時期
  • 此 web app 提共快速查詢單字、例句並儲存到你自己的筆記本裡的功能
    當時想要漸進的踏進 ES6 & Webpack,於是先從比較有經驗的 AngularJS 下手
  • https://www.parrottalks.com/note/dict
    需登入並且有安裝 抄筆記 Chrome extension 才可順利使用


ParrotTalks 抄筆記(含 Chrome extension), 2015 - 現在


  • 使用技術:JavaScript、AngularJS、jQuery、CSS3、CoffeeScript、Sass、Grunt
  • 時習數位在職時期
  • 除了運用 Chrome extension 本身很多神奇的功能來完成複雜的功能需求之外,一旦看到不錯的 extension 我也會想辦法參考它們的功能是如何實作出來的,並且吸收為自己可以應用上的東西
  • 抄筆記直到現在還是依然有在進行開發及更新,就使用的 Chrome extension 來說是我個人的集大成之作
  • http://note.parrottalks.com


ParrotTalks網站, 2013 - 現在


  • 使用技術:JavaScript、AngularJS、jQuery、CreateJS、D3.js、CSS3、LESS、Grunt
  • 時習數位在職時期
  • 首次製作完全 Single-Page App 的網站
  • 整個網站主要採用 AngularJS framework,再搭配其它各個 library 達到需要的功能與效果
  • 將網站由原本的伺服器端 PHP 渲染,逐頁轉換成全 SPA
  • https://www.parrottalks.com


Windows Store 神來也麻將、神來也大老二 (Windows 8), 2012


  • 使用技術:JavaScript、jQuery、HTML5 Canvas、HTML5 WebSocket、CSS3、CreateJS、WinJS(Windows 8)
  • 慧邦科技在職時期
  • 神來也麻將應該是當時臺灣唯一一個在 Windows 8 上使用 JavaScript + HTML5 Canvas 製作的多人連線麻將遊戲,遊戲大廳主要採用 HTML 構成、而遊戲內則是主要由 HTML5 Canvas 構成,此專案 90% 以上的程式由我獨立完成
  • 若您有 Windows 8 系統,可以下載來玩玩看
    Windows市集中的神來也麻將:http://goo.gl/VyLe1  (更新: 網址已下架)
  • 麻將上線之後又緊接著做了 神來也大老2 的 Windows Store 版,有了製作麻將的經驗,大老2 的製作相對較快速且成熟,是我的得意之作,不過現在似乎已經沒有再 Windows Store 裡面了


神來也行動版網站製作, 2011 - 2012


  • 使用技術:PHP、MySQL、HTML、CSS3、JavaScript、jQuery、支援視網膜螢幕
  • 慧邦科技在職時期
  • 除了套用流暢的動畫效果與操作瀏覽之外,該網站在我主動提出建議並在與設計人員合作下支援了 retina-display ,更將使用時的體驗往上提升了一個層次,同時支援 retina-display 亦成為慧邦科技後來製作行動網頁的標準
  • 現在 Gamesofa 的行動版網頁已經改版過,不是我做的版本了


Facebook API 串接, 2010 - 2012


  • 使用技術:PHP、JavaScript、jQuery
  • 慧邦科技在職時期
  • 針對 Facebook 推出新版的 Dialog API ,我製作了能夠快速生產出各類型 Dialog URL 的 JavaScript library 與 PHP function (僅根據需求支援了 Feed、Login、Requests 三種 Dialog)
  • Facebook Dialogs Overview: http://goo.gl/fIcmD
    我寫的 JavaScript library: http://g.mwsrv.com/js/FBDialog.js


神來也網站改造、活動網頁程式撰寫, 2011 - 2012


  • 使用技術: PHP、MySQL、HTML、CSS、jQuery
  • 慧邦科技在職時期
  • 協助舉辦各項遊戲營運相關活動以及網站改造,與企劃、網頁設計及 Flash 工程師配合進行網頁程式與 Flash 小遊戲的製作。在我接手的時候正好是時程常常排得非常緊迫之際,但往往還是能夠化險為夷,同時練就了一身蠟燭兩頭燒時的寫程式能力
    於此時期對前端產生莫大的興趣,每每總是希望能夠在各個活動網頁上搭上不一樣的新鮮效果 
  • 神來也私訊系統:http://goo.gl/7gjB9 (須登入)
    原本神來也的私訊系統是比較類似 BBS 回覆文章那種顯示模式,將它改造成比較類似 Gmail 那樣的同訊息分組模式,接近是一個 SPA(原本觀看訊息需要載入新頁面)


魔獸世界英雄榜對應API, 2010


  • 使用技術: Python、Google App Engine
  • 個人專案 (慧邦科技在職時期)
  • 由於當時 Blizzard 並沒有開放 Armory 的 API ,故希望能夠做出以類似英雄榜網址的方式取得資訊的自製版 Armory API,輸出格式為 JSON,也支援 JSONP
  • Google App Engine 以及 魔獸世界英雄榜 改版後,沒有就沒有繼續維護


魔獸世界成就速查, 2010


  • 使用技術: Python、Google App Engine、jQuery、HTML、CSS
  • 個人專案 (慧邦科技在職時期)
  • 在 Google App Engine 上開發的魔獸世界英雄榜成就查詢器,提供快速查詢魔獸世界玩家是否有特定組合的成就
  • Google App Engine 以及 魔獸世界英雄榜 改版後,沒有就沒有繼續維護


中英文打字比賽(with GUI), 2005


  • 使用技術: PHP、Python(server)、wxPython(client)、HTML、CSS 
  • 於通訊工程學系就讀時期
  • client、server 由 Python 撰寫,PHP 負責於網頁顯示排行榜

Github 開源專案


jquery-css-mahoro


在經歷多次需要使用 CSS 動畫搭配元件的顯示/隱藏,覺得每次寫起來有點麻煩之後,整理出來的 jQuery plugin。


還順便搭配了一些之前沒有使用過的 build 工具之類的,做了新的嘗試,詳細內容可以參考我的這篇 blog 文章: https://goo.gl/6wDjkg


angular-easyfb


為了更方便的讓 AngularJS 搭配 Facebook SDK 使用而做的 module (主要是處理 FB 的 asynchronous initialization 問題),後來還加入了動態 render Facebook social plugins 的功能,可以說是比直接使用 SDK 方便很多。


此 repo 是我 github 上星星最多的 repo,並且有被使用者 PR 進官方文件(https://goo.gl/jCiEgX)裡面。


angular-highlightjs


原本是想要做另一個類似 Plunker 的專門高亮程式碼專案而把 AngularJS 串上 Highlight.js,結果意外的還算受歡迎。


angular-scroll-watch


在製作 ParrotTalks 網站期間想要使用一些搭配 scroll position 的特效,發現沒有現成合適的 module 所以自己寫了一套。


透過比較底層的方式來對 scroll position 跟 AngularJS 的 $digest 做最佳化,達到效能非常好的 scroll 效果。


ngSelect


AngularJS module 的初試啼聲作品,可以讓你靶子區塊中的任何東西都變成一個「選項」。


ngQueue


與一般的 queue module 的不同點在於結合了 AngularJS 的 $q,支援 async task,並且在 dequeue 的時候可以自動 $apply。


ngDefer


實驗性的 module,不過還是有解決到我的問題。透過跟 ngQueue 的配合,在碰到 AngularJS 不擅長的 render 大量 DOM 的時候,把 render 的行為打散成 asynchornous 的,來避開 UI freeze 的感覺。


缺點是整體完成 render 的時間會稍微往後延一點。

自傳

我出生於台北的內湖,父親在高雄工作,母親也大多時間待在高雄。我是家中的老大,與弟弟自幼即在父母開明中帶點嚴厲的教育方針中長大,鼓勵我們多元學習之外,對於我們接觸的人事物另有加以控管,使我在成長的過程中發展出非常正派的精神,在目前人生的各個階段皆以對得起自己為原則來待人處事。


國中時期因為遊戲雜誌附刊的關係而愛上了電腦硬體,後來又輾轉買了第一本電腦程式的書籍,雖然僅止於皮毛,但從此與程式設計結下不解之緣。


高中就讀於台北市立建國中學,由於學校社團風氣旺盛,對於程式設計有興趣的我便加入資訊社並不斷自修並與同儕切磋交流,高中時期為我打下了網頁、程式、Linux的基礎。後來透過社內考試成為幹部,並且在舉辦寒訓、暑訓時擔任課程講師,將自己所學分享給學弟妹們。


後來就讀國立中央大學通訊工程學系,由於本身興趣仍然是偏向資訊方面,自大二開始有較多選課空間之後我便積極選修同是資電學院的資工系所開的課程,如資料結構、演算法、XML網際網路應用與服務、作業系統等。被選為系學會資訊部長後,積極在課餘時間為系上進行小型講課並舉辦了兩屆的中英文打字比賽(第一屆無 GUI,第二屆有)。雖然不是讀資工系,但由於以上的經歷,大學時期並沒有讓我的程式能力退步,或著可以說是開啟了更多元的發展(高中時只接觸 PHP,大學有接觸 C++、Java、Python)。


在工作上,我個性隨和、好溝通、理解迅速。


在慧邦科技算是有口皆碑的一個工程師。碰到困難會主動研究各種解決方法,閱讀英文技術文件也是家常便飯(尤其是在慧邦科技做 Windows 8 那個專案是在 Windows 8 本身還在 consumer preview 的時候就開始進行)。在這個時期開始對前端產生濃厚的興趣,決定往前端工程師發展。


在時習數位,我激發了前端與英文學習的無限可能性。諸如使用 Chrome extension 閱讀PDF並查詢單字、透過書籤製作好讀版頁面 等等, 在發想跟實作上我都有舉足輕重的地位(實作確實只有我一個人)。


工作之外的時間我也不斷在吸收、關注前端新知,除了訂閱 JavaScript Weekly 及 FrontEnd Focus 之外,我也有固定付費訂閱 egghead.io 的線上影片課程,並且看到好的 Udemy 課程也會主動購買。


未來希望能夠不斷的精進技術,並在自己的工作內容中實踐與成長,持續以做出最優秀的產品為己任不斷努力。