[00]// Work5 shipped
Selected

Things that are running

Products I own and systems shipped for clients. Each one is here because something in it was genuinely hard.

01

KhataFlow

Invoicing and bookkeeping on a real double-entry ledger, for businesses that bill across currencies.

  • Multi-currency invoicing with rates snapshotted per transaction and automatic realised FX gain/loss
  • 48 currencies, per-business base currency, with historical rates preserved on every document
  • Reports derived from the ledger itself, so they cannot drift from the books
Stack
TypeScript · Next.js · NestJS · PostgreSQL · Prisma · Better Auth
Kind
Client work · 2026 · active
Case study
02

Stencil

Invoice extraction where AI authors the rules once and a deterministic interpreter replays them for free.

  • Per-invoice model cost drops to zero once a supplier layout is known
  • Deterministic, reproducible extraction — the same PDF twice gives the same rows
  • Adding a supplier is data, not code: profile JSON, no supplier-specific Python
Stack
Python · FastAPI · Celery · Redis · MySQL · pymupdf
Kind
Product · 2026 · active
Case study
03

Signal

Your job search, minus the searching.

  • Location fit scored separately from role fit, so a job you can't take never tops the list
  • One command starts API, scheduler and worker — no broker, no database server, no cron
  • Degraded services surface as a banner; the app never looks healthy while it isn't
Stack
Python · FastAPI · SQLite · httpx · BeautifulSoup · APScheduler
Kind
Product · 2026 · active
Case study
04

HotPlate

Taking a seventeen-year-old Karachi catering business off paper — quotes, proformas, invoices and payments.

  • Quote → proforma → invoice → payment as one tracked flow instead of WhatsApp and paper
  • Proforma invoices modelled as their own document, because that is what secures a booking
  • Structured data generated from the same constants that render the contact page, so they cannot drift
Stack
TypeScript · Next.js · Supabase · PostgreSQL · React PDF · Resend
Kind
Client work · 2026 · active
Case study
05

Raqam

Personal finance for Pakistan, built on the only data source that exists: the bank's SMS.

  • Every transaction points back at the alert it came from — nothing inferred is shown as fact
  • Parser uncertainty routed to a review queue instead of a confident wrong number
  • Expo development build with native modules, because real SMS and notification access needs them
Stack
TypeScript · React Native · Expo · Supabase · PostgreSQL · Jest
Kind
Product · 2026 · wip
Case study