Skip to content

Nairobi, EAT. Open to senior backend and full stack roles

I am the only engineer on a school platform that 112 schools run on every day

I design the engines and I design the screens people use them through. Nobody reviews my work before it reaches someone counting real money at a counter, so it has to be right the first time.

schools in production
112
learners on the system
50,400
parents reachable
86,000
engineer, that is the point
1

Every figure has its arithmetic published on how I count. None are rounded up.

A six step loop: read the output not the source, reproduce it before theorising, write the plan down, change one thing, prove it end to end, hand it over in writing, then repeat on the next unfamiliar system
The loop I run on a system I have never seen before. It is the same loop in any language, which is the part that transfers when the stack does not match. Tap to open full size.

Three things, and everything here is evidence for one of them

01

I own systems from the engine to the screen

Not a backend engineer who tolerates the frontend, and not a frontend engineer who calls an API. The same person designs the scheduling engine and the screen a clerk uses with a queue of people waiting behind them.

Engines / Interface

02

I solve problems I have not seen before

If your stack is Vue, or Go, or something I have never touched, my framework list is not what you are buying. You are buying the loop: verify before acting, write the plan down, prove it, measure it, hand it over. It is the same loop in any language.

The method

03

What I build keeps being used

Zero customers to over a hundred, and they stay. Software people keep using is a harder result than software that ships, and it is the one an employer is actually buying.

The work

One problem

Four minutes

Three commits all claimed to fix the same bug. All three were correct. None of them worked

A site was ranking as though it were a single page. The obvious cause was missing per page canonical tags, so three separate fixes had added them. The tags were there. Nothing changed.

I stopped adding fixes and read the output instead of the source. Every page was serving two canonicals: one inherited from a shared layout, one correct. The framework merged both, and the inherited one won on document order everywhere. Three engineers had each verified their own change and each been right about it.

The fix was deleting one line. Finding it took distrusting the input and reading what the server actually sent, which is the only part of this story worth hiring for.

What this shows

Debugging under a wrong shared assumption. The previous attempts were not careless, they were reasoning from the source when the truth was in the output. That is the failure mode I look for first now.

Read the full write up

If you are hiring someone to own a system, we should talk

Senior backend and full stack roles, remote, permanent. Nairobi time overlaps a full European working day and most of a US morning.