$ git log posts/
Blog
19 / 19 posts
2026-10-30· 8 min· 9 reads
Automating a website that has no API: the agent has to know when to stop
When the only way into a system is a web form, you can drive it with a browser. The hard part isn't filling in the form: it's knowing when not to click.
- #automation
- #playwright
- #rpa
- #reliability
2026-10-30· 8 min· 2 reads
Redesigning a website without losing its search ranking: the method, URL by URL
A redesign doesn't lose your search ranking. Forgotten URLs, missing redirects and a DNS switch done on a Friday night do. The method I followed for an accounting firm, step by step.
- #seo
- #ranking
- #migration
- #redesign

2026-09-22· 6 min· 11 reads
Developer in Cameroon: the real obstacles, and what I do about each one
Power cuts, metered data, hardware, international payments, isolation. What actually slows a developer down here — and the concrete answer I apply to each.
- #cameroon
- #africa
- #career
- #freelance

2026-09-16· 5 min· 11 reads· ♥ 1
When should you stop running your business on a spreadsheet?
The spreadsheet isn't the problem. The problem is the moment it stops being a tool and becomes a system — and the six signals that say you're there.
- #excel
- #sme
- #tooling
- #hr

2026-09-09· 6 min· 10 reads
The payroll module: the arithmetic is the easy part
Multiplying hours by a rate takes ten minutes. Two years later, payroll is the most delicate part of the product. What sits between the two.
- #saas
- #payroll
- #invoicing
- #audit

2026-09-02· 6 min· 3 reads
What does a mobile app actually cost in Cameroon? The honest answer
Between 300,000 and 25 million FCFA for 'the same' app. What really explains the gap, and the five questions to ask before you sign a quote.
- #budget
- #quotes
- #mobile
- #cameroon

2026-08-01· 7 min· 35 reads· ♥ 2
My site showed zero projects for nine days and I never noticed
A full disk, a Postgres PANIC, and a portfolio showing '0 apps shipped' without raising a single error. Autopsy of a silent outage and what it taught me about depending on a database.
- #resilience
- #supabase
- #postgres
- #devops

2026-07-31· 7 min· 20 reads
The pipeline that filled my disk: a short story about defaults
One missing flag in a cleanup command took four applications offline. What our tools' defaults decide on our behalf, and how to take the decision back.
- #devops
- #docker
- #gitlab-ci
- #incident

2026-07-29· 6 min· 29 reads
AI writes the code. What's left is worth more than before
Models write correct code faster and faster. What they don't do — understand a business, arbitrate, take responsibility — becomes the profitable part of the job. Field notes.
- #ia
- #metier
- #competences
- #architecture

2026-07-24· 7 min· 28 reads· ♥ 1
Offline-first: coding for a connection that doesn't exist
In Africa, connectivity is neither continuous nor free. Here's how I design applications that work without a network, and why offline mode cannot be added at the end.
- #offline-first
- #react-native
- #expo
- #afrique

2026-07-17· 6 min· 31 reads· ♥ 2
Mobile Money: the real work starts when the payment fails
The happy path of a Mobile Money payment takes two days to code. The remaining three weeks go on timeouts, duplicates and reconciliation. Field notes.
- #mobile-money
- #mtn-momo
- #orange-money
- #fintech

2026-07-10· 6 min· 15 reads
Multi-tenant: isolation added afterwards isn't isolation
A white-label SaaS where every client believes they're alone in the world. What I learned building isolation on day one rather than after the first data leak.
- #saas
- #multi-tenant
- #marque-blanche
- #postgres

2026-07-08· 6 min· 11 reads
Your portfolio is read by machines before it's read by humans
Recruiters and clients now go through AI assistants. How I rebuilt this site so it reads without JavaScript, is structured for search engines, and is quotable by models.
- #seo
- #geo
- #llms-txt
- #ssr

2026-07-03· 6 min· 20 reads
Three applications, one developer: what it actually teaches
Go backend, Expo mobile app, Next.js admin console — all by one person. What the constraint imposes, what it forbids, and why it makes you better.
- #golang
- #expo
- #nextjs
- #architecture

2026-06-26· 6 min· 37 reads
A kilo of plantain doesn't cost the same as a plantain
Building a pricing engine for Cameroonian cooking taught me that the real problem is never the arithmetic. It's modelling a market where you buy by the heap, by the bunch and by the piece.
- #produit
- #afrique
- #fcfa
- #modelisation

2026-06-17· 4 min· 12 reads
Integrating Mobile Money (MTN MoMo & Orange) into your app: the guide
How to cleanly integrate Mobile Money payments (MTN MoMo, Orange Money) into a web or mobile app: the flow, the real technical challenges and best practices.
- #mobile-money
- #mtn-momo
- #orange-money
- #fintech

2026-06-12· 6 min· 13 reads
The CRUD illusion: when 'just a list' hides two years of rules
A home-visit schedule looks like a calendar. Two years later it's an engine of constraints, compliance and payroll. What domain complexity really does to software.
- #architecture
- #domaine
- #saas
- #healthtech

2026-05-29· 6 min· 22 reads
Building from Bafoussam for London: what it actually takes
Two years contributing to a UK platform from West Cameroon. What works, what doesn't, and why the time zone is the least of the obstacles.
- #remote
- #afrique
- #carriere
- #freelance

2026-05-15· 6 min· 18 reads
Taking over someone else's code: the method I apply in five days
Half my engagements consist of taking over a project started by someone else. Here's the exact order I work in, and why I almost never rewrite.
- #audit
- #legacy
- #reprise
- #methode