Développeur backend senior avec 7 ans d'expérience, spécialisé en C# / .NET et Swift / SwiftUI.
J'ai travaillé sur des systèmes critiques (aviation, industrie) et co-fondé un studio de développement où j'ai conçu et livré des produits de bout en bout — backend AWS serverless, applications iOS, architectures distribuées. Cette double expérience — rigueur technique sur des projets à forte contrainte et autonomie complète sur des produits from scratch — définit la façon dont j'aborde chaque projet.
Ce que je fais bien : · Reprendre et stabiliser du legacy sans tout jeter (characterization tests, refactoring progressif) · Concevoir des architectures distribuées adaptées au contexte (microservices, CQRS, messaging, serverless) · Passer du code à la coordination sans quitter le code — revue de MR, guidelines, accompagnement de profils juniors Ce que je cherche : Un rôle de lead technique dans une équipe produit à taille humaine, avec un vrai esprit produit. Je veux être proche des décisions techniques, pas juste exécutant. Télétravail privilégié.
GearHelper — ~400 000 téléchargements
Addon d'aide à l'optimisation d'équipement pour World of Warcraft.
RaidLogs — ~100 000 téléchargements
Outil d'analyse de performance de raid pour World of Warcraft : affiche le score d'évitement de dégâts de n'importe quel joueur directement dans les tooltips in-game, sans quitter le jeu. Initialement afficheur des données WarcraftLogs, aujourd'hui avec son propre moteur de parsing et système de scoring.
Réalisations :
Parser CombatLog maison (Swift) : analyse single-pass du fichier `WoWCombatLog.txt` directement dans l'uploader macOS — le score est calculé localement, seul le résultat est envoyé à l'API
Système de scoring : binaire par mécanique (pass / fail / ?) — 7 types de mécaniques configurables (avoidable, soak, proximity, mustDispel, mustInterrupt, noDispel, targeted), avec gestion des rôles requis et des poids. Score affiché = meilleur score all-time par boss / difficulté
Pipeline de publication automatisé : soumission → Lambda (stockage MongoDB) → EventBridge (déclenchement quotidien à 4h UTC) → DBGenerator Lambda (lecture MongoDB, génération des fichiers Lua DB pour 5 régions en chaîne via SQS) → git push → CurseForge auto-release sur tag
Déduplication par fight hash : timestamp bucket + GUIDs joueurs triés — plusieurs membres d'un même raid peuvent uploader le même combat sans doublon
Interface admin intégrée à l'uploader macOS : gestion de la base de sorts par boss (types de mécanique, rôles, poids), sans outil séparé
Stack complète : Addon : Lua (World of Warcraft) Client macOS : Swift / SwiftUI + interface admin intégrée Client Windows : Flutter Backend : Python / FastAPI, AWS Lambda, API Gateway, SQS, EventBridge, MongoDB