SYSTEMS INDEX · 8 RECORDS DECLASSIFIED

Systems, not logos.

Nearly everything I've built over the last sixteen years sits behind an NDA. Client names, product names and code aren't mine to publish — but the architecture is. These are the systems themselves: what made each one hard, the decisions I made, what those decisions cost, and what I'd do differently now.

One is the exception: a construction takeoff and estimating product I built for myself, start to finish. That one has a working demo you can watch.

If you'd rather ask than read, the agent knows all of this and will argue the trade-offs with you.

Card shapes are the real architectures ■interface ■service ■state ■async ■external
TAKEOFF-ENGINE ▶ DEMO Construction-Tech · Own Product · 2016 — 2019

Measuring Buildings From a PDF

A construction takeoff and cost-estimation product, solo-architected end to end and shipped in 12 months at 15–20 hrs/week.

  • A drawing is a picture; an estimate is a spreadsheet. Everything hard lives in the gap between them.
  • Measurement errors don't surface as bugs — they surface as a wrong number that looks perfectly plausible.
  • The competition is a decade of accumulated features, and there was one part-time engineer.
12 mo Concept to shipped MVP 15–20 Hours per week, one person 1 Engineer — architecture, UI, backend, DevOps
ReactReduxHTML CanvasNode.jsPythonDjangoElectron
OPEN DEEP-DIVE ⟶
DECISION-MATRIX FinTech / Payments · 2016

Routing Money Through Unreliable Rails

A payment gateway that picks a provider per transaction instead of per merchant.

  • Every payment provider in the target markets failed differently, and none failed politely.
  • Routing had to optimise cost, success rate and settlement speed at once — three objectives that disagree.
  • A retry that looks free to the user can be a double charge to the merchant.
3 Dashboards shipped 2 Native SDKs (Android, Unity) N+1 Providers, hot-swappable
PythonDjangoRabbitMQCeleryNginxAWS EC2/RDS/DynamoDB
OPEN DEEP-DIVE ⟶
TEMPLATE-FORGE Platform-as-a-Service · 2019 — 2020

Building a Platform That Generates Apps

A Node.js toolchain and React portal assembled white-labelled products from reusable templates, logic, screens and components, then previewed and released them to PWA, Android and iOS.

  • Reuse had to extend below colours and logos into business logic, screens, modules and platform-specific components.
  • Non-engineers needed theme, design, config, preview and build controls without being exposed to CLI or release mechanics.
  • The scope crossed authoring, generation, preview hosting, AWS services, governance and three release targets inside a roughly fourteen-month role.
3 targets PWA · Android · iOS from one project 5 layers Templates · logic · modules · screens · components 14 mo Role window — concept, team, architecture and delivery
Node.jsExpress.jsReactReact NativeMongoDBNginxAWS EC2/S3/EBS
OPEN DEEP-DIVE ⟶
PATHWAY-FORGE Generative AI · Learning Authoring · 2024 — 2026
◈ Education platform · 2020—2026

Generating Courses Without Letting the Model Invent the Curriculum

An authoring system that turns a one-line brief into a standards-grounded programme, validates the structure, then generates each session as editable content.

  • A model will fill in an ambiguous brief confidently, and wrongly.
  • Standards identifiers cannot be invented — the whole point is that they're citable.
  • Full generation is slow, and one bad session shouldn't invalidate the other thirty.
brief → programme Structured authoring flow grounded Standards chosen before generation per session Isolated, recoverable jobs
ReactNode.jsPythonLLM OrchestrationVector SearchQueuesStructured Content
OPEN DEEP-DIVE ⟶
CONTENT-LENS Applied ML · Content Assurance · 2023 — 2025
◈ Education platform · 2020—2026

Turning Course Documents Into Defensible Alignment Evidence

A human-in-the-loop pipeline that converts course documents into reviewable learning claims, standards mappings, coverage analysis and versioned evidence reports.

  • The input is a layout-heavy document, not clean data.
  • An extraction failure and a classification failure need completely different fixes.
  • The output can influence a certification decision, so a confidence score isn't an answer.
pdf · docx Document-first intake reviewed Machine proposes, people decide evidence Coverage and gap report
OPEN DEEP-DIVE ⟶
ASSESSMENT-FABRIC EdTech · Assessment Infrastructure · 2020 — 2026
◈ Education platform · 2020—2026

Assessment Partners Can Integrate Without Rebuilding Their Programme

A multi-tenant assessment and learning runtime that turns a versioned standards model into localised instruments, reproducible scores and reliable partner delivery.

  • Partners arrive with learners, identity, reporting and a release calendar already in motion.
  • A completed submission must produce the same result when replayed years later.
  • External systems are slow, duplicate requests and go missing — none of which may lose a result.
E2E Encryption for sensitive records signed Tenant-bound integration contract versioned Deterministic, replayable scoring
Node.jsExpressReactPythonMongoDBRedisObject Storage
OPEN DEEP-DIVE ⟶
HOT-STATE Social Gaming · Scale · 2016 — 2019

Five Million Players on a Part-Time Budget

A social game backend that stayed boring under sustained load, run by one engineer.

  • Game traffic is spiky in a way that punishes naive auto-scaling.
  • Social features turn a read problem into a fan-out problem overnight.
  • The economy has to be correct even when everything else is eventually consistent.
5M+ Registered players 80K Daily actives 1 Engineer on the backend
Node.jsPythonRedisDynamoDBAWS Auto-ScalingSQSNginx
OPEN DEEP-DIVE ⟶
TENANT-FORGE SaaS · Multi-Tenancy · 2013 — 2015

One Click, One Tenant, Zero Humans

Multi-tenant SaaS where a new institution gets its own subdomain and a fully configured stack automatically.

  • Manual tenant onboarding caps your growth at the size of your ops team.
  • Tenant isolation is a decision you get to make exactly once.
  • Half-provisioned tenants are worse than failed ones.
1 click Signup to live subdomain 0 Manual steps in provisioning 4 REST backends alongside, on GAE
PythonDjangoRailsPostgreSQLRedisCeleryNginx
OPEN DEEP-DIVE ⟶