Backend engineer · Hong Kong · Open to relocation

Five years shipping production software at Sugar.fit, Unacademy and Avalon Meta, for platforms from 100K to 50M+ users. I moved to Hong Kong for an MSc IT at HKUST, to be where money crosses borders and currencies every second. I work in Java, Spring Boot and PostgreSQL, on systems that stay correct under retries, races and redeploys.

Projects.

What I built, what it achieved, and the decisions behind it.

DuraLedger Grafana dashboard: zero invariant violations, reconciliation, request rates and outbox lag
Personal project · Live on Cloud Run

DuraLedger

A multi-currency wallet ledger that never loses or duplicates money: not under retries, races, crashes or deploys.

Java 21Spring BootPostgreSQLjOOQFlywayPub/SubCloud RunKubernetes
406/son one hot account, p99 91 ms
20 → 1concurrent retries, posted once
2,586/2,586transfers through a redeploy

Key decisions

  • Idempotency key claimed inside the transaction that posts the legs, so a duplicate waits on Postgres's lock and replays the stored response.
  • Invariants enforced by PostgreSQL: zero-sum per currency checked at commit, CHECK (balance ≥ 0).
  • Pessimistic locking by default: on hot accounts optimistic retries tripled p99. Accounts locked in id order to kill a deadlock.
  • Transactional outbox for events, and scale-to-zero on Cloud Run + Neon for ≈$0 idle cost.
App · 100K+ API Gateway auth · routing usersprogramsglucosemeals+ 6 more
Sugar.fit · Senior Software Engineer

API gateway & platform rebuild

Owned the modernization of an 8-year-old healthcare platform serving 100K+ premium users.

JavaSpring BootKubernetesREST
10+microservices behind the gateway
99.9%+crash-free sessions
−52%app launch time

Key decisions

  • Authentication at the edge: filters in the gateway, so every route is checked in one place.
  • One entry point: REST routes carry all app traffic to the services behind it on Kubernetes.
UST GradPath course map showing prerequisites for COMP 3711
Personal project · Android APK

UST GradPath

HKUST's free-text prerequisites for 4,030 courses, turned into one graph you can plan with.

TypeScriptReact NativeGraphsJest
4,030courses in one graph
574 KBstartup index from 28 MB
69 + 7unit tests + E2E flows

Key decisions

  • Heavy work at build time: parse and index once on a laptop, not on every launch.
  • Cycle-safe traversal and shortest-path planning to any course.
CommitBuildTestRelease days → ~2 hours Bitrise · Fastlane · per-product config
Unacademy · Senior Software Engineer

Release automation

CI/CD and an internal app platform that let every product team ship on its own.

CI/CDBitriseFastlanePlatform
~2 hrelease cycle, down from days
50M+learners on the apps
Group-wideteams self-serving releases

Key decisions

  • Configuration over code: teams configure and deploy their apps without a central release team.

Experience.

Five years in production, from community platforms to healthcare.

USThing (HKUST)

Lead App Developer

Shipping features on HKUST's all-in-one campus app, relied on daily by thousands of students.

Sugar.fit

Senior Software Engineer

Spring Boot API gateway for 10+ microservices; modernized a platform for 100K+ users; 99.9%+ crash-free.

Unacademy

Senior Software Engineer

CI/CD that cut releases from days to ~2 hours for apps serving 50M+ learners.

Avalon Meta (Graphy)

Software Engineer

Built a white-label community platform scaled to 60+ communities and $1M+ ARR; acquired by Graphy.

Skills.

Tools I use day to day, and the ones I'm proving in DuraLedger.

Languages

Java 17/21 · SQL · TypeScript · Python

Backend

Spring Boot · jOOQ · Flyway · REST · Outbox · Idempotency

Data & testing

PostgreSQL · Redis · JUnit 5 · Spock · Testcontainers

Cloud & ops

GCP · Kubernetes · Docker · GitHub Actions · OpenTelemetry · Prometheus

Let's talk.

Graduating from HKUST in July 2027 and looking for backend engineering roles.