Bruce SUIRE39 ans
Architecte & Consultant logiciel
Développeur Senior Full-Stack
23+ années en programmation
16 années dans le développement web
Développement
Symfony PHP SQL C#
Principes
SOLID DDD Hexagonal CQRS
Frontend
VueJS jQuery CSS3 TailwindCSS
Méthodologies
SCRUM TDD Kanban XP Agile
Infographie
Photoshop Illustrator 3DSMax Maya

🤓 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
PHP

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
C# ASP.NET

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é
C# Mono

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.
Front Back SaaS
  • 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
Front

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)
Front Javascript

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

Aperçu
Front Vue.js

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.

Front
  • 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)
C# SEO
  • 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
C++ 3D
  • 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
C# 3D
  • 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
IDL Maths

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)
MaxScript

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)
MaxScript

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
MaxScript

Geosets Merger 2003

Script avec interface graphique permettant de fusionner automatiquement les géométries issues de deux modèles 3D du jeu Warcraft 3.

MaxScript

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/vJASSle 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
vJass
  • 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
vJass
  • 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)
vJass
  • 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
vJass
  • 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
vJass
  • Polymorphisme

JEquipment

Librairie de code simulant un système d'équipement d'objets avancé dans le jeu Warcraft 3 (vJASS).

  • Affichage visuel des modèles 3D
  • Gestion avancée des préequis et des types d'objets (classe du héros, statistiques, mana...)
  • Système d'enchantements d'objets
vJass

Un peu plus à mon propos...

Au lieu de penser en dehors de la boîte, débarrassez-vous de la boîte

Langues

🇫🇷 Françaislangue maternelle
🇬🇧 Anglaislu, écrit, parlé
🇩🇪 Allemandnotions 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.