BAPTISTE BOUAULT · AI & DATA ENGINEER · FRANCE 2026

AI SYSTEMS IN PRODUCTION. NOT DEMOS.

I design and ship products, pipelines and evaluation tools into production. Alone, from prototype to deployment.

ESSEC · UC Berkeley · Founders Inc

  • 20–30Calls per day in production
  • 2,500+Paying users
  • 6Systems shipped
§ 01

Work

Problem · Decision · Trade-off · Result

Six systems I designed and shipped, from a generative-visibility engine to a local-first analytics platform. For each one: the problem, the technical decision, the trade-off, the result.

02Case studyConsulting engagement

Local-first analytics platform for a national retail network

An autonomous analytics and simulation platform where the AI is architecturally incapable of inventing a number.

Problem

An LLM narrating business figures for executives is one hallucination away from killing the product: during testing, the built-in assistant once answered a single-store question with a correct, right-calculation, wrong-scope number for the entire network, and raised no error. Almost right with total confidence is worse than wrong.

Key decision

The LLM never computes a number. Deterministic engines calculate everything and results are frozen at generation time with their uncertainty ranges; the AI layer only phrases what the engines already produced.

Trade-off

Sub-network granularity the statistics cannot certify does not ship: adding more agents does not lift the variance ceiling, so the product exposes results only at the granularity it can defend, and says so on screen.

Result

Delivered as a local application installed at the client. Final validation across 33 questions: zero false answers, zero wrongful refusals.

10M ROWSDUCKDBMESALOCAL-FIRSTAI GATE
Result

Delivered as a local application installed at the client. Final validation across 33 questions: zero false answers, zero wrongful refusals.

Read the case study →
Diagram: local analytics platform, from file to audited outputA local 2.6 gigabyte file is streamed by DuckDB in about 5 seconds under a 22-column contract, then processed in parallel by deterministic engines and a Mesa simulation of 2,000 agents over 36 months across 160 replications. Results are frozen with a 95% confidence interval, then pass an audit gate on four criteria: fidelity, coherence, confidence and structure. On pass or warning, the result appears on screen; on failure, a deterministic summary is shown instead. A large language model, connected separately by a dotted line, rephrases the frozen artifacts for the screen but never computes anything itself.FAILPASS/WARNLOCAL FILE 2.6 GBDUCKDB STREAMING~5 S · 22-COLUMN CONTRACTDETERMINISTIC ENGINESMESA SIMULATION2,000 AGENTS · 36 MONTHS160 REPLICATIONSFROZEN ARTIFACTS · 95% CIAUDIT GATEFIDELITYCOHERENCECONFIDENCESTRUCTUREDETERMINISTIC SUMMARYSCREENLLMREPHRASES· NEVERCOMPUTESDiagram: local analytics platform, from file to audited outputA local 2.6 gigabyte file is streamed by DuckDB in about 5 seconds under a 22-column contract, then processed in parallel by deterministic engines and a Mesa simulation of 2,000 agents over 36 months across 160 replications. Results are frozen with a 95% confidence interval, then pass an audit gate on four criteria: fidelity, coherence, confidence and structure. On pass or warning, the result appears on screen; on failure, a deterministic summary is shown instead. A large language model, connected separately by a dotted line, rephrases the frozen artifacts for the screen but never computes anything itself.FAILPASS/WARNLOCAL FILE 2.6 GBDUCKDB STREAMING~5 S · 22-COLUMN CONTRACTDETERMINISTICENGINESMESA SIMULATION2,000 AGENTS36 MONTHS160 REPLICATIONSFROZEN ARTIFACTS · 95% CIAUDIT GATEFIDELITYCOHERENCECONFIDENCESTRUCTUREDETERMINISTIC SUMMARYSCREENLLMREPHRASES· NEVER COMPUTES
DIAGRAMThe pipeline from local file to screen, with the audit gate.
03Case studyProprietary product

GEO Audit · brand visibility measurement in generative engines

Measure what ChatGPT, Perplexity or Gemini say about a brand, without biasing the measurement.

Problem

When a prospect asks a generative engine "which provider should I pick?", the answer steers the purchase. On the brand side, no one knows what is said or measures it. GEO is to these engines what SEO was to Google.

Key decision

Brandless questions run in a neutral, isolated conversation. We measure whether the brand comes up on its own, not whether the engine repeats what it was fed.

Trade-off

Live web search, like real use, but isolated from the global score. Cutting the web would have skewed the measurement. On broken numbering, the parser refuses to write rather than misattribute an answer.

Result

Working multi-company tool. Score, question-by-engine heatmap, recommendations. Concurrency locked per slug, cost per run tracked, 40 tests.

5 enginesReact / Pythonheadless conversations40 tests
Result

First real-client run: audit delivered and presented to an employer federation's executive committee. Now the proprietary tool behind the Cinq diagnostic.

