Full-stack Developer & Web Designer
Software that ships, and keeps running — auth, retrieval, monitoring, and a bill you control.
Full-stack products built end to end — RAG pipelines, CRMs, analytics and governance tooling. Open any card for the story and a look inside.
One person accountable — from the first sketch
to a product running in production.
Goals, constraints, the real problem.
Flows, wireframes, a visual system.
Frontend, API, data, and the AI.
Dockerised, deployed, on a domain.
Monitoring, backups, automations.
I write it and design it — scroll to watch a component build itself.
1export function Impact() {2 return (3 <Card>4 <Header>5 <h3>Impact</h3>6 <Delta>+38%</Delta>7 </Header>8 <Chart data={series} />9 <Stat value={128400} />10 <Toggle label="Dark" />11 <Tags>Productivity · Savings · Growth</Tags>12 </Card>13 );14}
Tools I reach for across frontend, backend, data, AI and infrastructure.
Engineering is a stack of trade-offs. A few I make often — and the conditions that would change my mind.
One language across front and back, shared types end to end, and the biggest ecosystem. For a small team shipping a product, that single mental model is the fastest path from idea to production.
The parts under the hood that decide whether a product survives real users.
Live, multi-user state so everyone works on the same data at once — fewer conflicts, faster decisions.
Secure sign-in and role-based access so the right people see the right things — and nothing leaks.
AI that answers from your own documents, not the open web — accurate, cited, on-topic for your team.
Stripe checkout, subscriptions and webhooks wired in — billing that just works and reconciles itself.
Packaged once, runs identically everywhere — no “works on my machine”, quicker onboarding and deploys.
Tests and deploys automated on every change — ship more often, with less risk and no manual steps.
Right-sized servers, serverless or edge — the performance you need and a bill you can control.
Infra-as-code, environments and automated releases — repeatable and boring.
CDN, DNS, WAF and edge caching — fast everywhere and shielded.
Staging, preview envs and user acceptance — caught before it ships.
Logs, metrics and alerts that surface issues early — less downtime, faster fixes, calmer launches.
Backups, migrations and restores handled — the product stays reliable long after launch day.
Core Web Vitals, caching and query budgets — speed users actually feel.
Queues, workers and horizontal scale so a spike doesn’t take it down.
Lifecycle emails, events and churn signals that turn first-time users into regulars.
Full products — shipped, deployed and kept alive. Not slides, not prototypes.
Good UX disappears. The principles behind it — and the brands and product sites shaped end to end.










Good design disappears. The interface feels obvious, the motion means something, and nothing makes you stop and think.
I design it as well as ship it — scroll to watch one screen climb from a written brief to a finished interface.
Brand identity and website for GeTeCe — a Thai group distributing chemicals, fragrances, flavours and food ingredients. A confident red-on-white system, a fluid water motif and calm wayfinding turn a wide, multi-audience catalogue into something that genuinely feels easy — and friendly — to navigate.
Colour, type and tone lifted straight from the brand and handed over as reusable tokens the whole team can reach for.
English and Thai, both first-class from day one — never bolted on at the end.
Ongoing upkeep, upgrades, SEO and GEO (generative-engine optimisation) keep the site fast, current and easy to find — for people and AI search alike.
End-to-end design and WordPress build for IfYouCan — every screen, every icon and every component crafted from scratch, then tuned for near-perfect performance and search.
The whole site designed and hand-built in WordPress — custom blocks, no page-builder bloat.
A full custom icon set and reusable component library, consistent across every template.
Tuned for top Core Web Vitals and search — fast, accessible and built to rank.

A computer-vision platform for African basketball — turning game footage into structured player data and a scouting profile. Bilingual FR / EN, Côte d'Ivoire-first.
Electric blue and lime, built to feel like sport — not spreadsheets.
Raw footage becomes player cards and readable metrics.
One product, two languages, no compromise on either.
Marketing site for an African basketball-club CRM — animated social proof, a clear pricing toggle, and one conversion-first path from landing to sign-up.
Every section drives toward a single, obvious next step.
Animated proof and counters that reinforce, never distract.
Localised for clubs across francophone and anglophone Africa.


