Software Engineering
Reliable backends, APIs, and web apps. The unglamorous kind that still works on Monday.
Django · Python · Laravel · PHP · Go · C# · .NET · Angular · Flutter · Next.js · TypeScript · PostgreSQL · Docker · Kubernetes
Engineer · Builder · Consultant · Technical Writer
I'm Billy Okeyo, a software engineer and product builder in Kenya. I design systems, products, and APIs, plus the occasional AI feature that earns the electricity. Backend, web, products that have to stay honest, and the consulting call where someone wants a miracle by Friday.

What I do
I work where systems meet people who will retry the request, then ask if we can add AI.
Reliable backends, APIs, and web apps. The unglamorous kind that still works on Monday.
Django · Python · Laravel · PHP · Go · C# · .NET · Angular · Flutter · Next.js · TypeScript · PostgreSQL · Docker · Kubernetes
Turning a vague idea into something you can click, charge for, or regret in production.
Product architecture · MVP design · Deployment · Iteration
I use AI when a product needs a structured interpretation of messy human input, and I can say what it is not allowed to claim. Sparkles on a landing page do not count.
Guidance workflows · Language boundaries · AI-assisted products · Human-in-the-loop
Helping teams pick an architecture they can operate, not one that only looks clever on a slide.
System design · Architecture reviews · Product strategy · Engineering decisions
Products with users. Systems that have to stay honest when nobody is watching the logs.

01Live· Offline-first poultry management
Poultry management for African farms: flock health, production, and profit without assuming always-on connectivity. English, Swahili, and USSD.
Django · PostgreSQL · Flutter · REST APIs · USSD

02Live
An electronics shop in Nairobi where customers buy online and collect from a pickup station using a tracking ID.
03In development
An education technology platform with Dora, an AI-assisted guide that helps parents, teachers, and learners understand learning, behaviour, and attention patterns, then decide what to try next.
Engineering philosophy
Good software is not the thing that passed on my laptop at 1am. It should stay understandable when someone else inherits it.
My job is not to make software work once. It is to make systems that stay correct when they are retried, observed, changed, and handed to the next person.
Software should behave when networks fail, users retry, and traffic is concurrent. The happy path is the easy part.
Code is read far more than it is written. If the next engineer needs a séance to find a rule, the design is unfinished.
Fast systems are usually simpler systems. Measure first, then delete the work that never needed to happen.
Trust boundaries, least privilege, and careful handling of money, identity, and documents are design constraints, not a phase at the end.
Boundaries should make the next change obvious. Mystery is a fine genre. It is a terrible system property.
An API is a product. It should be explicit about side effects, retries, versions, and the many ways it can fail.
If you cannot see a failure, you cannot operate the system. Logs, traces, and metrics belong in the first version, not the postmortem.
Engineering exists to move a real problem forward. The right abstraction is the one that ships and can still evolve.
Technical writing
Retries, transactions, architecture, and the browser. I publish at billyokeyo.dev, where I go on for longer than a card allows.
Frontend · Beyond the UI
Where should your UI be built? A clear look at CSR and SSR: what they actually do, when each is the right choice, and why the distinction still matters.
Frontend · Beyond the UI
What happens when JavaScript takes over the browser’s main thread, and why a button click can freeze an entire interface.
Architecture · Beyond CRUD
How independent services communicate by reacting to events, and how idempotency, outbox, sagas, and CQRS fit together.
Distributed Systems · Beyond CRUD
Publishing events without losing data: how to solve the dual-write problem by committing the event with the business data.
Experience
Company names and dates come from my resume. Some work is still sitting in a drawer.
Present
Lead software engineering for LearningDifferently on a consulting basis, including the education product around Dora.
2021 to Present
Engineering on enterprise financial systems for investment management, unit trusts, and bancassurance products.
2023
Part-time DevOps for production systems: pipelines, containers, and faster releases.
Teaching & mentorship
Lecturing, mentorship, and writing. Same practice as shipping, just with more questions.
Explaining how software actually behaves, not how a framework looks in a tutorial, so people can reason about production.
GADS Mobile Web Mentor, 2021 to 2022. Helping engineers move from “it works on my machine” to systems that survive retries and growth.
Google Developer Student Clubs Lead, 2020 to 2021. Community conversations that make engineering knowledge usable by more than one person.
Long-form pieces on reliability, databases, distributed systems, and how interfaces are actually built.
Contact
If the problem is interesting and the constraints are honest, I am easier to reach than a support form.