鍾騰

1 年工作經驗、2 年各式 Side Project 與外包經驗、及 5 年社群參與的後端工程師,同時也是 Arch Linux 愛好者。

比起坐在教室聽課,更喜歡自己蒐集資料、閱讀教學與文件並動手實做。認為程式語言只是一種工具,更重要的仍是背後蘊含的意義與考量。所以除了已熟悉的語言、框架和工具外,也對未知的領域抱持著好奇與樂意學習的態度。

       

1p41p4jejo@gmail.com  |  +886909023933

Side Projects

  Notion in Java

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 LombokOkhttpJackson, SLF4J, cglib

經歷 Experience

軟體工程師  •  盧氪賽忒股份有限公司  Leukocyte-Lab

Dec 2021 - Present

盧氪賽忒是一間致力於開發 BAS(Breach and Attack Simulation)入侵與攻擊突破模擬產品的廠商,其產品 ArgusHack 也已成功導入金融、政府單位等多個領域的關鍵客戶當中。

  • 使用 Golang 與 Python 從零開發新一代 ArgusHack-APT 產品後端,獨立規劃部署與更新流程,並成功與前端和領域專家(資安研究員)進行交付。
  • 使用 Python 設計與開發相容於新舊產品的軟體內容更新框架,成功將原先需要數小時人工參與的更新作業縮短至數分鐘,並且大部分工作由 CI 或該框架所完成。

總召集人  •  學生計算機年會 SITCON 2022

Dec 2021 - Oct 2022

學生計算機年會是由學生發起,舉辦於中央研究院的技術研討會。除了吸引眾多如 AMD、台積電、Dcard 等贊助商前來擺攤徵才之外,本年度會場更是首次突破 1300 人一同共襄盛舉。

  • 推動和主持各項討論與籌備會議、組織 10 餘個組別相互合作,並擔任窗口與中研院討論合作事宜。
  • 規劃與推動團隊使用 GitLab Issues & Boards 來追蹤與可視化繁雜的籌備細節。

工讀生  •  財團法人開放文化基金會  Open Culture Foundation

Oct 2020 - Dec 2021

開放文化基金會由多個台灣開源社群共同發起,在開放源碼、開放資料、開放政府等領域,提供社群支援、組織合作、海外交流、顧問諮詢等服務。

  • 負責核對所有 OCF 服務之社群的單據與進出款項,編目完成後將結果送至合作的會計師事務所。
  • 使用 Google App Script 開發輔助工具,成功將原先需要花費一兩個小時的核對事務減少為數分鐘。

志工  •  資訊社群參與

2017 - Present

於 HITCON(台灣駭客年會)、COSCUP(開源人年會)、SITCON(學生計算機年會)等研討會的贊助、議程、行政、場務等組擔任志工近三十次,瞭解組織運作與協助活動籌備。

詳細列表可參考:hackmd.io/@YukinaMochizuki/My-Profile

程式設計與計概教學助理(Teaching Assistant)•  靜宜大學資訊學院

Aug 2020 - July 2021

每週固定時段與學習家族的學弟妹討論課程進度並協助解題。

小組成員  •  行雲者研發基地 伺服器小組

July 2016 - Sep 2018

曾任組長與副組長,任期間協助管理行雲者內部服務(ESXi、Zabbix、DNS 等)與伺服器小組教學規劃。

其他專案 Other Side Projects

  可擴展的聊天機器人框架

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: RouterOSProxmox VEUbuntu ServerDockerNginx

  含後台的 GitLab Issues 通知服務

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 LombokGson, PicocliTelegramBots

   單一頁面應用(SPA)框架

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: 
GuavaConfigurateTelegramBots

學歷 Education

靜宜大學 Providence University

資訊工程學系 (休學)

Sep 2019 - July 2021
Sep 2016 - July 2018

技能 Skill

Linux administration


  • Ubuntu
  • Arch Linux

基礎設施


  • RouterOS
  • Proxmox VE
  • FreeNAS(現為 TrueNAS Core)

正在學習


  • Angular
  • Tailwind CSS

程式語言


  • Java
  • TypeScript / JavaScript
  • Python
  • C

框架或函式庫


  • Spring Framework
  • Vaadin
  • Django / Flask
  • jQuery

其他工具與 CI/CD


  • Gradle
  • Maven
  • Docker
  • GitLab CI
  • SwaggerHub