Dickson Tan
- email]
- GitHub profile
- blog
- Singapore
Skills
- Languages: JavaScript, TypeScript, Python, Rust
- Technologies: node.js, Serverless (AWS Lambda), React, Docker
- Others: API design, relational databases, unit, integration & E2E testing, web accessibility
Experience
Software Engineer, GovTech Singapore Apr 2021 – present
Associate Software Engineer, GovTech Singapore Aug 2018 – Apr 2021
GovWallet (Oct 2021 – present)
GovWallet is a reusable system for government agencies to disburse payouts to citizens.
- Technologies: TypeScript, Node.js, various AWS services (DynamoDB, Lambda, SQS), Python
- Added support for disbursing payouts that have an expiry date. This removes the need to manually reclaim unused funds when various schemes expire, a key requirement for agencies
- Automated various repetitive ops tasks, saving an estimated 1 hour per sprint
- Reduced time needed to run tests on the pipeline from 15 to 3 minutes. This was done by working around a memory leak
Notarise (Nov 2020 – Dec 2020)
Notarise is a portal for outbound travelers to get digitally authenticated and endorsed COVID-19 Pre-Departure Test results for travel.
- Technologies: Node.js, various AWS services (Lambda, SNS, SQS)
- Simplify travel by making notarised test results available in the SingPass mobile app. This was done by integrating with the SingPass backend
- Reduce time needed for travelers to get their notarised results. Exposed APIs for providers of COVID-19 tests for them to get results back to travelers more quickly
MyCareersFuture (Aug 2018 – Sep 2021)
MyCareersFuture (MCF) is a job portal that matches jobseekers and employers through skill matching. Worked in a cross-functional scrum team of ~20 people.
- Technologies: Node.js, MySQL, React, Cypress, GraphQL, CouchDB, Docker, AWS
- Decouple MCF from a legacy system resulting in 3% more uptime and 10% less code in the backend. This legacy code was used to keep data in sync with this system bidirectionally in real-time which limited MCF’s uptime and has caused data corruption issues
- Led design of new APIs for third parties that MCF integrates with, so API consumers pull data instead of data being pushed to each new third party. This means that work only needs to be done once to build the APIss with minimal effort to onboard new API consumers
- Reduce cycle time by 50% allowing for more frequent deployments. This was done by advocating for greater ownership of the end-to-end tests in the pipeline among developers. This increased the frequency of green builds deployable to production from once per fortnight to multiple times a week
- Provide level 3 support on a rotational basis to diagnose and fix bugs in production
Projects
- Added support for keyboard navigation to the JSON viewer in Mozilla Firefox, released in version 76
- Created Beets-audible, a plugin that adds support for audiobook management to Beets. Beets is an open-source music organizer with over 10000 stars on Github
Education
National University of Singapore, BComp. Computer Science, Honors (Highest Distinction) 2015 – 2018
- GPA 4.55/5.0
- Thematic Systems Project I and II (enrollment cap of 21 students): software engineering modules training students to improve code quality towards levels expected from engineers at high-end companies like Google and lead high-stakes open-source projects. Fixed bugs, provided code review and advised new contributors.
Interests
- Coffee
- Reading science fiction and fantasy
- Ontological coaching