Voice agents, marketplaces, nutrition, exam prep, fashion AI, and a game. Here’s a closer look at the problems behind the projects and the systems I built to address them.
"2 wraps of eba and egusi" should be enough to log a meal.
Betachow turns a plain-language description or a photo of a meal into a nutrition breakdown tuned for African cuisine, so users can track what they eat without hunting through a Western food database.
Focus
AI-assisted diet tracking for African dishes
Built with
Next.js, Flutter, FastAPI, AWS
Meal analysis
An LLM parses portions; a curated African food database and USDA data supply the numbers
The problem
Food-tracking apps built around Western food databases miss most West African dishes, pushing users into manual logging that most give up on within a week.
The system
A text or photo log goes to a FastAPI backend on AWS Lambda. A language model extracts each food and portion, a resolver matches it against a curated African food table and USDA FoodData Central, and low-confidence matches land in an admin review queue that decides which foods to add next.
The engineering focus
Keeping meal recognition accurate across a cuisine with far less public training data than Western food, and making sure a database value never overrides a better AI estimate, while serving the same API to a Next.js web app and a Flutter mobile app.
Glimpse turns a text prompt into a generated outfit, puts a garment onto the shopper's own photo, previews a piece of furniture in their room, and upscales any result to 2× or 4× for an HD export.
Focus
Generative fashion, virtual try-on, and furniture preview
Built with
FastAPI, Gemini, Vertex AI, Next.js, Flutter
Billing
Credit wallet priced in USD, charged in naira through Paystack, with automatic refunds on failed jobs
The problem
A product photo on a model rarely tells a shopper how a garment will actually look on them, and generating fashion imagery well enough to be useful is its own hard problem.
The system
A FastAPI gateway on Lambda owns users, credits, jobs, and payments, and dispatches work to two AI services: an outfit generator (GPT-4.1 nano prompt enhancement, Gemini Flash image generation) and a Vertex AI service for try-on, furniture preview, and upscaling. Every job is async: the gateway reserves credits, returns a job ID, and the client polls until it completes.
The engineering focus
Keeping generation latency tolerable by pushing both the image-generation and try-on paths onto async queues (SQS/Lambda) instead of blocking the request.
A marketplace connecting Nigerians with verified plumbers, electricians, carpenters, cleaners, and more. Layered identity checks, competitive bidding, real-time chat, and reviews help customers make more informed hiring decisions. Escrow payments are planned for a later phase.
Finding someone for a job is only the beginning. Customers also need to establish who they’re hiring, compare offers, and feel confident about payment.
The system
A three-tier trust engine brings phone verification, identity documents, and a live snapshot into the marketplace. Customers post jobs and compare artisan bids, then chat and book in real time, with nearby artisans surfaced through location search.
The engineering focus
A fully serverless AWS backend defined in CDK: Cognito phone sign-in with role claims, DynamoDB for jobs, bids, and bookings, a WebSocket API for chat and call signalling, and EventBridge with SNS/SQS for notifications and SMS fallback, all serving an Android-first React Native app.
Exam prep built around verified questions, not guesswork.
CertiScholar centralises WAEC and NECO past questions with verified answers, organised by subject, topic, and year, and layers in AI-generated study insights that highlight a student's weak areas. Schools get seat-based plans, class cohorts, and per-student analytics.
Focus
WAEC/NECO exam preparation for Nigerian students
Built with
FastAPI, AWS CDK, React, Cognito
Insights
AI-generated study insights flag a student's weak topics
The problem
Past questions circulate informally online, often with wrong or unverified answers, leaving students unsure whether what they're practising with is even correct.
The system
Every past question is checked before it enters the bank, structured by subject, topic, and year. An AI layer scores a student's practice history and surfaces the topics dragging their score down.
The engineering focus
Provisioning the backend as infrastructure-as-code with AWS CDK, so the question service, auth, and AI-insight pipeline scale independently as the question bank grows.
A voice-first support system for conversations in English, Pidgin, Yoruba, Igbo, and Hausa. It brings speech recognition, a retrieval-backed language model, and voice synthesis into one conversation flow.
Voice support needs to handle the way people actually speak. Language, pauses, and access to the right business information all affect whether a conversation is useful.
The system
Voice activity detection identifies speech, transcription turns it into text, and the language model uses retrieved context to compose a response. Speech synthesis then brings that response back into the call.
The engineering focus
Keeping the stages connected with minimal delay while grounding the response in relevant information. The response-time figure is a design target, rather than a measured production result.
A match-3 game where the tiles are Nigerian sweets, the worlds run from a Primary School Canteen through Danfo Go-Slow and an Owambe Party to Kurmi Market in Kano, and every line of copy is in Naija English or Pidgin, up to the "E CHOKE!" finale.
Focus
A casual game built for a Nigerian audience
Built with
React, TypeScript, Vite (PWA), Fastify, SQLite, Flutter
Fair play
The server issues each run's seed and replays it before accepting a score
The problem
Popular casual games are built for someone else's culture. Nigerian players rarely see their own sweets, places, or way of talking reflected in the games they play every day.
The system
A deterministic match-3 engine with specials, combos, cascades, and four goal types across 50 levels, plus lives, a Kobo currency, boosters, daily streak rewards, and a shared daily board with its own leaderboard. Guests play instantly and can upgrade to an account later.
The engineering focus
Running the same engine on client and server so every score can be replayed and verified, and tuning move counts and star thresholds by letting bots play each level many times instead of guessing.
Verified score flow
Server issues seed
Player completes level
Server replays moves
Score hits leaderboard
More work / Applied ML
Inside the experiments.
Model behaviour, deployment costs, and the quality of predictions.
07 / LLM engineering
Domain adaptation & fine-tuning
PyTorch / Hugging Face / QLoRA / PEFT / LoRA
Adapting a model to a domain while retaining its broader knowledge.
This work explores 4-bit quantised adaptation and parameter-efficient fine-tuning. Versioned LoRA adapters support client-specific deployments with a smaller adaptation footprint.
Adaptation
Domain-specific behaviour with general knowledge retention
Deployment
Versioned adapters for lower-cost client deployments
08 / Predictive modelling
Football prediction benchmark
XGBoost / PyTorch / scikit-learn / FastAPI
A prediction is only useful if its confidence means something.
A comparison of tabular machine learning, a PyTorch multilayer perceptron, and a fine-tuned language model. The benchmark uses leakage-safe features and Platt or isotonic calibration to assess the quality of predicted probabilities.
Evaluation
Probability calibration and betting ROI alongside prediction accuracy
Method
Compare model families using features that avoid future information