the digital craftsman
Test Engineer Tech Lead at Fiserv2018 Sep -- present
Making decisions on critical technical details on automated testing and DevOps strategy. Skill up fellow QAs to have both technical skills and mentality. Raising awareness of defining clear boundaries and writing testable code among developers. Reducing human errors and boost the confidence of releasing products by automating things sensibly.
Senior Test Engineer at Fiserv2013 Dec -- 2018 Sep
Built the whole ecosystem for automated tests including web UI test, mobile (iOS & Android) UI test, API test and unit test. Optimised the workflow for QAs to better triage issues, increase the visibility of test results.
Senior Developer at Sinosoft2007 Jul -- 2011 Jun
Writes C/C++, C#, Java, python, customise Linux kernels for weird hardware, implemented full-fledged in-memory DB for maximised performance, just to name a few of interesting and challenging projects. Learnt to do whatever it takes to ship the products.
Master of Software Engineering2012 Jul -- 2013 Jul
University of Auckland
Bachelor of Computer Science2003 Jul -- 2007 Jul
I Build Modern Websites/Web apps
I have been keeping up with the latest web development technology (so far) due to my fascination with web development.
Server Side Renderingis my Jam. Created and maintaining open source projects. Contribute to existing ones when necessary.
I Build iOS Apps
Familiar with Apple's design language. Efficient with
UIKit and all surrounding technology. Was a big fan of
reactive programming when
ReactiveCocoa was the only option, and now super excited with the first-party solution -
Model Junky and
I Build Backend Services
I lived the recent history of technology, all the way from bootstrapping my own OS with
Arch Linux), compiling all packages by hands, to virtual machines hosted on the clouds (
linode), all the way to the trendy
container tech. Built a couple of complete backend solutions with
Django (python). Had experiences with traditional SQL DB like
SQLServer, also played with NoSQL (
Advanced Programming Knowledge
Had experience with different programming paradigms through real project experiences. Possess advanced knowledge about details of various languages from their syntax, type system, memory management system, to error handling, concurrency, compiler optimisation.
I Do Testing and DevOps
Designed and lead the implementation of:
- Efficient frameworks to write reliable tests (unit, integrated and UI);
- CI systems to trigger necessary tests in reaction to code changes;
- Tools to visualise the results and generate quick feedback for the teams;
- Delivery pipeline to push products out of the door (deployed to production or submitted to App Stores) automatically and accurately with minimal surprises.