Skip to main content
Let's talk
Available now

Brayan Oduro.

AI Fullstack Engineer

I think in systems. I build with AI. I ship to production.

8 years building and shipping scalable fullstack applications in production. Specialized in API design, third-party integrations, automation, and AI.

50+ Projects shipped
5/5 Client rating
9y Of experience
✨ About

8 years building
what people rely on.

  1. First principles

    Backend apprentice

    2017

    First steps in backend, learning to think in flows, data, constraints.

  2. The deep end

    Freelance fullstack

    2018

    3 years running projects end-to-end, from brief to production. Thinking in systems, not features.

  3. At scale

    Senior Engineer @ VML

    2021

    Large-scale enterprise projects, millions of users. Architecture built to last.

  4. AI-first

    AI Fullstack Engineer

    Today

    Everything I'd built became the foundation. Now I'm building what's on top of it.

What fascinates me about this craft is the moment when something abstract becomes real, and useful. Beyond the code, I genuinely believe in  kindness at work. The best projects I've worked on were always with people who took the work seriously, and the relationships even more so.

What I build with

AI & LLMs
Claude OpenAI LangChain Vercel AI SDK
Automation
Trigger.dev Inngest Temporal
Web & APIs
Next.js React Node.js Hono
🧰 Services

What I build with you, and why it matters.

I start by understanding your product, your constraints, and what actually matters. Then I design, build, and ship.

AI in your product, for real.

LLMs, RAG, custom agents integrated into the stack you already have. I manage the trade-offs between speed, quality, and cost so you don't have to.

Development & integrations.

I plug into your team and deliver. New features, API integrations, targeted refactoring. No friction, no unnecessary complexity.

Workflows that run themselves.

Tools connected, repetitive tasks automated, AI agents running unsupervised. Your team focuses on what actually moves the needle.

A fresh pair of senior eyes.

Code audit, architecture review, AI stack decisions. Move fast without the technical debt you'll regret later.

🛠️ Portfolio

What I've built, and why it mattered.

A short selection: full-time, freelance, personal and open source. Each with its own constraints, the same attention to what ships and lasts.

  • IVR Platform · per-minute connection & billing
    Freelance

    Backend powering a pay-per-minute psychic call platform with two billing modes: prepaid minute packs or real-time card billing. The caller picks a mode, chooses an advisor, and gets conferenced in, card entry happens vocally via Twilio's Pay connector, with a €69 pre-authorization to validate the card before any call begins. The actual charge fires at session end, billed to the nearest minute. The core challenge: all call state is threaded through async Twilio webhooks via incremental Redis merges, with no drift tolerance between what Twilio tracks, what Stripe charges, and what WordPress stores.

    • ☎️ Live call redirection via Twilio REST : Both legs of an active conference can be redirected to completely new TwiML flows mid-call, via REST API URL updates, without dropping the session. Used to switch from forfait to CB billing while the call is live.
    • 💳 Vocal card entry via Stripe : Card number, expiry, and CVC entered by voice through Twilio's Pay connector. A €69 pre-authorization validates the card upfront, never captured, released by Stripe after 7 days. The real charge (ceil to nearest minute × rate) fires only at session end.
    • 🗄️ Shared state across webhooks : All call transitions persisted in Redis via incremental JSON merges, each webhook updates only its slice of state without overwriting the rest.
    • 🔄 Three-source reconciliation : Daily crons keep Redis, Stripe, and WordPress/MySQL in sync, detecting and cleaning orphaned records, expired cards, and failed charges across all three.
    Node.js Twilio Redis
  • Second Brain · multi-service edge API
    Personal

    I use Strava, Notion, and a smart building API daily, but the data stayed siloed. I built this personal edge API to centralise everything: a private hub that talks to fitness tracking, knowledge management, and home lighting control, normalises the data, and makes it available for my own dashboards and automations. One KV namespace does double duty as OAuth token store and deduplication index. A project that grows with my needs, and a real testbed for edge architecture under production constraints.

    • Edge with no cold start : Instant responses worldwide, zero permanent server to maintain.
    • 🔐 Smart OAuth middleware factory : A single factory produces per-service middleware that handles browser and API clients differently, redirecting browsers through the OAuth flow, returning a machine-readable JSON 401 for API calls. One pattern, all three services.
    • 📚 Always-up-to-date docs : Typed routing and Zod schemas, the Swagger docs stay in sync with the code, effortlessly.
    • 🔁 Background processing via waitUntil : A Notion button press logs a meal, automatically linked to the day's daily summary, the webhook returns 200 immediately while all the work happens in the background. Exceptions never affect the response already sent.
    Cloudflare Hono TypeScript
  • github-stars-categorizer · organise GitHub stars with AI
    Open source

    Hundreds of starred repos, zero organisation. This OSS CLI fixes that: it runs each repo through Gemini 2.5 Flash, assigns one of 18 categories with a confidence score, then creates and syncs lists directly on GitHub. 200 repos in ~12 seconds and a GitHub Actions workflow keeps it updated daily. The constraint that shaped all the engineering: pure zero-shot classification, no training data, no fine-tuning, and thinking mode deliberately disabled for speed.

    • Zero-shot classification, thinking disabled : The model assigns a category and confidence score in a single call — no examples, no training data. Thinking mode is explicitly disabled: for a classification task this simple, reasoning chains add latency without improving accuracy.
    • 🚀 200 repos in 12 seconds at $0.08 : 40 concurrent Gemini workers with exponential backoff on 429s. GitHub GraphQL writes are rate-limited separately at 2 mutations/sec, 10 repos batched per mutation via GraphQL field aliases.
    • 💾 Two-level cache : Starred list (15-day TTL) and per-repo analysis (permanent), subsequent runs only hit the API for new repos. Pairs with the daily GitHub Actions workflow to make re-runs nearly instant.
    • 🖥️ React state machine in the terminal : Ink renders the terminal like a DOM. The App component transitions through pipeline phases, fetching → analyzing → syncing → done, driven by a React hook, not a callback chain.
    TypeScript Gemini GitHub
  • VML · Enterprise accounts
    Full-time

    Four-plus years as a full-time engineer at a digital agency, working across major accounts: Suzuki, Futuroscope, Panzani. Brands with millions of users, demanding internal teams, and live products you cannot afford to break. New features, API integrations, migrations, version upgrades. Every time, the same constraint: ship cleanly, on time, whether on codebases you built or inherited.

    • 🛠️ Features & API integrations : On high-traffic platforms, with direct ownership and client teams who notice when something slips.
    • 🌐 Full-stack web applications : End-to-end delivery, from technical scoping to production, with the same finish expected at every stage.
    • 🚀 Architecture migration : Migrated the core API and backoffice from a monolith to headless microservices (Next.js, Directus, GraphQL), with no service interruption, on a platform with 1M+ downloads.
    • 🎯 Parallel client management : Several brands running simultaneously, each with its own constraints, stack, and pace, and no drop in quality between them.
    React Next.js TypeScript PHP GraphQL
💬 Testimonials

In their words.

Feedback from clients and teams I've worked with on real projects.

Projects shipped
50+
Client satisfaction
100%
Of experience
9y
Let's talk

I reply within 48 hours.

CC

Client Codeur.com

Synchronisation entre deux APIsCodeur.com

Deux devs avaient dit impossible. Brayan l'a fait en quelques jours, fonctionnalités en plus, livraison en avance.
👋 Contact

Let's talk.

Whether you have a project to scope, a tech decision to weigh, or just want to chat. I read every message and reply within 48 hours.

Services interested in