TYPESCRIPT ∗ JAVASCRIPT ∗ PYTHON ∗ REACT ∗ NEXT.JS ∗ TAILWIND ∗ NODE.JS ∗ REST APIS ∗ FIREBASE ∗ SUPABASE ∗ GEMINI API ∗ CLAUDE API ∗ LLMS & AI AGENTS ∗ GOOGLE CLOUD ∗ VERCEL ∗ DOCKER ∗ GIT ∗
TYPESCRIPT ∗ JAVASCRIPT ∗ PYTHON ∗ REACT ∗ NEXT.JS ∗ TAILWIND ∗ NODE.JS ∗ REST APIS ∗ FIREBASE ∗ SUPABASE ∗ GEMINI API ∗ CLAUDE API ∗ LLMS & AI AGENTS ∗ GOOGLE CLOUD ∗ VERCEL ∗ DOCKER ∗ GIT ∗
Selected Work — Enesi Space
Cheerz — AI-powered real-time multiplayer quiz platform, launched to paying users
A live multiplayer quiz game where an AI generates questions on any topic and players compete in real time, with coin-based monetisation and a £2.99/month pass. Launched via a TikTok Live cash-prize event: 200+ visitors and paying customers within days, now just under 100 users. Sole builder, from real-time game sync to Stripe payments. Stack: Next.js, TypeScript, Firebase, Gemini API, Stripe, Vercel.
Cheerz — live site
HappyBorough London — winner, House London #2
A hackathon project built with Nash and Faris that ranks London's 33 boroughs by what matters to you (safety, green space, transport, well-being, housing access and affordability), using ONS, IMD 2025, GLA rent and live UK Police data. Joined mid-build and redesigned the front end in Three.js: each borough is a 3D tower whose height reflects your priorities, sliders re-rank the city instantly in the browser, and each borough's detail card shows the underlying data, with estimated values clearly flagged. Stack: Three.js, JavaScript, Python, open data.
HappyBorough — live · GitHub
Kira — missed-call attack warning system for rural northwest Nigeria
A community alert network for areas where most people have no smartphone and no reliable data. A missed call to a local number triggers the alert; Claude classifies and clusters incoming reports, and responders see live incidents on a map. Built solo in 48 hours at Frontline London, a defence and humanitarian hackathon. Stack: Next.js 15, TypeScript, Supabase, Twilio, Claude API, MapLibre GL, Vercel.
Kira — live · GitHub
ZoneIn — AI zone intelligence for London gig drivers
Recommends high-demand zones to gig-economy drivers using AI and live data, with a map interface and a paywall. Validated before a line of code was written: 41 in-person interviews with London drivers, 37 of whom said they'd pay. Sole builder. Stack: Next.js, TypeScript, Tailwind, Gemini API, MapLibre GL JS, Stripe.
ZoneIn — live prototype
Urban Lens — 3D globe comparing how different AIs feel about 60 world cities
An interactive globe visualising sentiment differences between Gemini and Perplexity across 60 cities, with a Claude-powered chat panel for interrogating model bias city by city. 2nd place, Middlesex MSc Data Science Hackathon 2026. Team of three: built the front end, the globe visualisation and the Claude analysis panel while teammates handled the NLP pipeline in Python. Stack: Next.js, Tailwind, Recharts, Anthropic Claude API, Python.
Urban Lens — live · GitHub
Loop House — a world-model time loop you can walk through
A building generated from a single anchor frame that rebuilds itself and resets every 60 seconds while the player keeps their memory of the previous loop. Built solo at Worlds London, a world-models hackathon, on the Reactor model. Stack: Reactor, Next.js, TypeScript, Vercel.
Loop House — live
Torque — BattleBots match predictor built by directing an AI coding agent
Predicts BattleBots match outcomes from scraped fight history, with a 3D bot viewer and reasoning for each call. Built at the Bright Data #battlebotsdev hack at Civo Navigate, running the build as prompt engineer — specifying the architecture and driving Claude Code through implementation. Stack: Next.js, Gemini API, React Three Fiber, Bright Data.
Torque — live · GitHub