Votre navigateur est obsolète !

Pour une expériencenet et une sécurité optimale, mettez à jour votre navigateur. Mettre à jour maintenant

×

Thomas John

Senior Front-End & Full-Stack Developer

Freelancer Open to opportunities
Front-end and full-stack developer with 20+ years of experience building web, mobile and desktop applications, with a particular taste for interactivity, motion and performance.

I’ve worked on SaaS platforms, product UIs, promotional sites, branded games and internal tools, across creative agencies, product companies and tech teams, taking projects from concept to deployment. Vue, React and TypeScript on the front end; Node.js, Deno, PHP and SQL on the back end.

Alongside client work, I build games, engines and tools (Unity/C#, WebGL/Three.js) and have worked professionally on several arcade and strategy games.

Happy to talk about front-end, full-stack, creative tools, game dev, or weird ideas.
  • React · TypeScript · TanStack Router/Query · Tailwind · shadcn/ui · Vite · Docker · Zustand · Azure AD · Python APIs
  • Built a feature-based architecture with automatic discovery of features and routes, plus injection and interceptor mechanisms that keep core systems separate from feature modules.
  • Maintain the shared foundation of reusable components, hooks, helpers and patterns used by all new applications.
  • Integrated Azure AD single sign-on across projects.
  • Lead the migration of legacy ASP.NET systems to React and a Python backend, working closely with developers and scientists.
  • Work with cross-functional teams to fit the platform to internal workflows and scientific requirements, with the aim of faster delivery and lower maintenance.
  • Astro · Web Components · GSAP · Figma · Google Ads · SEO/SEA
  • Rebuilt and maintain the marketing website with Astro, custom Web Components and GSAP animations.
  • Designed the new visual identity and page layouts in Figma.
  • Created product-focused pages and motion design to communicate value and support conversion.
  • Run Google Ads campaigns for product visibility and acquisition.
  • Keep shipping new features for the SmartCertificate platform.
  • Vue 2 · Vuex · TypeScript · HTML/CSS · Stylus · Astro · Figma
  • SmartCertificate is a secure digital certification platform for sending verifiable documents. I was hired to lead the revamp of its front-end and back-end structure, with the goals of modernizing the UI/UX and reaching a broader audience.
  • Rebuilt the entire front-end with Vue 2 and TypeScript, structured for modularity and maintainability.
  • Led the move away from a monolithic C# system toward a modular architecture, within legacy constraints and strict security and privacy standards.
  • Led back-end API development with the back-end developer, keeping a clean separation between front and back.
  • Act as Product Owner, working with stakeholders to align the roadmap with business goals, client needs and budget.
  • Designed and built a drag-and-drop template editor with custom variables, letting users create their own dynamic documents in the app and cutting manual setup time.
  • Built Excel/CSV import with mapping to template variables, automating document creation.
  • Added an onboarding flow with tutorials and in-app guidance so new users can send certified documents within minutes.
  • Delivered two complete production versions of the platform, reducing maintenance overhead and improving stability.
  • Main point of contact for how the product works and where it should go: support, the back-end developer and the CEO all relied on this role.
  • React · Haxe · HTML5 Canvas · Custom brush engine for a drawing tool
  • Built a drawing module for a web-based presentation tool, letting users sketch in the app and embed their work in slides.
  • Designed a custom brush engine with Photoshop-style brushes and experimental ones (connected-point “sketchy” strokes, noise-driven brushes, fluctuating gradients, procedural patterns).
  • Implemented smooth curve drawing with easing to avoid jagged lines on fast mouse movements.
  • Integrated the module into the existing React architecture.
  • https://ludus.one/
  • HTML · CSS · JavaScript · TypeScript · CoffeeScript · Haxe · Framer
  • After more than a decade with Flash, ActionScript 3 and Stage3D, this role was my move to modern web technologies, with a focus on animated interfaces.
  • Longines “H” website: responsive, mobile-first site with a flexible animated grid and performance-friendly animations, built with Haxe tooling.
  • Agilytic: lightweight animated company site.
  • Mobile banking app (Luxembourg): animation and transitions prototyped in Framer.
  • Contributed to several other responsive sites and interactive prototypes.

Game Developer (Unity)

Reed.be and independent
2013 to 2017
  • Riftworld Heroes (2017): took over a turn-based strategy game to build a solid technical foundation. Created a modular entity system, where players, creatures, items, spells and cards are all configurable entities editable in Unity, so designers can work with minimal code. Designed the game logic around fast simulation of outcomes, in the spirit of Hearthstone, for AI and future multiplayer.
  • Endless Runner & Endless Jumper (2015): designed and coded two arcade games integrated into a larger Unity application, with attention to RAM and VRAM usage.
  • Mask of War (2013, prototype): co-founded and led development of a multiplayer, cross-platform turn-based strategy prototype in a steampunk setting. Built client gameplay and server-side multiplayer with Photon, led a small team of artists, animators and 3D modelers, and tested simultaneous turn execution and early solo AI. The project ended when funding fell through.
  • ActionScript 3 · Stage3D · GPU shaders · Nape Physics · Adobe AIR · GitHub: NoRabbit/ND2Dx
  • ND2Dx: a GPU-accelerated 2D game engine on Flash Stage3D that outperformed alternatives such as Starling at the time. Features include a double-linked-list display hierarchy, batched rendering of thousands of objects per frame with minimal draw calls, 2.5D scenes and cameras, component and material systems, a timeline animation framework, and GPU-optimized bitmap fonts.
  • WorldGameMaker: a full game-development IDE built on ND2Dx, with live debugging, a component system, Nape physics integration, dynamic ActionScript loading, a property editor, a UI toolkit, and cross-platform publishing through Adobe AIR.
  • Used to build most of my games and apps from 2011 to 2016.

Games & Promotional Apps

Reed.be, Uzful and independent
2011 to 2016
Freelancer
Bruxelles
Belgium
  • Space Cropper (2014) and Space Cropper 2 (2015): Qix-style arcade games, designed, coded and scored by me, with art adapted from Lostgarden. Both rated 8/10 on FGL.com; the first also received very good reviews on Newgrounds.
  • Memory Wizard (2015–2016): solo mobile memory game for children with light physics, covering design, art and engine-level optimization.
  • We Are Tennis Fans (2014): cross-platform iOS/Android promotional game for BNP Paribas at Roland Garros, with Stage3D graphics and native extensions.
  • Orange - Roland Garros (2013): Facebook game and interactive terminal on site at the tournament, with a Node.js backend for scoring and verification.
  • SoundQuest (2011–2012): Facebook game for Sony Ericsson, one of the first large promotional games to use Stage3D. It was the start of ND2Dx and WorldGameMaker.
  • Le Monde Déjanté de Sony Ericsson (2011): social game on Facebook, including the 2D engine and game logic.
  • Ernest & Celestine (2012–2013): cross-platform mobile app for the movie. Total (2014): iPad game for a contest.

Interactive Websites & Campaigns

1MD, Reed.be and freelance
2008 to 2017
  • Prototype (Activision, 2009): promotional website that let visitors connect with Facebook and see their own data and photos inside the game trailer, shortly after Facebook Connect launched. It drew international attention, including from Microsoft US.
  • BNP Paribas Fortis- Payback Time (2013): interactive video with personalized user images overlaid on a trailer, using complex masking at 30 fps in high quality.
  • Promotional sites for KIA (FreeYourWorld), Volkswagen (FearTracker, Blue Your Friends), Samsung (3D TV), Fanta (Less Serious) and Jacques Dutronc, covering animation, transitions, content and effects.

Flash Developer

Emakina
June 2008 to November 2008
Full-time
Brussels
Belgium
  • ActionScript 3 · Flex SDK
  • AI & LLM tools (2023 - present): built a prototype HR assistant that answers questions about an uploaded CV and compares it to job requirements; built a document parser with segmentation and embeddings (LlamaIndex) for summarizing and searching. Stack: Deno, Vue 3, TypeScript.
  • Blockchain & smart contracts (2017 - present): built and tested Solidity contracts on Binance Smart Chain and other EVM chains using Hardhat and Truffle; explored upgradeable patterns such as Diamond Proxy; prototyped dApps with Vue 3, Web3.js and Ethers.js, with attention to gas optimization and security.
  • Flash Meta Games (2013 - 2014): game portal aggregating Flash games with metascores and user feedback, built on PHP, MySQL and a heavily modified WordPress backend, with a custom crawler to collect game metadata.
  • Matrix Fall 3D (2004): open-source 3D Matrix screensaver in Visual Basic 6, which received several awards on Planet Source Code.
  • ActionScript 3, Stage3D, Flash, GPU Shaders
  • ND2Dx is a highly optimized 2D GPU-accelerated game engine I built using Flash’s Stage3D API. Designed for speed and flexibility, it significantly outperformed alternatives like Starling at the time, and powered the WorldGameMaker editor.
  • Custom 2D rendering engine leveraging Stage3D and shaders to push GPU performance to its limits, achieving blazing-fast rendering speeds.
  • Advanced display list system: Implemented a double-linked list hierarchy to allow for ultra-fast traversal and manipulation of 2D elements (sprites, containers, custom meshes, animated sprites, particles, etc.).
  • Rich visual capabilities: Support for tinting, blend modes, pivot points, color transforms, scaling, and full sprite animation.
  • Efficient batching system: Rendered thousands of objects per frame using GPU-optimized shader logic and minimal draw calls.
  • 2.5D rendering, scenes, and camera system to allow more visual complexity while staying within a 2D framework.
  • Component and material systems: Fully integrated, lightweight, and flexible, allowing for modular object behaviors with near-zero performance cost.
  • Full animation framework with powerful timeline control, high speed, and ease of use.
  • Input and event handling: Custom mouse interaction system with a fast, signal-based event dispatcher.
  • Bitmap font support and rich text rendering optimized for GPU.
  • Exploited specific quirks of the ActionScript 3 virtual machine to squeeze out maximum performance.
  • Focused heavily on performance profiling, memory management, and GPU pipeline efficiency.
  • This project was a deep dive into low-level rendering, real-time graphics, and game engine architecture — and gave me a solid foundation for everything I’ve done in real-time rendering and performance optimization since.

    Github link:
    https://github.com/NoRabbit/ND2Dx

Creator & Lead Developer – WorldGameMaker

myself
2011 to 2016
Brussels
Belgium
  • ActionScript 3, Stage3D, ND2Dx, Nape Physics, Adobe AIR
  • WorldGameMaker is a custom-built game development IDE I originally created for our team at Reed.be while working on SoundQuest, a mobile game for Sony Ericsson. Flash’s default editor quickly proved too limited, especially with our desire to push visuals using Stage3D and GPU acceleration, so I started building my own.

    What started as a basic level editor evolved into a full-blown development environment, tightly integrated with my custom 2D engine ND2Dx and packed with features tailored for game creation.
  • Built on top of ND2Dx: Fully leveraged my own GPU-accelerated engine for high-performance rendering and animation.
  • Full-featured IDE: Designed and developed an intuitive interface for creating, editing, testing, and exporting games and apps — all within a single environment.
  • Live Debugging & Testing: Run and debug games directly inside the editor with real-time updates and interaction.
  • Component System: Reusable and extensible components to streamline gameplay logic and object behavior.
  • Physics Integration: Initially built a basic physics system, then integrated the open-source Nape physics engine for more complex simulations.
  • Dynamic Scripting: Enabled dynamic loading of ActionScript code and real-time editing through a customizable property editor.
  • Cross-platform Publishing: Used Adobe AIR to export games and apps to both mobile and desktop platforms.
  • UI System: Developed a near-complete user interface toolkit within the editor for building menus, HUDs, and in-game controls.
  • Used extensively: Most of my games and apps during that time were built using WorldGameMaker.
  • It was built out of necessity but grew into a robust, production-ready tool that empowered both solo and team-based development.
  • It constantly evolved with my projects, making it both a creative playground and a technical deep-dive into engine/tool design.
  • ActionScript 3, Stage3D, ND2Dx, WorldGameMaker, Photoshop
  • Memory Wizard is a playful and dynamic memory game designed for children, combining traditional memory mechanics with fun physics interactions. Built entirely with mobile performance in mind, it was a solo project where I handled everything from game design to art and engine-level optimization.
  • Built the game from scratch using ActionScript 3 and my own ND2Dx engine, leveraging Stage3D for GPU-accelerated rendering.
  • Used WorldGameMaker, my in-house IDE, to speed up development and level design.
  • Designed and created all visual assets, including UI elements, characters, and animations.
  • Integrated a light physics layer to add engaging, real-time interactions for kids.
  • Optimized for mobile devices (performance, resolution, and input responsiveness).
  • This project was a fun intersection of creativity and technical problem-solving, and it gave me a chance to build a full experience, from engine to interface, entirely on my own tools.
  • ActionScript 3, Adobe Flash, Sound Design, Game Design
  • Space Cropper 2 is the sequel to my original action-arcade game Space Cropper, developed entirely in pure Flash and ActionScript 3. The game combines fast-paced gameplay, stylized visuals, and custom audio to deliver a polished arcade experience.
  • Sole developer: Handled everything from core mechanics to final polish — including animation, UI, sound design, and implementation.
  • Built entirely with native Flash display list and ActionScript 3, without relying on external engines or frameworks.
  • Designed dynamic gameplay and visual feedback systems to keep players engaged.
  • Created the entire soundtrack and sound effects, giving the game a distinct audio identity.
  • Visual assets were adapted from Lostgarden.com under an open art license.
  • Received a rating of 8/10 (“Great”) on FGL.com, a leading platform for publishing and monetizing Flash games.
  • Trailer: https://www.youtube.com/watch?v=PxiPpPC2lBg
  • Flash, ActionScript 3, Stage3D, Custom Engine (ND2Dx), WorldGameMaker
  • SoundQuest was a 2D social video game developed for Facebook as a promotional campaign for Sony Ericsson. This project marked the beginning of both my ND2Dx 2D GPU-accelerated engine and the creation of the WorldGameMaker editor.
  • Built the entire game engine using Flash + Stage3D, including physics, effects, level editing, collisions, and rendering pipeline, laying the foundation for future tools and projects.
  • Developed highly responsive controls for the player’s dragon character, going through many iterations to get the feel and gameplay experience just right.
  • Created and used the WorldGameMaker IDE for building levels and managing assets, kickstarting a full-fledged development tool that evolved well beyond this project.
  • The game was one of the first large-scale promotional games to use Stage3D and pushed the tech further than most Flash projects at the time.
  • Successfully delivered a smooth, visually rich, and engaging game that was a major success for Sony Ericsson’s campaign.
  • This project was pivotal in my career, not just as a game, but as the start of a broader technical ecosystem that would power many of my later works.
  • Flash Meta Games was a web portal designed to aggregate and showcase Flash games, complete with metascores, user feedback, and game details collected from across the internet.
  • Built a custom Flash game portal using PHP and MySQL, on top of a heavily modified WordPress backend with a fully original theme.
  • Developed a custom web crawler and data collector to scan the internet for Flash games and gather associated metadata, including scores, comments, tags, and other useful stats.
  • Implemented a clean, user-friendly interface where visitors could discover, rate, and play Flash games directly on the site.
  • Focused on performance, metadata accuracy, and content organization to stand out from other generic game portals.
  • This project was part experimentation, part archival effort, a way to explore automation and game discovery.

Total: game contest for IOS (mobile)

Reed.be
July 2014
Freelancer
bruxelles
Belgium
  • Development of the game for IPad 3
  • Flash ActionScript 3
  • Development of a video game in the style of Qix, Xonix and Volfied with new game mechanics and graphics.
  • Noted 8/10 on FGL.com (1st monetization website for web games)
  • Very good comments on Newgrounds.com, one of the biggest game portals on the web (https://www.newgrounds.com/portal/view/644942)
  • Flash ActionScript 3
  • Animations, special effects, sound design.
  • Art based on lostgarden.com
  • Development of the interactive video using Flash Stage3D and ActionScript3.
  • The core idea is the same as for the Prototype. Overlay personalized user images on top of a trailer.
    This one was a bit trickier though as I needed to use complex masking techniques that needed to run at 30 fps in high quality mode.
  • Using WorldGameMaker editor.
  • Development of the Flash game on Facebook and interactive terminal present at Roland Garros
  • Flash ActionScript 3
  • Whole game including animations, transitions, content and special effects
  • Using NodeJs on the backend for game scoring and other verifications
  • Development of a crossplatform application for Android and IOS
  • Developed in Flash ActionScript3 + Stage3D
  • Using WorldGameMaker editor
  • Development of a flash video game (2d engine, logic/mechanics, etc...)
  • Developed in Flash ActionScript3
Learn more
  • Development of the promotional website for a blockbuster video game called Prototype, by Activision.
  • The idea was to allow people to connect to the website using their facebook account. The facebook connect feature had just made its appearance. We then integrated people's data (information & pictures) right into the video game trailer. This was probably the first time ever such a thing was being done.
    The website got international attention. Big brands such as Microsoft US contacted us.
  • Flash ActionScript 3
  • Whole website including animations, transitions, content and special effects
  • Flash ActionScript 3
  • Whole website including animations, transitions, content and special effects
  • Flash ActionScript 3
  • Whole website including animations, transitions, content and special effects
  • Flash ActionScript 3
  • Whole website including animations, transitions, content and special effects
  • Flash ActionScript 3
  • Whole website including animations, transitions, content and special effects
  • Flash ActionScript 3
  • Whole website including animations, transitions, content and special effects
  • Flash ActionScript 3
  • Whole website including animations, transitions, content and special effects
  • Flash ActionScript 3
  • Whole website including animations, transitions, content and special effects

Professional Flash Developer for Emakina

Emakina
June 2008 to November 2008
Full-time
Bruxelles
Belgium
  • Flash developer (ActionScrip3, FlexSDK, ...)
  • Development of a matrix screensaver in 3D
  • OpenSource project developed in VisualBasic 6 at the time. It received many awards, notably on Planet Source Code.com.

Other professional experiences

multiples
June 2004 to December 2005
Freelancer
Bruxelles
Belgium
  • Various projects for Digi-Work.be
  • Development of the dynamic side of the Bruylant Group website
  • Realization of the entire Benoît Cerexhe (minister in Bruxelles) personal website
  • 3D video for CIRB (irisnet)
Skills

Front-end

  • React, Vue, TypeScript, JavaScript
  • HTML & CSS, Tailwind CSS
  • TanStack Router & Query, shadcn/ui, Vite, Astro
  • Web Components, GSAP (animation)

State management

  • Zustand, Vuex, Pinia

Back-end

  • Node.js, Deno, PHP
  • SQL (MySQL), REST APIs

Tools & workflow

  • Git, Docker
  • Testing with Vitest
  • Agile
  • i18n (multi-language apps)
  • Single sign-on (Azure AD)

Architecture

  • Modular app design
  • Reusable components
  • Migrating legacy systems
  • Performance optimization

Graphics & animation

  • WebGL, Three.js, HTML5 Canvas
  • Motion design

Platforms

  • Web (Flash AS3, Stage3D / Unity3D C# / HTML & JS / Vue / React))
  • IOS (Adobe Air / Unity3D C# / Electron)
  • Android (Adobe Air / Unity3D C# / Electron)
  • Desktop (Adobe Air, Stage3D / Unity3D C#, Electron, Node, Deno, Haxe)

Games

  • Unity, C#, Haxe
  • Multiplayer (Photon)
  • ActionScript 3 / Stage3D (legacy)

Design

  • Figma, Photoshop, Illustrator, Animate

Product & marketing

  • Product ownership
  • Working with stakeholders
  • SEO, Google Ads

AI & Web3

  • Solidity, Ethers.js, Web3.js
  • Data management and workflows with LLMs
  • Fascinated by film since seeing the making of Star Wars as a kid. I still read and watch behind-the-scenes material, and write to directors whose films moved me (some answer).
  • Spent two and a half years backpacking through Australia and Asia, working on farms along the way. Since then, one or two short trips a year, mostly to meet people.
  • Self-taught pianist who composes from time to time. I played in a small band that appeared on the radio, and I also play some guitar.
  • I sketch game ideas, characters and concepts. It shapes how I design products.
  • Practice every day.

Ecriture Multimédia

ISFSC

September 2001 to June 2004
Development, design, project management, traineeships, ...
Left with Distinction and Great Distinction for the "end of studies" work.