Hwaai Kang Kee
Verified Expert in Engineering
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.
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.
Software Development Engineer
- 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.
- 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.
Software Development Engineer Intern
- 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.
Map Deployment System
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
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
I designed and implemented this project as a software engineer.
Offline Map Aggregator
I was the back-end developer and implemented parts of the system.
REST APIs, Node.js, React
AWS Step Functions, AWS Simple Notification Service (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
Object-oriented Programming (OOP), Serverless Architecture, Automation, REST, DevOps, Agile Software Development, Microservices, Event-driven Architecture, Agile
AWS Lambda, Amazon EC2, Amazon Web Services (AWS), Linux, Docker, Blockchain
Amazon S3 (AWS S3), Amazon DynamoDB, Elasticsearch, NoSQL, PostgreSQL, MongoDB, MySQL
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
Spring, Spring Boot, Ant Design, Ruby on Rails (RoR), Jest, Express.js
Bachelor's Degree in Computer Science
Purdue University - West Lafayette, IN, USA
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.Start hiring