1 年工作經驗、2 年各式 Side Project 與外包經驗、及 5 年社群參與的後端工程師,同時也是 Arch Linux 愛好者。
比起坐在教室聽課,更喜歡自己蒐集資料、閱讀教學與文件並動手實做。認為程式語言只是一種工具,更重要的仍是背後蘊含的意義與考量。所以除了已熟悉的語言、框架和工具外,也對未知的領域抱持著好奇與樂意學習的態度。
[email protected] | +886909023933
Aug 15 2021 - Present
Notion API 的非官方 SDK 實現。Notion in Java 期許能減輕甚至完全消除 API Reference 對開發者的重擔,與目前市面上已有的(甚至是官方的)SDK 不同,Notion in Java 承擔了絕大部分與 API 互動的責任。在強型別、建構器(Builder)和生命週期管理的支持下,開發者不僅不需要反覆翻閱 API 文件,也無須關注物件儲存的時機和細節。
於此同時,Notion in Java 也提供了完整且符合官方規格的資料結構和 API 端點的靜態方法定義,來輔助擁有特殊需求的開發者進行原生的 API 操作。
技術細節:
以 Java 11 搭配 OkHttp 用戶端與主流的 JSON 處理器 Jackson 進行開發,利用 cglib 與 JDK 的動態代理來提升日誌、例外與生命週期的可維護性。同時注重單元測試的完整,截至 2021 年 9 月為止,已撰寫的測試覆蓋了 83% 的類別與 71% 的程式碼行數。
架構、使用範例、README 與程式碼:YukinaMochizuki/notion-sdk-java
Programming Language: Java
Build System: Gradle
Library: Project Lombok, Okhttp, Jackson, SLF4J, cglib
Dec 2021 - Present
盧氪賽忒是一間致力於開發 BAS(Breach and Attack Simulation)入侵與攻擊突破模擬產品的廠商,其產品 ArgusHack 也已成功導入金融、政府單位等多個領域的關鍵客戶當中。
Dec 2021 - Oct 2022
學生計算機年會是由學生發起,舉辦於中央研究院的技術研討會。除了吸引眾多如 AMD、台積電、Dcard 等贊助商前來擺攤徵才之外,本年度會場更是首次突破 1300 人一同共襄盛舉。
Oct 2020 - Dec 2021
開放文化基金會由多個台灣開源社群共同發起,在開放源碼、開放資料、開放政府等領域,提供社群支援、組織合作、海外交流、顧問諮詢等服務。
2017 - Present
於 HITCON(台灣駭客年會)、COSCUP(開源人年會)、SITCON(學生計算機年會)等研討會的贊助、議程、行政、場務等組擔任志工近三十次,瞭解組織運作與協助活動籌備。
Aug 2020 - July 2021
每週固定時段與學習家族的學弟妹討論課程進度並協助解題。
July 2016 - Sep 2018
曾任組長與副組長,任期間協助管理行雲者內部服務(ESXi、Zabbix、DNS 等)與伺服器小組教學規劃。
Apr 2021
支援指令與對話兩種互動方式的聊天機器人框架。該框架利用了輸入隊列與適當的線程阻塞,來讓開發者能在不用頻繁讀取上下文或儲存當前狀態的情況下,也可以輕易的實現機器人的對話功能。在此基礎之上,撰寫如非同步修改已送出訊息等進階應用也會變得相當容易。
曾有朋友以此為靈感也應用到了自己的專案中:
How to Handle Conversation in Chatbot in Python(見文末 Special thanks)。
另外,該框架遵循著界面與實作分離的原則,對開發者開發的功能隱藏了大量瑣碎的細節。也因此僅需要完成這些界面的實作,理論上可將該框架擴展至任意的通訊平台當中,且開發者不需對已開發的功能做出任何調整。
技術細節:
以 Java 11 搭配 Spring Framework 進行開發,使用自架的 GitLab 進行版本控制,並利用 GitLab CI 編譯與打包成 Docker Image 部署至生產環境。
其他細節、README 或程式碼:YukinaMochizuki/DCDos
演示:Create multiple notes in a row
Programming Language: Java
Build System: Gradle
CI/CD: GitLab CI, Docker, Docker registry
Framework or Library: Spring, Picocli, JSch, Apache Commons Validator, Project Lombok, TelegramBots
Mar 2020
大學的期末專案,與另外兩位撰寫前端的同學合作開發社區管理系統,負責整個專案的後端與部署。建立 RESTful API 供前端使用,並以 ORM(物件關聯對應)的形式操作資料庫。
技術細節:
使用 SwaggerHub 制定 API 規格,以 Python 搭配 Django REST framework 進行開發。利用 Docker 建立反向代理(Nginx)、前端資源(Nginx)與後端(Django)三個容器,並設定 NAT 將外網請求轉發至反向代理中。
查看完整架構、截圖與程式碼:YukinaMochizuki/Dynamic-WebPage
API 規格:Dynamic-Web-Project/1.1.0
Programming Language: Python 3.6
Dependency Manager: Pipenv
Framework: Django REST framework
Production Environment: RouterOS, Proxmox VE, Ubuntu Server, Docker, Nginx
Mar 2021
後台搭配 Vaadin 進行開發,使用 Java 編寫與控制 Layout、Button、Form 等 UI 元件。並且結合 Spring Security 開發出登入時產生 PIN 碼並發送給使用者登入的功能。
技術細節:
README 與程式碼:YukinaMochizuki/issue-assistant
演示:登入與後台操作
Programming Language: Java
Build System: Gradle
Framework or Library: Spring, Vaadin, Project Lombok, Gson, Picocli, TelegramBots
Jun 2018
使用 jQuery 操作 DOM,支援載入 HTML 模板、變數渲染與可複用元件的單一頁面應用程序框架。
技術細節:
README 與使用範例:YukinaMochizuki/CMSOFramework
程式碼:CmspaJS.main.js
Programming Language: JavaScript
Library: Lodash, jQuery
Feb 2018
受到 SpongePowered 的啟發,藉由讀取 JAR 檔案來載入功能,並且大量使用 Java 的反射方法從頭自行實現了 IoC 容器(Inversion of Control Container)與事件監聽(Event Listener)等框架特性。
技術細節:
使用範例、README 與程式碼:YukinaMochizuki/ShuviBot
Programming Language: Java
Build System: Gradle
Library: Guava, Configurate, TelegramBots
Sep 2019 - July 2021
Sep 2016 - July 2018