Skip to content

Case studies

How I built them

Each study covers the problem, what I read before writing code, the decisions that shaped the system, what broke, what I didn't know going in, and what I'd do differently. Written first-person, grounded in real commits.

01

The Gambia 2074

The Gambia has no complete civil registration. Deaths go largely unrecorded, so there is no national time series of age-specific death rates, and the country is absent from the Human Mortality Database, the standard input for mortality forecasting.

  • Python
  • PyMC
  • MCMC
  • NumPy
  • Pandas
02

NOVA

Banks in West Africa hold the data that could power local AI. They cannot share it. Privacy law, customer trust, and competitive advantage keep loan books and transaction histories on bank servers.

  • Python
  • PyTorch
  • CTGAN
  • FastAPI
  • Next.js 16
03

Gambia Legal Aid

Gambians have almost no access to legal information. Lawyers are scarce and expensive, a one-hour consultation is more than a week's wage for most. The laws themselves are scattered across PDFs that most people will never find or be able to read.

  • Python
  • RAG
  • Vector search
  • FastAPI
  • Next.js
04

Credit Risk Scorecard

Microfinance institutions in West Africa make lending decisions on intuition because the analytical infrastructure isn't there.

  • Python
  • scikit-learn
  • Pandas
  • Next.js
  • Recharts
05

FORGE

I kept skipping days on my own learning and lying to myself about it. Streak apps don't work because they're trivially fakeable, you tap 'yes I studied' and move on.

  • Next.js
  • TypeScript
  • Prisma
  • PostgreSQL
  • NextAuth v5
06

HireIQ

Job application forms are a disaster for both sides. Candidates dump CVs into black holes; hiring teams drown in unqualified applications.

  • Python
  • FastAPI
  • NVIDIA NIM
  • Next.js 14
  • Supabase
07

AYAT

I had been reading the Qur'an my whole life through scrolling apps that treat the book as a list of 6,236 numbered cells. Every Quran app does the same thing: scroll, tap, scroll, tap. But the Qur'an is not linear. It loops. It cross-references itself.

  • Python
  • sentence-transformers
  • UMAP
  • HDBSCAN
  • transformers.js
08

VANTAGE

Tech news is unreadable. The volume per day is in the hundreds of thousands of articles globally, and most of it is noise, patch notes, gadget sales, recycled press releases, identical takes on the same Reuters wire.

  • Next.js
  • TypeScript
  • AI synthesis
  • Vercel
09

Dalasi Pulse

Remittances are ~20% of The Gambia's GDP. Every Gambian family has someone abroad sending money home. The Central Bank of The Gambia has internal forecasts of FX rates and remittance inflows; ordinary Gambians don't.

  • Python
  • Pandas
  • Next.js
  • CBG API
  • World Bank data
10

Life Insurance Risk Model

I wanted to learn actuarial science by doing, not by reading textbooks. Built a full life insurance risk model for Sub-Saharan Africa from scratch, mortality, survival analysis, premium pricing, Monte Carlo VaR.

  • Python
  • lifelines
  • NumPy
  • Next.js
  • Recharts