R 24
⌀ 16 BORE
SLOT 24 × 12
CHRISTOPHER YU
CHRISTOPHER YU
§ 01  THE WORKSHOP IS OPEN  ·  BALI, UTC+8

I build productsfrom idea toproduction.

A product engineer working with founders and teams who want one person to own the whole thing. Interface, API, schema, architecture, deploys. You work directly with the person writing the code, not an account manager, and you get senior engineering without the overhead of an agency.

FIG.01 / SHAPE OF EVERY PROJECT● LIVE
CLIENTnext.js
APInode
POSTGRES
REDIS
WORKERSqueue
SPINE FOLLOWS THE SCROLL
CURSOR SHIFTS THE VIEW
§ 02  SELECTED WORK

Four systems, designed and shipped end to end.

All four are my own products. There are no client logos yet, so the portfolio is the code, the decisions and the trade-offs behind each one.

ALL FOUR, IN DETAIL →
01MonarkForecast-first finance. Every total derived from the transactions, money as branded integers.MonarkINSPECT →02ClassPortalTutor operations behind one GraphQL API. Sessions, assignments, students and invoicing.ClassPortalINSPECT →03StencilStudio management on two state machines: an enquiry that gets quoted, a booking that gets kept.StencilINSPECT →04SightlineClient-facing project status. No account for the client, so the link is the credential.SightlineINSPECT →
§ 03  SYSTEMS

Boring architecture, chosen on purpose.

Every product I build has roughly the same spine. A typed client, one API surface, a relational database that holds the truth, a cache where reads get expensive, background workers for anything slow, and a small number of third-party services at the edges.

The interesting decisions are never which framework. They are where state lives, what happens when a third party is down, and which parts you will regret in a year. I write those down before writing code.

HOW I THINK ABOUT ARCHITECTURE →
THE DIAGRAM IS LIVE · IT GROWS AS YOU SCROLL AND FOLLOWS YOUR CURSOR
FIG.03 / NODE LEGEND01 / 06
01
Client
Typed end to end. No untyped fetch calls crossing the boundary.
02
API
One surface, validated at the edge. Business rules live here, not in components.
03
Postgres
The only place that holds the truth. Constraints in the schema, not in the app.
04
Cache
Added when a read gets expensive, never before. Always invalidatable by hand.
05
Workers
PDFs, email, imports, anything slow. Retried, logged, never in the request path.
06
Edges
Payments, mail, storage. Wrapped so one of them dying does not take the product with it.
§ 04  SERVICES

What I can build for you.

Senior engineering, whole system, without the overhead of an agency. If a project needs more hands than it should, I will say so.

EVERY SERVICE IN DETAIL →
§ 05  ABOUT
Christopher Yu
C. YU / BALIFIG. 05.1

The engineer behind the systems.

Five years shipping production software: a year at a blockchain company where mistakes are public and expensive, three at a fintech where the ledger has to balance every time, and a year at an agency where the deadline is the deadline. I work remotely from Bali, UTC+8.

MORE ABOUT ME →
§ 06  START A PROJECT

Tell me what you are building.

What it is, roughly when you need it, and what is already built. I will reply with an honest read on scope, and whether this is the right fit.