Full-stack engineer based in Singapore with 4+ years of experience building scalable backend systems and the frontends that sit on top of them. Currently at Vistra Singapore; previously at DCS Card Center, where I worked across TypeScript, Spring Boot, and PostgreSQL — focused on API performance, observability, and turning slow, manual workflows into fast, automated ones.

I care about the parts of software that compound: clean queries, good monitoring, type-safe interfaces, and code that the next engineer can actually read.

Mar 2026 — Present
Full-Stack Engineer — Vistra Singapore, Singapore
Building features across Next.js and Node.js.
Next.js
Node.js
Mar 2025 — Mar 2026
Full-Stack Engineer — DCS Card Center, Singapore
Built and scaled backend services and customer-operations tooling for a card-issuing business.
  • Cut high-traffic API response times from 1–2 minutes to under 1 second through query refactoring, indexing, and caching.
  • Automated card add-ons, fee waivers, and similar workflows, reducing manual agent intervention by ~80%.
  • Built a JWT + Lark OAuth sidebar app embedded in Zendesk, letting agents process customer requests (card closure, address updates) without leaving the ticket.
  • Stood up Grafana and Prometheus dashboards for backend services, surfacing performance regressions and scaling bottlenecks before they hit customers.
  • Introduced async task workers in Spring Boot to offload heavy operations and keep response times stable under load.
  • Refactored legacy services with parameterized SQL, closing injection risks and improving maintainability.
TypeScript
Spring Boot
PostgreSQL
Redis
Grafana
Prometheus
May 2022 — Jan 2025
Software Engineer — Kiteworks, Singapore
Full-stack engineer on a secure file-sharing platform serving enterprise customers.
  • Built interactive compliance dashboards in React + TypeScript, giving compliance officers visibility into file activity and policy violations.
  • Audited and remediated CVEs in frontend dependencies, replacing or patching compromised libraries to keep the platform compliant for enterprise customers.
  • Identified privilege-escalation and broken-access-control vulnerabilities during internal bug bashes, preventing scope-bypass issues from reaching production.
  • Migrated frontend components from JSX to TSX and introduced custom React hooks, improving type safety and reducing duplication across teams.
  • Led bug triages, sprint planning, and cross-team security reviews across engineering, product, and compliance.
React
TypeScript
Node.js
Python
PHP
PostgreSQL
Vue
Jan 2021 — May 2021
Software Engineer Intern — ST Engineering, Singapore
Reduced an RPA job's runtime from 10 minutes to 1–2 minutes by replacing brittle automation tasks with Python scripts and partnering with the RPA vendor on bug fixes.
Python
RPA

Flatlas — Singapore HDB Resale Map
Go · PostGIS · Martin vector tiles · React · MapLibre GL · DuckDB · Docker
An interactive analytics map of every Singapore HDB resale transaction since 1990 — roughly a million sales across ten thousand blocks. A three-tier zoom blends town choropleth → block dots → 3D buildings extruded from their real footprints; a time slider replays 35 years of prices in real (CPI-adjusted) or nominal dollars. A hedonic pricing model (test R² 0.94) explains why each flat is priced the way it is, and the map flips between resale and rental markets. Live at flatlas.sg. Read the case study →
Hello Again — Merchant Portal
Vue 3 · Spring Boot · JWT · PostgreSQL
A merchant portal for managing inventory, employees, and business analytics. Built as an excuse to go end-to-end on a stack I don't use at work — frontend in Vue 3, backend in Spring Boot with JWT auth, admin dashboard layered on top.
Audio Transcriber
React · FastAPI · Redis · Docker · Whisper
A web app that transcribes uploaded audio files using OpenAI's whisper-tiny model. Async processing via Redis queues and Docker containers keeps the UI responsive while transcription runs in the background — the kind of architecture you'd reach for if this were a real product.

Open to interesting backend, full-stack, and platform problems. Quickest way to reach me: