Skip to content
system bootHi
000%
Available for remote · US · UK · DE · AE · AURemote · open to US, UK, Germany, UAE, Australia

 

KnowledgeOkhakumhe

 

I build the systems language models sit on — tool surfaces with real permission boundaries, retrieval that does not leak tenants, and metering that treats tokens as a cost centre.

0

Production systems

0

MCP agent tools

0

LLM providers

0

SSE / agent paths

TypeScriptNestJSPostgreSQLModel Context ProtocolAnthropic ClaudeOpenAIpgvectorRAGNext.jsReact 19GraphQLRedisBullMQDrizzle ORMPrismaExpoSocket.IOSSETurborepoPaystackDockerJestTypeScriptNestJSPostgreSQLModel Context ProtocolAnthropic ClaudeOpenAIpgvectorRAGNext.jsReact 19GraphQLRedisBullMQDrizzle ORMPrismaExpoSocket.IOSSETurborepoPaystackDockerJest
01profile

 

I work on the parts of an AI product that quietly decide whether it can be trusted — tool permissions, retrieval boundaries, and the machinery that keeps a model inside the caller's own authority.

I'm a TypeScript engineer specialising in AI infrastructure: Model Context Protocol servers, retrieval-augmented memory, prompt compilation, and the auth boundaries that keep an agent from becoming a superuser. I have shipped production systems both as sole engineer and as a named owner on small teams, spanning NestJS backends, Next.js dashboards, and a React Native app.

The work I am proudest of is giving a language model real write access that is still provably scoped. For a WhatsApp-native commerce platform I built a dual-endpoint MCP server with twenty tools across two trust boundaries, RAG on pgvector with HNSW indexing, Anthropic prompt caching with per-tenant data excluded from the cached prefix, and per-feature token metering.

The same instinct shows up off the model path. I work server-first on the frontend — React Server Components and Server Actions, so credentials stay in HTTP-only cookies — and I treat webhooks, queues and ledgers as systems that must survive retries, not happy-path demos. I am looking for backend and AI-platform roles at companies in the US, UK, Germany, UAE and Australia, remote or on-site.

operator.spec

Designation
AI Infrastructure Engineer
Base
Remote · open to US, UK, Germany, UAE, Australia
Focus
MCP · RAG · agent authorisation
Shipped
7 production systems · solo and team
Open a channel
02capabilities

 

Four areas where I have shipped something real, not read a tutorial.

01

AI infrastructure

Model Context Protocol servers and clients, RAG on pgvector with HNSW indexing, prompt caching with deliberate per-tenant exclusion, stage-aware prompt compilation, structured tool output, and per-feature token metering.

Anthropic ClaudeOpenAIGeminiMCPpgvector
02

Agent authorisation

Tool surfaces that inherit the caller's credentials instead of a service key. Two trust boundaries on one MCP server, Zod-validated tool input, destructiveHint annotations, and DNS-rebinding protection on Streamable HTTP.

RS256 JWTService tokensZod 4MCP annotations
03

Backend architecture

Modular NestJS and Express services, GraphQL code-first APIs, isolated PostgreSQL databases, BullMQ and Agenda job pipelines, Socket.IO and SSE streaming, and layered auth with JWT rotation.

NestJSPostgreSQLDrizzleBullMQRedis
04

Server-first clients

Next.js App Router with React Server Components and Server Actions, React Native via Expo, and Turborepo monorepos. Accessibility and reduced-motion treated as requirements, not polish.

Next.js 16React 19ExpoTanStack QueryTurborepo
03selected work

 

Flagship AI systems first — then the platforms around them. Open a dossier for the problem, the approach, and the decisions I would defend in review. Team work is labelled as such.

01Agentic commerce

GrapeShop

WhatsApp-native AI commerce platform

A commerce platform for merchants who already sell on WhatsApp. Sellers build a catalogue once; an AI assistant then handles customer conversations end to end — quoting live prices, assembling carts, taking bookings and issuing payment links, all inside the seller's own permissions.

92HTTP endpoints
42NestJS modules
20MCP tools
NestJS 11TypeScriptPostgreSQL ×3Drizzle ORMRedisBullMQ
Open dossier
02LLM tooling

GrapeShop MCP Server

Agent tool layer with two auth boundaries

