Designing backend systems that survive production.
Backend engineer with 5+ years shipping production systems that handle real financial transactions and serve real users at scale. Based in Nairobi, Kenya (GMT+3), focused on payment infrastructure, multi-tenant platforms, and the unglamorous correctness work that keeps both running.
Years in production
Shipping and operating backend systems since 2018
Financial transaction systems
M-Pesa Daraja integrations handling real payments
Multi-tenant architectures
Schema-isolated platforms serving multiple customers
Cloud platforms
Production deployments on AWS and GCP
AI-integrated services
Claude API and OpenAI API as operational layers
Real-time delivery target
WebSocket + Redis Pub/Sub kitchen display latency
Mezani
Multi-tenant restaurant operating system
A multi-branch restaurant OS handling menus, orders, and live kitchen displays for multiple tenants on shared infrastructure.
StylerStack
Fashion e-commerce API with M-Pesa payments
A FastAPI commerce backend with M-Pesa Daraja payments, role-based access for vendors and admins, and CI/CD on Railway.
Restaurant Analytics Platform
Cloud-native, event-driven analytics on GCP
An event-driven pipeline that turns order events into BigQuery-backed revenue and volume insights, narrated by an AI assistant.
Mgari
Car rental booking engine
A booking engine that guarantees one vehicle can never be double-booked, with geo-fenced availability and rate-limited APIs.
Designing Idempotent Payment Systems
How to make M-Pesa Daraja callbacks safe to retry, reorder, and duplicate — without double-charging anyone.
Multi-Tenant SaaS in Go
Schema-per-tenant isolation, JWT scoped claims, and RBAC that doesn't need a database round trip to answer 'can this user do this?'
PostgreSQL Lessons From Production
EXPLAIN ANALYZE habits, partial indexes that actually get used, and running Alembic migrations without locking your tables.
Have a backend system that needs to survive production?
Open to remote contract roles across the EU, UK, and beyond, working GMT+3 with comfortable overlap into CET and GMT.