Profile 00 00@2x

楊庭彰


我是楊庭彰,今年28歲,從事後端工程師工作經驗5年,對於新鮮事務採取開放心態,希望能多學習關於後端工程師業務相關各種不同知識。自知非本科系出身,工作閒暇之餘也會補充研究資料結構與演算法、Design Pattern等相關新知。近期也會參與工作上沒有使用到的技術研討會。

自傳

    我今年28歲,就讀台灣大學數學系於2018年6月畢業。就學期間對於數理以及電腦領域都是比較擅長且有興趣的。

    畢業後有機會進入遊戲公司從事機率工程師一職,也開始接觸部分遊戲後端業務,同時接觸到python與PHP,後轉職後端工程師,使用PHP進行遊戲server開發及部分網頁後端業務,也負責使用python製作一些工具供開發過程使用。

    第二份工作接觸網路SDN領域,接觸網路OSI 7層相關知識(主要2、3、4層),熟悉網路封包流動表操作,以及對linux command line/shell script有更深了解,在專案部分也能夠自己獨立設計案子,熟悉資料庫在專案上使用,以及部分虛擬機環境布置,也有機會在公司導入Laravel框架,對於後端網頁RESTful API開發更加熟悉。

    第三份工作進入蝦皮operator開發團隊,開發及維護產品幫助內部作業人員提升作業效率,期間接觸python開發web api框架及相關套件工具,除了網頁後端外也接觸到CI/CD、docker、ORM/ODM等與後端開發相關知識但先前沒有碰過的技術。

    第四份工作在雲海接案公司主要案子為開發後台系統,在這份工作更熟悉時程規劃,接觸敏捷開發(Scrum),同時對於自組Raw SQL以及ORM(Laravel Eloquent)使用更加熟悉,在這家公司也開始固定的把寫測試所需時間加入開發時程估算。開發時使用Docker,對於寫Dockerfile/docker-compose.yaml檔更熟悉。

    第五份工作在恆遠科技作為主要開發以及資深工程師,除了大多數功能的開發也更頻繁的參與code review以及團隊文化的導入(包含但不僅限於促進測試完善率、優化開發流程、程式碼的共同規範、如何寫出更好的程式碼等)。在這份工作學習到最多與以往不同的是現有產品已正式上線3年且流量在尖峰時段達到20000rps,對於程式碼的效率跟設計有不同等級的要求,也因此有更多機會處理使用cache綜合基本功能去減少request latency的需求以及設計。除了開發之外也與其他工程師有更多的合作、溝通以及互相code review的機會,也提升了自己code review以及理解程式碼的能力。


技能


Programming

Python

PHP

DB(RDBMS/NoSQL) 


Framework

Python - Flask/Django/FastAPI

PHP - laravel

文件 - OpenAPI


Others

網頁API設計/開發
資料庫設計/應用
Docker 

DB

MySQL

PostgreSQL

MongoDB

Redis


Async Workflow

Celery
message queue(redis/RabbitMQ)


學歷

經歷一:台灣大學數學系,2013 年 9 月 - 2018 年 6 月

就讀台灣大學數學系期間修習過系上開的程式設計課,在學接觸過C與matlab

工作經歷



經歷五:恆遠科技(2022 年 4 月 - now) 

公司產品為影音串流平台,負責開發大多數功能,過程接觸到多媒體、即時訊息相關,還需要串接眾多三方(包含遊戲、金流、sms等),因為公司產品的高流量也需要常常做資料庫優化或是cache策略的設計以及實現。

更多細節


語言: Python

框架: Django

資料庫: MySQL、Redis、MongoDB

版控: Git



經歷四:雲海科技(2021 年 5 月 - 2022年 2 月) 

主要負責開發後台系統web api。主要使用Laravel  5+作為後台後端框架(語言版本PHP 8),包含寫測試(PHPUnit),文件(Swagger)。除了Laravel外也有接觸CodeIgniter以及自建框架,此部分較多組建raw sql向資料庫拿取資料,而非像Laravel使用ORM,因此也對組raw sql有比起以往更熟悉。

更多細節


語言: PHP

框架: Laravel、部分自建框架

資料庫: MySQL、Redis

版控: Git



經歷三:蝦皮(2020 年 7 月 - 11月) 

開發web api,研發產品幫助提升內部operator效率及降低成本。負責專案主要使用Flask(python3)作為網頁api server框架,結合python Celery套件將可能需要較多時間處理的task(包含取、修改、新增資料)利用queue放到後台執行提升api效能,Celery也應用排定在定期執行的crontab task。專案結合MongoDB(使用mongoengine作為ODM)以及PostgreSQL(使用python套件sqlalchemy作為ORM)作為資料庫使用。此外在這份工作也第一次接觸到docker、k8s、GCP也對容器化有一些基礎的認識。

更多細節  


語言: Python、SQL

框架: Flask、FastAPI(web api server)、celery(async queue)、mongoengine、sqlalchemy(ORM、ODM)

資料庫: MongoDB、PostgreSQL

版控: Git



經歷二:越世實業(2020 年 2 月 - 7月) 

負責網路交換機SDN/SD-WAN專案產品開發,後端RESTful API開發。主要接觸到較多網路相關基本知識,使用ryu框架控制封包流動,開發後台讓客戶客製化設定所需之規則並儲存於資料庫,因此對於RESTful API、web server、資料庫之設計與應用有更深的認識。另後期主動導入Laravel作為後台後端使用框架。

更多細節    


語言:PHP、Shell script、 JavaScript、 SQL  
框架:Laravel(後端server)、ryu(SDN Openflow) 
資料庫:MySQL 
版控:Git  


經歷一:星爵科技(2018 年 11 月 - 2020 年 1 月)

主要負責遊戲server開發及部分開發工具製作及維護,另負責部分後台網頁製作。遊戲server使用workerman作為websocket server處理各遊戲不同的商業邏輯,也須製作網頁後台(前端使用Javascript、後端使用CodeIgniter)讓內部人員調整設定以及查詢玩家下注細節等資訊。另負責開發與維護multi-thread機器人(使用python)作為開發基礎測試、rpm/server壓測以及大量取得遊戲遊玩結果用來後續數據分析,以及使用multi-process script幫助數據分析小組製作工具取得所需資訊、因此對於thread、process有進一步熟悉。

更多細節      


語言:PHP、Python、Smarty、 JavaScript、 SQL

框架:workerman(遊戲server)

資料庫:MySQL

版控:SVN