A dual-endpoint Streamable HTTP MCP server that turns a REST commerce API into a tool surface a language model can safely operate — with authorisation, not trust, as the boundary.

20Tools
14Merchant tools
6Buyer tools
Express 5TypeScriptNode.jsMCP SDKStreamable HTTPZod 4
Open dossier
03Consumer AI

Oré

Voice-first AI creative companion

A NestJS companion for writers, filmmakers and designers: streamed conversations, a stage-aware XML prompt library, Whisper voice notes, and Paystack billing. I owned monetisation and media upload, and contributed the directive layer of the prompt compiler.

22NestJS modules
113HTTP routes
4SSE endpoints
NestJS 11TypeORMPostgreSQLSSEOpenAIGemini
Open dossier
04Proptech

Residence

Property management platform

A landlord–tenant platform: property listing, identity and income verification, tenancy lifecycle, rent reminders and WhatsApp notifications. I was the primary author of the core domain services on a three-person team.

107Core API routes
22Prisma models
40Migrations
Express 5Prisma 6PostgreSQLRedisZodNext.js 16
Open dossier
06Billing

Optimus Gate

Merchant subscription billing & checkout

A subscription billing platform that lets merchants sell recurring plans through a hosted checkout. One platform-level processor account, an internal double-entry ledger for per-merchant attribution, and reconciliation that assumes webhooks will fail.

38Endpoints
21Tables
11Modules
NestJS 11PostgreSQLDrizzle ORMRedisBullMQ@nestjs/schedule
Open dossier
07Cryptocurrency exchange

Century

Crypto P2P trading & escrow API

A GraphQL API for a cryptocurrency trading platform: multi-currency wallets, a peer-to-peer escrow state machine, fiat rails, and real on-chain Bitcoin settlement built from primitives.

40GraphQL operations
14Prisma models
14Scheduled job types
Apollo Server 5Nexus (code-first)GraphQLTypeScriptPostgreSQLPrisma
Open dossier
04engineering principles

 

The rules I apply before anyone asks me to.

01

Agents inherit permissions

An AI tool surface is an authorisation surface. I forward the caller's own token rather than a superuser key, so the agent can only do what the human could.

02

Caches must not leak tenants

Prompt caching is a cost win until a cached prefix contains another customer's data. Shared instruction blocks are cached; per-tenant context is not.

03

Tools over raw model access

The model never sees a database. It sees Zod-validated tools with readOnlyHint and destructiveHint annotations, so a hallucinated UUID cannot become a write.

04

Tokens never touch the client

Server Components and Server Actions with HTTP-only cookies. If client JavaScript can read your credential, so can an injected script.

05technology

 

Tools I have used in production, grouped by where they sit in the system.

Languages

TypeScriptJavaScriptSQLPythonSolidity

Backend

NestJSExpressApollo ServerNexusGraphQLRESTSocket.IOSSE

Frontend

Next.jsReactReact Server ComponentsServer ActionsExpo / React NativeViteTanStack QueryTailwind CSSFramer Motion

Data

PostgreSQLpgvectorRedisMongoDBDrizzle ORMPrismaTypeORMSQL migrations

AI & Agents

Anthropic ClaudeOpenAIGoogle GeminiModel Context ProtocolRAGPrompt cachingToken meteringWhisper STT

Auth & Payments

JWT RS256Refresh rotationHashed API keysHMAC-SHA256PaystackNombaFlutterwave

Infrastructure

BullMQAgendaCronTurborepoDockerGitHub ActionsVercelJestPino
TypeScriptNestJSPostgreSQLModel Context ProtocolAnthropic ClaudeOpenAIpgvectorRAGNext.jsReact 19GraphQLRedisBullMQDrizzle ORMPrismaExpoSocket.IOSSETurborepoPaystackDockerJestTypeScriptNestJSPostgreSQLModel Context ProtocolAnthropic ClaudeOpenAIpgvectorRAGNext.jsReact 19GraphQLRedisBullMQDrizzle ORMPrismaExpoSocket.IOSSETurborepoPaystackDockerJest

open channel

Need an agent that transacts inside real permissions?

Open to backend, AI-platform and full-stack roles — remote or on-site in the US, UK, Germany, UAE and Australia. I read everything that comes through.