Selected work
What I built, and what I chose.
Eight products across fintech, energy, education, food delivery, sales and interior design. Four of them I was CTO on, which meant owning the stack and the sequencing rather than only the interface.
Each entry says what the product is, what I owned, the decision I would defend in an interview, and where it lives so you can go and look. Every link resolves; where one is missing it is because the product no longer has a public URL, not because I left it out.


Xyora
An AI sales CRM built around one idea: describe the leads you want in plain English and the system finds them. It verifies every email, then automates personalised cold outreach, with prospecting, pipeline and AI marketing living in one workspace rather than three tools. Django and PostgreSQL behind it, Redis for the queues and caching that the enrichment and sending pipelines need, React on the front.
As CTO I put Django and PostgreSQL behind it rather than a JavaScript backend, because lead enrichment and email verification are long-running jobs and I wanted them as ordinary background workers instead of something bolted onto a request cycle. Redis for the queue rather than a managed service, since the product was pre-revenue and infrastructure cost had to stay near zero. The constraint was three months to something demoable, built across the whole stack.
Type
AI sales CRM
Duration
3 months
Role
CTO and Fullstack Developer
Year
2026
Tools
- React
- TypeScript
- Vite
- Tailwind CSS
- TanStack Query
- Zustand
- Recharts
- Python
- Django
- Django REST Framework
- Celery
- Redis
- PostgreSQL
- Docker
- Cloudflare


Dailyfood App
A food and drinks ordering platform spanning three separate products: native mobile apps for customers, an admin panel for the people running the service, and a public landing page. Flutter for the apps so one codebase serves both stores; React and Next.js for the admin panel and the marketing site.
The decision that shaped everything else was Flutter for the mobile apps: one codebase serving both stores instead of staffing two native tracks, which a team this size could not have carried. I kept the admin panel and landing page on React and Next.js so the web work could ship on its own schedule rather than waiting on app releases. The constraint was three separate products with one team.
Type
Food and drinks platform
Duration
6 months
Role
Chief Technology Officer
Year
2025 – 2026
Tools
- Flutter
- React
- Next.js
- TypeScript
- Vite
- Tailwind CSS
- TanStack Query
- Zustand
- Recharts
- React Hook Form
- Zod
- Sass
- Vercel


Prodily
An AI productivity platform that bills itself as an operating system for human potential: intelligent agents that amplify a team's output, surface burnout early, and give leaders a read on culture before it becomes a problem. React across the platform.
The call I made as CTO was about scope, not stack. An AI productivity platform can expand forever, so I cut the first release down to the agent surface that could actually be demonstrated and deferred the deeper analytics until there was usage to analyse. The constraint was three months to a platform people could be shown rather than told about.
Type
AI productivity platform
Duration
3 months
Role
Chief Technology Officer
Year
2025 – 2026
Tools
- React
- TypeScript
- Vite
- Tailwind CSS
- TanStack Query
- Zustand
- Socket.IO
- React Hook Form
- Zod
- Framer Motion
- GSAP
- Vercel


Wattlens
An energy analysis platform that takes raw consumption data and turns it into something a person can act on: cleaning it, analysing it, and generating the reports that would otherwise be assembled by hand in spreadsheets. React across the landing page and the user dashboard.
I decided the report was the product, not the dashboard. Anyone can render a chart; the thing being replaced was hours of manual spreadsheet work, so the export path got built first and the interface was designed around producing it. The constraint was real consumption data, which arrives messy and inconsistent rather than clean.
Type
Energy analysis platform
Duration
6 months
Role
Chief Technology Officer
Year
2024 – 2025
Tools
- React
- Vite
- Tailwind CSS
- AWS
- Vercel


Back2School
A child-sponsorship platform carrying real profiles of out-of-school children in Nigeria. You read a child's story, then sponsor their full education or make a one-off donation, and every contribution is tracked and reported back. Three surfaces: the public landing page, a sponsor dashboard, and an admin dashboard for the team on the ground.
The frontend decision that mattered was treating the child profile as a single component reused across all three surfaces, so a profile renders identically whether a visitor is browsing, a sponsor is reviewing, or an admin is editing. That kept the data shape honest and stopped three versions of the same thing drifting apart. The constraint was AngularJS, an older framework, across a nine month build.
Type
Child-sponsorship platform
Duration
9 months
Role
Frontend Developer
Year
2025 – 2026
Tools
- Angular
- TypeScript
- Tailwind CSS
- Supabase
- Chart.js
- Azure


Espay
A VTU platform for buying mobile data and airtime at a discount. Three surfaces built in AngularJS: the landing page, a user dashboard for transactions and wallet balance, and an admin dashboard behind it. Payments mean the failure states matter as much as the happy path.
On a payments product the failure states are the product, so I built them as real interface rather than error toasts. A failed airtime purchase where money has already left the wallet is the case that decides whether anyone trusts the thing, and it deserved as much design as the happy path. The constraint was AngularJS across landing page, user dashboard and admin.
Type
VTU platform
Duration
6 months
Role
Frontend Developer
Year
2023 – 2024
Tools
- AngularJS


Teknesis
The website for a digital agency working across web development, branding and design. The brief was the hardest kind for an agency site: the site itself has to be the argument for hiring them, so the typography and restraint are the product.
As CTO I decided against a CMS. An agency updates its own site a handful of times a year, and a CMS would have added a permanent maintenance cost for that. A static React build meant nothing to run and nothing to patch. As the frontend developer the job was then typography and restraint, because on an agency site the site itself has to be the argument for hiring them.
Type
Agency website
Duration
3 months
Role
Frontend Developer and CTO
Year
2023 – 2024
Tools
- React
- Vercel


Esplendor
A showcase platform for a bespoke wood furniture and interior design studio in Lagos: custom wardrobes, kitchens, TV units and restoration, handcrafted in Lekki. Built solo across the whole stack in a month, with Firebase holding the content and Cloudflare serving it.
Working solo across the whole stack in a month, the decision was to own no infrastructure. Firebase holds the content so the studio can change their own work without me, and Cloudflare serves it, which meant there was no server to provision, secure or maintain. Anything requiring ops would not have fitted in the time.
Type
Interior design showcase
Duration
1 month
Role
Fullstack Developer
Year
2026
Tools
- React
- Cloudflare
- Firebase