https://labault.dev
Clermont-Ferrand ☀️

Développeur Backend, en prod.

Sept ans à faire tenir ce qui ne se voit pas.

Backend depuis sept ans. Quelques régressions, beaucoup de relectures, et jamais de déploiement le vendredi.

Concrètement : sept ans sur le même produit métier, une migration de PHP 7.0 à 8.4 et de Symfony 2.8 à 7.4 menée sans casser la prod, et une chaîne que je tiens de la machine de dev au serveur. Le legacy ne me fait pas peur, je l'ai habité.

depuis 2017 sept ans en prod
stack PHP · Symfony et l'infra autour
basé à Clermont-Ferrand remote possible
disponibilité immédiate en recherche d'un CDI
Thibault Lafaurie, bras croisés Thibault Lafaurie, surpris

Je crois aux API qui ne réveillent personne. Aux tests qu'on lit comme une histoire. Aux logs qu'on consulte avec plaisir.

Sept ans à faire vivre et grandir QuizzWeb, le SaaS de Quizzbox Solutions pour les centres de formation et d'examens (plusieurs dizaines de centres). J'ai participé à la migration du socle, de Symfony 2.8 à 7.4 et de PHP 7.0 à 8.4, de 2020 à janvier 2026, en gardant le legacy en production pendant la modernisation. Du recueil du besoin au support, en passant par l'optimisation SQL, le passage sous Docker et le déploiement.

Avant ça : DUT Informatique puis Licence Pro Développement Web à l'IUT Clermont Auvergne, dont une année d'alternance déjà passée chez Quizzbox.

Expérience

2020 → 26

Quizzbox Solutions · développeur backend PHP / Symfony

Clermont-Ferrand

QuizzWeb, SaaS d'évaluation et d'examens : une centaine d'environnements clients, un monolithe Symfony de 112 000 lignes (68 entités, 115 migrations).

  • Migration de PHP 7.0 / Symfony 2.8 à 8.4 / 7.4 sans geler les livraisons : 251 versions livrées, outillée Rector + PHPStan + CI.
  • API REST versionnée créée de zéro, aujourd'hui consommée par SignEval (front React).
  • Déploiements hebdomadaires dockerisés et des pages optimisées jusqu'à 10× plus rapides.
2026

Là où l'on va · développeur indépendant

remote · distanciel
2019 - 20

IUT Clermont Auvergne · Licence Pro Dev Web

alternance Quizzbox
2017 - 19

IUT Clermont Auvergne · DUT Informatique

Clermont-Ferrand

Techniques & maîtrise

PHP 7.0 → 8.4

Présent depuis le début, souvent moqué, jamais remplacé. Migration de 7.0 à 8.4 sur le codebase Quizzbox. Un langage qui a grandi, et moi avec.

Symfony 2.8 → 7.4

Framework de référence. Maintenance du legacy 2.8, migrations successives jusqu'à 7.4 : Doctrine, Messenger, Security, Events... pas un composant qu'on n'ait pas retourné.

Messenger

Le bus qui découple. Commandes asynchrones, retries, transport Redis ou Doctrine : les tâches lourdes sortent du cycle requête/réponse, l'utilisateur n'attend pas que le mail parte.

PostgreSQL

Ma base de référence, celle qui tourne en prod. Types natifs, JSONB, contraintes qui tiennent, et du SQL brut quand l'ORM fait des siennes.

MySQL / MariaDB

Aussi pratiqué, et longtemps. Schémas relationnels, migrations Doctrine, index pour les requêtes qui s'emballent.

Redis

Cache, sessions, files Messenger et compteurs temps réel. Ce qu'on dégaine quand déranger Postgres pour ça n'aurait aucun sens.

Docker

Stacks multi-services reproductibles : php-fpm, MariaDB, Redis, Mailpit... Fini le classique ça tourne chez moi.

Git

Versionning quotidien depuis le premier commit. GitHub Actions pour CI/CD, déploiement auto à chaque merge. L'historique dit tout (sauf les idées du vendredi soir).

Rector

Refacto et montées de version en automatique : upgrades PHP et Symfony, code mort, déclarations de types. Les migrations pénibles déléguées à la machine. Je relis le diff, évidemment.

PHPUnit

Les tests qu'on lit comme une histoire, pour de vrai. Unitaires et fonctionnels, fixtures sous contrôle, et la CI au vert avant que le diff parte. Un filet, pas une case à cocher.

HTML / CSS

Les fondamentaux qu'on sous-estime, jusqu'au premier bug CSS en prod. Sémantique, responsive, animations... pour ne plus jamais inventer des noms de classes.

JavaScript

Vanilla d'abord, Hotwire (Turbo, Stimulus) quand ça le mérite. Le front juste ce qu'il faut, pas un SPA pour afficher un formulaire.

FrankenPHP

Serveur PHP nouvelle génération : HTTP/2 natif, worker mode, intégration Caddy. Déployé en prod sur Red Flag Bingo. C'est PHP, mais il a survécu à l'expérience.

Nginx / Caddy

Serveur web et reverse proxy. Nginx pour le contrôle fin, bloc location {} compris sans relire la doc ; Caddy pour le TLS automatique et un Caddyfile qui tient en dix lignes. C'est lui qui sert mon push-to-deploy.

Mercure

Le temps réel sans gérer un WebSocket à la main : le serveur pousse, le navigateur écoute en SSE. En prod sur Red Flag Bingo et Le Canard du Vendredi. Du push natif, pas du polling déguisé.

IA assistée

Claude Code et Codex au quotidien : review de diff, génération de tests, refacto guidée, exploration de codebase legacy. L'IA pour accélérer le répétitif, pas pour réfléchir à ma place. Je relis tout, elle ne pousse rien en prod sans moi.

Toujours en soif d'apprendre : cette liste n'aura jamais de version finale.

Quelques projets...

Rangés par intention plutôt que par date : du livrable client à l'expérience du dimanche soir.

Le journal

Des notes de prod prises sur le terrain : migrations, legacy, infra, et les pièges qu'on ne voit qu'une fois dedans. Pas de tutoriel, du vécu.

Voir les 10 articles →
coin.
07 - discutons

On en parle ?

contact@labault.dev +33 6 76 13 67 97 Télécharger mon CV (PDF)

CDI en priorité. Une mission longue, j'y réfléchis.