Expérience.
Six ans à industrialiser des moteurs e‑commerce, à outiller le métier et à moderniser des fronts. Sélection brute, par projet.
- 01.01
ERP Goji
// produit interne déployé en SaaS multi-clientsConception et développement d'un ERP métier complet, principal contributeur. Déployé en interne et en SaaS pour des clients externes. Micro-framework maison bâti sur les composants Symfony, infrastructure Docker.
- Modules métier : commercial (clients, fournisseurs, devis, commandes, factures), prospection, stocks, RH (contrats, congés, préparation de la paie)
- Architecture micro-framework sur composants Symfony (routing, http-foundation, event-dispatcher, messenger, security, serializer, validator, twig-bridge)
- API REST exposant le métier, flux temps réel via Mercure
- PostgreSQL 18, Redis (cache et sessions), Typesense (recherche full-text), RabbitMQ (bus de messages async via Symfony Messenger AMQP)
- Facturation dématérialisée Factur-X, génération PDF (wkhtmltopdf, pdftk), signature électronique
- Auth JWT, intégrations Brevo (mail transactionnel), OVH SDK, Google reCAPTCHA Enterprise, feature toggles
- Tests Codeception et PHPUnit : unitaires, fonctionnels et acceptance Selenium
- Migrations Phinx, refactor outillé par Rector, monitoring Sentry, logs Graylog (GELF)
- Stack Docker complète (Caddy, php-fpm, worker php-consume, Postgres, Redis, Typesense, RabbitMQ, MailCatcher, Adminer) et CI/CD GitLab
- Déploiement SaaS : instance dédiée par client avec configuration spécifique, supervision unifiée
- 01.02
Moteur e-commerce
Modernisation et industrialisation du moteur e-commerce historique : reprise du code, refactor profond, mise sous CI/CD, migration vers PHP 8.5.
- Support multi-langue catalogue, nouvelle architecture, refactor en profondeur
- Amélioration du paramétrage SEO
- Migration PHP 7.4 puis PHP 8.5
- Gestion des dépendances Composer / NPM, autoloading PSR-4
- Mise en place de git et de la stratégie de branches
- Pipeline CI/CD GitLab pour déploiements démo et production
- Tests unitaires et fonctionnels avec Codeception / PHPUnit
- 01.03
Refonte de l'écosystème front
// SSR multi-tenant sur serveur Node maisonModernisation des projets front (vitrines, catalogues) en Vue 3 + Vite, avec rendu côté serveur via un serveur Node Koa multi-tenant et un fork de vite-ssr maintenu en interne, publié sur npm.
- Projet de base réutilisable pour les futurs fronts, composants partagés identifiés et implémentés
- Mode SSR en production pour améliorer le référencement des sites Vue
- Serveur Node.js TypeScript (Koa) qui route les requêtes par host : un site-manifest.json mappe chaque domaine vers un bundle SSR, chargé dynamiquement à la volée
- Fork du plugin frandiox/vite-ssr maintenu et publié en interne sous @mcn-info/vite-ssr sur npm
- Arrêt gracieux via http-terminator, logs typés, configuration .env
- 01.04
Configurateur d'escale, Aéroport Rouen-Boos
Configurateur Vue 3 + Symfony 8 pour estimer le coût d'une escale, avec récapitulatif PDF et demande de devis asynchrone.
- Projet Vue 3 + Symfony 8, session éphémère, contact aéroport par mail
- Récapitulatif PDF de la configuration via wkhtmltopdf
- EventDispatcher + BusMessenger + RabbitMQ pour un envoi de mail asynchrone fluide
- 01.05
Infrastructure LLM locale
// inférence on-premise, RAG branché sur l'ERP GojiConception et mise en production d'une plateforme d'inférence LLM auto-hébergée pour MCN : orchestration Docker Compose d'instances vLLM sur GPU, interface Open WebUI, pipeline RAG raccordé aux ERP Goji et chaîne audio de retranscription et diarization.
- Orchestration Docker Compose multi-services sur GPU : instances vLLM dédiées Qwen 3.6 27B (chat généraliste), Mistral Small 3.2 24B (alternative et fallback), reranker BGE M3 et embeddings BGE M3
- Open WebUI en interface unifiée : chat multi-utilisateurs, sélection de modèle, gestion des espaces et des permissions, historique conversationnel, outillage configuré (web fetch générique, MCP Haloscan, web fetch spécialisé SEO)
- Pipeline RAG branché sur les instances ERP Goji : ingestion et chunking des documents métier, vectorisation via BGE M3, reranking BGE M3 pour la pertinence des passages, restitution contextualisée dans l'outil
- Chaîne audio : retranscription via Speaches (backend Whisper) et diarization via Pyannote pour identifier et séparer les locuteurs
- Gestion des ressources GPU partagées entre instances, mise au point des paramètres d'inférence par modèle
- Monitoring du serveur via Prometheus et tableaux de bord Grafana : métriques GPU (charge, VRAM, température), latence et débit de tokens par modèle, santé des services, alertes
- Données qui ne quittent pas l'infrastructure : maîtrise complète du cycle d'inférence, pas de dépendance aux fournisseurs LLM tiers pour les usages internes et clients
Projets perso
- 02.01
Site du groupe FMR
// site et back-office pour le groupe de musique de mon pèreConception et développement complet du site du groupe FMR en production sur fmr-music.fr : API REST Symfony 8, front public Vue 3 SSR et back-office SPA Vue 3, le tout orchestré en Docker Compose derrière un Nginx.
- API REST Symfony 8 / PHP 8.5, Doctrine ORM, PostgreSQL 17 : entités Article (blog), Concert (avec photos), ContactMessage et User
- Front public Vue 3 SSR (Express + Vite) : accueil, blog, discographie, musiciens, concerts géolocalisés via Leaflet, formulaire de contact
- Back-office SPA Vue 3 + Tailwind CSS v4 + Lucide : authentification JWT, CRUD articles et concerts, upload de photos, modération des messages
- Auth JWT via LexikJWTAuthenticationBundle et firewall json_login Symfony, rate limiting sur le contact et le login
- Pipeline image (GD) : génération automatique de variantes WebP (vignette, medium, large) avec extraction des dimensions
- SEO : slugs uniques générés (titre + date), sitemap dynamique avec cache, ping IndexNow à la publication, JSON-LD Article et Event (schema.org)
- Mailer asynchrone (DeferredMailer flushé sur kernel.terminate) pour les notifications de contact sans bloquer la réponse HTTP
- Sanitisation HTML des articles via le composant HtmlSanitizer de Symfony
- Infrastructure Docker (Nginx, PHP-FPM, Postgres 17, Node 24), déploiement par script SSH segmenté par couche (front, admin, api)
- Audit de sécurité automatisé via GitHub Actions : composer audit et npm audit hebdomadaires
- 02.02
Car-Service
// gestion de flotte et veille marché carburantsApplication full-stack pour piloter une flotte de véhicules (ravitaillements, entretiens, lavages) et corréler les prix carburant à la conjoncture pétrolière. Backend Symfony 7.4 en DDD strict, front Vue 3 + TypeScript + Tailwind v4, et un moteur de prédiction maison.
- Architecture Domain-Driven Design : 9 bounded contexts (Auth, Vehicle, Activities, FuelPrice, Market, Procurement, Dashboard, System, Shared) avec ports et adapters
- Backend Symfony 7.4 / PHP 8.5 (strict types, property hooks, asymmetric visibility, opérateur pipe), Doctrine ORM 3, PHPStan niveau 8, 581 tests PHPUnit
- Frontend Vue 3.5 + TypeScript 5.9 + Vite 6, Pinia 3, Vue Router 4 avec auth guard, TanStack Vue Table, ApexCharts, Vee-Validate + Yup, design system maison sur Radix Vue, 508 tests Vitest
- Auth multi-facteur : JWT (LexikJWT) et WebAuthn (clés FIDO2 stockées côté serveur, challenges générés à la volée)
- Veille carburants : ingestion biquotidienne de l'API gouvernementale française (XML), scraping de mon-essence.fr pour enrichir les stations avec prix communautaires et géolocalisation, dédoublonnage et classification automatique des enseignes
- Moteur de prédiction maison : régressions pondérées exponentiellement et piecewise, détection de régime de marché, calibration et backtest, blending de signaux (saisonnalité, jours fériés, barrières de prix, OPEP, politiques publiques)
- Veille marché pétrolier : Brent et WTI via EIA et Yahoo Finance, gaz naturel, or et argent via Alpha Vantage, taux EUR/USD via la BCE et frankfurter.dev, agrégation news (NewsAPI, Newsdata, Google News, GDELT) avec scoring d'impact par LLM (Qwen 2.5 local et Claude Haiku)
- Scheduler Symfony Messenger (consumer dédié) qui orchestre une vingtaine de jobs cron récurrents : synchronisation prix, classification, prédictions, news, fondamentaux EIA, commodities, FX
- Observabilité : logs d'appels API par fournisseur, tableau de bord d'usage et de coût, monitoring santé des services, Sentry pour le suivi d'erreurs
- Infrastructure Docker Compose (PostgreSQL 18, Redis, nginx, php-fpm, node, scheduler), CI GitLab, Makefile complet pour le workflow dev (sync bind-mount OverlayFS, cache-clear, tests, qualité)