Automatiser un process manuel qui freine la croissance
Synchro entre outils, gestion des commandes, exports récurrents — chaque heure passée sur une tâche répétitive est une heure perdue. Un connecteur bien conçu s'amortit en quelques mois.
Portfolio
17 ans d'expérience fullstack — PHP/Symfony, React, migrations legacy, outils sur-mesure. Chaque projet ci-dessous part d'un problème concret chez un dirigeant ou une équipe, et se termine par un résultat mesurable.
Ce que je construis
Ces situations reviennent chez les PME. Ce ne sont pas des fatalités.
Synchro entre outils, gestion des commandes, exports récurrents — chaque heure passée sur une tâche répétitive est une heure perdue. Un connecteur bien conçu s'amortit en quelques mois.
Un outil sur-mesure s'adapte à votre process unique, là où le générique vous force à vous adapter à lui. CRM, ERP, tableau de bord — conçus pour vous, pas pour tout le monde.
Site vitrine performant, plateforme communautaire, espace adhérent — les clients locaux s'attendent à trouver votre activité en ligne, facilement, sans friction.
PHP 5.6 → 8.3, Drupal → statique, Symfony 2 → 7 : des migrations réussies sans interruption de service ni refonte totale. La continuité de votre activité avant tout.
Le problème : L'application en flat PHP 5.6 était devenue impossible à maintenir. Les versions de PHP obsolètes n'étaient plus supportées, et les accès directs à la base de données exposaient la plateforme à des failles d'injection SQL.
Ce que j'ai fait : En deux temps. D'abord la sécurisation : mise à jour vers PHP 8.3 et remplacement des requêtes directes par du PDO avec requêtes préparées, éliminant les risques d'injection SQL. Ensuite la refonte progressive via Strangler Fig Pattern — Symfony + React moderne. Les pages fonctionnelles restent intactes ; chaque évolution fonctionnelle est réécrite dans la nouvelle stack. La continuité de service est garantie à chaque étape.
Le problème : Un e-commerçant gérait déjà son site de vente et sa logistique via un SaaS spécialisé. En ouvrant Sellermania comme canal de vente supplémentaire, chaque commande entrante nécessitait une saisie manuelle dans le SaaS logistique — répétitif, source d'erreurs, et incompatible avec la montée en volume.
Ce que j'ai fait : Connecteur API entre Sellermania et le SaaS logistique : chaque commande passée sur Sellermania est automatiquement transmise sans intervention manuelle. Déduplication intégrée pour garantir l'idempotence des flux cron.
Le problème : L'ERP sur-mesure d'un client (gestion de contacts, contrats, propriétaires) accumulait une dette technique critique : Create React App obsolète, zéro TypeScript, zéro tests. Une réécriture complète aurait bloqué les évolutions métier pendant des mois.
Ce que j'ai fait : Migration progressive via Strangler Fig Pattern — nouvelle
stack Vite/TypeScript/RTK Query cohabitant dans le même bundle que le code legacy, sans le toucher.
Trois défis techniques résolus par des plugins Vite custom : store Redux unifié entre les deux stacks,
JSX dans les fichiers .js legacy, feature flags par page pour bascule instantanée
en production. Infrastructure de tests Vitest et documentation d'architecture livrées
pour l'équipe interne.
Le problème : Un jardin historique avec un site Drupal lent et coûteux à maintenir — aucune équipe technique interne, mises à jour bloquées, performances catastrophiques.
Ce que j'ai fait : Migration vers un site statique Eleventy bilingue, SEO optimisé, déployé automatiquement via GitHub Actions. Module de gestion de contenu sur-mesure ajouté : le planning des animations est saisi dynamiquement et généré en pages statiques à chaque déploiement.
Autres réalisations
Des projets exploratoires ou sectoriels qui illustrent d'autres facettes de mon travail.
Freelance · Outil métier · POC
Remplacer Excel et les outils génériques (facturation, suivi clients, temps) par un monorepo : site vitrine Next.js + CRM Symfony custom avec patterns DDD/CQRS. Gestion des clients, devis, temps et facturation dans un seul outil adapté au process réel.
✓ Architecture de référence DDD/CQRS · En développement
Sport · Prototype React
Les cyclistes utilisaient Google Maps pour trouver des côtes d'entraînement — un outil générique inadapté. App React avec API Google Elevation pour rechercher des climbs par gradient précis sur une carte interactive.
✓ Outil spécialisé vs générique, MVP fonctionnel
Votre projet
Un legacy qui coûte cher, un process manuel à automatiser, un outil générique qui ne vous convient plus — décrivez-moi votre problème en quelques lignes. Je réponds sous 24h.