---
# System prepended metadata

title: Henry Jao
tags: [cv]

---

---
tags: cv
---
# Henry Jao

Mobile: 0224624798 
E-mail: henryjaonz@gmail.com 
GitHub: [https://github.com/jaohaohsuan ](https://github.com/jaohaohsuan?tab=overview&from=2016-12-01&to=2016-12-31)
Blogs: [http://henry-rao.logdown.com/](http://translate.google.com/translate?hl=&sl=auto&tl=en&u=http%3A%2F%2Fhenry-rao.logdown.com%2F&sandbox=1)

## Technical Experience
### DevOps
* 2 years using **Kubernetes** to orchestrate the deployment, scaling and management of Docker Containers.
* Created reproducible builds of the Kubernetes applications with **Helm** packages management.
* Creating **Ansible Playbooks**, to install Kubernetes cluster.
* Extensively worked with container-based deployments using **Docker**, working with Docker images, **Docker Hub** and **Harbor**.
* Managed **Jenkins** build machines on top of Kubernetes.
* Created Jenkins **CI/CD pipelines** for continuous build and delivery.
* Experience in deploying CoreOS on bare metal servers with **Terraform**.

### Backend
* 2 years developed high availability core application services with **Akka** Cluster. 
* Experienced in implementing **CQRS** pattern on complex business logics.
* Designed Web API with **HATEOAS** Driven RESTful APIs.
* Experienced in creating RESTful API with **Node.js Express**.
* Used **Cucumber** as the Unit Tests on domain objects.
* 3 years used **Nhibernate** for Domain Model ORM mapping.

### Front-end
* 3 years developed **WPF** based Windows desktop applications with **MVVM** pattern and **ReactvieX** framework.
* Used **IoC** container **Autofac** to deal with the complexity of class dependencies.

### Database/Storage
* Used **Cassandra** for **event-sourcing** storage
* 2 years experienced in performance tuning an **Elasticsearch** cluster to optimize writes and reads.
* Used **Ceph** and Gluster to persist containers state.

### Tools
* Proficient with **Vim** and **Tmux** in CLI environment
* Mainly use **IntelliJ IDE** and **Visual Studio**

#### Programming Languages
* First-lang: **3** years **Scala**
* Second-lang: **8** years **C#**
* Obscure-but-impressive-lang: Haskell
* Basic knowledge of Java, Bash, JavaScript, Groovy and **Regular Expression**.

## Project Experience

### 2015-2017 [*Grandsys*](http://translate.google.com/translate?js=n&sl=auto&tl=destination_language&u=https://www.grandsys.com.tw)

*Full-text search engine infrastructure architect*

* Designed JSON Document structure of call centre agent-customer call records, which can support the detection of the conversation with **emotion words**.
* Introduced Elasticsearch to build a distributed database which can process over **3000** calls records per day with real-time searching.
* Implemented WebVTT RESTful API to listen back agents’ conversations with **keywords annotations**.
* Solved problems of containers IP addresses across multi-machines with Calico.
* Installed Ceph, a distributed file-system, to solve **applications migrate** to different machines and the persistent data should be restored to the last state.
* Facilitated a DevOps culture that enhances our ability to deliver apps and services at **high velocity**.
* Rebuilt **Jenkins with a self-upgrade** feature which can roll back to the previous version while upgrading failed on Kubernetes.
* Packaging over **15+** applications such as Elasticsearch, Jenkins, Ceph, Cassandra, Gluster, Akka based apps with Docker.

### 2006-2014 [*Grandsys*](http://translate.google.com/translate?js=n&sl=auto&tl=destination_language&u=https://www.grandsys.com.tw)

*Core developer of workforce management project*

* Replaced the 3rd party UI control with draggable, layered, zoomable and dockable **self-designed** agents’ shifts UI controls.
* Involved from **prototype to production stage** in database design, scheduling algorithm implementation, domain modelling and graphical-interface developing.
* Taught team members the advanced desktop development in WPF.
* Experienced with SQL query performance tuning in agents’ activities data.
* Built **reactive** and intuitive desktop applications such as [Workforce estimation](https://hackmd.io/@3VSlMTOxTyCek4l9SvmNAw/BkAtnAPhB#Workforce-estimation-Graphical-mode), [Real-time Agents’ Activity Monitoring](https://hackmd.io/@3VSlMTOxTyCek4l9SvmNAw/BkAtnAPhB#Real-time-Agents%E2%80%99-Activity-Monitoring), [Shift Template Designer](https://hackmd.io/XTn0FBVwRe-phTOQVBQ-nQ?view#Shift-Template-Designer), Event Designer, and Monthly Agents’ Scheduling Engine.
* Implemented algorithms to arrange agents’ shifts under fair and proper conditions.
* At least **15** customers have been served in a variety of fields such as banking, **insurance**, **telecom**, finance, and **airline**.
 
## Self Introduction

 
Since 1998, I have been highly motivated to improve my software development skills. During the military service in 2004, I noticed that soldiers had manually marked the locations in monitoring boats. So, I took the initiative to develop an ASP.NET Web application, which was developed with native JavaScript to show the tracking of boats with a rich graphical user interface. Then I was invited to do some office documents automation to improve other daily efficiencies of tasks. A few years after military retirement, I heard from an interview candidate who told me that the Web Application was still working in the army.

After my service in the army, I joined my former company (Grandsys) in 2005. At the end of the first month, our department manager exceptionally shortened three months' probation period to one month due to my performance. A few years later, I was promoted as a Program Manager. In this position, I gained vital experience in being able to lead a team of 6 people. My colleagues would ask me when they can't figure out the problems. Even after I came to New Zealand, I was happy to help when my former department manager consulted me to solve some problems. Sharing knowledge is a joyful thing that allows more people to do things better and make progress together.

At the end of 2017, I made a big decision to quit my job to pursue further studies. I spent a year studying networking, which was the missing part of my career. I believe it will complement me in the cloud computing and network security field. During one year of study, my classmates always invited me to help them, especially in practical labs.

Studying life in Wintec is finished, so now I will combine my software development experience with the network knowledge I have learned in this year to develop better products.

## Education

### 2019 Wintec

*Graduate Diploma In Applied Information Technology - **Network Engineering***

* Gained **A++** marks on all practical tests and lab assignments.
* Completed CCNA 2 **routing and switching** and **CCNA security** courses.
* Used GNS3 to simulate the experiment of network environments.
* Learned the mitigation of DHCP spoofing, VLAN hopping, STP attacks, and CAM table overflows.
* Learned the operation of the **FortiGate** firewall in the lab.

## Coursework

* [A akka cluster Presentation](https://docs.google.com/presentation/d/1MSxqYe0fFaXuVAC4qy9vzgFcQELpPfPMVP15gEz1v1A/edit?usp=sharing) at Taiwan Spark Meetup
* Completed Principles of **Reactive Programming** on Coursera
* 5 days **D**omain **D**riven **D**esign Training Course by Jdon tutor
* 2 days Official **Elasticsearch** Training in Japan
* Microsoft SQL-Server Optimization Training Class