Léonard Henriquez
Paris, France
Co-founder & CTO, Topo (YC W24). I build the infrastructure AI agents run on: durable execution, context, search and orchestration.
- Y Combinator W24
- Co-founded Topo as CTO, selected for the winter 2024 batch
- $1M ARR in 3 months
- AI SDR built from zero; customers incl. Air France, Aircall
- ×4 merged PRs/month
- Coding-agent harness, with 63% fewer bugs per PR
About
Coding since twelve, then business school and product. Co-founder and CTO of Topo (YC W24), where our AI SDR went from $0 to $1M ARR in three months.
I like to see the whole landscape (market, architecture, team) before choosing the path through it. Before Topo I was Head of Engineering at Manda, where I ran a team of about ten developers, after starting there as a product manager. MSc in Data Analytics and AI from EDHEC.
My work sits underneath AI agents, in the parts nobody demos. Durable execution that survives a crash at 3 a.m. Search built for machines that read faster than we do. Control planes that keep a fleet of coding agents honest.

Selected work
2012–2026As CTO I designed the platform, hired and led the team, and stayed its top committer. I also made Topo ready for enterprise customers like Air France: CRM integrations, SAML SSO, security reviews, and a SOC 2 Type 2 audit that I led.
- $0 → $1M ARR in 3 months
- 10M+ agent actions a month
- 1,205 merged PRs
Stack and links: Temporal · Elasticsearch · PostgreSQL · MCP · YC W24 · topo.io
The project's pageCoding agents could write code faster than we could read it, so I invested in what surrounds them: reproducible environments, instructions in the repo, observability agents can query, checks moved left and auto-fix loops. Each proposed change came with a preview URL and a recorded demo, so review moved from reading diffs to checking behavior.
- Merged PRs a month 80 → 318
- Bugs per PR −63%
- CI failures 15.7% → 2.4%
- Feedback to production < 10 h at p80
Stack and links: Claude Code · Codex · Cursor · OpenCode · Temporal · GitHub Actions
The project's pageGit as the sync layer broke down under continuous writes from people and agents, so a small daemon syncs the folder with object storage instead. Each upload is a conditional PUT on the ETag; a concurrent edit gets a real three-way merge from the versioned ancestor, the model resolves what is left, and anything still unsure is set aside as a conflict file, never lost.
Stack and links: Go · S3/R2 · SQLite · MCP · Temporal · agent memory
The project's pageThree products with different lifecycles: the factory, run by coding agents, that captures, distills, generates and repairs connectors; the catalog of reviewed, readable connector packages; and the runtime that executes them with no model inference on the critical path. A model writes each capability's spec, templates write the code, and replay evals gate every commit.
- Goal: 2nd connector in < 2 days, 3rd in < 1
Stack and links: TypeScript · Zod · MCP · Temporal · connectors
The project's pageTools that run coding agents in the background each bundle one harness, one sandbox and one hosted backend. The control plane decouples launching a task from where it runs: it schedules, tracks and supervises sessions, while harnesses, sandboxes and clients plug in through interfaces, with teams, policies and plugins in the core.
Stack and links: TypeScript · Postgres · open source · coding agents
The project's pageIt trains a perceptron, learns XOR with a hidden layer, and reads handwritten digits with 97.4% accuracy on MNIST, live in the terminal. Every line of the maths is written by hand and checked by tests, and all three versions live in the same repository.
- 97.4% accuracy on MNIST
- Gradients match finite differences to 10⁻⁷
- Zero third-party libraries
Stack and links: C++98 · Make · Neural networks · MNIST · GitHub
The project's page
Explorations
Research & design · Method · Feasibility studyQuestions I am working through, mostly on what infrastructure should look like once agents are its main users. Specs and architecture, not released products.
One trunk where every change lands signed by the agent that made it, conflicts resolve as they happen, and any agent’s work can be rolled back. A layer over plain Git, not a replacement.
Git strains when several agents share a codebase: branches diverge in minutes and interleaved work can't be undone cleanly. The design started as a new system, an operation log with a CRDT as state, and moved to a layer over Git: an operation log beside the commits, a CRDT-style merge driver and dependency-aware rollback.
Stack and links: Git · SQLite · version control · coding agents
What Temporal would look like if S3 were the database: durability on the server, thin clients in any language, primitives for agents that run for hours.
Event sourcing on object storage: each workflow's history is an append-only series of log segments in the bucket, written with conditional writes, so S3 is the coordination layer and self-hosting is one binary and one bucket. Durability moves to the server, clients become thin, and the primitives are shaped around agents that run for hours.
- ≈100 ms durability overhead per step
- No database cluster to run
Stack and links: S3 · R2 · GCS · MinIO · durable execution
An S3-native engine shaped around how agents query: many precise, iterative queries that mix full text, vectors and filters.
The opening is the interface: a file system with ls, glob, grep and read, plus semantic queries, at S3 scale, with an ephemeral, forkable index per agent session. I started with a market study rather than code, and set what would make it a yes: design partners, a benchmark on a real agent workload, and an engine builder on the team.
- 400M+ documents indexed at Topo
Stack and links: S3 · BM25 · vectors · MCP · search · market study
Fast, calibrated scoring: a judgment split into dozens of yes/no questions, answered as probabilities by a decision model in one call and aggregated in code. First use case: outbound emails.
A slow model writes the rubric once, as narrow yes/no questions with prewritten fixes. A fast decision model answers all of them in one call, as calibrated probabilities, and code aggregates: gates cap the score, and each failed rule points at its sentence and returns its fix.
- ~65 atomic rules
- 2,755 reference templates
- One model call per email
Stack and links: evals · calibration
How low can the cost per million tokens go on a mature 12 nm node, with LPDDR and an SRAM cache instead of HBM?
A fabless Transformer ASIC with no HBM and no CoWoS, which makes up for the missing bandwidth with heavy batching and low-precision formats.
- ~12 nm node
- No HBM, no CoWoS
Stack and links: LPDDR · SRAM · INT4/FP4 · vLLM · SGLang · ASIC · inference · feasibility study
What production agents taught me
A run is a long-lived workflow calling slow models and flaky APIs. It needs durable execution, retries, idempotent steps and replay.
Most quality gains came from what the model sees: CRM history, call transcripts, the right tools at the right step. Evals tell whether a change helped.
Fast checks let agents catch their own mistakes: strict CI for coding agents, human review wherever a mistake is expensive.
Talks & juries
Y Combinator W24
,Talk: LangGraph in production
,Judge, Mistral AI hackathon, San Francisco
,Invited to the Élysée to help prepare the AI Action Summit
,











