About me
I'm a full stack developer looking for work mainly focusing on JavaScript language. React for frontend, Node.js for backend.
I'm usually on the computer most of the time coding and learning. When I'm not on the computer, I enjoy cycling.
I use VIM for coding and Emacs org-mode
and org-roam
for notetaking.
I am currently rocking a ZSA moonlander with Gateron Clear and Logitech MX Ergo for my peripherals.
Work Experience Jump to heading
Xendit
Senior Software Engineer Jul 2022 - Jan 2024
- Created an abstraction notification service for our team over an org-wide notification service using TypeORM, Postgres, AWS SNS and AWS SQS. This included planning multiple options, discussing with the team on the best option, executing the project, documentation on the usage of the API, making sure the queue runners metrics and alerts are properly tracked and set up respectively. Post deployment, we also needed to make sure that the overall performance of our APIs are not affected.
- Upgraded our Cypress automation test suite to keep up to date with the org-wide's testing libraries as well as turning our CI/CD pipelines into reproducible YAML files to make it easier to scale
- Implemented transactional outbox pattern to our API to ensure the reliability of our services. This included load testing our API with different configurations to ensure that there was no additional latency to our API. In order for safe deployments, this was released using feature flags where it could be roll backed quickly if something goes wrong.
InstaHome
Senior Software Engineer Feb 2022 - Jun 2022
- Improved performance of file uploads and downloads by leveraging Node.js Streams
- In charge of handling the handover for the entire front end project
Mudah.my
Senior Software Engineer Feb 2019 - Feb 2022
- Ported the SEO converter API from Node.js to Golang for better performance and better use of resources. At the same time, new URL patterns are also introduced which increased complexity. Moved from imperative style of coding to declaration to handle the complexity. Additionally, created a sitemap service to generate all possible URLs in Golang that reads from a config API. Used Kubernetes Jobs that runs daily to generate these sitemaps and upload them to Google Cloud Storage.
- Sole creator and developer of an API built on Node.js used for converting SEO friendly urls to search engine params. It uses redis as a caching backend mechanism. Tests are written with Mocha, Sinon and Chai. API documentation is written with Swagger
- Lead developer in migrating legacy code to modern tooling and frameworks consisting of NextJS, React, TypeScript, Redux, ReduxSaga and MaterialUI. This involves creating and maintaining the new mobile and desktop web. Integration tests are written using Jest and testing-library. E2E tests are written with Cypress. Visual regression tests are handled by Percy.
- Maintaining a UI component library built with Tailwind, MaterialUI, TypeScript and Rollup with support for Storybook
- Ensure developer experience is smooth by incorporating Docker and Gitlab CICD into the workflow. This includes automating development setup, tests, releases and post releases. Automatic CHANGELOGs are generated via conventional commit messages.
Software Engineer Feb 2018 - Jan 2019
- Responsible for user authentication and authorization written in PHP Phalcon i.e. server load, user issues, documentation for API, regression tests.
- Responsible for the chat application which involves using Node.js, NoSQL DB and sockets for the backend and real time notifications and React for the front end.
Associate Software Engineer Aug 2016 - Jan 2018
- Debug and maintain an inhouse framework called Blocket.
- Provide support for the Android team by working closely with them on the User Accounts API.
Brilliance Information
Intern Nov 2014 - Feb 2015
Education Jump to heading
University of Adelaide 2012 - 2016
Bachelor of Engineering(BEng), Computer Software Engineering
Learnt various aspects of the software world. This includes computer architecture, networks, event driven computing, web and database systems, algorithms and data structures and object oriented programming. Had two projects, one for the University of Adelaide and another for a real estate company called RayWhite.
Proficiencies Jump to heading
- Golang
- Node.js
- HTML
- CSS
- JavaScript
- React
- Next.js
- Tailwind
- Docker