An overview of what I've been working on so far.
Of course these are not the only jobs I worked, but those I consider to be the most relevant to my current career path (or the list would go on and on !).

I am currently working on an unannounced project at Ubisoft Montréal using the proprietary Snowdrop game engine.
A lot of information is under NDA but my main missions include:

After five years working for AAA companies, I decided to work in a school to share my knowledge with students. That is why I decided to join ISART Montréal.
I first joined the school as a teacher for the video game programming first year class, then became head of the programming department of the Montréal school starting my second year there.
My responsibilities were varied and included on-site teaching, grading, promoting the school at industry events, act as liaison with students' families, creating plannings and interviewing potential teacher candidates.
I gave lectures about multiple technical subjects at ISART, but here were the main ones:
The final project for the first-year class was recreating a Minecraft-like first person game, using a custom voxel engine written from scratch using low-level libraries like OpenGL for rendering and GLFW for windowing.
The final project for the second-year class and the curriculum was to build a C++ 3D game engine from scratch, which I gave lectures for about the following topics:

I spent three years at Ubisoft Ivory Tower working on the online open world racing game The Crew 2.
There, I worked on developing new features for the game engine, as well as optimizing existing ones on all target platforms for the game at that point in time (PC, Xbox One, Playstation 4).
My tasks also included collaboration with other programmers on the game editor to maintain and create new tools for artists and designers.
I also collaborated with the Rendering team on topics such as ocean water rendering and texture management.
My missions included, but were not limited to :

I worked for two years on the highly anticipated game Dishonored 2 as a Tools Programmer until the release of the game.
My main mission was to maintain the game editor application, written in C++, and answer to every need the Art team would have to make their work easier and faster.
During this time, I had the opportunity to work with animators, 3D artists, VFX artists, and more...
Among my main missions were :

Being a fan of stage theater, I consider myself lucky to have been able to work with MetaLab.
I helped Reticular build a project that would allow the director to remote control stage robots during a stage performance.
The end goal was to be able to program robots to carry decor elements, or to build entire choregraphies using a dedicated app on his iPad.
We started from scratch to implement this project, using a mix of Python and Arduino C++ to do it.
For the wireless network code, we used the Python Twisted event-driven framework, combined with Arduino chips plugged in to XBee shields for short-range wireless communication.
The Python application's job was to be the middleman between the iPad and the Arduino driving the wheels of the robot.
The robot model was a Magabot.
I started working on the implementation of the iPad application in Objective-C, but my contract with MetaLab ended before I could finish the project.


An internship at Orten was my first experience in the world of real-time 3D rendering.
Orten is part of Groupe Lecante, a company specialized in building leg prosthetics and orthopedics devices in general.
Orten is the software R&D division of Lecante, working on a number of in-house developed projects that the company then sells to medical centers or for their own usage.
I worked on the flagship product of the company, OrtenShape, a CAD software used to model and correct photogrammetric body scans later used for prosthetics molding.
This software is built using C++ as programming language and Qt as a windowing interface.
My first mission was to profile the code of the application and come up with solutions to increase the performance of the most critical code paths. It got me experiencing with modern C++ multithreading, and a bit of CUDA.
Then I had to investigate a bug in VTK, the 3D visualization toolkit used by the application, to fix 3D model texturing when multiple textures are used instead of a single one.
Since it was tricky to figure out, we decided to open source on Github the source code of our solution, the vtkTexturingHelper, for other researchers to profit from it in case someone faced the same issue as us.
I wrote on my personal blog an article about this research which, according to Analytics, turned out to be a surprise hit and one of the most visited pages of the blog ever since.
