Eliud Munyala Nairobi · UTC+3
I build production AI systems
AI features built for production, with access control and audit trails from day one.
Hybrid search (BM25 + pgvector), retrieval pipelines and LLM classification with fallbacks, inside systems that already have real users and real data rules.
- diplomatic missions on one records system
- 50+
- automated tests in one codebase
- 2,000+
- government sites on one CMS
- 6
- own products live in production
- 3
Selected work
Systems in production
Multi-tenant medical imaging platform
A multi-tenant PACS designed and built from scratch for Kenyan hospitals.
- Go
- Orthanc
- OHIF
- pynetdicom
Multi-tenant PACS · Kenya DPA 2019
Records platform for 50+ diplomatic missions
A multi-tenant document and records management system with hybrid search and AI classification.
- Django REST Framework
- PostgreSQL RLS
- ParadeDB BM25
- pgvector
2,000+ tests · 49 endpoints
EA-READY early-warning dashboard
A regional early-warning and analytics dashboard for East Africa, live in the UN Environment Programme's WESR sandbox.
- Flask
- Celery
- Redis
- HTMX
Live · UNEP sandbox
Media monitoring and broadcast listening
Print, social, radio and TV monitoring for East Africa, with speech-to-text on live broadcasts.
- Go
- NATS JetStream
- PostgreSQL
- Python ASR
Radio · TV · 13 newspapers · 5 social networks
ContentHub multi-tenant document platform
Document capture, classification and case handling for organisations, with SSO and a Go job runner.
- Django
- Go
- River
- FastAPI
AI extraction with fallback tiers
Kenya government web platforms
Public sites and a multi-site CMS for Kenyan government offices.
- Wagtail
- Next.js
- Django
- Traefik
6 microsites on one CMS
Records platform for 50+ diplomatic missions
A multi-tenant document and records management system with hybrid search and AI classification.
- Django REST Framework
- PostgreSQL RLS
- ParadeDB BM25
- pgvector
2,000+ tests · 49 endpoints
EA-READY early-warning dashboard
A regional early-warning and analytics dashboard for East Africa, live in the UN Environment Programme's WESR sandbox.
- Flask
- Celery
- Redis
- HTMX
Live · UNEP sandbox
Media monitoring and broadcast listening
Print, social, radio and TV monitoring for East Africa, with speech-to-text on live broadcasts.
- Go
- NATS JetStream
- PostgreSQL
- Python ASR
Radio · TV · 13 newspapers · 5 social networks
ContentHub multi-tenant document platform
Document capture, classification and case handling for organisations, with SSO and a Go job runner.
- Django
- Go
- River
- FastAPI
AI extraction with fallback tiers
Multi-tenant medical imaging platform
A multi-tenant PACS designed and built from scratch for Kenyan hospitals.
- Go
- Orthanc
- OHIF
- pynetdicom
Multi-tenant PACS · Kenya DPA 2019
Records platform for 50+ diplomatic missions
A multi-tenant document and records management system with hybrid search and AI classification.
- Django REST Framework
- PostgreSQL RLS
- ParadeDB BM25
- pgvector
2,000+ tests · 49 endpoints
ContentHub multi-tenant document platform
Document capture, classification and case handling for organisations, with SSO and a Go job runner.
- Django
- Go
- River
- FastAPI
AI extraction with fallback tiers
Independent products
Things I built and run myself

LightningPDF
LivePDF generation API for HTML, CSS and Markdown.
Go · Redis · S3

ThunderHooks
LiveCapture, inspect and replay webhooks.
Go · templ · per-tenant SQLite

devformat.tools
LiveDeveloper tools that run in the browser, plus an MCP server.
Go · SQLite

Octavo Reader
Public betaEPUB and PDF reader for Obsidian, desktop and mobile.
TypeScript · pdf.js

Tenantree
BetaBack office for Kenyan property managers: M-Pesa reconciliation, owner ledgers, WhatsApp.
Go · HTMX · Turso
How I work
Small, clear steps
01
A 30-minute call
We go through what you're building, what's in the way, and whether I'm the right person. No charge.
02
A written scope
A short document with what I'll deliver, how we'll know it works, the timeline and a fixed price or rate.
03
Weekly delivery
Working software every week, a written update every Friday, and handover docs your team can use without me.
Contact
Tell me about the work.
I reply personally within one working day. If you'd rather talk first, book a 30-minute call. It's free and there's no obligation.
