Réalisations

Ce que je construis, en mission et entre deux : une console Kubernetes, des exporters Prometheus, une stack d'observabilité, des agents et des jeux. Le code est souvent privé ; je fais volontiers une démonstration.

Des outils pour exploiter la production sereinement.

Consoles, exporters et simulateurs, souvent nés de problèmes rencontrés en mission, construits avec les mêmes exigences que chez un client : des tests, des revues, et des preuves avant de publier.

  1. Fenêtre de plan de Légation : différences YAML par ressource, test à blanc réussi, bouton d'application

    bêta

    Légation

    Une console pour piloter Envoy Gateway sans surprise.

    Chaque modification est planifiée, comparée et testée à blanc avant d'être appliquée, sous l'identité de l'administrateur connecté : les droits Kubernetes et le journal d'audit voient une personne, pas un outil. Aucune base de données, tout l'état vit dans Kubernetes, et la console tourne en haute disponibilité sur mon cluster de Raspberry Pi.

    tests automatisés
    ~4 200
    base de données
    0
    réplicas
    2
    • Go
    • React
    • Kubernetes
    • Envoy Gateway
    • OIDC
    Code privé, démonstration sur demande
  2. /metrics, fournisseur de démonstration
    $ curl -s 127.0.0.1:9099/metrics | grep ^psp_
    psp_status_source_up{psp="demo_payments"} 1
    psp_declared_operational{component="payment_api",psp="demo_payments"} 0
    psp_active_incidents{psp="demo_payments",severity="major"} 1
    psp_status_poll_total{outcome="success",psp="demo_payments"} 8

    en service

    PSSST

    Mon prestataire de paiement fonctionne-t-il vraiment ?

    Un exporter Prometheus qui compare ce qu'un prestataire annonce sur sa page de statut avec ce que ses endpoints font réellement. Les deux signaux ne sont jamais fusionnés dans le code : c'est dans les règles Prometheus qu'apparaît ce qui compte, comme une panne que personne n'a annoncée. Une page de statut lente ne ralentit jamais une collecte.

    tests Go
    79
    règles testées par promtool
    14
    par collecte
    3,7 ms
    • Go
    • Prometheus
    • Blackbox Exporter
    • Grafana
  3. Résultats de Kube Binpacker : coût mensuel, répartition des coûts et remplissage de chaque nœud

    en service

    Kube Binpacker

    Voir où partent les euros avant de dimensionner un cluster.

    Le simulateur place vos pods sur les instances de sept clouds, compare quatre algorithmes de placement, dont ceux du scheduler Kubernetes, et chiffre aussi le stockage, le trafic sortant et les load balancers. Il respecte priorités, topology spread et affinités, signale les nœuds vides qui coûtent pour rien et propose un filtre cloud souverain européen.

    clouds comparés
    7
    algorithmes de placement
    4
    tests
    161
    • Next.js
    • TypeScript
    • Kubernetes
    • FinOps
    Code privé, démonstration sur demande
  4. catalog-info.yaml
    apiVersion: backstage.io/v1alpha1
    kind: Component
    metadata:
      name: orders-api
      annotations:
        argocd/app-name: orders-api
        backstage.io/techdocs-ref: dir:.
    spec:
      type: service
      owner: team-platform
      lifecycle: production

    livré en mission

    Backstage

    Un portail développeur pour une startup d'une vingtaine de développeurs.

    Catalogue de services alimenté par l'auto-découverte GitLab, documentation construite en CI à côté du code, état Kubernetes et ArgoCD dans la fiche de chaque service. Une montée de version hebdomadaire automatique suit le rythme de Backstage. Après trois mois, chaque service avait un propriétaire et l'onboarding était passé de plusieurs jours à quelques heures.

    des services avec un propriétaire
    100 %
    développeurs
    ~20
    • Backstage
    • Kubernetes
    • ArgoCD
    • GitLab CI
    • GCP
  5. Panneau Grafana « Change Matrix » alimenté par mon exporter Rust : variation de chaque titre par heure, jour, semaine, mois et année

    en service

    Ma stack d'observabilité

    Le laboratoire où j'éprouve ce que je recommande en mission.

    Chez moi tourne une stack complète : Prometheus, VictoriaMetrics pour cinq ans d'historique, Grafana, Loki, Tempo et Alertmanager. Elle suit mes deux NAS, ma station météo, mes runners GitHub Actions sur un cluster de Raspberry Pi et la télémétrie de mes agents de code. J'y ai écrit mes propres exporters : coût des API de LLM et données de santé en Go, et un exporter Rust d'environ 150 métriques pour un jeu en ligne, visible ici.

    jobs de collecte
    18
    tableaux de bord
    15
    règles d'alerte
    22
    d'historique
    5 ans
    • Prometheus
    • VictoriaMetrics
    • Grafana
    • Loki
    • Go
    • Rust
    Code privé, démonstration sur demande

Des agents au travail, avec des garde-fous.

