Systems

Three systems, up close

Three projects, each with something you can actually poke at. The full write-ups live in the repos.

DeepCS

In build

A CS-fundamentals question bank where two people get matched and solve the same question together in real time.

Stage
Design locked, building now
Role
Solo, design and build
Stack
TypeScript · Fastify · Yjs · PostgreSQL · Redis · Cloud Run
Doc
9 ADRs, every build-vs-buy call tagged

This is the design, not a live system. You won't find any performance numbers here, because there is nothing deployed to measure yet.

01

How the six services fit together

hover a service, or watch a request travel

Hover any service to see what it owns, or press play to watch a request travel through the system.

deepcs · architecture designed, not deployed

Swipe the diagram to see all six

Walk a request path
Idle

Pick a request path, or hover any service to see what it owns.

request path service-to-service call stacked = scales 0 to 2 instances amber = the only always-on machines
02

The race I built a gateway to understand

a simulation, running in your browser

Two servers share one budget of requests. Switch to read-then-write and hit burst to watch them both let a request through that only one of them could pay for.

token bucket · one bucket, two instances capacity 10 · refill 2/s
gateway instance A
·
gateway instance B
·
shared bucket in Redis 10 / 10
0
admitted
0
over-admitted
0
429s
Interleaving
03

Two people, two servers, one document

a real CRDT, running in this page

Two people, two servers, no shared memory. Type in both at once, drop a connection, drag the latency slider. They still end up with the same document.

collab · session s42 RGA implemented in this page
delivery 420 ms
User A · collab instance 1
redis
pub/sub
User B · collab instance 2
ops shipped: 0 tombstones: 0 click into a pane and type

Nine architecture decision records live in DESIGN.md, including why I built the gateway instead of using Kong, and why auth is the one thing I paid for.


Recall

Designed

A search engine over a semester of my own notes that answers with cited sources, and refuses when retrieval confidence is low.

Stage
Build plan written, code not started
Role
Solo, design and build
Stack
Go · Python (ingest) · Docker
Rule
Real numbers only, failures included

Recall isn't built yet. The search box below is real BM25 running in your browser over nine sample chunks. The real thing will do this in Go, over my own notes.

01

How a question becomes ranked results

real BM25, scored live

Type a question and watch it get taken apart, looked up, and scored. Try the pizza one to see it refuse rather than invent an answer.

recall · sample index
1 · tokenise
2 · stem
3 · postings
4 · score

Nothing in the index is about pizza, so everything scores too low and it refuses.

The full build order, from ingest through sharding, is in PLAN.md.


Airlock

Shipped 1st place

A safety gate between an AI coding agent and every package it tries to install. Each install is detonated in a disposable sandbox before it touches the machine.

Stage
Built and working
Result
1st place, Daytona HackSprint · NUS Singapore · Jul 2026
Role
Weekend team build. A teammate and I shaped the concept and system design
Stack
Python · Daytona · Nosana · Doubleword · Oxylabs · ai&

This one is real code. The verdict below is the actual output from the repo, replayed slowly enough to read. The timings are for pacing, not measurements.

01

How Airlock makes up its mind

recorded verdict, replayed

An agent tries to install python-pillow, a fake built to look like the real pillow. Airlock runs it somewhere disposable, reads it, then decides.

airlock · pre-install gate enforced as a hook
waiting for an install
Airlock announced as overall champion on the projector at the Daytona HackSprint, with the team standing in front of it.
Overall champion, Daytona HackSprint. NUS Singapore, 18 July 2026. Built with Basil in a five-hour window, using all five sponsor technologies.

Next

Want to know more about me?

Where I study, what I teach, and how I got here.