Dickson Tan
Skills
- Languages: JavaScript, TypeScript, Python, Rust
- Technologies: Node.js, AWS Lambda, Serverless framework, Docker, React
- Others: API design, databases, unit, integration & E2E testing, web accessibility, ontological coaching
Experience
Software Engineer II, GovTech Singapore Apr 2021 – present
Software Engineer I, GovTech Singapore Aug 2018 – Apr 2021
GovWallet (Oct 2021 – present)
GovWallet is a reusable system for government agencies to disburse payouts to citizens. GovWallet has disbursed over $400 million across 30 campaigns, served 1.5 million users, and processed 7.6 million transactions.
- Technologies: TypeScript, Node.js, AWS (DynamoDB, Lambda, SQS, Step Functions), Python
- Designed and implemented a scalable payout expiry system capable of handling millions of transactions across multiple campaigns. This core functionality is now used by almost every campaign, eliminating manual reclamation efforts for unused funds
- Optimized API endpoints for transaction data retrieval resulting in a 400% speedup. This was done by fixing critical bugs in a DynamoDB query that caused overfetching and rare endpoint failures
- Improved system architecture and maintainability by decomposing monolithic Serverless deployment into smaller stacks, working around CloudFormation’s limit of 500 resources in a single stack
- Spearheaded progress towards Continuous delivery by advocating for and implementing release toggles, simplifying the deployment process and encouraging smaller, more manageable Pull Requests. Reduced time needed to prepare deployments from 60 to 15 minutes
MyCareersFuture (Aug 2018 – Sep 2021)
MyCareersFuture (MCF) is a job portal that matches jobseekers and employers through skill matching.
- Technologies: Node.js, MySQL, React, Cypress, GraphQL, CouchDB, Docker, AWS
- Design, build, and maintain microservices for managing jobseeker data and integration with third party service providers
- Led a year long effort to decouple MCF from a legacy system resulting in 3% more uptime and 10% less code in the backend
- Designed new APIs for third-party integrations, implementing a pull-based approach that minimized onboarding efforts for new API consumers
- Reduced deployment cycle time by 50% through advocating for greater ownership of end-to-end tests, increasing deployable builds from bi-weekly to multiple times per week
Projects
- Created Beets-audible, a plugin that adds support for audiobook management to Beets, a popular open-source music organizer
- Added support for keyboard navigation to the JSON viewer in Mozilla Firefox, released in version 76
Education
National University of Singapore, BComp. Computer Science, Honors (Highest Distinction) 2015 – 2018
- GPA 4.55/5.0
Interests
- Specialty coffee
- Reading science fiction and fantasy