← Back to home

Selected work / A closer look

What I’ve been
building.

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.

01 / Computer vision

Betachow

Visit project
Betachow
Snap a plate.
See what's inside.
Protein · Carbs · FatMeal AI

"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.

Meal logging flow
  1. Describe or snap a meal
  2. Parse foods & portions
  3. Resolve nutrition
  4. Log to diary

02 / Generative AI

Glimpse

Visit project
Glimpse
Describe it.
Try it on.
Outfits · Try-on · Furniture · HD upscaleGenerative AI

See it before you buy it.

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.

Outfit flow
  1. Generate or upload
  2. Try on or place furniture
  3. Upscale to HD
  4. Save to library

03 / Marketplace

SabiArtisan

Visit project
SabiArtisan.
Good work.
Good people.
Find skilled hands. Hire with confidence.Made for Nigeria

Trust is part of the product.

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.

Focus
Verified services in Nigeria
Built with
React Native, TypeScript, AWS CDK, Cognito, DynamoDB
Verification
Phone, ID, and a live snapshot

The problem

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.

Verification layers
  1. Phone verification
  2. Identity check
  3. Live snapshot

04 / EdTech

CertiScholar

Visit project
CertiScholar
Practice the questions.
Know the gaps.
WAEC · NECOStudy insights

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.

Study flow
  1. Select subject
  2. Practice questions
  3. Check verified answer
  4. Review AI insight

05 / Voice AI

CHIOMA

Visit project
CHIOMA
A familiar voice.
In your language.
English · Pidgin · Yoruba · Igbo · HausaVoice AI

Customer support that sounds closer to home.

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.

Focus
Multilingual customer support
Built with
Whisper, Deepgram, LLM + RAG, ElevenLabs, Cloudflare Workers
Latency target
Under 500 ms response time

The problem

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.

Conversation flow
  1. Detect speech
  2. Transcribe
  3. Retrieve & respond
  4. Synthesise voice

06 / Game

Sweet Wahala

Visit project
Sweet Wahala
Match the sweets.
E sweet o!
50 levels · 5 Naija worldsWeb game

Candy Crush, if it grew up in Lagos.

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
  1. Server issues seed
  2. Player completes level
  3. Server replays moves
  4. 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

Have a project in mind?

Let’s talk about it.

Get in touch