Skip to content
Joseph Gitonga

The work

Selected writeups

Real systems, not hypothetical architectures.

Products I build and run, and the engineering decisions behind them. Every number here describes something you can go and check. These get technical. The home page has the plain-English version.

01

2026-09-22 / 4 min / payments / m-pesa / idempotency / infrastructure

Noria Pay: one payments service instead of twenty-one integrations

Every product that took money had rebuilt the same layer: persist the transaction, host the callback, normalise the payload, reconcile the settlement. Roughly 4,800 lines of it in one codebase and 12,000 in another. This is that layer, written once.

02

2026-09-22 / 4 min / email / sms / queues / infrastructure

Noria Send: email and SMS behind one API

One API for transactional email and SMS. One outbox, one event stream, one suppression list, and a careful answer to the hardest question in delivery: what to do when a provider never replies at all.

03

2026-09-22 / 4 min / construction / multi-tenant / m-pesa / offline-first

SiteBooks: construction management for a client who cannot visit the site

Four years of production construction software for contractors and the diaspora clients funding the build. Time-stamped site photos, budgets tracked against the BOQ, milestone payments, and M-PESA payroll for casuals, all of it usable on 3G.

04

2026-09-22 / 4 min / billing / reconciliation / m-pesa / saas

Zana: billing, collections and reconciliation on one ledger

A billing system for businesses that invoice the same customers every cycle. Metered tariffs, M-PESA and card collection, and the part almost nobody builds: reading the bank statement back and settling the invoices it matches.