dr1ms

Disponible en alternance — IA & deeptech

Ce qui m'intéresse, c'est ce que font les systèmes quand personne ne les regarde

Je mets un modèle dans une boucle, je gèle le protocole avant de lancer, et je mesure l'écart entre ce qu'il annonce et ce qu'il fait.

48 projets, de la recherche sur les modèles de langage à des outils qui tournent en production. Développeur à Annecy, en formation au Campus Numérique.

Quatre projets en détail

Mnemos

Une mémoire persistante pour agents IA, qui tourne entièrement sur la machine de l'utilisateur.

Le problème

Un assistant IA repart de zéro à chaque conversation. Lui donner une mémoire pose deux problèmes qu'on résout rarement ensemble : retenir ce qui compte sans accumuler du bruit, et mettre à jour un fait qui change sans effacer ce qu'il remplace.

Ce qui a été construit

Quatre mémoires spécialisées qui tournent en parallèle — travail, épisodique, sémantique, procédural — et un routeur qui choisit laquelle interroger selon la question posée. Un tagger de saillance filtre à l'écriture, une consolidation asynchrone range en arrière-plan, et chaque fait est versionné plutôt qu'écrasé.

Le résultat mesuré

Six mois après un changement de travail, la question « où est-ce que je bossais avant ? » trouve encore sa réponse. Un fait nouveau ne remplace pas l'ancien : il le date et le range, et l'historique complet reste consultable.

PS2 Web

Un émulateur PlayStation 2 qui tourne dans un onglet — et les trois défauts trouvés en le faisant démarrer.

Le problème

Un émulateur PS2 compilé pour le navigateur existait déjà, mais un jeu précis refusait obstinément de se lancer. Le travail n'a pas été de porter l'émulateur : il a été de trouver pourquoi, dans un système de plusieurs centaines de milliers de lignes que je n'avais pas écrit.

Ce qui a été construit

Trois correctifs, dont deux touchent n'importe quel titre placé dans la même situation, et un chargement de l'image disque par plages HTTP au lieu d'un téléchargement complet.

Le résultat mesuré

Un verrou entre deux lectures de disque simultanées empêchait le démarrage : une commande renvoyait zéro pendant qu'une autre attendait, et les deux se bloquaient mutuellement. Le défaut atteint tout jeu faisant des accès disque concurrents.

Ultimate League

Un jeu web de collection et de combat dont chaque statistique est vérifiable par n'importe quel joueur.

Le problème

Dans un jeu de collection, les statistiques stockées en base sont modifiables — par un administrateur, par une faille, ou par erreur. Les joueurs n'ont aucun moyen de vérifier que leur carte vaut bien ce qu'elle annonce.

Ce qui a été construit

Les statistiques ne sont stockées nulle part : elles sont recalculées à la demande depuis l'identifiant du personnage, toujours de la même façon. Autour, un moteur de combat isolé et testable seul, un classement Elo, et des invocations tirées avec un aléa cryptographique assorti d'un système de pitié.

Le résultat mesuré

Les statistiques des 826 personnages ne sont stockées nulle part : elles sont recalculées à partir de l'identifiant du personnage, toujours de la même façon. Deux joueurs qui obtiennent le même personnage ont exactement les mêmes chiffres, et personne ne peut les retoucher en base.

Pulse World

620 000 événements mondiaux collectés et analysés par un modèle tournant à la maison, sans un centime d'inférence en ligne.

Le problème

Chercher des corrélations entre l'actualité géopolitique et les mouvements de marché demande d'analyser un volume d'articles que le tarif des API d'inférence rend vite prohibitif pour un particulier.

Ce qui a été construit

Une collecte continue sur une dizaine de flux d'actualité, une analyse déléguée à un modèle exécuté en local, et un moteur de corrélation entre événements et marchés. Découpage en 120 personnalités, 9 régions et 46 catégories.

Le résultat mesuré

Environ 620 000 événements collectés et 15 000 corrélations événement-marché établies, entièrement analysés par un modèle tournant à la maison — sans un centime d'inférence en ligne.

Les 48 projets →

Compétences

Langages

Python sur la grande majorité des projets — recherche, scrapers, simulations. TypeScript et JavaScript pour tout ce qui est web. C++ quand il faut compiler vers WebAssembly, C# pour .NET, Java pour le modding serveur, Lua pour l'embarqué dans un jeu.

IA et modèles de langage

Inférence entièrement locale via Ollama : c'est la contrainte de départ de la plupart de mes travaux, pas une optimisation. Mémoire persistante et recherche par similarité, protocoles d'évaluation gelés avant collecte, mesure de l'écart entre ce qu'un modèle déclare et ce qu'il fait. FastAPI pour exposer un modèle derrière une API.

Web et données

React et Vite côté interface, FastAPI et Node côté serveur. Extraction et enrichissement de données à l'échelle, avec six outils en service sur Apify. SQLite et PostgreSQL pour le stockage, sqlite-vec pour la recherche vectorielle.

Systèmes et infrastructure

WebAssembly et Emscripten pour porter du C++ vers le navigateur. Hébergement auto-géré : serveur OVH, Coolify, Traefik, nginx, certificats renouvelés automatiquement, un sous-domaine et un déploiement par push git pour chaque projet.

Parcours et disponibilité

Formation
Campus Numérique, Annecy
Recherche
Une alternance en IA et deeptech
Zone
Écosystème Grenoble-Annecy

Contact

Le plus direct, c'est le mail. Je réponds à tout message qui parle d'un projet précis.

E-mail