Hwaai Kang Kee, Developer in Kuala Lumpur Federal Territory of Kuala Lumpur, Malaysia
Hwaai is available for hire
Hire Hwaai

Hwaai Kang Kee

Verified Expert  in Engineering

Software Developer

Location
Kuala Lumpur Federal Territory of Kuala Lumpur, Malaysia
Toptal Member Since
August 19, 2022

Hwaai Kang has years of experience in developing back-end web services. He's most comfortable developing web services using public cloud services like AWS. He's been a part of Amazon, working in the last mile technology, maps, and navigation team, working on routing and navigation for delivery drivers.

Portfolio

Fazz
Go, GraphQL, GraphQL Code Generator, Agile, Fintech, Docker, Kubernetes...
Amazon.com
Java, Python, Amazon S3 (AWS S3), Amazon DynamoDB, AWS IAM, Amazon EC2...

Experience

Availability

Full-time

Preferred Environment

Linux, Amazon Web Services (AWS), Back-end, Java, Python

The most amazing...

...thing I've developed is a deployment system that determines which version of map files can be deployed to production by running various tests on the map files.

Work Experience

Senior Software Engineer

2022 - 2023
Fazz
  • Designed and developed a greenfield Go GraphQL API as the back end for a new fintech product launch.
  • Collaborated with cross-functional teams during development, spanning front-end, mobile, product, and infrastructure teams.
  • Mentored and onboarded new team members.
Technologies: Go, GraphQL, GraphQL Code Generator, Agile, Fintech, Docker, Kubernetes, Amazon Elastic Container Service (Amazon ECS)

Software Development Engineer

2018 - 2020
Amazon.com
  • Built and supported services for Amazon Logistics to deliver over 1B packages per year.
  • Reduced hardware costs by 90% for the map files building service by rearchitecting long-running host architecture into an event-driven serverless on-demand workflow architecture.
  • Reduced map files build time by 75% (1 hour -> 15 minutes) by modifying the map building algorithm to utilize graph nodes present in newer versions of map data instead of building graph nodes from scratch.
  • Automated manual map deployment process and removed cross-team QA and dependent team coordination by designing and developing an event-driven service to extensively test and compare metrics between different map versions before deploying to prod.
  • Reduced data errors by 30% by designing and developing a service to identify data errors in maps and publish error reports for manual correction in the data ingestion pipeline.
  • Implemented an offline map aggregator as a REST API in microservices-oriented architecture to aggregate multiple data sources for consumption by the mobile client for offline maps.
  • Simplified the region expansion and multi-region deployment by using AWS CloudFormation for infrastructure as code to provide AWS resources for newly created services.
  • Modified an existing map object indexing algorithm in a built-from-scratch spatially indexed flat file database to ensure consistent spatial ordering in a multithreaded program.
  • Completed the above projects with unit tests, integration tests, load tests, performance tests, logging, monitoring, and alarms as needed and deployed them to production using CI/CD pipelines.
  • Worked on the projects, from understanding the vague problem to gathering and scoping requirements to deploying and supporting the project once it was in production.
Technologies: Java, Python, Amazon S3 (AWS S3), Amazon DynamoDB, AWS IAM, Amazon EC2, AWS Lambda, AWS Step Functions, REST, Elasticsearch, DevOps, CI/CD Pipelines, Git, Spring, Agile Software Development, Serverless Architecture, Amazon Simple Notification Service (Amazon SNS), Amazon Simple Queue Service (SQS), Amazon Web Services (AWS), APIs, Containerization, REST APIs, Docker, Spring Boot, Serverless, Automation, AWS CloudFormation, Architecture, Software Architecture, API Integration, Microservices, Back-end Development, Software Engineering, Document Parsing, Data Processing, Geocoding, Ant Design, Apache Maven, Java 8, NoSQL, MongoDB, Cloud, Web Development, Multithreading, Software Development Lifecycle (SDLC), Python 3, Infrastructure as Code (IaC), Agile, AWS CodePipeline, Pytest, pylint, Data, Event-driven Architecture, Distributed Architecture, Amazon Cognito, Decision Trees, Linux, Back-end, Object-oriented Programming (OOP), Lambda Functions, RESTful Web Services, Amazon Elastic Container Service (Amazon ECS)

Teaching Assistant

2017 - 2017
Purdue University
  • Helped developed course with VR equipment donated from Facebook Oculus, HTC Vive, and Leap Motion.
  • Assisted professor in daily course operations and provided instructional aide to course students.
  • Graded course content, held office hours, conducted laboratory sessions, and performed clerical and administrative tasks.
Technologies: C++

Software Development Engineer Intern

2017 - 2017
Amazon.com
  • Designed and implemented a system to gather, display, and chart UX metrics from an existing product to help stakeholders make data-driven UX design decisions.
  • Constructed dashboards using Amazon EMR with Apache Zepellin for UX metrics.
  • Built an internal web app to visualize long-haul delivery tours and load with load capacity in tours.
