What I’ve built, most recent first. The interesting parts are under the surface: how data survives a crash, how one event reaches every socket, how a job fails halfway and still finishes.
01
shipped
CrabKV — Distributed key-value store
A sharded async key-value store in Rust that survives crashes by replaying its own log.
Each shard owns its data and its thread, so reads and writes never contend for a lock. Clients speak a small custom binary protocol over Tokio.
Every write is appended to a write-ahead log before it touches memory. Snapshots bound the log, and on boot a node loads the latest snapshot and replays what came after it.
Throughput and correctness were checked under load with property-based and stress tests.
An embeddable engine for rooms, events, presence, and sessions, in the mould of Pusher and Ably.
Gateways are stateless and hold the WebSocket connections. Events fan out through Kafka, presence lives in Redis, and sessions in PostgreSQL, so no single node is a bottleneck.
Tenants are isolated by JWT. Integration tests cover the connection lifecycle, presence state, and message ordering under concurrent load.
Split into a Rust core, an auth service, a TypeScript SDK, and a dashboard.
A one-click workflow that replaced four to six hours of manual B2B prospecting per batch.
A webhook starts a run that scrapes businesses matching a target profile, enriches them, validates the data in SQL, and has an LLM score each lead against a JSON schema.
Every step is idempotent, so a batch that fails halfway re-runs safely and skips the work already done. Deployed per client from one Docker Compose template.
4–6 h / batch
before
1 click
after
100+ leads / run
throughput
Schema-checked
output
n8n
LLM APIs
SQL
Docker
04
live
ReviewBook — Realtime journaling app
Daily reviews and partner games with shared realtime sessions. Zero to live in under two weeks.
Sessions sync across users through Supabase Realtime. Streaks are computed in PostgreSQL, and row-level security keeps every user's data their own.