Profile 00 00@2x e294063b2878e4164ba1dd904aa6b8bae6a97e19937899e4b4af853acf30de5d

Hsuan Hao Wang

Sr. Mobile Application Engineer


Taipei,TW
[email protected]

Self Introduction

An experienced engineer always thinks of better solutions, chooses not to be limited by past experience when solving problems. Philosophy lover with great interest in finding out reality and fact definitions of everything. Proactive learner who devotes to learning new knowledge, like mathematical, physical, or meditation, etc.

Software Values

As a senior engineer, I'd love to learn new skills. It helps me to think of solutions in different ways and prepare better when facing real-life design challenges.I always drive the team to reach higher software quality in terms of testability and performance by refactoring. 


Refactoring is not an extra work, it continues to happen during development. I like agile methodology such as Scrum, if it matches all kinds of premises. I think I just need to run the helpful activity which depends on each project during the software development process. The activities in Scrum are dead unless the principles of the guidelines are well comprehended. 

Skills


Mobile Client

Professional in Android platform and average of iOS development. Flutter early adopter and evangelist in Taiwan. Very good at software performance tuning and design for increasing extendability and testability.


Server Side

Ability to implement simply RESTful API by Golang, something like encryption/decryption, redirect, read data from DB with cache and protect concurrency by goroutune.


Architecture Design

Designing software architecture with top down thinking instated of bottom up, which describes problem domain or user story first and then implementation for it. It helps me to avoid thoughts kidnapping by exist implementations.


Language

Expert:

Java, Kotlin, Obj-C, Swift, Dart 


General:

Go, C, C++, Python, Javascript


Frameworks

Expert:

Android, iOS, Flutter


General:

Gin, React.js


Engineering

Agile, Scrum

OOP, OOAD, FP

UI Automation Test, TDD

MVC, MVP, MVVM

Git, Git Flow, CI, CD

Work Experience

Android Engineer @MIGO ,2019 / 10  -  2021 / 7

Responsible for refactoring, maintaining and improving applications which provides network-less content downloading and watching for people who live in developing countries without a stable internet environment.


There are many challenges in this project, like no required record and built by an outsourcing company and huge legacy code with terrible project structure. I refactor the codes and rewrite core functions without breaking any features and improve a lot of performance.

Full-Stack Engineer @KKBOX ,2018 / 4  -  2019 / 9

Responsible for researching new technology and implementation for new products. 

KUBE 』 Share KKBOX Playlist and playing at many kinds of music streaming platform.

KMA 』Browsing KKBOX Music Award charts and music informations, implemented by Flutter.

KKBOX Kids 』KKBOX segment product for parenting user, implemented by Flutter.


Design reactive data flow with bloc pattern on Flutter projects.

Design KKBOX OpenApi Player Plug-in for segment projects using Flutter.

Implement api server by golang.

iOS Engineer @KKBOX,2017 / 9  -  2018 / 4

Responsible for 『 KKBOX 』maintenance and new features development.

Refactoring api framework for testability and reusability.

Implement QR code features and refactoring action menu.


Responsible for 『 Hami Music 』maintenance and new features development.

Implement music live chat room by firebase realtime database.

Refactoring project dependency system to cocoapods.

Android Engineer @KKBOX,2015 / 5  -  2017 / 9

Responsible for 『KKBOX』、『KKTIX』、『CityMate』apps development.


Refactoring and design new architecture for removing legacy code and increasing performance.

Design MVP architecture for ui instrument test. 

Design api framework for pure java api unit test.

Refactoring tacking event by using visitor pattern.

Helping the team to introduce the dependency injection concepts.

Technical Researcher @Newegg,2014 / 12  -  2015 / 4

Research for increasing testability and extensibility for mobile application and teaching to development teams. ( Example )

Android Lead @Newegg,2014 / 1  -  2014 / 12

Responsible for new project 『NeweggBOX』, and build an Android Team of 4 people during start-up process.

Android Engineer @Newegg,2012 / 8  -  2014 / 1

Responsible for 『Newegg』app  development.

Refactoring image loader with two-level cache and increase performance.