🤓 Ce que j'ai appris...
Autodidacte depuis le début lycée, ma pratique intensive du mapping, une discipline à la croisée de nombreux métiers, m'a conduit à acquérir des compétences variées : programmation, développement web et logiciel, infographie, game et level-design...
🎓 ... ce qu'on m'a appris
Mon bac Scientifique (spé. Maths) en poche, je me dirige ensuite en Licence de biologie spécialisation géologie (Géosciences), fasciné par les mécanismes complexes qui ont contribué à la formation de nos paysages familiers.
🏭 Et après ?
À l'issue de mes études, je décide de me réorienter professionnellement vers ma compétence principale qui occupe toujours mon temps libre, l'informatique, et rejoint l'industrie du jeu-vidéo en tant que scripter-level-builder, game-designer et programmeur-outil... Une riche expérience professionnelle qui m’a permis d’approfondir mes connaissances des méthodologies Agiles et de la coordination inter-équipes au sein de projets à fortes contraintes.
Fort de cette expérience, je m'établis ensuite à mon compte en tant que Développeur et Consultant Web indépendant, métier que j'exerce maintenant depuis plus de 15 ans...
Projets personnels
Programmer pour le plaisir c'est aussi programmer pour progresser
Frameworks Web
Curieux de comprendre leur fonctionnement interne et de tester de nouvelles fonctionnalités, j'ai entrepris le développement intégral de plusieurs frameworks :
WebKore
2010 → 2012
Développement intégral d'un framework PHP inspiré de Symfony 1 et 2.
- ORM (type ActiveRecord)
- Configuration yaml (parseur personnalisé)
- MVC - Organisation modulaire
- Routeur HTTP avec réécriture d'URL intégré et gestion des urls canoniques/redirections
WebKore.NET
2013
Portage sur la plateforme .NET du framework WebKore.
- Orienté conventions ("opinionated")
- Inspiré du framework ASP.NET
- Utilisation du moteur de templates RAZOR
- Compatible GNU/Linux
MediaKore/MediaServe 2014
Création d'un micro serveur HTTP pour avec des applicatifs ASP.NET, compatible GNU/Linux.
- Requêtes multithreads
- Chargement dynamique des différents applicatifs (dll) dans des environnements isolés (AppDomain)
- Utilisation du framework Mono
- Précompilateur Less CSS intégré
Divers Web
Mes principaux projets professionnels sont détaillés en page d'accueil mais vous trouvez ici quelques autres exemples tirés de mes réalisations personnelles.
CinéPortail
2017 → 2020
Une plateforme SaaS à destination des salles de cinémas qui propose de nombreux outils pour faciliter la gestion de salle et la communication avec les spectateurs.
- Création de plateformes sur-mesure intégralement personnalisables : contenu, fonctionnalités, thème graphique...
- Fonctionnalités principales : fiches films, événements, articles, outils d'administration...
- Synchronisation de la programmation des salles avec le logiciel de caisse.
- PHP
- Symfony
- Twig/Vue.js
- MinIO (S3)
- RabbitMQ
Emoji Picker
2025
Un site assez simple que les amateurs d'emojis apprécieront, permettant de rechercher et de les copier-coller en un clin d'oeil.
- Classification par catégories
- Recherche par nom et mots-clés
- Copie dans le presse-papier en un simple clic
D3 Calculator
2018
Simulateur d'équipement pour Diablo 3, permettant de calculer l'impact des attributs sur les statistiques du héros (points de vie, dégâts...)
- Mise à jour et calculs en temps réel
- Sauvegarde/chargement de plusieurs profils via le localStorage
- POO avec pseudo-classes JavaScript (constructors + closures, pré ES6)
- JS
- POO
Image cropper/resizer 2018
Composant de redimensionnement et de recadrage d'image pour Vue.js
- Ratio fixe ou libre
- Restriction de formats autorisés
- Dimensions mini et maxi
- Redimensionnement automatique (via un canvas html)
Démo
Text-highlighter 2010
Script JavaScript permettant de mettre en évidence toutes les occurrences de termes dans un texte.
- Patterns multiples supportés simultanément
- Performances : sans regex (algorithme en deux passes via
indexOf) - Gestion des chevauchements de patterns par fusion des intervalles
- Balises HTML personnalisables
- Sensibilité à la casse optionnelle
Démo
Crooked pines complain, exuding sharp resin, pools of shade, and tired butterflies, wings fading, search endlessly for hidden flowers. While swallows dart and swoop after invisible flies.
- JS
Divers Programmation
J'ai été amené à travailler sur des applications de types très différents, et notamment des moteurs 3D qui m'ont énormément appris ; en terme technologies bien sûr, mais aussi d'architecture, de contraintes et d'optimisation...
SEM Flare / SEO Console
2016
Outils d'analyse des données des API Google Analytics et Search Console.
- Statistiques des pages (position, impressions, clics, ctr)
- Mises-à-jour incrémentielles asynchrones à partir des API (grand volume de données).
- Outils d'analyse des mots-clés des recherches
- Outils d'analyse comportementale SEO (flux de navigation)
- WPF
- Multithreading
Quark Engine
2010
Premier prototype de moteur 3D codé en C++ et utilisant le framework Qt.
- Rendu de géométries simples
- Rotation de la caméra
- Chargement dynamique de renderers OpenGL
- OpenGL
- Qt
Moon Engine
2011
Prototype de moteur 3D codé en C# utilisant le framework OpenTK.
- Géométries statiques et UV Mapping (modèles et textures de Warcraft 3)
- Translations et Rotations du modèle
- OpenGL
- OpenTK
Analyseur de séries temporelles
2008
Projet universitaire permettant de réaliser des régressions linéaires à partir de séries temporelles données (réalisé en IDL).
- Calcul des régressions linéaires
- Tracé des courbes
- Lecture et écriture de fichiers
- Configuration avancée de l'interface et des courbes
Parsing et traitement de fichiers
Au-delà de simples fichiers texte, j'ai également manipulé de nombreux formats et fait de la rétro-ingénierie de fichiers binaires (notamment pour la réalisation de plusieurs importateurs de modèles 3D).
BlizzImporter
2006
Script 3dsMax permettant d'importer les modèles 3D du jeu Warcraft 3 et leurs animations.
- Parsing de fichiers textes (.mdl) et binaires (.mdx)
- Importation de la géométrie (vertices) et du squelette (bones)
- Import des animations (quaternions)
- Import des textures (UV mapping) et matériaux
- Éditeur d'animations (concaténation de plusieurs animations originales en une seule)
M2 Importer (WoW)
2005
Script 3dsMax permettant d'importer les modèles 3D du jeu World of Warcraft et leurs animations.
- Parsing de fichiers binaires (.m2, .wmo)
- Importation de la géométrie (vertices) et du squelette (bones)
- Import des animations (quaternions)
- Import des textures (UV mapping) et matériaux
- Éditeur d'animations (concaténation de plusieurs animations originales en une seule)
- Éditeur de géométrie (sélection des variations du modèle à importer)
MDL Importer
2003
Script 3dsMax avec interface graphique permettant d'importer les modèles 3D du jeu Warcraft 3.
- Parsing de fichiers texte (.mdl)
- Importation de la géométrie (vertices) et du squelette (bones)
- Import des animations (quaternions)
- Import des textures (UV mapping) et matériaux
- Model events et émetteurs de particules
Game programming
Mon apprentissage de la programmation s'est longtemps appuyé sur la conception d'outils ou de systèmes liés à l'univers du jeu-vidéo, qui offre en effet une diversité d'objectifs et un côté ludique inégalables.
La complexification croissante des systèmes développés m'a appris à structurer mon code de manière modulaire : des composants autonomes et découplés, mais parfaitement interopérables. Mon framework « J » pour JASS/vJASS — le langage de scripts de l'éditeur de Warcraft 3 — en est un bon exemple, avec ses nombreux modules activables à la carte :
JPhysics
Librairie de code simulant un moteur physique dans le jeu Warcraft 3.
- Simulation de la gravité, rebonds, friction
- Prise en compte du relief et de la texture du terrain
- Formules physiques
- Calcul vectoriel
JQuest
Librairie de code automatisant la création et le suivi des quêtes dans le jeu Warcraft 3 (vJASS).
- Prérequis de quêtes (niveau et classe du héros, quêtes parentes...)
- Suites de quêtes (quêtes débloquées après la validation d'une précédente)
- Suivi automatique des objectifs (récolte, exploration, escorte...)
- Journal de quêtes mis à jour automatiquement
- Programmation evenementielle
- Polymorphisme
JBuff
Librairie de code enrichissant le système d'améliorations/enchantements magiques (buffs/debuffs) du jeu Warcraft 3 et servant de base de code pour la création d'améliorations personnalisées.
- Enchantements 100% scriptables
- Enchantements cumulables (stackable)
- Dissipation des enchantements ("écoles" de magie)
- Polymorphisme
JSpell
Librairie de code enrichissant le système de sorts du jeu Warcraft 3 et servant de framework pour la création de sorts personnalisés.
- Sorts 100% scriptables
- Temps de cast / interruption
- Sorts canalisables
- Familles de sorts
- Regénération de mana
- Barre de progression personnalisable
- Polymorphisme
JCombat
Librairie de code reproduisant les systèmes de combat de WoW dans le jeu Warcraft 3 (vJASS).
- Gestion de la menace (aggro) et listes de combat pour le choix des cibles
- Phases de combat scriptables
- Patrouilles automatisées
- Comportements des monstres personnalisables via un système de « brain » (classes custom surchargeables)
- Systèmes de "brain" (classes custom surchargeables) pour l'implémentation de comportements spécifiques
- Polymorphisme
Un peu plus à mon propos...
Au lieu de penser en dehors de la boîte, débarrassez-vous de la boîte
Langues
🇫🇷 Français — langue maternelle
🇬🇧 Anglais — lu, écrit, parlé
🇩🇪 Allemand — notions avancées
Hobbies
Je m’adonne également à la rénovation et aux travaux de construction, des activités qui font suprenamment écho à mon approche du développement : comprendre l’existant, intervenir avec mesure et améliorer durablement.
Peinture et sculpture de figurines — une passion de jeunesse qui m’a enseigné la patience et le soin du détail:
Musique (guitare, piano, chant), Randonnées, Arts
Éthique
Parvenir, dans mon choix de vie, à rester éveillé à ce qui parle au plus fort de moi, et à m’y vouer corps et âme.

































