Backend that holds up
Normalized schemas, idempotent workers, and row-level security — the parts that quietly keep data correct under load.
Full-stack developer · Seoul
I design the data model, build the API, and craft the interface on top of it — so features arrive whole, not half-finished. Here is a selection of what I have shipped.
How I work
Most work needs a schema change, an API endpoint, and a screen to drive it. I do all three, which means fewer handoffs, tighter feedback loops, and features that actually ship.
Normalized schemas, idempotent workers, and row-level security — the parts that quietly keep data correct under load.
Typed contracts, thoughtful caching, and honest error states, so the front end never has to guess what the server meant.
Optimistic updates, accessible components, and layouts that stay responsive from a warehouse phone to a 4K monitor.
How a feature travels through the stack
day 1
Model the data first — migrations, constraints, and RLS from the start.
day 2
Typed endpoints with tests, honest errors, and pagination that scales.
day 3-4
Screens wired to the real API — loading, empty, and error states included.
day 5
Feature-flagged rollout with logs and metrics watching the seams.
Selected work
Case studies from real products — billing, CRM, realtime collaboration, and more. Open any card for the role, the stack, and the measured impact.
FeaturedA metered billing engine handling usage aggregation, Stripe webhooks, and self-serve plan changes for a B2B SaaS.
FeaturedA team CRM with row-level tenant isolation, granular roles, and a fast keyboard-driven pipeline board.

A Google-Docs-style editor with conflict-free multi-cursor editing backed by CRDTs over WebSockets.

An offline-first mobile app for barcode scanning and stock counts that syncs the moment a signal returns.

A federated gateway that stitches six backend services into one typed schema with per-field caching.
I'm open to full-time roles and focused contract work — especially gnarly data problems and greenfield builds. Tell me what you're building.