, W e l c o m e T o

Hello, My name is Tom Huang,

an enthusiastic programmer.


These are based on competency and speed. Notices different skills aren't comparable even they have the same rating. E.g. templating engines are easier to learn than ORMs. Hibernate is more complicated than Mongoose.


*Some of the JVM sites running on system on grid are down deal to infrastructure upgrade.


The combination of rounded minutes seekbar and big play/pause button design offers union, compact yet precise control. Books progression and settings are presisted.

An extra hour seekbar providing actual progression control for usually long audiobooks.

Clean but detailed, tagged list representation with premium features like one-click download bookcover on Google Image.

Book search. Book status changing.

List is actually expandable for easy but rich library management.

Complete EQ and speed setting just like any paid music/audiobook players. Again, It's crucial for 12 hours long audiobook to have individually persisted settings.

Raise Audiobook Player, Android

Long Term

Audiobooks changed me. Being inspired by countless audiobooks, I want to make a free tool for the community. This is a full features Audiobook Player just like any paid options on Play Store. It has Andorid Auto/Wear support, playback speed control, EQ setting for each book. On top of that, it supports playing 90% of all audio & video formats.

Play Store

Gigtr, Android


An Android app that collects and shows data of which sharing economy apps(Uber, TaskRabbit, etc) can make you the most money, based on time and location. I wrote and deployed the backend with Spring Boot and MongoDB on AWS. I also wrote the Android accessibility service data crawler.

Play Store

Landing login page with Basic Authentication and Route Guard.

Main employees list with search and cache function.

Delete confirm modal giving second chances.

Both Employee and its sub entities can CRUD on the fly.

Departments and their managers.

MySQL data schema, MyBatis as ORM

Simple HR Recrods, fullstack


An Angular and Spring REST human resource web app demo. I learn and try this front and back decoupled SPA and found out that it provides easier scaling, richer UI, and greater user experience. Despite usual CRUD feature, every object and its fields can be viewed and edited at the same time, without a traditional form.

Live Info

Landing bundle page with drop-down switching between different bundles.

Store page with traditional grid system layout and functionality.

Admin panel supports all entities CRUD and maintenance helpers.

Bundle entity editing form.

MySQL database schema, Hibernate as ORM.

HumbleBundle Copy, fullstack


A classic Spring MVC website. A copy of the famous Humble Bundle game store for learning propose. It has its original bundle landing page, and I implemented their new store page too with cart > PayPal-checkout > history process. Also, an admin panel handles CRUD for all entities, with authentication and authorization.

Live Info Code


Studio Corsair, website


Our dev shop site based on HTML5 UP template.


Pies De Hormiga, website


A non profit site that I created and maintains.


Soil Not Oil, website


A non profit organization site that I maintains and updates.


Top Designs Funs


My small but amazing series of implementing the best web designs on Dribbble and Enhance, animations included!

ueno. | Blog (scroll and click READ MORE) FORPOR | Info Card (click numbered buttons below) HBK | Creative Agency, (whole landing page)

HL Peninsula, website


A GSAP animated responsive website for a restaurants owning corporation. It has an intro similar to Masi Tupungato. I lazy/delay load all those iframes and scripts so fast load time and smooth animation can be achieved.


Time Block, browser extension


"TimeBlock lives at the right bottom corner of your browser constantly reminding you how much time you have left in a day visiting distractive sites." The only time interval is running in background script offered a consistent time shared by all tags. Buttons(Blocks) and time displayment living in content script provided a directive and intuitive UI that no other has.

FreeCodeCamp Funs


I wanted to hone my general frontend skills, so I enrolled this program. Got the cert in roughly two workweeks. I setted a bar for myself that all of the assignments have to have extra features or an outstanding design.

DSpace Material Design Customization, website


A DSpace 6.0 customization on its JSPUI. Turned a dull looking open source digital repository system built with JSP and Servlet into a modern looking website. I also share some book reviews there.

Live Price Code

Java Mutletreading Web Crawler


A Spring Boot web crawler setup/example extracting images from pixabay.com. Crawler4j for mutletreaded crawling, Jsoup for parsing, Spring Data JPA as ORM, PostgreSQL or/and direct image files output for persistence.


Dragon Beaux, website


I manage and fine-tune this WordPress site for the client. It was messy when I got it. Pics are 1+mb a piece and the Menu gallery didn't work. I did a custom social widget since the defaut theme doesn't have a nice matching one. I added field with validation for the PHP contact form.


Saturn Ring Station, website


I have a WordPress programming blog with a customized theme.

Live Info


* Please email me for a resume.