Building financial infrastructure and intelligent systems that scale.
I design and build digital banking platforms, merchant ecosystems, and cloud-native services — the systems behind products that serve thousands of organizations and move billions in transaction value.
Significant systems I've designed and built — the problem, the architecture, and the scale each one operates at.
Safaricom PLC
Nov 2022 – Present
Senior Software Engineer — via Andela · Nairobi, Kenya
Designing and building financial platforms across M-PESA's merchant and digital-banking ecosystem — from GraphQL orchestration layers over core banking to self-service payment infrastructure.
M-PESA Business Hub
Platform Consolidation
2025 – Present·In active development
Safaricom's merchant tooling had grown across several disconnected portals. I'm building the M-PESA Business Hub — a Next.js and TypeScript monorepo that consolidates these into one platform, unifying authentication, the design system, and merchant workflows while driving feature parity with the existing Merchant Enterprise Portal.
KES 18.5B+
Transaction value supported
5,000+
Organizations supported
Monorepo architecture with a shared design system and typed API layer across previously siloed products
Incremental migration strategy that preserves 100% feature parity while retiring legacy portals
Unified merchant identity and access across consolidated services
Next.jsTypeScriptMonorepoGraphQL
MySacco Digital Banking Platform
Digital Banking
Mar 2023 – Present·In production · Nov 2025
A digital banking platform for SACCOs (savings & credit cooperatives) built on Apache Fineract. I built the GraphQL orchestration layer that coordinates complex financial operations — lending, savings, wallets, and member management — across the platform's services, spanning multiple repositories rather than a single codebase.
Partner organizations needed self-service access to Safaricom's credit-scoring data without exposing the underlying pipelines. I built a self-service portal that lets partners onboard, manage admin users, preview queries, and securely interact with credit-scoring data through a JupyterHub integration.
KES 6.6B+
Business value enabled
Cleared a nine-month engineering backlog in two weeks
Secure, governed access to sensitive credit-scoring data for external partners
Powers credit products across Fuliza (KES 1.1B limits), M-Shwari (KES 411M), and KCB M-PESA (KES 5.1B)
ReactNext.jsJupyterHubPython (ML integration)
Merchant Enterprise Portal
Merchant Payments
2023 – 2024
Merchants relied on a costly external vendor for payment reconciliation and management. I built a self-service payment platform on a high-performance Node.js and TypeScript backend handling B2B and B2C flows, reversals, and shortcode management — replacing the vendor entirely.
128,610+
Merchant organizations enabled
KES 15M
Annual operational savings
Vendor replacement that removed a recurring third-party dependency
B2B/B2C payments, reversals, and shortcode management in a single self-service platform
Backend engineered for high-throughput merchant onboarding and reconciliation
Node.jsTypeScriptPostgreSQL
Independent systems
Corner
Deterministic Runtime
Independent product — design & engineering
A hands-free boxing coach for the heavy bag — engineered as a deterministic coaching platform, not an interval timer. A pure, framework-free execution engine (immutable timeline + workout state machine + monotonic event stream) drives a strictly layered runtime where the Engine executes, a Coach layer decides whether/what/when to speak, and a Media layer owns every browser concern behind capability detection. Same workout in, same coaching out — no randomness, no AI.
282
Passing tests
6
Isolated runtime layers
Pure, framework-free execution engine — immutable timeline, state machine, and event stream with zero browser or React dependencies
Strict layered architecture with one-way data flow; each layer knows nothing of the layers above it (Engine executes · Coach decides · Media delivers)
Voice-first, hands-free UX where coaching is a decision: when to teach, when to reinforce in fresh words, and when silence is the right call
Browser-runtime resilience — Speech, Web Audio bells, and Wake Lock behind capability detection and graceful degradation; an RAF clock reconciles exact timing across visibility changes
Architecture: the Engine executes · the Coach decides · the Media delivers.
MotiiZote
Marketplace Infrastructure
Independent venture — founder & engineer
B2B car-marketplace infrastructure embedded directly in 35+ WhatsApp groups, processing 20–50 listings a day. The core challenge was WhatsApp's fragmented webhook delivery — I built a slot-based queue with Redis buffering to reassemble split messages, plus an AI extraction pipeline tuned for Kenyan car-listing terminology.
Slot-based queue with Redis buffering to defragment WhatsApp webhook messages
Race-condition handling in concurrent session processing
AI extraction pipeline for domain-specific listing terminology
Seller verification system · 87%+ test coverage
Node.jsRedisPostgreSQLAWSELK StackWhatsApp Business API
Founder & engineer
E4Impact Enterprise Platform
Enterprise Platform
Independent project
A three-service architecture powering startup-accelerator operations across Africa. I built it end to end — identity management, a dynamic forms engine, and funnel workflow automation — designed so each service owns its domain and scales independently.
An enterprise-grade authentication service: JWT auth, hierarchical RBAC, and true multi-tenancy with per-tenant data isolation, single-device session policy, and comprehensive audit logging — the kind of identity substrate financial platforms are built on.
Tenant-scoped queries enforcing hard data isolation between tenants
Redis-backed token validation cache for low-latency auth
Hierarchical role-based access control
Audit logging and one-device session enforcement
FastAPIPostgreSQLRedisJWTDocker
Engineering
Capabilities grouped by the problems they solve — not a wall of logos.
Financial Infrastructure
Core banking, merchant, and payment systems.
Apache Fineract
Digital Banking
Merchant Platforms
Payment Systems
Financial APIs
Frontend Systems
Interfaces for complex financial workflows.
React
Next.js
TypeScript
GraphQL
Backend Systems
Services and APIs that carry the load.
FastAPI
Spring Boot
Node.js
Apollo Server
Cloud & Infrastructure
Running systems reliably in production.
OpenShift
Docker
AWS
PostgreSQL
Redis
CI/CD
AI Engineering
Agentic systems and LLM-backed tooling.
MCP Servers
Multi-Agent Systems
RAG Systems
Claude API
n8n Automation
Engineering Practices
How systems stay correct and maintainable.
System Design
Test Automation
Technical Leadership
Architecture Documentation
Contract Testing
Developer Experience
Leadership
Influence beyond implementation — migrations I've led, documentation teams rely on, and the engineers I help level up.
Apollo Server 4 Migration
Platform migration
Led the migration of the GraphQL layer to Apollo Server 4 across the MySacco platform, modernizing the orchestration tier and removing deprecated middleware ahead of production hardening.
→ Unblocked production readiness for the digital banking platform
Architecture & Documentation
Documentation
Authored architecture and contract-testing documentation that was adopted organization-wide, giving teams a shared reference for service boundaries and testing standards.
→ Adopted org-wide as a reference standard
Technical Mentorship
Mentorship
Mentor engineers on testing discipline, system design, and code quality — raising the baseline for how teams reason about correctness and architecture.
Customer Demonstrations
Stakeholder engagement
Present platform capabilities directly to customers and stakeholders, translating engineering work into business outcomes during SACCO pilot rollouts.
Speaking & Community
Sharing what I learn building systems — with the engineering community across Kenya.
Conference Talks
Contract Testing with Pact
Keeping service boundaries stable across independent teams