Thibault Raffaillac

Pedagogical engineer @

École Centrale de Lyon

SICAL research team

I am an engineer, teacher and researcher at École Centrale de Lyon since September 2019. I obtained a double degree in Engineering and Computer Science from Centrale Marseille and KTH Royal Institute of Technology (October 2012), worked in Paris as R&D engineer on optimizing software for embedded TV decoders (December 2012 — June 2014), did a short internship at Inria Saclay (March 2015 — August 2015), and defended a PhD in Human-Computer Interaction at Inria Lille (November 2015 — December 2019).

These days I contribute to the development of the competency-based curriculum and multidisciplinary teaching activities, while providing technical support for teachers to manage courses with digital content. I am a member of the Sustainable Development and Societal Responsibility local committee, and try to be as proactive as possible in that domain. As a teacher I am involved in Algorithmics, Data Structures, Software Engineering, User Interfaces, and Competitive Programming (for which I also organize regular trainings). As a researcher my main motivation is to make it easy to program applications with user interaction. I work hard to explore unconventional paths, most of my spare time going into compulsively crafting code then sharing it with academic and engineering communities.

On a personal note I am an avid hiker, cook, cyclist, gardener, and heavy metal enthusiast 🤘.


Wind farm challenge

Website for a teaching challenge on optimizing energy production (current)

Automated student grading

