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
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.

Don't worry. I am real, not a robot.
This is just an avatar
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
A Nairobi electronics platform for online shopping, paid pre-orders, and in-store collection — connecting the digital storefront directly to physical fulfilment.
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 and at blogs.innova.co.ke, 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.
2025 to Present
Founded Agri Tija to build practical technology for African agriculture. I lead product strategy and engineering, including Tijafugo, our offline-first poultry management platform.
Founder · Product Strategy · Django · Flutter · PostgreSQL · AI · USSD · Offline-first
View Tijafugo case study2026 to Present
Consulting technical lead for Learning Differently's digital products, including Dora, an AI-assisted screening and guidance platform for families, educators and learners.
Technical Leadership · Product Engineering · Django · Next.js · AI · System Architecture · EdTech
View Dora case study2021 to Present
Engineering on enterprise financial systems for investment management, unit trusts, and bancassurance products.
C# · ASP.NET · Angular · TeamCity · Docker
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.