Public site for the Senegalese Athletics Federation — a bold editorial hero, a live results ticker, and a dark stadium look carried by national-green accents.
Oversized type and imagery that give the federation real presence.
A results ticker keeps the season visible at a glance.
Green and gold from the flag, applied as a system.


A Thai reading game for young children — karaoke-style word highlighting, a gamified story map, and a parent dashboard to follow progress. Installable as a PWA.
Words light up in sync with audio to build word recognition.
A story map turns practice into a journey kids want to finish.
Progress, streaks and time spent — visible to parents.

An Apple-style redesign direction for a global e-commerce brand — restrained type, generous whitespace, and calm, deliberate motion.
A tight type scale doing the heavy lifting — nothing shouting.
Space used as a layout tool, not leftover margin.
Transitions that guide attention without demanding it.


From a brand's first identity to a shipped product UI — and the build behind it when you need one person to carry it through.
Logo, palette, type and tone — a system, not a one-off logo.
Flows, wireframes and high-fidelity screens for web and mobile apps.
Tokens, components and docs so the product stays consistent as it grows.
Marketing sites and front-ends designed and shipped — WordPress or custom.
Semantic markup, metadata, sitemaps and fast pages so the work actually gets found.
Core Web Vitals, image and font budgets, lazy-loading — quick on every device.
Ten products I designed and built, running live — on sample data, never a real client's.
Describe the crisis in a few lines and Luma drafts the whole response kit — holding statement, key messages, Q&A, 3Rs — pulled from a RAG knowledge base of your past responses, not invented.
Python / FastAPIReactpgvector · RAGLocal LLMSylla turns past translations into a memory that auto-fills the next document — reviewers only touch what actually changed.
Next.js 16PostgreSQL · pgvectorAzure OpenAIRAG / TMSonga watches the tape so coaches and scouts don’t have to — detecting and tracking every player frame by frame and turning raw movement into a structured match report.
Next.js 16FastAPIYOLOv8 · ByteTrackOpenCVSenTrack Pro turns scattered meet sheets into one athlete history for a national federation — automatic personal bests, season progression and side-by-side comparison.
Node / ExpressReact / VitePostgreSQLDocker / OCICirrus cross-references your providers into one inventory, scores every domain’s health and surfaces drift and dead weight before it bites.
Python / FastAPIReact / VitePostgreSQLDockerCourtBase gives a pro basketball club one dark-mode front office for its squad, transfers and fans — FM-style player cards, a prospect pipeline and a fan CRM, instead of notebooks and chat.
React / ViteTypeScriptExpressPostgreSQL · multi-tenantKids Academy gives parents a phone app to book, refill and check in — and the studio a live board for reception, coaches and the manager.
Next.js 16Prisma 7PostgreSQLEN / TH / FREvent Flow replaces a scatter of spreadsheets and chat threads with a single year-long board — teams, regions and channels in one view, planned together in real time.
ReactNode / ExpressPostgreSQLSocket.IOPlayn puts every disbursement behind a phase-gate — funds only release once the checkpoint is signed off, evidence is attached, and the whole trail is auditable after the fact.
Next.js 16Prisma 7SQLiteAmina Diallo Finance approved expense → approved
12m ago
Kojo Mensah Forwarded to Finance expense → finance review
1h ago
Lena Osei Passed gate on tranche → released
3h ago
Nuance turns a pile of PDFs into a guided DELF / DALF track — sequenced vocabulary sessions, grammar drills, full mock exams and a practice picture per skill, all in French, for one enrolled learner.
Next.jsNextAuth (Google)MarkdownDockerI partner with founders to take an idea from the first sketch to a product running in production — designing the brand and the UX, then building the full stack underneath it. One mind across the whole thing, so nothing falls between design and engineering.