I build web and mobile products, mostly React and Node, usually with an AI agent somewhere inside. I do the design myself, so the interface and the code get decided together. Looking for a junior fullstack or AI engineering role.
A Nigerian legal assistant that answers from statute and cites the section it used.
It takes a question in plain English and sorts it into one of twenty practice areas. Then it pulls the matching provisions from a Nigerian law corpus and drafts an answer with every claim tied to a section. Each citation is checked against the retrieved text, and a critic stage refuses the answer when the support is missing.
Node, Express, Firebase, Gemini. 100 test scenarios run through the evaluation gate.
A browser automation runtime in Rust, small enough to sit beside the app that calls it.
It loads a page, runs its JavaScript in a sandbox, fills forms and returns structured fields. The same tools are served over an HTTP API and an MCP server, so an agent can drive it. The hard part was memory: a browser costs hundreds of megabytes and this had to idle at five.
Rust, MCP over stdio, on npm as @graphicmiles/scout. Idles around 5 MB.
A mobile app for finding creators near you, live in Nigeria.
Geohash proximity puts nearby creators on a map, with one-to-one and group chat and a Pro tier through Paystack. Presence runs on Firebase Realtime Database while reads stay cache-first, and it installs as a PWA so it opens on a weak connection. The hard part was doing this without a server of my own, so every write goes through Firebase rules or a Vercel function.
React, Vite, Firebase, Vercel. 590+ tests across the unit, API and rules suites.
An Android agent that runs the language model on the phone.
llama.cpp is loaded through JNI, so GGUF models run on the device with no network call, streaming tokens as they arrive. Model files are checked against a checksum before loading, and a small agent core decides when to reach for a tool. The hard part was the bridge: memory limits, heat, and a 4-bit model that has to answer before Android decides the app is stuck.
Flutter, Java, JNI, llama.cpp. 42 agent-core tests, and a cloud tier measured at 49 tokens a second.
A streetwear storefront rebuilt from the outside, one measurement at a time.
18 static pages covering the home template, the collection, nine product pages, the bag, search and four concept pages. The rail, the runway, the shoe shelf and the story viewer all run on plain JavaScript. The hard part was fidelity: the theme scrolls a div rather than the window, its geometry only exists at runtime, and its templates deliberately ship without headings. Every page was diffed against the live build until the gaps were a few pixels.
HTML, CSS, vanilla JS. 27/27 click paths and 36 page audits pass; page heights within 0 to 19 px of live.