Rails/Full-stack Engineer at 5xRuby
National Chung Hsing University
Department of Computer Science and Engineering
I love exploring things about computer, especially web and open source technologies, meanwhile having the soft power to communicate with people or even be a leader.
My dream is to create game and allow people to explore creativities.
Currently working for 5xruby.tw as my first job, my experience and skills have been building up quickly to develop software for business. With rich experience about frontend and React development for 2 years, now I am leading a team building an E-commerce platform, and it has received very positive feedback from our cooperative partner.
As part of the open source community, I have contributed my exploration of the web and open source technologies through 4 conference talks and patches to open source projects.
Successfully complete a complex migration without any downtime:
MOPCON 2018 Speaker
COSCUP 2018 Speaker
Ruby & Elixir Conf TW 2018 Speaker
SITCON 2016 Speaker
Information Technologies Department of National Chung Hsing University Student Association
Maintain Linux server which runs student association services such as poster management system
English: able to hold daily conversation and meeting
IT Skills / Knowledges
Learning Rust, has written C/C++, Python, Java, PHP, Golang
Frontend: React, Redux (Thunk)
Ruby on Rails
Devise, Doorkeeper, CarrierWave, ActiveAdmin, Rspec
Linux, ArchLinux, Shell scripting, Docker, Git, PostgreSQL
Blackswan E-sports event website
An official website for E-sport event with fancy contest table and user interactions
Archived website: http://besg.pastleo.me/
Website of Information Technologies Club
A website allowing people to know our courses and events with a mini game on top of the website
Loving open source and web technologies, I joined internship program of 5xruby.tw in 2015 to find more chance to be part of the community. The company is founded by active community members who devote to promote Ruby programming language in Taiwan. I not only learned Ruby on Rails but also built a twitter live wall showing tweets with hashtag #rubyconftw in real time for RubyConf 2015. After graduation and military service, I began my career in 5xruby.tw solving all kinds of issues for many projects and cooperative partners.
My first experience of production-used React started to gain from Shopmatic, a full-featured E-commerce platform including a what-you-see-is-what-you-get website editor. My job was to refactor merchant management interface to React, reducing tech-debt and making user experience better; Since the tech team behind Shopmatic has a philosophy that everyone in the team should be able to cover with others as much as they can, I still learned a lot about Ruby on Rails in this project.
During Shopmatic project, we had gone through a big migration converting merchant's customized website from HTML to React, making it easier to control and prevent editor bugs. For this huge change, I had a chance to use programming language that I just learned -- Elixir. This programming language provides great tools for comparing data and executing jobs concurrently; I managed to migrate half million customized webpage within 20 minutes; My favorite part of this migration is that it listens to database changes. By doing so, data changed by user can be detected and re-migrated in real time, which ensures migrated data is always up-to-date, achieving no-down-time migration.
Interested in all things about computer, I enjoy exploring open technologies from Linux, programming languages to the rapidly changing web. This is why I have things to share on posts and conferences. In 2018, my speaking topics are about ArchLinux, Elixir and WebComponents. Rust, Webassembly and WebRTC are also my exploration shared via posts. I share my contribution back to the community like React QRCode component forked for logo and download features, shell themes for fish and zsh and even workaround for bluetooth headset on ArchLinux.
In my childhood, I played video games a lot. To get information of games, I found internet very convenient, and immediately fascinated by these technologies. While in elementary school, I took a course learning Adobe Flash. Playing a game made by myself might be the most exciting thing for me. At the time a RPG game was made, ActionScript is used for calculating health of characters and I didn't realize that it is programming; From I was little I am what people calling as geek, able to spend weekends experimenting all kind of things about computer for leisure, like PC assembling, adjusting operation system setups or even Android custom firmware flashing.
=== Blog Posts ===
building semi-distributed network using WebRTC
After my talk about building semi-distributed network using WebRTC at COSCUP 2019, here is the post version of slides to sort out my experiments on WebRTC
MacOS homebrew for multiple users setup
I was trying to setup a mac server for multiple users, here is some steps setting up for homebrew
Notes of creating an AUR package
Just a note written down when creating an AUR package fix-bt-a2dp
Webassembly - run native code on browser using Rust
用 Rust 試玩 Webassembly 做個 Conway’s game of life
WebRTC - Real-Time Communications on the web
大家應該都聽過 WebSocket，讓瀏覽器和伺服器兩者之間可以建立持久性的連接，並進行雙向數據傳輸；那 WebRTC 是什麼？
LitElement - 像 React 一樣寫 WebComponent
WebComponent, Web 自身改善 DOM 包裝方式的嘗試, 以 LitElement 當成範例
tmux ，不只是 terminal multiplexer
TMux, terminal multiplexer, 讓你在文字界面下可以開多個 tab, 但是他能做的比這個更多
Notes of setting up ArchLinux for daily use
Will keep updating
Kind of sorted out version of archlinux wiki for myself