--- title: 'Kyle 履歷 Resume' disqus: kyleAlien --- Kyle 履歷 Resume === ## Overview of Content [TOC] ## 個人經歷 您好,我是潘奐廷;My english name is Kyle. ( Nickname is alien.) 我畢業於 **勤益科技大學**,專業類別是 **電子系** (高中電機系) ### 工作經歷 1. **個人開發專案** | 開始時間 | 結束時間 | 公司 | 職位 | | -------- | - | -------- | -------- | | 2024年9月 | till now | - | 自身承接所有業務,包括前端、後端、手機應用、資料設計… 等等 | * 在個人撰寫專案的期間有受到「[**JetBrains 技術佈道師,范聖佑**](https://blog.jetbrains.com/zh-hans/author/shengyou-fanjetbrains-com/)」的邀請到 [**2024 Kotlin 中文開發者大會**](https://lp.jetbrains.com/kotlin-online-conference-2024/) 作分享,分享的主題為「**Kotlin Multiplatform:打造跨平台 SDK 的最佳選擇**」 主要的內容會以多種不同技術角度(像是 `ReactNative`、`Flutter`、`KMP`)來分析撰寫 SDK 時各個技術所需要付出的代價,KMP 為我們做到什麼,最終抉擇出為什麼 KMP 是跨平台打造 SDK 的最佳選擇,也點出 Kotlin、KMP 的技術特點以及注意事項… :::success 在 2024 / 12 / 14 中文開發者大會線上直播 >  ::: * 個人開發 Ok-Live 平台: * 後端應用採用兩種不同的語言來架構後端,包括 Python FastApi 框架以及 TypeScript 的 tsoa 框架 * 資料庫是 Firebase 提供的 firestore、database 加上在自己租用的 VPS 上架設 Mongodb、Redis… 等等系統(之後決定採用 Serverless 系統) * 前端(網頁)採用 Wordpress 來快速打造前端包括綁定 DNS 網域… 等等作業 * 手機應用端選擇 Flutter 來快速打造面向使用者的應用,有產出 Android/iOS 兩個系統的應用,使用的設計、技術就不詳細提及(我以往學習過來的經驗我會全部用上) * 獨立設計與開發兩套針對住宅資訊透明化的 OkLive 平台: * OkRent:為房東打造的租賃經驗交流平台,協助用戶紀錄並匿名分享租賃風險資訊。系統以 Flutter + Firebase 架構為主,支援匿名認證、資料標記、地理位置過濾與用戶分類等機制,強調資訊整合與隱私保護。 >  * OkHouse:建築評價平台,使用戶能回饋建築物的實際使用經驗。採用 Redis 快取與地理篩選邏輯,並結合使用者互動介面與資料標準化格式,協助建立群眾回饋模型。 >  2. **Hyena Inc. 凱納股份有限公司** | 開始時間 | 結束時間 | 公司 | 職位 | | -------- | - | -------- | -------- | | 2023年1月 | 2024年8月 | Hyena Inc. 凱納股份有限公司 | SDK 工程師(資深軟體工程師) | * 基於 KMM 技術,撰寫跨平台的 E-Bike SDK,並提供給北美 E-Bike 大廠 Trek 開發;並同時加入單元測試、整合測試到 SDK 中,單元測試的覆蓋率在 90% 以上 * 投稿 [**Taiwan Mopcon 2023 演講**](https://mopcon.org/2023/speaker/),主題為「**跨界駕馭:Kotlin Multiplatform x 電動輔助自行車SDK x 決策 x 思想**」,分享 E-Bike SDK 的發想、設計、實做與決策 並在公司引導 SDK 開發的技術、思考、分析、想法 :::warning **在 2023 /11/12 有在高雄展覽館上台演講** >  ::: * Android 基於 gradle 開發一套 SDK Licenee 機制,限制 SDK 使用者但不影響到最終開發出的產品 * 使用 Python 串接 OpenAI Library,實現多國語系的自動翻譯,生成 Android 與 iOS 可用的資源檔,減少人力和成本 * 在新專案中,使用敏捷開發方法,與 PO、PM、iOS 開發人員、Android 開發人員、前端和後端人員協作,學習並實踐跨領域技術 > 在這個敏捷組成之下,我可以學習、實作更多跨領域的技術 3. **Nextfortune** (Onelab) | 開始時間 | 結束時間 | 公司 | 職位 | | -------- | - | -------- | -------- | | 2020年8月| 2022年 9 月 | Nextfortune (Onelab) | 軟體工程師 | * 使用敏捷式開發來運行專案,敏捷團隊的組成主要是由 PO、PM、iOS 開發人員、Android 開發人員 * 開發 Android 手機應用:使用 Android Studio IDE 開發 Android APK,並且主要使用 Java、Flutter 語言開發; * APP 使用 MVVM 架構、DataBinding、組件化 Module 開發、使用 gitlab 管理專案 * 使用 Junit、 Mockito 撰寫單元測試 * Gitlab CI/CD 自動集成,並透過 Docker 來註冊多個 Runner 在電腦裝置內進行背景打包作業 * AspectJ 織入技術,用來間接公司內部已有的專案來改造,這樣的方式可以重用已有的邏輯 * 配合公司的後端 API 訪問數據並顯示 (API 使用 Json 格式) * 使用 Google Firebase 紀錄埋點事件,分析 crash 原因並處理修正 4. **寧茂企業** | 開始時間 | 結束時間 | 公司 | 職位 | | -------- | - | -------- | -------- | | 2018年4月 | 2020年4月 | 寧茂企業 | 韌體、軟體工程師 | * 開發變頻器 Keypad 通訊的人機介面:公司使用 Renesas MCU,並且主要使用 C 語言開發;透過 UART 與 Keypad 通訊,並透過解析通訊協定來顯示變頻器當前的狀態 * 自訂通訊協定 * 處理 UART 中斷,並整理資料與 MCU 通信 * 優化、維護變頻器程式 & 協助自動測試 * 開發 Android 手機應用:使用 Android Studio IDE 開發 Android APK,並且主要使用 Java 語言開發; 使用 APP 與變頻器外置的 BLE 裝置通訊,並顯示變頻器狀態、並控制其功能 * APP 使用 MVC 架構、**透過 OOP 設計來拓展程式** * 自定義 View、ViewGroup 來完成 UI 的設計畫面 * 使用 Local DB(Sqlite)儲存變頻器設定 & 使用者設定 ### 工作經手專案 1. **Hyena Inc. 凱納股份有限公司** * **Hyena Bluetooth Protocol SDK**(簡稱 HBP SDK) HBP SDK 存在的主要目的是為了幫客戶處理 Android、iOS 的低功率藍芽通訊、CAN 協定、Hyena E-Bike 協定,並提供客戶方便操作的 API、框架,讓使用 SDK 客戶可以快速套並控制 E-Bike * **HBP License Plugin 插件、腳本** 「插件」是為了方便 Android 開發者在使用 HBP SDK 時快速通過驗證,並且也可以依據環境做一些 License 細節上的調整所做的專案 「腳本」則是為了 iOS 開發者在使用 HBP SDK 時快速通過驗證 使用這兩個工具就可以讓使用 HBP SDK 的開法者完全不需要修改專案,就可以通過 SDK License 的驗證 * [**Hyena Rider Assistant App**](https://play.google.com/store/apps/details?id=com.hyenatek.hra&hl=en-TW)(簡稱 HRA App) HRA App 是為了提供 Hyena E-Bike 使用者與 E-Bike 通訊與控制的應用,像是控制與讀取 E-Bike 的零組件(包括電燈、電池、控制器),即時資訊、Map 騎乘路徑與紀錄、Floating Window… 等等功能 >  * **ChatGPT AI 多國語系翻譯專案**(公司內部使用) 這個專案是為了節省公司翻譯人員的開銷,並且加速開發的速度所產生的需求 這個專案透過 AI 產生相對正確的多國語系翻譯,最後自動產出 Android xml 語系檔與 iOS string 語系檔,以及翻譯的驗證檔案 2. **Nextfortune 經手的相關轉案** * **Saba 體育 App**(無法放在 PlayStore) Saba App 是一款運動投注應用,需要與後端 API 串接並顯示相關資訊。該專案使用多種技術(如反射、動態代理、AspectJ 織入)實現最小侵入和高可定制性的應用。 * 優化程式效能:包括使用 Profiler 分析記憶體分配和回收,減少 View 繪製層級,使用 ThreadPool 管理執行緒;研究 APK 縮小方法,將應用大小從 120MB 減少到 65MB * 管理多項產品:透過 Gradle 設置快速切換、管理多項產品的資源配置 * Gitlab CI/CD:透過 Gitlab CI 來自動集成每個發布在穩定 Branch 的提交,並透過 CD 來產生對應的產品,來達到穩固可回朔的集成 * **Flutter App、SDK** * Flutter App:使用 Flutter 技術開發跨平台應用,能夠同時生成 Android 和 iOS 平台應用,專注於優化前端邏輯和使用者界面體驗,節省開發人力 * Flutter SDK:由於需要為多項產品的打造基底,所以我們也採用 Flutter 來串接公司後端集成的 API,將 Flutter SDK 作為面向使用者的 App 的基底 3. **寧茂企業經手的相關轉案** * **印尼紡織大廠 Kahatex 的變頻器通訊** 由於紡織廠沒有保留變頻器變頻器的通訊協定,所以必須先解析變頻器對應紡織操作的指令,再針對解析出的指令修改 UART 通訊 * 使用示波器抓取通訊並分析通訊的規律 * 設計 Adapter 兼容通訊協定、降低通訊錯誤 * **變頻器、跑步機 APP**(沒有放在 PlayStore,由 FAE 直接提供給相關廠商展示) 與 UI 協作,製作一個類酷炫畫面的 APP,來顯示跑步機多項資訊 * 自定義 View:透過 Canvas、Paint... 等等工具 繪製特殊形狀的漸層進度條,並可定義進度條的方向 & 細節 * 透過 OOP 設計拓展程式,兼容不同機台的通訊協定 (eg. 模板組合通訊協定,抽象工廠對每種不同機台的通訊協定設定) >  ### 個人開發專案 * **個人技術網誌** [**Dev Tech Ascendancy**](https://devtechascendancy.com/) (使用 wordpress 架站) * 在這個網誌中我特別整理我個人在 HackMD 分享的技術,以更加系列化的方式去介紹、分享一連串的技術,並且這個網站的目標受眾我定位在較為資深的開發人員(當然不免還是有一些基礎系列的文章) * 目前有整理完幾個主題,包括 「[**Linux Shell 知識**](https://devtechascendancy.com/partition_file-system_volume/#%E6%9B%B4%E5%A4%9A_Linux_Shell_%E7%9F%A5%E8%AD%98)」、「[**Java 語言**](https://devtechascendancy.com/deep-dive-into-java-nio_buf-channel-charset/#%E6%9B%B4%E5%A4%9A%E7%9A%84_Java_%E8%AA%9E%E8%A8%80%E7%9B%B8%E9%97%9C%E6%96%87%E7%AB%A0)」、「[**Kotlin 語言**](https://devtechascendancy.com/applied-kotlin-coroutines-in-depth-guide/#%E6%9B%B4%E5%A4%9A%E7%9A%84_Kotlin_%E8%AA%9E%E8%A8%80%E7%9B%B8%E9%97%9C%E6%96%87%E7%AB%A0)」、「[**C 語言**](https://devtechascendancy.com/bitwise-operations-and-macros-in-c/#%E6%9B%B4%E5%A4%9A%E7%9A%84_C_%E8%AA%9E%E8%A8%80%E7%9B%B8%E9%97%9C%E6%96%87%E7%AB%A0)」、「[**OOP 物件導向設計**](https://devtechascendancy.com/pk-design-patterns-cmd-strat-state-obs-chain/#%E6%9B%B4%E5%A4%9A%E7%9A%84%E7%89%A9%E4%BB%B6%E5%B0%8E%E5%90%91%E8%A8%AD%E8%A8%88)」 > 目前仍在整理中… 全部完整的文章仍在 HackMD 中 * **低功率藍芽** [**BLE APP**](https://play.google.com/store/apps/details?id=com.alien.bluetooth_low_energy)(已停止維護、上架) * 這個應用算是一個實驗性的應用,並沒有打算拓展特殊的功能,APP 功能包括掃描、連結、廣播、通訊 ... 等等 * 使用 AIDL 與另一個進程通訊 (目前尚未開啟這個功能),劃分 Module 開發,並在遠端服務管理所有 BLE 的資料 >  ### 技能分佈 * **程式語言相關** | 語言 | 熟悉程度 | 說明 | | - | - | - | | Java | 高 | Java 應該算是我最熟悉的語言,最常使用 Java 開發 Android APK,對於它的熟悉程度最高 | | Kotlin | 高 | 除了用它來開發 App 之外,也使用它來開發跨平台 SDK(使用 KMM 技術) | | C | 高 | 在開發 MCU 時使用,並在研究 & 開發 RTOS 時也會使用到 | | C++ | 中 | 為了研究 Android Source Code 而學,基本上看 & 理解是沒有問題,較少拿用開法使用 | | Swift | 中 | 偶爾會去幫助 iOS 工程師開發 iOS 應用,對於基本語法、使用還算熟悉 | | Objective-C | 中低 | 同 Swift | | Dart | 中 | Dart 的主要學習是因為要使用 Flutter 開發跨平台 App,所以有實際使用在專案中 | | Python | 中 | 正在使用 Python 開發個人專案的 API,同時在公司內也有使用 Python 開發過 AI 翻譯專案 | | JS/TS | 中 | 在個人開發的後端專案中也有使用 TypeScript 來撰寫後端 API | | SQL | 中 | SQL 則是以 MySQL 為主,了解資料庫、表格、欄位,以指令操作資料庫,了解的基礎操作 | | PHP | 低 | PHP 單純是為了接觸後端多種不同種開發語言而去學習、拓展,但目前尚未使用在開發中 | * **Android 系統相關**:研究 Open source Android 系統 | Android 領域 | 說明、範圍 | | - | - | | Android 系統啟動 | 其中包括 Init process, Zygote process and serviceManager process、四大組件啟動 | | Android Binder | Binder 領域包括 Binder 驅動、Native Binder、Java Binder | | Android HAL | 在 Android Kernel 新增虛擬硬體裝置,在 Native 註冊一個新的硬體驅動 | | Android GUI | Android 使用的 OpenGL ES | | Android View | 其中包括 xml 分析,View 的建立,滑動衝突解決 | * **Linux 領域相關** | Linux 領域 | 說明、範圍 | | - | - | | Linux 系統基本使用 | 基礎 Linux 指令使用、了解系統服務(DNS、Apache、Ssh、FTP… 等等) | | Shell 腳本 | 有透過 Shell 銜接 iOS 請求 License | | Process 管理 | elf 檔案、cpu 分配 | | Memory 管理 | 直接記憶體分配、虛擬記憶體分配 & 應用,記憶體階層 | * RTOS 相關:研究 Open source RTT 系統 | RTOS 領域 | 說明、範圍 | | - | - | | RTOS 基礎 | RTOS 與 Application 差異 & 相同處 | | Memory、中斷、IO 管理 | Memory 如何分配管理、中斷切換、IO 管理註冊 | * **虛擬機** | 領域 | 說明、範圍 | | - | - | | Docker | 基本的使用 & 建立 Runner 協助 Gitlab 自動集成打包 | | JVM | 為了更了解 Java 語言,研究過 類加載、物件分配、GC | * **通訊相關** | 領域 | 說明、範圍 | | - | - | | OSI 網路層級 | 基本的 Http Restful 請求,Https 加密,TCP/IP 通訊協定、ARP | | Bluetooth | 了解基本的 BLE 通訊棧,GATT, GAP, ATT | :::success 想了解更多可以到 [**個人 hackmd 公開頁**](https://hackmd.io/@AlienHackMd)、**個人技術網誌** [**Dev Tech Ascendancy**](https://devtechascendancy.com/) 有更多個人研究 & 紀錄的文章 ::: ### 未來規劃 * **應用方面**: * **善個人網站**: 我將持續花時間完善個人網站,使其成為一個技術學習的討論平台,涵蓋範圍包括最新的技術趨勢、開發技巧、實戰案例以及專案展示。目標是通過這個網站,幫助更多人學習並提升技術能力 * **開發租屋資訊 App**:(正在開發中…) 我計劃開發一個租屋資訊管理的應用,統整市面上已有的租屋資訊。這將包括設計和管理資料庫、撰寫 API,以及使用 Flutter 進行前端開發 希望通過這個應用,提供一個便捷的租屋資訊管理和搜索平台,協助使用者避開不佳的租屋處、堤防不佳的租客 * **研究部分**: * **Android ART 和 JVM 設計與運作**: 基於個人興趣,深入研究 Android Runtime(ART)和 Java Virtual Machine(JVM)的設計與運作原理。計劃通過閱讀相關文獻和進行實驗,理解這些虛擬機的底層架構和性能優化技術,並探索如何在實際開發中應用這些知識 * **Android 程式逆向分析**: 對 Android 應用進行逆向工程分析,學習和掌握逆向技術,包括 APK 反編譯、代碼注入和動態調試等… 這不僅有助於提升安全防護能力,還可以加深對 Android 平台的理解 * **研究 Mac 和 iOS 系統**: 深入研究 Mac 和 iOS 系統的底層架構和應用開發。計劃學習其內核設計、系統調度和資源管理等方面的知識,並探索如何開發高效、穩定的 iOS 應用… 還將學習和實踐 Swift 語言及其相關技術 * **Linux 核心與應用**: 深入研究 Linux 系統的核心架構和應用開發。計劃通過閱讀源代碼和撰寫技術文章,全面了解 Linux 核心的設計原理、驅動開發和系統調優技巧。Linux 作為一個開源平台,是進行系統架構研究和實驗的理想對象 ## Appendix & FAQ :::info ::: ###### tags: `Interview`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up