Donatien Koffi

Software engineer

I put assistants in the hands of business users, and I write the framework that makes that work verifiable: separated roles, executable gates, traceability. This page is that demonstration, since it is built by it.

  • Permanent or freelance
  • Rennes, mobile across France
  • MIAGE master's degree
  • FR · EN
01

Work

04
PRODUCTCODEREVIEWGATESCLOSURE
One issue cycleNode.js, MIT
Personal project, open source

agent-pipeline: multi-agent orchestration

The problem
AI-assisted development delivers fast and leaves no trace. Nothing says who decided what, nor what was verified before the code went in.
What I did
Separated the roles — Product defines, the implementer writes, QA validates without writing, the orchestrator controls the transitions. A state machine bounds the moves, executable gates refuse, and every proof is attached to a commit by its digest.
The result
This page is the demonstration: it is built by that pipeline, and every decision behind its design is written in its journal.

Node.jsState machineNDJSONMCPQuality gatesTraceabilityAutomated tests

SPECAGENTSCODEREVIEW
Steering rather than typingCritical review
Personal project

decodevoyage.com, delivered by steering agents

The problem
Deliver a complete public application alone: architecture, domain models, search visibility, compliance.
What I did
Wrote the specifications and the architecture, then steered coding agents for the implementation, reviewing critically what they produced rather than accepting it.

SpecificationTechnical SEOGDPRCode reviewTechnical documentation

BUSINESSAGENTANSWERRIGHTSRECORDS
The path of a requestOpenAI, Claude
In-house, Modjo GAIA · OloSuite

LLM assistants and agents in production

The problem
An assistant reading a company's data must read only what its user is entitled to, and must never let another customer's data leak.
What I did
Put the entitlement check on the data path rather than beside it: isolation between customers, control by role, traceability of the sources quoted. Then monitored usage and inference cost, and iterated from user feedback.

Anthropic ClaudeOpenAIRBACGDPRNext.jsFunction callingReactTypeScript

BUYERAPICACHEQUEUEDATABASE
The flow of a paymentKafka, Redis
In-house, Everest Consulting

Payment microservice

The problem
Every payment held the order until the bank answered. When a service went down, the orders in flight were lost.
What I did
Put a message queue between the interface and the processing: the order is accepted straight away, processed afterwards, and nothing disappears when a service restarts. Layered architecture, strict separation of the domain from data access.

KafkaRedisPostgreSQLMongoDBStripe

02

Experience

04
  1. 05/2025–08/2026
    Modjo GAIA · OloSuite

    Developer, LLM agents and assistants in production. SaaS vendor. Assistants plugged into customer data, with isolation between customers and control by role on the data path, then monitoring of usage and inference cost.

    Anthropic ClaudeOpenAINext.jsReactTypeScriptRBACGDPRPrompt engineeringTenant isolationInference cost
  2. 11/2023–08/2024
    Everest Consulting

    Back-end developer. Business microservices: payment, a message queue between the services, strict separation of the domain from data access.

    KafkaRedisPostgreSQLMongoDBStripeJWTMicroservicesRBAC
  3. 08/2023–10/2023
    Compagnie Ivoirienne d'Électricité

    Full-stack Angular developer. Business applications of a national electricity operator: modelling, database and interfaces.

    AngularPostgreSQLDockerUML
  4. 05/2022–11/2022
    Synelia Group

    Front-end Angular developer. Web interfaces, and a contribution to a mobile application.

    AngularFlutterREST API
03

Education

02
  1. 2026
    MIAGE master's degree

    University of Rennes

  2. 2021
    MIAGE bachelor's degree

    Félix Houphouët-Boigny University, Abidjan

04

Skills

27

LLM agents & assistants

Anthropic ClaudeOpenAIPrompt engineeringFunction calling

Agentic platform

MCPState machineQuality gatesTraceability

Security & governance

RBACTenant isolationGDPRInference cost

Development

TypeScriptNode.jsREST APIMicroservices

Data

PostgreSQLMongoDBRedis

DevOps

Docker

Interfaces

ReactNext.jsAngular

Methods

Automated testsTechnical documentationCode reviewSpecification
05

Contact

Available immediately

Contract
Permanent role or freelance engagement
Location
Rennes, mobile across France, or remote
Availability
Immediate