avatar

Alexandre Serex
he/him

Software engineer

Neuchâtel, Switzerland

CV Template
About

I’m first and foremost a software engineer. Being able to understand, sythesize and translate the needs of the project at hand into software architecture and features is the heart of my work.


In an effort to improve game development environments, my latest efforts have been to learn and implement Development Operations (DevOps) for game engines. I’ve implemented automated testing, continuous integration and continuous deployment on the cloud for Godot, Unreal Engine and Unity. Along with a few other tools, this can constitute a whole game development pipeline for small and medium teams that lets them develop in the best of conditions. I’ve called this cloud platform Game Dev Space (link), built with open source software and deployed with docker.


Other than that, most of my programming experience lies in tools programming. During my five years in AAA at Quantic Dream as a Motion Capture Pipeline Developer, I’ve used Python and Qt/PySide to build scripts, librairies, standalone applications, Motion Builder plugins, server applications and web backends. Web development is a big part of tools programming since it provides easily accessible, maintainable and interoperable applications. I’ve developed both static and dynamic websites for data visualization and process management using a variety of tools like Vue, Nuxt, Astro, Tailwind, Vite, Django, Vitest, Storybook and Playwright.


As a game developer, I have essentially done all of my projects in game jams or by expanding on game jam projects. I have developed most of my games on Unreal Engine 4/5 using Blueprints and heavily relying on the Material Editor and the Procedural Content Generation framework. Recently, I’ve discovered Godot, an open source, lightweight and elegant game engine which makes for a wonderful Developer Experience especially when paired with Game Dev Space for testing and automation.

CV Template
Work

Software and DevOps Engineer

Neuchâtel, Switzerland @ Freelance

2024 - Present
  • Development of Game Dev Space
  • Setting up of git forges, remote development environments and other web-hosted services on Infomaniak’s cloud in Geneva
  • Development of workflows for Unreal Engine, Godot and Unity using Github Actions on a Gitea forge
  • Deployment of a Perforce server with Prometheus / Grafana monitoring and a Horde server for Unreal Engine CI
  • Development of a complete trunk-based pipeline for software development using Github Actionson a Gitea forge
  • Intervention at Alpes Laser to introduce DevOps and Continuous Integration practices to the IT team.
CICDAutomationWebGame developmentDockerInfrastructureGitPerforce

Game development teacher

Geneva, Switzerland @ SAE Institute Geneva

2024 - present
  • Introduction to Unreal Engine for 2nd year students: Blueprints, Material Editor, PCG, Animation blending and Perforce.
  • Introduction to Tools Programming for 2nd year students: Python, Qt, PySide, Docker, FastAPI and GitHub Actions.
  • Project management for 3rd year students: Jira, Miro, Agile development and teamwork in general.
Unreal EngineTools programmingTeachingProject management

Motion Capture Pipeline Developer

Paris, France @ Quantic Dream

2019 - 2024
  • Improved the Motion Capture Pipeline of a AAA studio, regularly working with a variety of teams: tool programmers, animators, mocap operators, producers, directors, writers, environment and character artists, among others.
  • Developed a standalone Qt/Python application designed to process thousands of animations automatically: ROM calibration, retargeting within the environment in Motion Builder, exporting in Maya then in-engine - all in a single slick.
  • Developed a Motion Builder plugin with Qt/PySide to manage a 3D scene live during a shoot while handling production tracking to take care of last minute changes and unforeseen issues.
  • Setting up of Flow’s entity architecture and processes for efficient production tracking at scale among 300+ coworkers.
  • Creation of a fullstack website to handle Flow’s event system in realtime through Webhooks using Django and Postgres for the backend and Vue for the frontend.
  • Developed an RV plugin to let animators define timestamps in mocap reference videos for later automatic processes - this step used that used to take hours now only take a few minutes.
  • Developed a C++ library that converted the company’s custom 3D file format to FBXon the fly so that characters and environments could be imported in other tools like Motion Builder.
  • Developed a collection of tools to handle the positioning of mocaped characters in the engine’s levels so character would be placed correclty and automatically in the game’s world without human intervention.
PythonQt/PySideTeamworkProduction managementFlowAnimationMotion BuilderMayaMotion CaptureWebFullstackDjangoVueDockerC++

Civil service

Lausanne, Switzerland @ Ecological Lab - EPFL

2017 - 2018
  • Implemented a fluid simulation of Lake Genevua in Python with Numba for Just-in-Time compilation for a postdoctoral researcher.
  • Developed an instrument controller in C++ to run on an Arduino that went down at the bottom of the lake to gather data for a PhD student.
  • Developed a website using Meteor to browse and visualize data acquired on the field using a Google maps style user interface.
PythonC++WebTeamwork
CV Template
Skills

Programming

PythonFrontendBackendC++C#

Game development

Unreal EngineGodotMocap managementTech animationTech artUnity

Frameworks and applications

Motion BuilderQt/PySideDjangoAstroVueNuxt

DevOps tools

GitPerforceDockerGitHub ActionsGiteaHorde

General skills

Software architectureTeamworkProject managementCommunicationAgileTDD/BDD

General tools

Flow/ShotgridJetbrains IDEsVSCodeCoderJira
CV Template
Projects

Game Dev Space and DevOps

