Développeur
full-stack.
Je transforme des problèmes complexes en solutions pour le Web.
À propos de moi
Forgé en usine, formé pour la qualité.
Développeur full-stack chez Hubelia, je développe et maintiens des ERP sur mesure et des systèmes de gestion de la logistique et de la production. J'emploie un workflow piloté par les specs et assisté par l'IA. Je travaille étroitement avec l'équipe de design et les gestionnaires de projets ou product owners pour implémenter et livrer des features du début à la fin (API / Backend, Frontend, Intégration, Tests, Revue / Merge).
Dans mon poste actuel, j'ai reconstruit en Vue.js, TypeScript et Node.js la logique financière d'un logiciel legacy (Access 2012), très sensible aux régressions. On perdait du temps à retester manuellement les mêmes parties. J'ai décidé que c'était ma mission d'arranger ça.
J'ai mis en place un workflow GitHub Actions qui publie les tests et la couverture sur chaque PR, avec une cible de 80 % sur les fichiers modifiés. Les développeurs s'auto-corrigent avant les revues, et l'équipe entretient la suite de tests à son tour.
J'ai ajouté un agent IA qui écrit les tests à partir des specs approuvées, pas pour faire passer le code. Par exemple, interdit de modifier un test à moins que la spec n'ait changé.
Le backend du premier projet est passé de 19 mois sans un seul test à 47 fichiers, et de 27 % à 68 % de couverture en quatre mois. Les nouveaux projets maintiennent un score au-dessus de 90 %.
J'ai aussi verrouillé notre logique financière derrière une suite end-to-end Playwright, après l'avoir validée dans les deux logiciels côte à côte, à la décimale près.
Avant l'informatique, j'ai passé douze ans en usine, dont une partie au contrôle de la qualité. Tester du code, c'est le même travail avec un objet différent, et c'est probablement pour ça que ça m'est resté.
Formation
Baccalauréat en informatique
Université de Montréal
2021 – 2025
Certificat en informatique appliquée
Université de Montréal
2019 – 2020
Expérience
Construire, tester et renforcer.
Hubelia
Montréal, QCDéveloppeur full-stack
janvier 2025 — aujourd'hui
- Développement full-stack de 6 applications Web pour des clients (Vue/Nuxt, Node.js, TypeScript, PostgreSQL), dont 4 déployées en production
- Construction d'un workflow GitHub Actions qui affiche les tests sur chaque PR et exige 80 % de couverture sur les fichiers modifiés, adopté dans 6 dépôts par toute l'équipe
- Automatisation des tests de l'équipe, de ma propre initiative, avec un agent IA que j'ai écrit pour les tests unitaires Vitest, portant un backend sans test à 47 suites, puis sa couverture de 27 % à 68 % en quatre mois
- Extension de la génération de documents à 23 types réglementés avec jsreport, dont contrats, factures, connaissements et certificats d'origine pour cinq accords commerciaux
- Mise en place du contrôle d'accès par rôle, des permissions granulaires et de la protection des routes
- Construction de storefronts e-commerce et de panneaux d'administration Medusa.js (Next.js), avec indexation de recherche, middlewares de panier, rabais promotionnels et récupération de paniers
Développeur full-stack (stagiaire)
septembre 2024 — décembre 2024
- Création de pages et de composants frontend en Vue.js, Nuxt, TypeScript et TailwindCSS, avec TanStack Query pour les données
- Gestion d'états applicatifs complexes avec Pinia sur un formulaire de cost card à 12 sections
- Écriture des routes d'API REST en TypeScript sur Node.js (Bun), testées en intégration avec Postman
- Analyse et documentation de la logique financière et logistique d'une application Microsoft Access, puis rédaction des spécifications pour la partie trader, costcard et logistique de l'application
- Reconstruction du moteur de calcul de coûts et de prix de vente à la décimale près, validé cas par cas, couvrant marges, profit cible, taux de change, assurance, financement et commissions
- Construction de la couche de génération de documents commerciaux, avec la correction de 15 documents hérités contre le système d'origine
Avant le code
Plus de douze ans en industrie et logistiqueProduction, logistique et contrôle qualité
- Opérer de la machinerie en remplissant des quotas
- Trouver des solutions aux problèmes qui bloquent la chaîne de production
- Contrôler la qualité des produits et appliquer les normes HACCP et ISO de salubrité alimentaire
- Respecter les normes strictes de sécurité et de fabrication
- Former de nouveaux employés pour m'assister aux postes que j'occupais
Méthodologie
Développement piloté par les specs.
Les agents se chargent des tâches répétitives. Je garde le contrôle sur la logique et la qualité.
Intention
HumainJe définis l'objectif et les contraintes du travail à faire.
Specs
IAUn agent rédige les specs qui définissent une tâche ou un feature.
Revue des specs
HumainJe valide les specs avant qu'une seule ligne de code soit écrite.
- Sans intervention
Tests, écrits en premier
IAUn agent distinct écrit les tests à partir des specs avant que le code existe, pour qu'ils valident l'intention au lieu de confirmer ce qui a été construit.
Implémentation
IALe frontend et le backend sont écrits selon les specs approuvées, jusqu'à ce que les tests reçus passent.
Révision
IALe diff est vérifié contre les conventions, l'accessibilité et les specs avant tout commit.
Commit et pull request
IAL'agent fait le commit, ouvre la pull request, et s'arrête là. Le merge me revient.
Rapport automatisé
CIUne action GitHub réutilisable roule la suite et publie les résultats des tests, la couverture des fichiers modifiés, et l'écart avec la branche principale. Le check est rouge dès qu'un test échoue.
Revue de la PR
HumainJe révise le diff et le rapport des tests dans la pull request pour valider le comportement défini dans les specs, avant le merge.
Projets
Projets personnels.
Voici des projets sur lesquels je travaille dans mon temps libre. Ils me permettent d'approfondir mes connaissances et d'expérimenter avec de nouveaux outils, et sont souvent le fun à réaliser ou utiles dans la vie de tous les jours.
claude-plugins
La configuration Claude Code que tous mes projets partagent, installée comme un package plutôt que copiée d'un projet à l'autre. Elle contient les skills, les agents et les hooks sur lesquels le pipeline roule. Une seule commande amène une fonctionnalité d'une spec que j'approuve jusqu'à une pull request que je merge, et entre ces deux points, l'agent travaille sans mon intervention.
test-report
Une seule action GitHub que chaque projet installe, au lieu de copier un workflow d'un projet à l'autre. À chaque pull request, elle garde un seul commentaire à jour avec les résultats des tests, la couverture des fichiers modifiés, et l'écart avec la branche principale. Le check devient rouge dès qu'un test échoue, donc une branche brisée ne peut jamais avoir l'air prête à merger.
Contact