Votre navigateur est obsolète !

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

×

Thomas John

Senior Software Developer

Freelancer Open to opportunities
Highly qualified software developer with over 20 years of professional experience. I began coding 27 years ago at the age of 16, creating chess games, FTP/HTTP/mail clients, and 3D animations that emulated the rain effect from The Matrix—earning me several online awards. In those early years and throughout the beginning of my career, I also developed various websites and promotional games in HTML, Flash, and other content management systems using PHP/MySQL.

Today, I specialize in building interactive applications, using whatever technologies are necessary to achieve the desired outcome (HTML, JavaScript, TypeScript, CSS, Vue, React, C#, Unity, Haxe, ActionScript, Canvas, OpenGL). I'm equally skilled in developing both microservices and monolithic backend systems in a variety of languages (C#, Node JavaScript, Deno TypeScript, PHP, SQL).

I adapt quickly to new technologies, whether they involve new languages, frameworks, or entire systems.
I excel at understanding new concepts, solving problems, identifying business and client needs, and maintaining a clear vision of how things work.

My ability to see the big picture—both from a business and technical perspective—allows me to challenge ideas in a practical and constructive manner, with a strong understanding of the needs and capabilities of the different actors involved.

I'm passionate about building products, whether it’s enabling customers to send digital certificates, create templates, draw on canvases, design interactive slideshows, optimize recruitment workflows with AI, or animate elements for highly interactive apps and video games. I approach system building and improvement with a clear and structured mindset, always eager to learn, driven by curiosity and creativity.
  • I started playing around with ChatGPT and Midjourney around a year ago. I quickly became fascinated by the possibilities offered by those AIs.
  • They both evolved in quite interesting ways but still remain limited in various aspects.
  • I started trying different LLMs to understand better the way they work and how they can be used.
  • I started coding tools that would allow me to do certain tasks quicker.
  • I learned to use LlamaIndex, a Data Framework for LLM Applications, and build a document parser (leveraging data segmentation and Embeddings) that I could use to quickly summarize and search trough them (using Deno for the back-end and Vue3 for the front)
  • I am currently working on different personal projects that help me dig deeper into this fascinating world
  • SmartCertificate is a platform that allows trusted people to send digital certificates that can be verified.
  • They needed a new front-end developer to revamp their whole SmartCertificate platform with a new, sexier and more ergonomic interface. The goal was to broaden their target audience.
  • They also needed someone with experience in back-end technologies, someone who understands clients, budget and business priorities. Basically, someone who has the capability to manage an entire project.
  • I quickly got involved in the whole business and became what we can call now a Product Owner, on top of my day to day developer job.
  • As a developer, I had the task to cut the monolithic c# platform that was SmartCertificate back then into smaller pieces that could be managed independently from each other.
    I first elaborated the ideal structure that I envisioned but very soon had to adapt to the very rigid one that the project had already been built on. Because of budget and time constraints, but also because of the very nature of what this platform brings and ensures to its clients: privacy and security.
  • A totally independent API was developed by our back-end developer under my supervision and I developed the front-end application from the ground up using VueJs 2 and Typescript whenever possible.
  • After 2 brand new versions of the platform, we consider the app to be in a very mature phase. Not much needs to be done anymore. It all works much better than before and needs less and less maintenance.
    A complete onboarding experience has been added to the tool, providing new clients with all the tools, tutorials and help they need to send certified documents to their recipients in just a few minutes.
  • The app features a full template editor, written entirely in vue 2. Users can drag and drop texts and images as well as use custom variables in order to make their content dynamic.
  • Users can import their own data using Excel and CSV files. A tool allows them to map their custom data to custom variables present in their own templates.
  • Vue2, Typescript, Html, Css, Javascript, Astro
  • After a good decade exploring Flash, ActionScript 3 and Stage3D to their limits, it was finally time to accept its fate and plunge into the world of HTML, CSS and Javascript.
  • Development of H, a mobile friendly website for Longines using built-in tools (in Haxe) for animations and layout (on top of CSS).
  • Development of the mobile friendly website for Agilytic. Using built-in tools (in Haxe) for animations and layout.
  • Animation of the User Interface of a banking mobile app for a bank in Luxembourg using Framer.
  • Development of numerous other smaller web projects.
  • ND2Dx is a very fast and optimized 2D GPU Accelerated game enging using Stage3D written in ActionScript 3. It leverages the GPU (and its shaders) to accelerate the rendering of the graphics and uses plenty of optimization techniques to get the best out of it.
  • It powers the WorldGameMaker editor.
  • It is extremely fast, way faster than Starling (Adobe)
  • It features a full blown Display List hierarchy for 2D elements using a double linked list approach to achieve very fast traversal and modification of the list.
  • Tinting, blendmodes, color transforms, pivot points, scale and size of 2D sprites
  • Animated sprites
  • Scenes
  • 2D Camera
  • Very optimized batching techniques to render as many objects on screen using optimized shader code
  • Full mouse support with very fast event system using Signals
  • Bitmap Fonts
  • Fully integrated component system that has almost zero cost
  • Full material system
  • A 2.5 D rendering feature
  • A complete animation system that is extremelly versatile and fast
  • A highly optimized code using the various ways the ActionScript3 VM was functionning to get the most out of it.
  • Github link: https://github.com/NoRabbit/ND2Dx

WorldGameMaker

myself
2011 to 2016
Brussels
Belgium
  • WorldGameMaker is a tool that I first created to allow our team at reed.be to build levels for a game we were developing for Sony Ericsson. The game was SoundQuest. I had the feeling the flash editor was not gonna be enough to do what we needed to do. On top of that, we wanted to use the new Stage3D technology (basically having access to the graphic card shaders).
    I needed an IDE that would allow me to create all sorts of animated things as well as having a basic physics system. First I tried building my own. It worked for some very small projects but I eventually switched to Nape, a professional and open source physics engine.
  • Development of an entire IDE that leverages the functionnality and power of my Stage3D + ActionScript 3 engine: ND2Dx
  • Component System
  • Dynamic Loading of Action Script Code into the IDE
  • Dynamic properties editor
  • Customizable
  • Run and Debug game inside IDE
  • Publish game to multiple platforms using AIR
  • Allows the creation of mobile and desktop Apps & Games
  • Almost complete UI system
  • Constantly evolving
  • I create most of my games and apps with it
  • Dynamic memory game for children using physics.
  • Development of the graphic engine in Action Script 3 and Stage3D (ND2Dx)
  • Creation of all graphic assets
  • Development of the whole game in Action Script 3 with mobile in mind
  • Using WorldGameMaker editor.

Endless Runner + Endless Jumper games in Unity3D & C#

Reed.be
July 2015 to 2015
Freelancer
Brussels
Belgium
  • Development of 2 games in Unity3D C#: a runner type of game and an endless jump type of game
  • Integration within a more complex application also developed within Unity3D
  • Development in ActionScript 3
  • Animations, special effect, sound design (soundtrack and effects), game mechanics
  • Art based on lostgarden.com
  • Noted 8/10 ("great") on FGL.com (1st monetization website for web games)
  • Trailer: https://www.youtube.com/watch?v=PxiPpPC2lBg

We Are Tennis Fans: mobile game (IOS & Android) for BNP Paribas - Roland Garros

Reed.be
June 2014 to September 2014
Freelancer
Bruxelles
Belgium
  • Development of a crossplatform game for IOS and Android
  • Flash ActionScript 3 + ANEs + Stage3D
  • Using WorldGameMaker editor
  • Development of a Flash game portal in PHP / MySQL
  • Customized version of Wordpress with original template
  • Development of a software that allows you to scan the web in order to collect flash games as well as their meta data (score, comments, etc...)

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 (http://www.newgrounds.com/projects/games/790899)
  • Flash ActionScript 3
  • Animations, special effects, sound design.
  • Art based on lostgarden.com
  • Development of the entire game mechanics in C# with Unity3D
  • Development of client side (game logic, interactions, etc...)
  • Development of the server side (game logic, multiplayer, etc...)
  • 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 social video game on Facebook (2d engine using Stage3D, level editor, effects, collision system, etc...)
  • Developed in Flash ActionScript3 + Stage3D
  • Using WorldGameMaker editor (this is the project that started the development of it)
  • 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

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)

Development & Art/Visual skills

  • Typescript
  • Vue 2 & 3
  • HTML / Javascript / CSS / XML
  • React
  • .NET (C#)
  • Haxe
  • NodeJs
  • Deno
  • ChatGPT
  • Llama Index
  • OpenAI API
  • PHP / MySQL
  • Midjourney
  • JQuery
  • Flash ActionScript 3 / Flex SDK
  • Acid
  • SoundForge
  • After Effects
  • C++
  • Photoshop

Languages

  • French: native
  • English: fluent
  • I have always been fascinated by movies ever since I saw Star Wars. I saw the making of it on video when I was probably 9 years old.
    Since then, I keep reading about it, I watch behind the scenes, send emails to directors whose films moved me (they answer sometimes :)) and write down ideas.
  • In 2005, I left with my backpack for two years and a half. I worked in farms and travelled for a year in Australia and then took a plane to Singapore, not really knowing where I was going. I didn't have a plan, nor a place to stay. From there, and during a year and a half, I made my way through Malaysia, Thailand, Cambodia, Vietnam, Laos, Myanmar (Burma), China, Thibet, Nepal and India.
    Since then, I try to leave once or twice a year for just a couple of weeks.
    I like meeting new people, hearing their stories, telling them mines. Meeting people that generally travel alone is a very peculiar experience that nourishes me deeply.
  • I play piano since I'm little. Mostly self-educated, I like to play personal things. I compose from time to time, whether directly on my piano or via my computer. I was part of a small band several years ago. We went on radio.
    I also play guitar, a bit.
  • I need exercise even if I don't do as much as I want. I do yoga almost every day, alone and with a teacher. In my youth, I played basketball and football. I also did kung-fu for 6 years. I plan to rehabilitate them in the near future, step by step.
  • I draw what crosses my mind: game ideas, characters, project, all sorts of concepts but mainly oriented towards games and apps.
    I never really pushed that part of me as I did with programming or even maybe music but I think that this side of me brings a lot to everything I undertake.

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.