blog

Work

Things I've actually built.

Every project card opens the real repository on GitHub, commit history and all.

Minerva FC players posing together on an artificial pitch after a game, shipping containers stacked behind them
Minerva FC · after a session

Now building · student initiative

Minerva FC, from scratch.

I'm building a football club at Minerva University: a real team with regular sessions, its own identity and a way in for anyone who wants to play, whatever their level.

  • 01

    A club, not a group chat. Regular sessions, a squad people can count on, and structure that outlasts any one cohort.

  • 02

    Football in every city. Minerva moves cities each semester, so the club has to find a pitch and a game wherever we land.

  • 03

    An identity worth wearing. I designed the crest, colours and a full brand pack so kits and merch look like they belong to a club.

FoundingCommunity Brand design
Brand pack ↗

Minerva Connect

A Q&A platform pairing Minerva applicants with current students, matched by college, country and topic. Applicants ask without making an account; students sign in with an email code and answer by email or in-app chat. Four-table Postgres schema, realtime threads, MIT licensed.

SupabasePostgreSQL Vanilla JSRealtime

minerva-workstudy ↗

TrackTest Arena

A music quiz that turns real albums into fast song-guessing games. Album search via the iTunes API with no login needed to play, timed rounds with speed-based scoring, an animated timer ring and synthesised sound. Builds on uddy-oz/tracktest.

React 19TypeScript ViteSupabase

tracktest ↗

Forum Customizer

A Chrome extension that restyles Minerva's Forum: eight theme presets, custom fonts, accent colours and header uploads, all persisted across devices. It reapplies itself as the single-page app navigates.

Manifest V3JavaScript chrome.storage

minerva-forum ↗

Ancestor Calendar

A deliberately ridiculous booking app where you have to earn your appointment slot: a Matter.js pegboard date picker, a maths challenge, then an AI ancestral verdict on whether you deserve the meeting. Degrades to an offline fallback without an API key.

Matter.jsVanilla JS Gemini API

ancestor-calendar ↗

Game Glitch Investigator

A CodePath AI110 exercise in debugging code you didn't write. An AI produced a broken Streamlit guessing game; I traced and documented eight bugs, from state persistence to reversed hints, and got all six unit tests passing.

PythonStreamlit pytest

ai110-module1-gameglitchinvestigator ↗

This Website

Hand-built with zero frameworks, zero dependencies and no build step. Six pages of semantic HTML, modern CSS and vanilla JavaScript. The hero runs a live n-body gravity simulation written from scratch in canvas.

HTMLCSS JavaScriptCanvas

portfolio_test ↗

Spam Detection System

An NLP spam classifier built during my research internship at AIRLAB, University of Lagos. Python and NLTK, with iterative feature-selection work that lifted classification accuracy by 30%.

PythonNLTKNLP

internship work · no public repo

// toolkit

PythonJavaScript TypeScriptReact SupabasePostgreSQL / SQL HTML / CSSGit NLTKStreamlit pytest