/ EN

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.

Experience

2017/2 ~

Rails/Full-stack Engineer at 5xRuby

QuickBuy E-commerce Platform and App

Project lead: leading the team building a MVP in 3 months while communicating and working with foreign partner

Improve user experience of E-commerce App: developing for both Android and iOS based on React native

Setup App build automation and save time for the team: CI/CD flow from git push to Testflight and Google Play within 20 minutes using fastlane

Improve management site of the E-commerce platform: developing Ruby on Rails application with React frontend

Shopmatic E-commerce Platform

Successfully complete a complex migration without any downtime:
converting half million customized webpage data to change from HTML format to React props. Utilizing Elixir, it can be done in 20 minutes and re-migrate data changed by user

Boost frontend maintainability and user experience: rewriting rich-user-interaction pages using React

Modernize frontend assets bundling, making development and deployment less heavy: integrating frontend workflow such as webpack with Rails, reducing compiling time from 20+ minutes to 5 minutes

Improve and maintain backend of E-commerce platform

Community

2018/11

2018/8

2018/4

2016/2

2015/8 ~
2016/8

2013/8 ~
2015/8

Education

2012 ~
2016

2009 ~
2012

Skills

Languages Skills

English: able to hold daily conversation and meeting

Chinese: native

IT Skills / Knowledges

Experienced Programming Languages: Javascript, Ruby, Elixir

Learning Rust, has written C/C++, Python, Java, PHP, Golang

Frontend: React, Redux (Thunk)

HTML, Vanilla Javascript, jQuery, CSS, Boostrap, Webpack, Babel

Ruby on Rails

Devise, Doorkeeper, CarrierWave, ActiveAdmin, Rspec

Linux, ArchLinux, Shell scripting, Docker, Git, PostgreSQL

Showcases

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

Website: http://nchuit.cc/

Biography

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.

My university life is the time I met open source community and web technology. Inspired by the power given by the web, I started to make websites for student activities. The most interesting among these websites is for an event "Blackswan E-sports games" in 2013. There is a specially-designed contest table in wheel shape allowing people to browse teams and plays with fancy animations and rich user interactions. After the time in student association, I was promoting web and open source technologies, leading information technology club, helding courses teaching HTML, Javascript and making games for fun!

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

MacOS homebrew for multiple users setup

2019/2/12

I was trying to setup a mac server for multiple users, here is some steps setting up for homebrew

Read more

Notes of creating an AUR package

2019/2/5

Just a note written down when creating an AUR package fix-bt-a2dp

Read more

Webassembly - run native code on browser using Rust

2019/1/17

用 Rust 試玩 Webassembly 做個 Conway’s game of life

Read more

WebRTC - Real-Time Communications on the web

2018/9/14

大家應該都聽過 WebSocket,讓瀏覽器和伺服器兩者之間可以建立持久性的連接,並進行雙向數據傳輸;那 WebRTC 是什麼?

讓我們繼續看下去

LitElement - 像 React 一樣寫 WebComponent

2018/7/6

WebComponent, Web 自身改善 DOM 包裝方式的嘗試, 以 LitElement 當成範例

Read more

tmux ,不只是 terminal multiplexer

2018/2/13

TMux, terminal multiplexer, 讓你在文字界面下可以開多個 tab, 但是他能做的比這個更多

Read more

Notes of setting up ArchLinux for daily use

Will keep updating

Kind of sorted out version of archlinux wiki for myself

Read more