About Me

I started my programming journey when I self-learnt coding in 2008. From there, I continued my education with a BSc in Computer Science. On the side, I’ve been learning new coding skills, experimenting with projects, and discovering the joys of raw creation through programming.

My passion is in creating great user experiences for people, which is why I’ve also picked up graphic and web design. Find out more about me below!

Experience

Charles & Keith

- Senior Software Engineer (Full Stack)
Jul 2025 - Present

Building the company’s new native mobile app and its backend from scratch, replacing an existing web-wrapper app. Started as the only developer, now tech lead for the app team.

  • Integrated credit card payments, Atome, iPay88 and Apple Pay for the Malaysia launch, including the idempotency and duplicate-order handling, tested end to end.
  • Built a React Native iOS app and a serverless backend from scratch on AWS Lambda, CDK, DynamoDB and Redis, integrating Salesforce Commerce Cloud for catalogue, cart and checkout.
  • Built a shared repository of tooling, standards and setup scripts that every engineer on the team clones, so new developers get a working environment without manual configuration.
  • Introduced AI-assisted development workflows to the team through Codex/Claude AI agents and skills, balancing speed against human review to ensure high code quality and correct behaviour.
  • Set up testing, CI/CD and monitoring across both repos with Jest, Vitest, Maestro, Sentry and CloudWatch. Added device verification to catch defects that only surface on hardware.
  • Grew and directed the team: built the hiring process for the full stack engineer and QA roles, onboarded the engineering hire, set the code review standards, and directed the external Salesforce Commerce Cloud team’s scope and delivery. Planned the delivery schedule with story point estimation and two-week sprints, giving the business six months of forward visibility.

RepubliK

- Senior Software Engineer
Nov 2024 - Jun 2025

Built a cryptocurrency trading platform from scratch with React, TypeScript, and Tailwind, utilising endpoints from OKX and Hyperliquid to provide on-chain functionality for token swaps and perpetual trading.

  • Coordinated requests from the product manager and backend team lead through cross-functional meetings. Iterated on wireframes with UI designers to create intuitive user experiences for customers.
  • Implemented workflow changes to daily standups, sprint planning, and ticket requirements based on experience from past companies to improve developer efficiency and communication effectiveness.

ByteDance (TikTok)

- Software Engineer
Jun 2023 - Jan 2024

Maintained and improved the Trust and Safety Platform, an internal platform used by content moderation teams across TikTok to manage content at scale.

  • Designed and built a workflow graph visualiser in production with D3.js library on the internal frontend platform (React, Typescript, SASS) which improved cross-team collaboration and moderation efficiency.
  • Spearheaded a code quality initiative, building scripts to measure and identify code smell metrics and proposing them as a measure of impact in employee evaluation.
  • Collaborated across backend and designer teams to draft implementation proposals for new features, and was in charge of presenting them to the team and their execution.

Indeed.com

- Software Engineer (Full Stack)
Jul 2019 - Mar 2023

Worked across the employer platform, where employers create and manage their company profiles, and the flagship job search page. Both were live, high-traffic systems with no downtime allowance.

  • Built features across the backend (Java, Spring Boot, Redis) and frontend (React, TypeScript, SASS, Emotion JS), connected over RESTful APIs, with regression tests in Jest and Cypress.
  • Migrated a schema field across the database, two backend layers and the frontend on a live platform with no room for service interruptions or data loss. The steps were sequenced so that every intermediate state was valid, including rolling deploys where multiple versions of a service ran against the same data concurrently.
  • Developed and documented reusable React components with Storybook, reducing development lead time and improving code review and testing.
  • Advanced UX research for the mobile search page by building high-fidelity prototypes in Webpack and React, facilitating rapid iterations and actionable feedback from research participants.
  • Represented Indeed at outreach events. Created a Telegram Bot workshop and conducted it at multiple university events to engage university students.

Bachelor of Computing (Computer Science)

Aug 2015 - Jul 2019
  • Graduated from the National University of Singapore (NUS) with a GPA 4.71 / 5.00 (Honours).
  • Awarded the ​National Infocomm Scholarship (NIS) offered by IMDA.

Skills

  • Backend: Java (Spring Boot, Maven, Gradle), Node, TypeScript (serverless), Python, Express.js, C#, Shell Script, REST, OpenAPI, Zod
  • Frontend: HTML, Javascript, TypeScript, React, React Native, Redux, NextJS, Tamagui, React Query, Zustand, CSS, SCSS, Tailwind, EmotionJS, Webpack
  • Testing: Jest, Vitest, Cypress, Maestro, Selenium, Storybook
  • Cloud & Platform: AWS (Lambda, CDK, DynamoDB, API Gateway, ElastiCache, S3, CloudFront, CloudWatch, Secrets Manager), Infrastructure as Code, CI/CD, Docker, Salesforce Commerce Cloud
  • AI & Agentic Workflows: Claude Code, Codex, MCP (Model Context Protocol), agent design and orchestration, sub-agents, context engineering, AI-assisted code review
  • Database: SQL, MongoDB, Redis
  • Integrations: Sanity CMS, Amplitude, Segment, Braze, Sentry
  • Tools: VSCode, IntelliJ IDEA, Git (GitHub, GitLab, GitKraken), Jira, Confluence, Figma
  • System: Windows, Unix, MacOS

Projects

  • Loctt: An offline task tracker that lives with the repository instead of a server. Task state is kept on a separate headless branch, so it survives branch merges, and syncs by push and pull like the code does. Exposed through a UI, a CLI and an MCP server for human and AI agents to use.
  • Personal AI Toolkit: An open-source toolkit for working with AI coding agents, installable from GitHub. It covers the ticket workflow, code review, and tech debt cleanup. Agents investigate and propose first, and wait for approval before writing any code. Shared standards live separately from per-project conventions, so each repo gets tooling that fits it.
  • Astral Echo: A generative music system built on music theory and a small open dataset rather than a large pretrained model, with a planetary visualiser, intended for continuous streaming. Python, RNN encoder/decoder, and the data processing behind it.
  • LIFC Convention: Leads a team of over 20 members to organise a yearly fandom convention with over 350 attendees.
  • Domsi: Developed Domsi, a powerful web scraping library in TypeScript that simplifies the extraction of DOM elements by integrating styles, attributes, and hierarchy in its selectors. Read more about it here.
  • Snap Console: Created Snap Console, a Python 3 library designed for complex user input and output handling, built on the curses library. Read more about it here.

Portfolio

You can check out my other projects on my GitHub!

Resume

Looking for my resume? Check it out here!

Contact

Alternatively, you can reach out to me through LinkedIn or email!