ItakefractionalCTOrolesforearly-stageteamsandcontractworkasaseniorfull-stackorAIsystemsengineer.
Problem
Nigerian law firms needed case and document management built around local legal workflows, and hitting the timeline meant bringing in outsourced frontend and mobile developers and coordinating their work against a fixed budget.
Architecture
Next.js web app and a React Native mobile app on a NestJS backend. PostgreSQL with pgvector for legal document search. Upstash Redis and BullMQ for background jobs. Claude Sonnet for generation, Haiku for routing, split to keep AI cost predictable.
Result
Delivered a formal proposal and locked infrastructure pricing before writing code. Owned the backend and architecture directly while the contracted developers shipped against the spec.
Problem
Thelix needed fraud detection that runs in real time without blocking legitimate users, and a credit scoring model calibrated for sparse Nigerian financial data.
Architecture
8-rule parallel fraud engine with shadow mode and Redis pub/sub hot-reload. 5-factor credit scoring (300–850 scale) with Mono open banking enrichment. 5 NestJS microservices plus a Python FastAPI scoring service.
Result
Rule changes deploy without a restart. A failure in one rule stays isolated instead of blocking unrelated transactions. BVN verification, sanctions and PEP screening, and a WhatsApp credit assessment bot are live in production.
Problem
Nigerian SMBs need bookkeeping that keeps working without reliable internet, and losing a transaction record on a failed sync isn't an option.
Architecture
IndexedDB sync engine with three stores — offline queue, conflict cache, temp ID mappings — and dependency-aware sync ordering so a transaction never syncs before the customer it depends on.
Result
Four coordinated apps: PWA plus native via Capacitor, a background worker, marketing automation, and a CMS. Kobo-precision amounts throughout. NDPR-compliant messaging with suppression lists.
Problem
Enterprise clients needed an AI assistant that queries their own documents with zero data leakage between tenants, and standard vector-only retrieval wasn't accurate enough for production use.
Architecture
Schema-per-tenant PostgreSQL for full isolation. Hybrid search combining pgvector and full-text results via Reciprocal Rank Fusion, then LLM-reranked. A LangGraph agent that can pause mid-turn, checkpoint to MongoDB, and resume after user input.
Result
Real token streaming to the client. File adapters for Google Drive, S3, Azure, SharePoint, and Dropbox. Conversations stay stateful across sessions.
Problem
The client needed KPI tracking that could withstand a CQC inspection, which meant audit trails had to work as legal-grade evidence, not application logs.
Architecture
41 CQC-aligned KPIs across three manager types. Alert escalation through durable Postgres-backed jobs, no Redis dependency. Append-only audit trail. Real-time alerts over SSE.
Result
UK data sovereignty via a UK-hosted VPS with EU backups, GDPR-compliant. Full complaint and incident tracking with timestamp chains.
Problem
Stacks is asynchronous, so deposits and withdrawals need confirmation tracking, and the fund's trading agent needed secure capital access without a static API key that could leak.
Architecture
Clarity SIP-010 token with NAV-based share pricing. Confirmation polling through a retry queue. HMAC auth with timing-safe comparison and a replay window instead of a static key.
Result
The trading agent stays fully decoupled from the notification bot. Emergency pause and transfer restriction toggles. Full historical NAV tracking.
Problem
Creators needed video ads without editing skills, and LLM-generated code had to run on the render server without becoming a security hole — no eval, no filesystem access.
Architecture
Claude generates the Remotion video code, a safety scanner checks it, then it's bundled and rendered on a separate worker. The render worker runs on Hetzner rather than Vercel because Remotion's bundler collides with Next.js's own webpack.
Result
Users revise a video with a plain-English prompt instead of a timeline editor. Renders upload to Backblaze B2 behind Cloudflare's Lagos point of presence.
I take fractional CTO roles for early-stage teams that need technical ownership without a full-time hire, and contract work for teams that need a senior full-stack or AI systems engineer. Every engagement starts the same way: I learn the product, research the alternatives your customers already use, and write the spec — then send a proposal with a fixed scope, a timeline, and infrastructure costs priced up front. You see the number before anyone writes code. I work best with a real problem to solve, not a feature list to implement.