About
A lead software engineer managing day-to-day tech execution, transforming business requirements into technical execution plans and working closely with engineers to ensure engineering quality & timely delivery.
I have more than 12 years of experience in the web development industry and in the last 6 recent years have been heavily focusing on system architecture and building globally scalable software platforms. I am a strong advocate for adopting industry best practices such as microservices, containerisation, continuous delivery, and test-driven development.
While overseeing the tech execution is another exciting part of the role, I am still a great individual code contributor and enjoy working closely with engineers to deliver the best software platform.
Work Experiences
Technical Lead (Apr 2020 – Current)
Before You Bid
I am starting a new exciting journey. I will be working closely with business owners, build an internal tech team and take platform to another level for scaling business. Can't wait to share more.
Software Lead Engineer (Jan 19 – Apr 2020)
Curious Thing
A global SaaS platform for phone screening interviews using natural language processing to power a real-time conversation with interviewees.
Technical Achievements
Here are some highlights
- Managed scalable Kubernetes clusters on Google Cloud
- Set up an automatic CI/CD process & deployment on K8s clusters
- Designed a platform by adopting industry best practices such as microservices pattern, containerisation, 12-factor, RESTful design pattern with Swagger documentation.
- Designed & implemented a Phone Connector service to deliver the voice-based interview over a standard phone call. This allows us to achieve stability & scalability as the feature available to everyone around the world in a consistent experience. This integration includes a real-time communication over a Websocket and Google Speech-to-Text for voice transcription.
- Created a nightly automated e2e test system that simulates real candidate phone calls.
- Set up a React project guideline repo for contractors and oversee the F/E project development. The project guideline is here - https://github.com/chainat/react-boilerplate
- Created & deployed a self-hosted private NPM server on AWS using Verdaccio backed by S3 data storage to host private NPM modules
- Introduced new public/private api gateway services using Fastify so that we can implement a global authentication/authorisation logics before the request gets sent to the in-cluster backend services
- Designed/implemented a new Node-js based mail service for sending email over MailGun and other providers
- Designed and support Hubspot Integration to enhance customer adoption rate. We are able to view customer activity trails on the CRM system & can trigger automated marketing emails.
- Adopted best security practices & support the platform for PEN test compliance
- Designed a security layer to support a new multi-layer identity access management
Management Achievements
- Worked closely with business team to translate the business requirements into execution plans. Delivered a self-serve platform within 12 months
- Turned high-level product feature into actionable tickets & prioritise the work tickets
- Managed the execution plan and ensured timely deliver for each two-week sprint
- Mentored new team members and onboarding new engineers
- Promoted a release execution checklist so all engineers can be a successful sprint release manager
- Provided a technical test using TestDome, participated in hiring our software engineers
SENIOR SOFTWARE ENGINEER (Feb 17 – Nov 2018)
Flamingo Ventures Pty, Ltd., Sydney
It’s an AI powered chat platform for selling online insurance products through a simple chat system available in both single and multi-tenancy models. This Sass platform is globally available and deployed to all three major cloud providers.
I started working in a development team and worked predominantly with Node.js and React. Late 2017, joined the platform team and heavily focused on scaling the platform which includes improving CI/CD, developed internal tools, enhanced deployment process, scaling Redis, removing SPOF of RabbitMQ, maintaining MongoDB in Kubernetes cluster on AWS, GCE, and Azure. During that time I also contributed my development skills to some micro services using Node.js.
Technical Achievements
Here are some highlights
- Proposed/implemented a solution for masking personal sensitive information by using a one-way data encryption technique so that it can only be viewed by the chat client
- Improved the data consistency between clusters by introduced UUID a primary key. This simplified the data deployment process.
- Proposed, installed and maintained Jenkins as an internal task runner for various jobs in the platform. Recently, it has expanded to cover larger tasks in the platform.
- Using Google Cloud Build for building all Docker images. Recently, has optimised and reduced the Docker build time by 50% by using --cache-from and multi-cpu machine for complex builds
- Orchestrated Redis Sentinel on all environments including a local stack
- Managed Kubernetes clusters on AWS & Azure
- Designed/implemented an in-house deployment system to deploy all services on all clusters. This simplified the deployment process & reduced human errors
- Improved a RabbitMQ messaging mechanism between services by using a single reply queue. It boosts a message throughput from 5k messages/min to 240k messages/minutes. This also increased concurrent sessions from 40 to 400 sessions
- Removed a single point of failure by moving RabbitMQ outside the cluster where we gained the performance and high availability.
- Designed & created a new virtual assistant with unique capabilities for handling both voice and text conversations in the platform. This unique approach significantly changes the company’s product roadmap and allows us to create new extensive products in near future.
- Integrated Google Home to a new virtual assistant developed earlier for demonstrating the capability of handling voice conversation through one of the external voice interfaces. The integration was done by using Google Action SDK in Node.js.
- Identified bottle-neck issues in the platform and created proposals for improving ML queue usage and ML training service. These works are being prioritised and actioned soon. Converted Traefik daemonset to a pod deployment for better scalability of inbound requests. The latest test has shown that the platform can serve more than 1,000 concurrent chat sessions.
- Converted a brain-as-a-service business requirement into a live protected API service. All API endpoints are documented using Swagger.
SENIOR SOFTWARE ENGINEER (Feb 15 - Feb 17)
Sungevity Inc., Oakland, California (worked remotely from Australia)
Developed web applications/tools to support a remote solar design system
Technical Achievements
Here are some highlights
- Rebuilt a lead generation web application (SPA) for a multi-partner platform using Angular
- Have developed various applications using Docker containers
- Been Involving with CI and docker deployment process on AWS
- Developed a proprietary tile map system from a top-down imagery captured by UAV for providing roof snapshot images used in the solar system design process using Python
- Created a map processing pipeline using docker containers on AWS
- Created/maintained unit test with the test coverage more than 70% using Mocha, Sinon, and Chai
SENIOR PHP/RUBY WEB DEVELOPER (July/2012 – Feb/2015)
VML Australia, Sydney
Developed a variety of backend web applications using CakePHP, Ruby on Rails and NodeJS. This also includes some responsive front-end web applications available on both tablets and mobile devices.
PHP WEB DEVELOPER (July/2008 – June/2012)
Extro Interactive Pty, Ltd. Sydney
Working with team members and project management team to capture project requirements, implementation and deployment of database-driven web applications using CakePHP, PHP, JavaScript, MySQL, and AJAX.