Pourquoi ce blog existe
Dix ans à construire des systèmes
Depuis plus de dix ans, je conçois des architectures logicielles. Clean Architecture, Hexagonal, CQRS — j’ai passé ma carrière à structurer du code pour qu’il survive au temps. TDD, DDD, Software Craftsmanship : ce ne sont pas des buzzwords pour moi, c’est ma pratique quotidienne.
J’ai travaillé principalement en TypeScript et Java, sur des systèmes distribués, des APIs à fort trafic, des migrations complexes. Le genre de projets où une mauvaise décision d’architecture se paie pendant des années.
Le constat : l’IA change la donne
Depuis deux ans, je regarde l’IA transformer notre métier. Pas la hype marketing — la réalité technique. Les LLMs ne sont pas juste des chatbots. Ce sont des composants logiciels qu’il faut orchestrer, tester, monitorer, et intégrer dans des systèmes existants.
Et c’est là que les architectes logiciels ont un avantage massif. Construire un agent IA fiable, c’est fondamentalement un problème d’architecture : gestion d’état, orchestration, résilience, observabilité. Les mêmes principes que j’applique depuis dix ans.
Ce que ce blog va couvrir
Je vais documenter ma transition vers l’AI Engineering, vue à travers le prisme du Software Craftsmanship :
- RAG (Retrieval-Augmented Generation) : comment construire des pipelines RAG qui passent à l’échelle
- Agents : orchestration, mémoire, tool use, et les patterns d’architecture qui émergent
- Fine-tuning : quand et comment adapter un modèle à son domaine
- Infrastructure : déploiement, monitoring, coûts — la réalité de la prod
Le tout avec du code, des retours d’expérience, et zéro bullshit.
Un exemple pour commencer
Voici un appel simple à l’API Claude pour illustrer le point de départ :
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
async function ask(prompt: string): Promise<string> {
const message = await client.messages.create({
model: "claude-sonnet-4-20250514",
max_tokens: 1024,
messages: [{ role: "user", content: prompt }],
});
const block = message.content[0];
if (block.type === "text") {
return block.text;
}
throw new Error("Unexpected response type");
}
const response = await ask("Explique le pattern Hexagonal Architecture en 3 phrases.");
console.log(response);
Simple. Mais entre cet appel et un système agent en production, il y a tout un monde. C’est ce monde que je vais explorer ici.
La suite
Le prochain article portera sur la construction d’un pipeline RAG avec une architecture propre. Pas un tutorial copié-collé — une vraie réflexion sur comment appliquer les principes SOLID à un système de retrieval.
Bienvenue.