Read the case study →
Readout · GEO score by engine × categorylowhigh
ClaudeGPTGeminiPerplexityCopilotAwareness9355627441Discovery7963578247Intent8650677138Values7245496434GEO SCORE61/ 100
RECONSTRUCTION · FICTIONAL DATAReadout · GEO score by engine × category

2,500 paying users in three months.

Rhinovate · Co-founded healthtech · 2025 · Company since dissolved

04Case studyAscend Partners engagement

Forensic audit of a scoring engine (cyber-resilience)

Reproduce a score to the hundredth before concluding on the cause of its drop.

Problem

Cyber-resilience scores dropping on several infrastructure assets, with no explanation, on a legacy VBA tool.

Key decision

Rebuild the three scoring engines in Python from the code and the real data, until the scores match to the hundredth.

Trade-off

Reproduce first, conclude second. Cause found: response requalification by coefficient plus a switch to a geometric mean at the pillar level.

Result

304 tests, visuals for the board, a governance note to align teams on a contested method.

reverse-engineeringroot causeVBA → Python304 tests
Result

304 tests, score reproduced to the hundredth. Presented to the client's executive committee for an investment decision.

Read the case study →
Forensic audit diagramA legacy VBA scoring engine is rebuilt as three independent Python engines. A convergence curve meets the target score line within plus or minus 0.01, verified by a 304-test harness, down to the root cause: a coefficient-based response requalification combined with a geometric mean across eight pillars. The result is presented to the client’s executive committee for an investment decision.LEGACY VBAENGINE3 REBUILTENGINESENGINE 1ENGINE 2ENGINE 3TARGET SCORE ± 0.01304 TESTSVERIFICATIONHARNESSROOT CAUSECOEFFICIENTREQUALIFICATIONGEOMETRICMEAN· 8 PILLARSEXEC COMMITTEEINVESTMENTDECISIONForensic audit diagramA legacy VBA scoring engine is rebuilt as three independent Python engines. A convergence curve meets the target score line within plus or minus 0.01, verified by a 304-test harness, down to the root cause: a coefficient-based response requalification combined with a geometric mean across eight pillars. The result is presented to the client’s executive committee for an investment decision.LEGACY VBA ENGINE3 REBUILT ENGINESENGINE 1ENGINE 2ENGINE 3TARGET SCORE ± 0.01304 TESTSVERIFICATION HARNESSROOT CAUSECOEFFICIENT REQUALIFICATIONGEOMETRIC MEAN · 8 PILLARSEXEC COMMITTEEINVESTMENT DECISION
DIAGRAMLegacy VBA engine rebuilt as three Python engines, validated by 304 tests down to the root cause of the discrepancy.

Other work

Selection
Reusable AI benchmark engine

A parameterized engine: a list of solutions, a grid of criteria, and it regenerates a scored matrix, radar charts and exports. First shipped on 25 AI solutions for a healthcare federation. Fact-checking before export.

pandas · matplotlib
openpyxl · pptxgenjs
Autonomous AI watch pipeline

n8n orchestration and LLM scoring, containerized. More than 20 sources, a daily executive briefing delivered with no intervention.

n8n · Docker
LLM scoring
OSINT contact-verification engine

Seven cross-checked sources. The "Verified" status requires two independent sources in agreement. Close to 1,750 lines.

Node.js
multi-source
Event-driven trading bots (V3 → V4)

Sentiment NLP, paper execution, 47 symbols. V3 stopped after measuring a negative expectancy net of fees. V4 rebuilt, more stable. Stopping a project on the data rather than digging in.

Python · FinBERT
Redis
High-craft sites

Next.js, GSAP. This site is one example.

Next.js
GSAP
§ 02

Method

Agentic production line

An agentic production line, with a memory that persists across sessions.

01

Orchestration

A model as conductor. It generates the prompts and context files that drive execution.

02

Execution

Claude Code as the execution environment. Code is written, tested and debugged in the loop.

03

Context

All context in versioned .md files. An agent resuming a session does not start from scratch.

04

Memory

An Obsidian vault connected over MCP. Continuity does not depend on a context window.

§ 04

Domains & stack

Agents & orchestration

  • Multi-agent systems, human-in-the-loop gates
  • Evaluation and benchmarking tools
  • n8n orchestration, headless conversations
  • MCP, Claude Code skills
  • Robust parsing, concurrency and cost control

Data science & engineering

  • Python, FastAPI, Pydantic
  • scikit-learn, Mesa, geospatial H3 / OSRM
  • React, Next.js
  • Postgres, Alembic, Redis, Docker
  • Audit and root-cause reflex

Consulting & domains

  • GEO, visibility in generative engines
  • Executive-committee decks, decision-maker language
  • Geo-marketing, scenario simulation
  • Finance, event-driven architectures
  • CAC 40 large accounts

Let's talk.

A direct message, I reply in person.

Site written by hand, no template, no page builder. Archivo and Martian Mono. France, 2026.