Backend · platform · DevOps · Nairobi
Backend systems that keep working after the handover.
I build APIs, data models and the platform under them: deploys, sign-in,
email, monitoring and backups. I run all of it myself, every day, for
Milapulse.
Start a conversation
See Milapulse
What I'm building now
Milapulse is my own product, and the best evidence of how I work. Everything below is in
production today, run by me.
Product
Milapulse, a social web with an end
Long-form writing, a reverse-chronological feed that stops, and no engagement
ranking. Reading is open to everyone. Writing needs an account, and accounts come
by invitation.
- Written in Rust on PostgreSQL, with server-rendered pages and no tracking scripts
- Single sign-on through OpenID Connect, with invitations sent as email links, never passwords
- Image uploads, follows and public profiles
- Every change goes through CI tests and a staging tier before it reaches production
milapulse.com
My posts on Milapulse
Platform
The platform under it
Milapulse runs on infrastructure I built and operate myself, held to the
same standard I would hand to a client.
- Self-hosted source control and CI/CD, where every service deploys the same way
- One sign-in across every app, with access granted by role
- Transactional and bulk email kept apart, so a newsletter can never hurt a password reset
- Infrastructure as code, reviewed like any other change
Reliability
Backups that are restored, alerts that arrive
A backup is only real once it has been restored, so restores are tested on a
schedule. A monitor that has never fired has never been tested either.
- Encrypted, off-site backups, with automated restore tests that check the data, not just the files
- Metrics, logs and traces in one place, with dashboards per service
- Alerts that also notice silence, not only errors
Machine learning
Forecasting, measured honestly
A container-load forecaster reported an R² of 0.97 and was worse than guessing
"same as last hour". It had learned to predict the hour of day. I rebuilt how it is
scored, so every model is now judged against that simple baseline at every horizon.
- PyTorch models, retrained automatically, with every run tracked
- A skill score against the simple baseline, watched live like any other metric
What I can do for you
APIs and data
REST and GraphQL APIs, PostgreSQL schemas and migrations, background jobs and third-party integrations, built with tests from the first commit.
Deploys and infrastructure
CI/CD pipelines, containers, Terraform, and AWS, Azure or GCP, set up so that a deploy is boring and a rollback is one step.
Sign-in and email
Single sign-on with OpenID Connect, role and group access, and email that lands in the inbox rather than the spam folder.
Monitoring and recovery
Dashboards and alerts that mean something, and backups with a restore drill you have actually run.
Every engagement ends with runbooks your team can follow without me. The code,
the accounts and the infrastructure are yours from day one.
Earlier work
Open-source projects from before Milapulse. The source is on GitHub; the old Heroku demos are gone.
Currency exchange platform
Currency conversion and wallet-to-wallet transfers, with exchange rates refreshed daily by background jobs.
Django · PostgreSQL · Redis · Celery
Source
Restaurant management API
A REST API for menus, meals and orders, with JWT sign-in for customers, caterers and admins, and 90% test coverage.
Flask · PostgreSQL · JWT · pytest
Source
API docs
File transfer system
Multi-file upload, preview and transfer between remote servers, with a full RSpec suite.
Ruby on Rails · ActiveStorage · RSpec
Source
Also: FastAPI, Express.js, MySQL, MongoDB, Docker and Podman, Kubernetes, Linux servers, Cloudflare.