🤓 What I've learned...
Self-taught since high school, my intensive practice of mapping — a discipline at the crossroads of many trades — led me to acquire a wide range of skills : programming, web and software development, graphic design, game and level design...
🎓 ... what I was taught
After earning my Science Baccalaureate (spec. Mathematics), I went on to study a Biology degree specializing in geology (Geosciences), fascinated by the complex mechanisms that shaped our familiar landscapes.
🏭 What's next?
After my studies, I decided to redirect my career towards my main skill, which had always occupied my free time, computing, and joined the video game industry as a scripter-level-builder, game-designer and tool programmer... A rich professional experience that allowed me to deepen my knowledge of Agile methodologies and inter-team coordination within highly constrained projects.
Building on this experience, I then established myself as an independent Developer and Web Consultant, a profession I have now been practising for over 15 years...
Personal projects
Programming for fun is also programming to grow
It is in this spirit that many projects have shaped and nourished my learning journey — here is a selection.
Web Frameworks
Curious to understand their internal workings and to test new features, I had the opportunity to develop several frameworks in the past:
WebKore
2010 → 2012
Comprehensive development of a PHP framework inspired by Symfony 1 and 2.
- Custom ORM (ActiveRecord)
- YAML configuration (custom parser)
- Modular organisation
- HTTP router with built-in URL rewriting and canonical URLs/redirects handling)
WebKore.NET
2013
Port of the WebKore framework to the .NET platform.
- Convention-oriented ("opinionated")
- Inspired by the ASP.NET framework
- Uses the RAZOR template engine
- GNU/Linux compatible
MediaKore/MediaServe 2014
Micro HTTP server to host and run ASP.NET applications on GNU/Linux.
- Multithreaded requests
- Dynamic loading of different applications (dll) in isolated environments (AppDomain)
- Uses the Mono framework
- Built-in Less CSS pre-compiler
Web Projects
My main professional projects are detailed on the home page, but here are a few varied examples.
CinéPortail
2017 → 2020
A SaaS platform for cinema venues offering numerous tools to streamline theatre management and communication with audiences.
- Fully customisable platform creation: content, features, graphic theme...
- Main features: film sheets, events, articles, admin tools...
- Scheduling sync with the venue's point-of-sale software.
- PHP
- Symfony
- Twig/Vue.js
- MinIO (S3)
- RabbitMQ
Image cropper/resizer
2018
Image resizing and cropping component for Vue.js
- Fixed or free aspect ratio
- Allowed format restriction
- Min and max dimensions
- Automatic resizing (via HTML canvas)
Demo
D3 Calculator
2018
Equipment simulator for Diablo 3, allowing players to calculate the impact of attributes on hero stats (health, damage...)
- Real-time updates and calculations
- Save/load multiple profiles via localStorage
- OOP with JavaScript pseudo-classes (constructors + closures, pre-ES6)
- JS
- OOP
Text-highlighter 2010
A vanilla JavaScript script that highlights all occurrences of one or more search patterns within a text.
- Multiple patterns supported simultaneously
- Performance: two-pass algorithm using
indexOfinstead of regex - Handles pattern overlaps gracefully (intervals are merged)
- Customisable HTML tags
- Optional case sensitivity
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
Emoji Picker
2025
A fairly simple website that emoji lovers will appreciate, allowing them to search and copy-paste them in the blink of an eye.
- Classification by categories
- Search by name and keywords
- Copy to clipboard in a single click
Technical Explorations
I've worked on very different types of applications — notably 3D engines that taught me an enormous amount: in terms of technologies of course, but also architecture, adaptation and optimisation...
SEM Flare / SEO Console
2016
Tools for analysing data from the Google Analytics and Search Console APIs.
- Page statistics (position, impressions, clicks, CTR)
- Incremental async updates from the APIs (high data volume).
- Keyword analysis tools
- SEO behavioural analysis tools (navigation flow)
- WPF
- Multithreading
Quark Engine
2010
First prototype 3D engine coded in C++ using the Qt framework.
- Rendering of basic geometries
- Camera rotation
- Dynamic loading of OpenGL renderers
- OpenGL
- Qt
Moon Engine
2011
Prototype 3D engine coded in C# using the OpenTK framework.
- Static geometries and UV Mapping (Warcraft 3 models and textures)
- Translations and Rotations of the model
- OpenGL
- OpenTK
Time series analyzer
2008
University project for computing linear regressions from given time series (written in IDL).
- Linear regression computation
- Curve plotting
- File reading and writing
- Advanced interface and curve configuration
File parsing & processing
Beyond simple text file processing, I have handled many other formats and practised binary file reverse-engineering (notably when building several 3D model importers).
BlizzImporter
2006
3dsMax script for importing 3D models from Warcraft 3 along with their animations.
- Parsing of text files (.mdl) and binary files (.mdx)
- Import of geometry (vertices) and skeleton (bones)
- Import of animations (quaternions)
- Import of textures (UV mapping) and materials
- Animation editor (concatenation of several original animations into one)
M2 Importer (WoW)
2005
3dsMax script for importing 3D models from World of Warcraft along with their animations.
- Parsing of binary files (.m2, .wmo)
- Import of geometry (vertices) and skeleton (bones)
- Import of animations (quaternions)
- Import of textures (UV mapping) and materials
- Animation editor (concatenation of several original animations into one)
- Geometry editor (selection of model variations to import)
MDL Importer
2003
3dsMax script with a graphical interface for importing 3D models from Warcraft 3.
- Parsing of text files (.mdl)
- Import of geometry (vertices) and skeleton (bones)
- Import of animations (quaternions)
- Import of textures (UV mapping) and materials
- Model events and particle emitters
Game programming
Learning to program was for a long time driven by designing tools and systems related to the world of video games, which offers an unmatched diversity of goals and a uniquely engaging quality.
The growing complexity of the systems I developed taught me to structure my code in a modular way: autonomous, decoupled components, yet perfectly interoperable. My framework « J » for JASS — the scripting language of the Warcraft 3 map editor — is a good example, with its many modules that can be activated à la carte:
JPhysics
Code library simulating a physics engine inside Warcraft 3.
- Simulation of physical principles: gravity, bouncing, friction
- Terrain height taken into account
- Physics formulas
- Vector maths
JQuest
Code library automating quest creation in Warcraft 3 (vJASS).
- Quest prerequisites (hero level and class, parent quests...)
- Quest chains (quests unlocked after completing a previous one)
- Automatic objective tracking (gathering, exploration, escort...)
- Dynamic quest journal (automatically updated)
- Event-driven programming
- Polymorphism
JBuff
Code library extending the buff/debuff system in Warcraft 3 and serving as a framework for creating custom enhancements.
- 100% scriptable enhancements
- Stackable enhancements
- Enhancement/enchantment dispelling
- Polymorphism
JSpell
Code library extending the spell system in Warcraft 3 and serving as a framework for creating custom spells.
- 100% scriptable spells
- Cast time / interruption
- Channelled spells
- Spell families
- Mana regeneration
- Customisable progress bar
- Polymorphism
JCombat
Code library replicating WoW's combat systems inside Warcraft 3 (vJASS).
- Threat management (aggro) and combat lists for target selection
- Scripted combat phases
- Automated patrols
- Customisable monster behaviour via a « brain » system (custom overridable classes)
- Polymorphism
Beyond the code...
Instead of thinking outside the box, get rid of the box
Languages
🇫🇷 French — native language
🇬🇧 English — read, written, spoken
🇩🇪 German — advanced notions
Hobbies
I also enjoy renovation and construction work, activities that surprisingly echo my approach to development: understand the existing, intervene with care and improve durably.
Hiking, Music (guitar, piano, classical singing), Arts...
I'll also mention a passion I practiced for a long time in my youth, which taught me patience and creativity — the painting and sculpting of miniatures:
Ethics
To manage, in my way of life, to stay attuned to what speaks most strongly within me, and to devote myself to it wholeheartedly.

































