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.
Pour bien faire ce métier (dans de bonnes conditions et avec de vrais résultats), trois qualités me semblent indispensables : être organisé, volontaire, et impliqué jusqu'à la dernière ligne. Je crois cocher les trois.
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 à construire et faire évoluer le produit de Quizzbox Solutions, un outil de gestion pour les centres de formation et les centres d'examens. Du recueil du besoin à la maintenance du legacy, en passant par l'optimisation continue et l'écoute des utilisateurs.
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.
PHP 7.0 → 8.3
Présent depuis le début, souvent moqué, jamais remplacé. Migration de 7.0 à 8.3 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é.
MySQL / MariaDB
La base. Littéralement. Schémas relationnels, migrations Doctrine, index pour les requêtes qui s'emballent et du SQL brut quand l'ORM fait ses caprices.
PostgreSQL
Quand MySQL ne suffit plus. Types natifs, JSON... pour les modèles de données qui ont des ambitions.
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).
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 JS d'abord. Pas de framework front, pas encore.
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
Serveur web et reverse proxy. Virtual hosts, headers, HTTPS et la vraie satisfaction de comprendre les blocs location {} sans relire la doc.
Traefik
Routage automatique via labels Docker, TLS Let's Encrypt en deux lignes, middlewares et redirections. Plus jamais de conf Nginx à réécrire en urgence à 23h.
IA assistée copilote
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.
En apprentissage
React, Node.js, l'exploration de l'autre côté du miroir. Backend forever, mais ce serait dommage de rester là.
Rangés par intention plutôt que par date : du livrable client à l'expérience du dimanche soir.
Site vitrine sous WordPress pour un accompagnateur de randonnées : ses parcours, ses services, et de quoi le faire évoluer lui-même. Léger, nature, avec quelques plantes d'Auvergne qui cachent une histoire. Mes seules dépendances ici ? Une bonne paire de chaussures de marche.
voir le site ↗Accompagnement scolaire du CP à la 3e, branché à l'IA : Milo, le tuteur, guide l'élève dans ses chapitres et ses exercices sans jamais lui souffler les réponses. Récitation orale notée, sessions quotidiennes ciblées, et un suivi détaillé côté parents. Milo, lui, ne copie jamais sa réponse depuis Stack Overflow.
voir le site ↗
Vous y êtes : ma vitrine de dev web, rigueur, méthode, un brin d'humour et le goût du travail bien fait, en une page sans JavaScript ni build. Les projets ci-dessous disent ce que je fais, et surtout pourquoi je fais ce métier.
voir mon github ↗Premier maillon : ma station de dev macOS montée en une commande, Homebrew, Zsh, VS Code, PHP/Symfony et le reste. La machine prête avant que le café refroidisse.
voir le repo ↗La machine prête, place au projet : ce CLI y dépose d'un coup ma couche qualité, CI et sécurité, CS-Fixer, PHPStan, GitHub Actions, secrets. Que des fichiers de config, jamais un binaire. Il pose les règles du jeu, pas les joueurs.
voir le repo ↗Le projet est carré, reste à l'héberger : server-setup change un VPS nu en serveur de prod, Docker, reverse-proxy Caddy, firewall, SSH durci et TLS, en un script. De la boîte vide au serveur blindé, sans la nuit blanche de sysadmin qui va d'habitude avec.
voir le repo ↗Le dernier maillon, qui referme la boucle : un push sur main déclenche un webhook, le VPS récupère le code et joue le déploiement. À jour en quelques secondes, plus jamais à la main. Et toujours pas le vendredi, on a des principes.
voir le repo ↗Bingo collaboratif en temps réel, à prendre au second degré : on choisit son thème, on joue seul ou à plusieurs, et on coche les cases jusqu'à décrocher la ligne. Synchro live entre joueurs via Mercure. Ici, au moins, accumuler les red flags fait gagner.
voir le site ↗L'appli faite pour ne jamais être utilisée : on lance le chrono, on change d'onglet… et surtout on ne revient pas. Le score monte tant qu'on reste loin ; revenir met fin à la partie. Le meilleur, c'est donc celui qui l'oublie le plus longtemps, un peu comme ce ticket tout en bas du backlog.
voir le site ↗Le petit traducteur pour parler comme un dev (ou presque) : tu écris ta phrase, tu choisis un profil et DevSpeak te la ressort avec le ton, l'intonation et le jargon qui vont avec. Du moldu au barbu, en un clic.
voir le site ↗L'appli qui ne bosse qu'un jour par semaine, et l'assume pleinement. Du lundi au jeudi, le canard dort et la porte reste close ; le vendredi venu, il se réveille, s'étire et se laisse enfin approcher. Une seule règle : revenez un vendredi, ou patientez.
voir le site ↗