2022 - 2024

DevOps is a group of principles and practices that promotes monitoring, testing and automation of software development. It focuses on faster development cycles and software stability. It’s about bridging the gap between Development (software creation) and Operations (managing and deploying the software).

In other words, DevOps is about setting up a toolchain that helps developers control their development cycle and the state of their software.

I started learning about Docker in 2022. While it’s not a DevOps-specific tool, we can benefit a lot from it to replicate our software in consistent environments and automate tasks in said environments.

Having this new tool under my belt was key to develop and deploy the event-based website I made at Quantic Dream in 2023. This let me control the environment of the website, share dependencies with coworkers, run tests and deploy easily.

It’s when developing Game Dev Space that I really started setting up a whole DevOps pipeline dedicated to game development. Docker became essential to setup a variety of services on the cloud to setup automation based on Github Actions.

I would recommand the following GDC talk by Seth Coster on how Devops principles can be applied to game development: Stress-Free Game Development: Powering Up Your Studio With DevOps.

CICDAutomationDockerGithub ActionsInfrastructure

Automatic retargeting at scale

2019 - 2024

At Quantic Dream, a single day of Motion Capture (Mocap) can mean hundreds of animations, and we’re shooting again the day after. That’s why I built a Qt tool to automate, using Motion Builder and Maya, the processing and retargeting of these animations with a single click.

This tool let the Animation Lead deliver a rough batch of animations barely a few hours after a shooting was done so they could be integrated in game. This gave her team some time to cleanly retarget the animations and rerun some parts of the automated process to replace the rough animations with the now clean ones.

Learn more about this tool in this presentation we made in 2022 at Gamecamp (in french).

PythonQt/PySideAutomationAnimationProduction ManagementMotion Builder

Live manager for Mocap shooting

2020 - 2024

When shooting Mocap, it can be really beneficial to have a 3D reproduction in realtime of whatever is happening on set. This lets everyone see how their character moves as they move or if they collide with the environment.

This is where the Live manager comes in. It’s a Motion Builder plugin built in Python/Qt that lets us load the Level and Characters in 3D and retarget them on our actors in realtime.

Additionnaly, this doubles up as a production management tool. It will save in Flow (a production tracking software) which actor/actress is playing which character for a given animation in a given level.

Learn more about this tool in this presentation we made in 2022 at Gamecamp (in french).

PythonQt/PySideAutomationAnimationProduction ManagementMotion Builder

Plenty of Game Jams

2016 - 2024

My first Game Jam was in 2016 using Unity and it was the Epic Game Jam. Since then I’ve participated to tens of them: other Epics, Global Game Jam, Ludum Dare, all 48 hours or less. Sometimes alone, sometimes in teams of up to fifteen people.

My latest game with Unity is Doubly Fluffy, a rythm-racing game made with a team of three people during the Epic Game Jam 2017.

I tried to do the 2022 Epic Game Jam by myself to learn the new Procedural Content Generation system of Unreal Engine 5. This is how I’ve built Reborn, an interactive experience where you have to climb a mountain and the time of day evolves with your altitude. No single mesh in this level has been hand-placed, it’s all procedural.

My latest Game Jam has been on Godot 4 and it was once again an Epic Game Jam. We were a team of seven and created Wildwood Melodies, a 2D game where you have to imitate the song of animals to gain their powers and find your way back home. This is the first time I used Game Dev Space for a gamejam and it held really well, allowing us to make last minute changes after playtests and deploying the game on Itch in barely a minute, automatically.

GodotUnreal EngineUnityCommunityGame development

Event-based pipeline on the Web

2022 - 2023

The Flow production tracking software is home to a lot of manual changes by the user. It’s a portal to every asset in the company and therefore can be used as an interface to trigger some automated work, for which I created a fullstack website using Django, Vue and Postgres.

Some of the responsibilities of this website was reacting to Webhooks sent by the Flow production tracking system on specific events. For example, the name of the animations were determined by a collection of metadata. So when a new animation is created by anyone in Flow then its name has to be updated accordingly.

The creation of an animation therefore triggers a Webhook to a URL on our website. The website then triggers an asynchronous task to rename the animation accordingly and stores the result of all of this in the database. A frontend lets us monitor all of this in realtime.

Production ManagementDatabaseWebFullstackPythonDjangoVue

Architecturing production tracking

2019 - 2024

At Quantic Dream, the tool used for production tracking is called Flow (previously Shotgun, then Shotgrid). It’s basically Excel sheets on steroids, on the cloud, structured like a database. This is where people go to look at the production status of certain assets, their upward and downward dependencies, etc.

All of these assets have to be structured together as so called entities. The entities and their relationships are key to have a meaningful representation of the assets and their metadata. I’ve been in charge of this structure for my five years at Quantic Dream.

Flow also has an API to be able to access its data through code. This API is quite barebones and non-opinionated so I made a python wrapper around it. This was used around most of our python toolchain when needing to interact with Flow in a way that fit our workflows better through a single library which helped for debugging.

PythonAutomationProduction Management
CV Template
Studies

Bachelor of Computer Engineering - Software Development

Neuchâtel, Switzerland @ Haute école Arc Ingénierie

2014 - 2017
PythonC++WebTeamworkC#OpenGLCUDAJava
CV Template