NameNyimbi Odero

SubjectThings I have not finished

Date

Kept in public, corrected in the margin.

Things I am curious about

The shape of a matatu network. Somebody drew those routes on a wall before anybody modelled them, and the graph has been running in production ever since. I want to know whether it is close to optimal or merely old. Those are different questions and only one of them has a clean answer.

Whether a model can think in Kiswahili without translating first — and what first would even mean there. Every benchmark I have seen measures the translation, not the thinking.

Queueing at a bank on the first of the month. The arrival process is not Poisson, everybody who has ever built the system knows it, and the model in the slide deck still says Poisson because that is the one with a closed form.

Why so much infrastructure work is deciding what to throw away. Deletion is the design. Everything else is accumulation with a schedule.

What I am working on

Payment rails that have to work when the connection does not. Most of the engineering is not the happy path; it is what the system can prove about a transaction it never got a receipt for.

Identity that survives a person changing their phone number — which in practice means identity that is not the phone number, whatever the table says.

A habit of writing down what I expect before I measure it. Half the time the expectation turns out to be the interesting artefact, and I would not have noticed if I had only kept the number.

What I am learning

Consensus protocols again, this time with the failure model in front of me instead of behind. The first time I read Raft I read it as a story about leaders. It is a story about what a node is allowed to believe.

The mathematics of distributed ledgers, minus the marketing. There is a real body of work under the noise and it is mostly about ordering, which is a much older problem than the currency.

Kiswahili proverbs, badly. A language learned from proverbs has holes in the middle of it — you can be eloquent about patience and unable to buy a stamp.

Random thoughts

  • Every simple system is a complex system with the complexity moved somewhere you were not looking.
  • The best documentation I have read this year was a changelog. Somebody wrote down what changed and why, in order, and it answered every question I had.
  • If your dashboard has never been wrong, you have never looked at it properly.
  • A deadline is a model of how long something takes, and it is usually a worse model than the one in the code.
  • Nairobi is a city that rewards people who can hold two contradictory maps of it at once — the one in the app, and the one in the conductor's head.

About me

Nyimbi Odero. Software engineer, Nairobi. I build payment switches, identity systems, and the unglamorous layers that hold them together — mostly for governments and enterprises across East Africa, sometimes for myself.

I write here when something is not finished. That is most things.

hello@nyimbi.com github.com/nyimbi