Using the contest platform DMOJ to help students assess their work [Didapro'20]

Building GUIs with ECS

Adapting a model from video games to Graphical User Interfaces [IHM'18, EICS'19🥇]

The animation operator

Suffixing setter function calls to turn them into animations [EICS'17]


Experimental software decoding architecture for the H.264 video format

Better compiler feedback

Illustrating the usefulness of a richer communication with compilers [PPIG'12]


[Didapro'20] T. Raffaillac, F. Chavanon & R. Vuillemot. Utilisation d’un juge en ligne pour l’évaluation automatique des programmes des étudiants. (Poster) À la 8e édition du colloque Didapro-DidaSTIC (Didapro 8).
[EICS'19] T. Raffaillac & S. Huot. Polyphony: Programming Interfaces and Interactions with the Entity-Component-System Model. In the 11th Symposium on Engineering Interactive Computing Systems (EICS 2019). (33.3%) [HAL] Best paper
[IHM'18] T. Raffaillac & S. Huot. Application du modèle Entité-Composant-Système à la programmation d'interactions. À la 30e conférence francophone sur l'Interaction Homme-Machine (IHM 2018). (50%) [HAL]
[EICS'17] T. Raffaillac, S. Huot & S. Ducasse. Turning Function Calls Into Animations. In the 9th Symposium on Engineering Interactive Computing Systems (EICS 2017). (35%) [HAL]
[EICS'17] T. Raffaillac. Language and System Support for Interaction. (Doctoral Consortium) In the 9th Symposium on Engineering Interactive Computing Systems (EICS 2017). [HAL]
[PPIG'12] T. Raffaillac. Exploring the design of compiler feedback. In the 24th Annual Workshop of the Psychology of Programming Interest Group (PPIG 2012). [Prezi]


PeriodTitleYearInstitutionLab time
19/20Algorithms and data structures3École Centrale de Lyon80h (TA)
19/20Object-oriented design and programming3École Centrale de Lyon60h (TA)
19/20Web application project3École Centrale de Lyon30h (TA)
19/20Supervised project: preparation to code contests3École Centrale de Lyon20h
18/19Introduction to human-machine interfaces1IUT A de Lille64h (TA)
18/19Advanced algorithmics2IUT A de Lille64h (TA)
18/19Introduction to computer systems1IUT A de Lille64h (TA)
17/18Web technologies1Université de Lille36h (TA)
17/18Algorithms and complexity4Université de Lille36h (TA)

Signs of life

CurrentKattis profile, CodeForces profile, CodeChef profile
The programming contest platforms I use the most at the moment.
2020Hash Code 2020
2826th/10724, 2nd in our hub, team XoXot with Damien Masson, Nicolas Crosetti and Paul Gallot.
MOOC on university teaching (French)
Followed during 10 weeks for ~2h/week [Certificate of completion]
SWERC 2020
My very first participation, as a coach, with teams ECL 1 (82th/98) and ECL 2 (84th/98). I was also glad to score well among French institutions at the coaches contest.
Mise en place d’une plateforme de programmation compétitive comme support de TDs (French)
Workshop given on 5 February during the colloquium Didapro 8, to present the setup and use of DMOJ for automated grading.
2019PhD thesis (French)
Written in HTML, using paged.js to convert to PDF. Oral defense was given on 18 December at IRCICA, Villeneuve-d'Ascq, France. [slides]
Raid Centrale Lyon
Running, cycling and canoeing. We registered for the discovery level (without training) with a fellow PhD student and finished 3rd.
Hash Code 2019
91th/6671, 6th in France, team Lokidoki on my own.
2018Catalysts Coding Contest
Team //#include <mercy>, 2nd in Lille, for which I participated in organizing the hub.
Hash Code 2018
1122th/3012, team //#include <mercy> with Lucien Mousin.
2017Demonstrating animations in Pharo Smalltalk
Presentation given on 19 May at Pharo Days, Lille, France.
Catalysts Coding Contest
Team ThiYo, 3rd in Lille, where I also helped organizing the hub (printing T-shirts and communicating to students).
Hash Code 2017
186th/2815, 1st in our hub, team ThiYo with Yoann Dufresne.
Meilleur jeu du monde
Nerds + Beers = Game dev party... (during FOSDEM 2017)
2016Bamboo that bends
A 3D Twister game made with a team of five people for the ZooMachines Interactive Arts festival, which was way funnier to play than the videos show!
Early ECS demonstration in Pharo Smalltalk
Presentation given on 25 August at ESUG 2016, Prague, Czech Republic.
A case about parsing errors
An article about the handling of errors in edge264.
Hash Code 2016
153rd/1054, 1st in our hub, team Brony Express with Izzatbek Mukhanov and Sébastien Poulmane.
The Maze Nightmare
Short game created with two friends for the Ludum Dare Jam 35. As usual I did the artwork and music. Beware the game is meant to be oppressing...
2012Little Sheep
Short story-telling game created during 3 days with a friend for the Ludum Dare Jam 23. I did the artwork and music :)
2011Assisting interface for easy administration of a CMS
Study of a novel interface for online Content Management Systems, for the Interaction Design course. [PDF]
Assassination Game Application
Video prototype for a Group Project of the Interaction Design course.
WHILE compiler
Optimizing compiler backend written in Java for a subset of the WHILE language to UNIX x64 assembly, for the Program Semantics and Analysis course. [sample output]
Diffusion en direct avec VLC (French)
Interactive tutorial to easily set up a high-quality real-time video broadcast using VLC.
2010Mise en place de VOD (French)
Step-by-step documentation to install and fine-tune a Video-on-Demand server on Linux.
2009Film de Rentrée du GInfo (French)
Short movie promoting the Computer Science student association at the annual associations fair of Ecole Centrale Marseille. A must-watch :)
Compression avec StaxRip (French)
Tutorial to compress a video exported by Premiere Pro, using the software StaxRip. The parameters would correct the flaws introduced by Premiere (its disastrous deinterlacing filter) and output in a format ready for integration in a Web player.
Compression avec MeGUI (French)
Tutorial to compress a video exported by Premiere Pro, using MeGUI. It was soon superseeded by the tutorial on StaxRip.
2008La lentille électrostatique (French comments)
Simultation of an electrostatic lens by shooting electrons in a simple finite element mesh, created for the TIPE exam at the end of the Classes Préparatoires.
Modèle EXE (French comments)
Source code for nasm based on the PE/COFF reference, to create an executable file from scratch without linking.
2007Oscillations d'un Fil (French comments)
Real-time simulation of a flexible wire using Lagrangian Mechanics and RK4 integration, created for the TIPE exam.
Casse-briques (French comments)
Breakout-clone where the paddle can tilt.
2005Visionneuse 3D (French)
Interactive viewer for 3D objects stored in files. This program ended a 3-year obsession to create a 3D engine, and was my last BASIC program before playing with more modern languages.