J'utilise l'IA tous les jours. Ce qui m'intéresse, c'est la frontière : ce qu'un agent a le droit de faire, et ce qui reste confié à un script vérifiable.

  1. Section Veille de Pensées : 132 notes, rythme quotidien, liste datée avec étiquettes

    en ligne

    Pensées

    Une veille quotidienne écrite par des agents, publiée par un script.

    Chaque matin à 5 h, une chaîne d'agents écrit ma veille tech et monde en français, plus des séries sur la fiabilité, les métiers et la poésie. Chaque agent n'écrit que dans les chemins qui lui sont déclarés et ne publie jamais : un script valide la production du jour, la pousse en un seul commit atomique et déclenche le déploiement. Un agent en échec n'empêche pas les autres de publier.

    articles depuis mars 2026
    575
    chaque matin
    05:00
    fichiers de test
    214
    • Claude Code
    • React
    • RSS
    • systemd
  2. Vue projets de Repo Radar sur des dépôts de démonstration : cycle de vie, signaux et compétences

    en service

    Repo Radar

    Garder le fil quand plusieurs sessions avancent en parallèle.

    Un agent sur mon Mac analyse mes dépôts, leur état git et les fichiers laissés par les agents de code, puis pousse le tout vers un serveur sur mon NAS. Le tableau de bord montre où en est chaque projet, et les agents y déposent et reprennent leurs tâches par MCP. Une vue mémoire transverse retrouve une décision prise dans n'importe quel dépôt.

    commits
    438
    outils MCP
    10
    tests
    ~890
    • Bun
    • TypeScript
    • SQLite
    • MCP
    • React
    Code privé, démonstration sur demande
  3. pipeline documentaire
    import    facture.pdf
    ocr       tesseract, français
    classe    facture
    extrait   montant, émetteur, date
    doublon   non
    index     embeddings locaux

    en service

    EBM MyChat

    Le back-office de ma propre société.

    L'outil lit mes factures, devis et contrats, qu'ils arrivent en PDF, Word, Excel ou photo, les classe, en extrait montants et émetteurs, repère les doublons et alimente un tableau de bord financier. Un assistant répond à mes questions en s'appuyant sur ces documents, avec des embeddings calculés en local. Il tourne sur mon NAS, avec déploiement et sauvegardes scriptés.

    tests
    316
    formats importés
    4
    • Python
    • FastAPI
    • HTMX
    • ChromaDB
    • Tesseract
    Code privé, démonstration sur demande

Des jeux, pour livrer vite sans casser.

Mon terrain d'essai : architecture modulaire, économie simulée, publication continue, tout ce que je recommande, éprouvé sans risque pour un client.

  1. Onglet Pêche de Never Idle : barre d'expérience, liste des mini-jeux et journal de prises

    en ligne

    Never Idle

    Un gros bouton, puis une vingtaine de mini-jeux qui s'alimentent entre eux.

    Pêche, jardin, arène, forge, cartes : chaque onglet est un module isolé qui ignore les autres, branché sur un moteur commun. L'économie est chiffrée et simulée, et un monde partagé tourne en direct sur Cloudflare. Chaque version passe par une pull request, des notes de version et trois canaux de publication.

    commits en 13 jours
    528
    fichiers de test
    289
    canaux de publication
    3
    • SolidJS
    • TypeScript
    • Cloudflare Workers
    • D1
  2. Carte du monde de Filou : cinq royaumes reliés, le renard sur le royaume actif

    bêta

    Filou & les 5 Royaumes

    Un jeu de révision pour les 7 à 13 ans.

    Cinq royaumes, du français à la géographie, un renard explorateur et un cahier de vignettes à compléter. Derrière l'écran : une progression par notion, des rappels espacés, un backend Cloudflare testé dans son vrai runtime, et le RGPD pensé dès le départ, consentement parental et suppression vérifiée compris. J'ai aussi monté une chaîne de génération d'images pensée pour garder le même personnage sur des milliers de vignettes.

    royaumes
    5
    fichiers de test
    246
    • React
    • TypeScript
    • Cloudflare Workers
    • D1
    • ComfyUI
  3. Combat dans la forêt de Neverworld : un loup et une gelée face au héros, menu Attaque, Magie, Objet

    prototype

    Neverworld

    Un RPG des années 90 dont l'enfant imagine la suite.

    Le prologue est écrit à la main, puis l'enfant décrit ce qu'il veut découvrir et une IA écrit le chapitre suivant. L'IA ne produit que des mots, bornés et filtrés : le moteur reste maître des cartes, des statistiques et de l'équilibrage. Graphismes dessinés par le code, musique composée avec Tone.js, rien à installer pour jouer.

    pixels dessinés par le code
    320×240
    lignes de JavaScript
    ~4 100
    étape de build
    0
    • JavaScript
    • Canvas
    • Tone.js
    • Mistral AI
    Code privé, démonstration sur demande
  4. Colonie de Critters : la surface et les galeries souterraines

    prototype

    Critters

    Une seconde vie pour un jeu de 2014.

    Crittermound est un jeu de navigateur créé en 2014 par brave_powerful_ruler, resté orphelin après sa disparition. Je l'ai d'abord remis en état, puis réécrit de zéro en hommage : moteur déterministe dans un Web Worker à 20 Hz, interface Svelte et PixiJS, sons synthétisés. Une version 3D sous Godot est en préparation.

    moteur de simulation
    20 Hz
    fichiers de test
    50
    • TypeScript
    • Svelte
    • PixiJS
    • Godot
    Code privé, démonstration sur demande

Aussi à l'atelier.

Des projets plus jeunes, chacun né d'une question précise.

  • Otto-Claude

    Un opérateur Kubernetes qui lance des sessions Claude Code comme des Jobs, suivies dans un tableau de bord temps réel.

    prototypeGo, Kubernetes, Next.js

  • Forge Memory

    Une mémoire partagée pour mes agents : PostgreSQL et pgvector, recherche hybride, serveur MCP.

    prototypePython, pgvector, MCP

  • M8 MCP

    Une passerelle qui laisse un agent voir l'écran d'un synthétiseur Dirtywave M8 et en jouer, vérifiée sur le vrai matériel.

    prototypePython, FastAPI, MCP

  • Pulse

    Suivre son sommeil ou ses cafés en une phrase, exposé à Prometheus. API Go, application mobile hors ligne.

    bêtaGo, Flutter, Prometheus

  • Tabulay

    L'atelier CSV pour Mac, sur le Mac App Store.

    en ligneSwift, DuckDB