I'm a software engineer and cybersecurity researcher based in Nairobi, Kenya. My work sits at the intersection of backend engineering, ML infrastructure, and applied security — I build systems that matter at scale, from distributed infrastructure to models in production.
I care about the operational reality of software: what happens after deployment, how systems behave under failure, and how to make complex distributed infrastructure understandable to the people who run it.
Production-grade ML monitoring infrastructure. Not a notebook. Not a demo.
ML models silently degrade when real-world data distributions shift away from training data. A model can have 99.9% uptime and zero HTTP errors while producing systematically wrong predictions for real users. I built a system that catches this automatically.
A fully containerised, self-healing ML monitoring system that detects distribution shift in live inference traffic within minutes and responds autonomously — no human intervention required.
Statistical detection layer — three complementary methods, each catching what the others miss:
| Method | What it catches | Threshold |
|---|---|---|
| KL-Divergence | Continuous feature distribution shape changes | > 0.15 |
| PSI | Both continuous and categorical individual feature shifts | > 0.20 |
| MMD | Joint multivariate drift — correlation shifts KL and PSI miss entirely | p < 0.05 |
Infrastructure highlights:
- Kafka-backed inference interceptor adds < 2ms latency to every prediction request
- Faust-Streaming processor computes drift scores on tumbling windows (1,000 records or 60 seconds)
- Redis-backed distributed circuit breaker — state shared across replicas, never in-process memory
- Alert deduplication via atomic
SET NX EX— prevents alert storms across multiple alerter replicas - Airflow DAG fetches fresh data, retrains, validates F1 against production model, and promotes via MLflow registry — fully automated
- Auto baseline registration: new model versions self-register reference distributions from live traffic
- FastAPI dashboard with JWT auth, WebSocket live updates, asyncio-safe broadcast with heartbeat/ping
- 13-panel Grafana observability suite with Prometheus scraping all services
- Kubernetes-ready: HPA, NetworkPolicy, PodDisruptionBudget, zero-downtime rolling deployments
Security: OWASP headers · JWT + bcrypt (factor 12) · SlowAPI + Redis rate limiting · Parameterised SQL · SASL/SCRAM-512 Kafka · TLS PostgreSQL · Non-root containers · RBAC · Full audit logging · OpenTelemetry tracing.
Stack: Python 3.11 FastAPI Kafka Faust-Streaming PostgreSQL 16 Redis 7 Airflow MLflow Prometheus Grafana Docker Kubernetes NumPy SciPy OpenTelemetry
| Project | Description | Stack | Status |
|---|---|---|---|
| Sovereign Root Protocol | Cryptographically secure, censorship-resistant domain ownership protocol on a P2P ledger | Rust, TypeScript, Libp2p | ✅ Complete |
| POS Platform | Multi-tenant point-of-sale system with offline-first C++ client and cloud sync | C++, Python, JavaScript, Tailwind | ✅ Complete |
| Shule360 | Dual-curriculum school management platform for Kenyan boarding schools (8-4-4 + CBC/CBE) | Next.js, Node.js, Python, PostgreSQL | 🔨 Active Development |
- Deepening expertise in distributed systems and production ML infrastructure
- Learning Rust for systems-level programming
- Researching applied cryptography and network security
- Building in public and representing the African engineering community globally
Based in Nairobi, Kenya — available remotely worldwide.

