Ce que j’ai livré au travail, et ce que j’écris à côté

Cette page tient deux ensembles distincts. D’un côté les études de cas, tirées de la refonte du système d’information de Mecatechnic : des décisions prises en équipe, sous contrainte de production, racontées en entier. De l’autre les projets personnels, que j’écris et que je publie moi-même, sous licence libre, et où le parti pris technique n’engage que moi.

4études de cas professionnelles

5projets personnels

4dépôts publics

Quatre décisions prises en production, racontées en entier

Refonte du SI et bascule en big bang

Remplacer un monolithe Symfony et un ERP AS/400 par une architecture headless complète, en dix-huit mois, avec une équipe passée de dix à trois personnes.

  • périodeDix-huit mois de projet, bascule le 19 mai 2026
  • technologiesSylius, Symfony, Next.js, Pimcore, Cegid Flex, ApiZr
  • front & interfaces
  • back & API

Saturation mémoire après mise en production

Une montée continue de la mémoire jusqu’à l’out of memory, deux causes distinctes, et une production basculée sur une version canary pour résoudre un risque en en acceptant un autre.

  • périodeEnviron deux semaines de production dégradée ou surdimensionnée
  • technologiesNext.js, FrankenPHP, PHP, AWS
  • front & interfaces
  • back & API
  • infra & Linux

Des Server Actions vers un BFF

Une alerte technique émise en décembre et non retenue, puis le remplacement en urgence des Server Actions par un BFF exposé en routes API six mois plus tard.

  • périodeAlerte en décembre, remplacement six mois plus tard
  • technologiesNext.js, Server Actions, BFF
  • front & interfaces

Supprimer Strapi au profit de Sylius CMS

Un POC comparatif Strapi, WordPress et Payload conclut que le problème n’est pas l’outil mais le fait d’avoir un CMS séparé de la plateforme e-commerce.

  • périodeAvant la mise en production
  • technologiesStrapi, Sylius, Symfony, Next.js, WordPress, Payload
  • front & interfaces
  • back & API

Ce que j’écris en dehors du travail

ferrus

Créateur d’USB bootable multiplateforme : écrit n’importe quelle ISO, avec les ajustements façon Rufus pour les installations Windows (contournement TPM, Secure Boot, contrôle de RAM, compte Microsoft obligatoire).

  • systèmes & électronique

LibreWays

Navigation et trafic. Vitrine de la méthode : 12 issues typées, ADR acceptés en PR, gates d’approbation d’agents.

  • IA & agents

RiPlay

Lecteur de musique multiplateforme.

  • front & interfaces

amphi-recorder

Enregistreur Android pour cours en amphithéâtre, capture optimisée pour le champ lointain. Fork de Fossify Voice Recorder.

  • front & interfaces

lapigo

Générateur d’APIs CRUD Go idiomatiques à partir d’un schéma YAML : handlers, couche d’accès aux données, routage, validation, migrations et document OpenAPI. Le code produit est du Go lisible, que l’on possède et que l’on peut éditer. Démarré en août 2026.

  • technoGo
  • licenceMIT
  • dépôtdépôt privé pour l’instant, pas de lien tant qu’il n’est pas ouvert
  • étatPhase 1 en cours. Le parseur de schéma, la représentation intermédiaire et le validateur sont écrits et mergés ; le générateur lui-même ne l’est pas, il n’y a donc pas encore de binaire utilisable. Le dépôt porte une spécification de phase 1 acceptée, présentée comme le contrat auquel le code est tenu.

Partis pris

  • Générateur, pas runtime : le code produit tient sur net/http avec le routage de Go 1.22+, pgx pour Postgres et la bibliothèque standard. Ni framework, ni ORM. On peut retirer lapigo de sa chaîne d’outils, l’application compile toujours.
  • Pagination par curseur par construction : ?limit= et ?after=<cursor>, ni offset ni COUNT(*). Une page profonde coûte le prix de la première, et une lecture paginée ne peut ni sauter ni dupliquer une ligne pendant qu’un autre écrit.
  • Les requêtes N+1 sont éliminées par construction : un gabarit ne peut pas en écrire une par inattention.
  • Cache Redis optionnel prévu, à invalidation par plage : écrire une ligne invalide la seule page en cache dont l’intervalle de clés la contient, pas la collection entière. Le code généré fonctionne correctement sans Redis.
  • back & API