Technologies: Ruby, Ruby on Rails (RoR), JavaScript, HTML, CSS, SQL, Git, CI/CD Pipelines, Amazon Elastic MapReduce (EMR), Amazon S3 (AWS S3), Amazon DynamoDB, Agile Software Development, Amazon Web Services (AWS), APIs, REST APIs, API Integration, Software Engineering, Node.js, Data Processing, Ant Design, React, Cloud, Web Development, MySQL, Software Development Lifecycle (SDLC), Agile, AWS CodePipeline, Linux, Back-end, Object-oriented Programming (OOP), REST

Map Deployment System

Overview: This service is used to deploy flat-file map databases to production while ensuring that the deployed map versions meet our team's threshold for data errors.

Problem:
1. Current map deployment process requires manual cross-team coordination between on-calls and QA, resulting in lost development hours.
2. Manual processes are also more error-prone.
3. Manual QA is done for every map version release, and automated map data testing should be created to support targeted weekly cadence for map updates.

What I did: I designed and developed a Java service to manage map deployments to production. This service coordinates with a dependent service to manage map deployments across multiple teams.

How service works:
1) It listens to messages in AWS SNS and SQS from a dependent service.
2) Message triggers AWS Lambda.
3) AWS Lambda triggers AWS Step Functions workflow.
4) AWS Step Functions provisions an AWS EC2 host to run extensive testing.
5) Produces an HTML file with reports for the delta between two different map versions.
6) Determines if a particular map version is suitable for production deployment.
7) Deploy the map to production servers.

Serverless Map Builder

Overview: The map builder is used to convert map JSON data into our built-from-scratch spatially indexed flat-file database format. These database files are then used by our navigation services to provide maps and navigation to delivery drivers both online and offline.

Problem: The current map builder process is run once a week for an hour, so the service is idle most of the time, resulting in wasted resources.

What I did: I re-architected the map building service from a long-running host architecture into a Python and Java-based event-driven architecture.

How it works:
1) AWS Lambda listens to AWS SNS and SQS for the location of a new version of map JSON data from a dependent service.
2) AWS Lambda provisions an EC2 instance to start the conversion of map JSON data to spatially indexed flat-file database files.
3) Database files will be stored in S3 after the build is finished.
4) The EC2 instance is automatically terminated after the process ends.

Map Error Detector

A Python AWS Lambda function that parses production service logs stored in Elasticsearch to identify data errors and deduplicate errors originating from the same coordinate and publish them as a CSV file for manual correction by the data team.

I designed and implemented this project as a software engineer.

Offline Map Aggregator

A Java-based REST API microservice that aggregates data artifacts produced from multiple teams and serves compatible versions of data artifacts to the mobile client to provide offline map view, routing, and navigation to delivery drivers.

I was the back-end developer and implemented parts of the system.

Forex Service

https://github.com/QuaintNeighborhood/forex-service
A back-end Node.js service written in TypeScript that provides the Forex rate after giving two currency pairs as the request. This service uses Fixer API as an oracle and provides an in-memory caching layer to reduce Fixer API calls. It accepts both REST API requests and GraphQL requests.

SuperSafeDreamToken

https://bscscan.com/address/0x0328d512b5acd3491cd65e3d11d4b588b5306d13
A BEP-20 cryptocurrency token for education purposes. Deployed on Binance Smart Chain (BSC) and provided liquidity on PancakeSwap, making it tradeable on all decentralized finance swaps.
2015 - 2017

Bachelor's Degree in Computer Science

Purdue University - West Lafayette, IN, USA

Libraries/APIs

REST APIs, Node.js, React

Tools

AWS Step Functions, Amazon Simple Notification Service (Amazon SNS), Amazon Simple Queue Service (SQS), AWS IAM, Git, Amazon CloudWatch, AWS CloudFormation, Apache Maven, Amazon Elastic MapReduce (EMR), Geocoding, Pytest, pylint, NPM, Amazon Cognito, Amazon Elastic Container Service (Amazon ECS)

Languages

Java, Java 8, Python, SQL, Python 3, Go, Ruby, CSS, C++, JavaScript, HTML, TypeScript, GraphQL, Solidity

Paradigms

Object-oriented Programming (OOP), Serverless Architecture, Automation, REST, DevOps, Agile Software Development, Microservices, Event-driven Architecture, Agile

Platforms

AWS Lambda, Amazon EC2, Amazon Web Services (AWS), Linux, Docker, Blockchain, Kubernetes

Storage

Amazon S3 (AWS S3), Amazon DynamoDB, Elasticsearch, NoSQL, PostgreSQL, MongoDB, MySQL

Frameworks

Spring, Spring Boot, Ant Design, Ruby on Rails (RoR), Jest, Express.js

Other

Serverless, Lambda Functions, RESTful Web Services, Back-end, CI/CD Pipelines, APIs, Containerization, Architecture, API Integration, Back-end Development, Software Engineering, Document Parsing, Data Processing, Cloud, Web Development, Software Development Lifecycle (SDLC), Infrastructure as Code (IaC), AWS CodePipeline, Data, Distributed Architecture, Software Architecture, RESTful Microservices, Multithreading, CSV, Decision Trees, Crypto, Smart Contracts, GraphQL Code Generator, Fintech

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring