Hello, netrunner.
// principal engineer · real-time graphics · typed languages
I’m Jérôme Mahuet. By day, I’m a Principal Engineer working on the systems behind a social-media analytics product. Off the clock, I’ve built tiny worlds, interpreters, and games to understand how things work from the inside.
This is the backup of my brain: part notebook, part graphics lab, part neon-lit alley. Expect rough edges, useful detours, and the occasional glitch that teaches me more than a flawless run.
Explore experiments · Start with Deus Ex · Browse Notes
Time moves in one direction, memory another. We are that strange species that constructs artefacts intended to counter the natural flow of forgetting.
― William Gibson, Distrust That Particular Flavor11Wikipedia · Distrust That Particular Flavor
activity · 12 months
1,252 contributions on GitHub in the last year
now building
Deus Ex in the Browser — Rebuilding Unreal Engine 1 from the Original BitsThe original 2000 Deus Ex running in a browser tab: a JavaScript package reader, a Rust interpreter compiled to WebAssembly, three.js on WebGL2, and the game's own DLLs as the oracle.newest notes
- Algebraic Effects in OCaml 5, From a Haskell and Rust Perspective
- Debugging graphics without guessing
- Designing Scalar Fields for Procedural Terrain
- From Brush Stroke to Mesh — Real-Time Voxel Terrain Editing in C
43 pages · 48k words · 14 islands · since 2012
About me
I’m a Principal Engineer at Iconosquare, based in Limoges, France. My professional work sits at the intersection of software design, technical direction, scalable backend and frontend systems, and mentoring.
My personal work leans toward real-time graphics, voxel worlds, and typed languages. I like moving between the high-level shape of a system and the low-level details that make it feel alive: C and Raylib, OpenGL, learning notes on Vulkan and OCaml, Rust, and Haskell.
Featured signal: Deus Ex in the browser

Deus Ex in the browser runs the original 2000 Deus Ex in a browser tab, straight from a local install. A JavaScript reader parses the Unreal Engine 1 packages, a Rust interpreter compiled to WebAssembly runs the game's own bytecode, three.js draws it on WebGL2, and every translated piece of the engine has to match the original, checked against its DLLs in an emulator and against the running game.
2026 · JavaScript · Rust · WebAssembly · WebGL2
Read the Deus Ex write-up · Or start with Raym
Find your way around
- Experiments — small projects in graphics, games, interpreters, and playful tools
- Notes — a digital garden of rendering references, voxel techniques, and language experiments
- Now — what I’m focused on lately
- Reading — the books on my desk
- Resume — career history, skills, and selected projects
- How this site works — the Obsidian, design, and publishing colophon
Contact & links
notes
