Work
What I've built, and the thinking behind it.
I’ve been building software professionally since 2013 — first in Lagos, then in Berlin. Backend and distributed systems mostly: Java and Spring Boot, TypeScript, PostgreSQL, Kafka, AWS.
Most of what I do sits between product and engineering. I like being in the room when we decide what to build, working it through with product managers, and then owning the technical side properly — the architecture, the data model, the rollout, the thing still standing up at 3am. The two halves feed each other more than people expect. Understanding why we’re building something usually changes how I’d build it.
The other part of the job is people. I mentor the engineers I work with, run design reviews across teams, and I’ve built the case for someone’s promotion. Watching an engineer get noticeably better at their craft is the part I’d least want to give up.
Selected work
Making the reviews read path fast
The reviews platform at GetYourGuide serves around 360 million requests a day across 30 million reviews and 200,000+ activities. Over the years the read path had grown to 23 joins deep, p99 latency sat at 140ms, and we were paying for database instances sized to absorb the complexity.
I led a redesign around denormalised, read-optimised PostgreSQL tables. We separated aggregation workloads from review-list retrieval, removed caches that were covering for the queries rather than helping them, and moved to selective column projection with offset pagination and a limit-plus-one look-ahead.
p99 dropped from 140ms to 30ms. And because the queries got genuinely simpler rather than just faster, we could scale the database infrastructure down with them — direct monthly database costs came down by 30x.
Moving user-generated content off the monolith
The user-generated-content platform lived in a PHP monolith that had stopped being able to move at the speed the product needed. I spearheaded the migration to Java and Spring Boot microservices on PostgreSQL and Kafka, and owned the migration architecture, data modelling, ETL, service implementation and cross-team rollout.
Development velocity improved by 15% and time to market came down by 10%. The part I liked most was the shift in how teams talked to each other: we started publishing Kafka domain events whenever activity-level review statistics changed, so upstream services could stop asking us for data and start listening for it instead.
Photos in reviews
A review with a photo in it is worth several without one, so we wanted customer photo uploads — but no one wanted to staff manual moderation for them.
We shipped it in three months with Amazon Rekognition doing automated image moderation. Customers uploaded 250,000+ photos at a 92% automated pass rate, which contributed to a 12% cart-conversion uplift and a 2% overall conversion increase in the first quarter.
Changing how reviews are ranked
Which reviews you see first is a product decision wearing an algorithm’s clothes. I proposed a change to the review-ranking algorithm and carried it from hypothesis through to production rollout, working with product and data throughout. It contributed a 2.51% global conversion-rate uplift.