Émile Trotignon

Formation

École Normale Supérieure Paris-Saclay

2020 - 2022

Master's degree in Computer Science Research (MPRI)

École Normale Supérieure Paris-Saclay

2019 - 2020

Bachelor in Computer Science

Université Lyon 1 Claude-Bernard

2018 - 2019

Second year of Bachelor in Computer Science and Mathematics

Jean-Perrin preparatory school

2017 - 2018

First year of Bachelor in engineering

Lycée La Trinité

Lyon, 2016 - 2017

High school diploma with science focus - with honours

Experience

Research internship in computer science

Paris, France, Spring 2022

4.5-month intership tutored by Vincent Laviron and Pierre Chambart. Generalisation of recursive tail-call optimisation modulo constructor

Research internship in computer science

Paris, France, Spring 2021

Five-month internship tutored by François Pottier. Improvements the code generated by Menhir, the LR(1) parser generator for OCaml : Typing with GADTs for increased safety, allowing bolder optimisations. The number of allocations was divided by 4, and the speed increased by 10%, across various grammars.

Research internship in computational geometry

Lyon, France, Summer 2020

Six weeks internship tutored by David Coeurjolly and Vincent Nivoliers. My goal during this internship was to uniformly sample the surface of a potentially imperfect mesh. During the six weeks, I spent a good portion of my time programming in C++ and I used tools such as Polyscope and LIBIGL. My internship report is available here: emiletrotignon.github.io/files/rapport.pdf

Fullstack Node.js developer

March 2020

During a six week mission for the junior entreprise of ENS Paris-Saclay, I contributed to the website development of Expert People, a new freelancing platform. The technologies used were Node.js and Express.js. One of my achievements was parsing LinkedIn resumes in PDF format to auto-fill the resume form. Expert People's website (in french) : expertpeople.co

ICPC SWERC 2019-2020

Télécom Paris, January 2020

University programming/algorithms competition. Participation in teams of three students. Ranked 37th of 95 teams representing universities from multiple european countries.

Intern C# developer

Tel Aviv, Israel, Summer 2019

Two month internship. HSLS shaders, introduction to DirectX and OpenCV, Windows Form development. Greatly rewarding experience abroad.

Front end developer

Lyon, France, July 2018

For a month, I contributed to the graphical integration of the new website for ENSSIB, the French school for library curators. You can see their website here: enssib.fr

Technical skills

Compilation

I am very interested in compilation. In this domain, for a M2 course, I have written a type checker for the f-omega type system. The code is available here:github/f-omega. For a M1 course, I have written a compiler for an ML-style langage to X86. The code is available here: github/cours-compilation-p7. I have also programmed a compiler for a subset of the C language to X86 in 2019: github/mcc

Fundamental Computer Science

I have studied different aspect of fundamental Computer Science : Programming languages semantics, theory of parallel computing with shared memory, formal languages, calculability, logic. This enhances my understanding of computer science in general, in addition to the particular skills acquired.

Functionnal programming

I really enjoy functionnal programming languages, as well as advanced type systems. I have been programming in OCaml since my first year of university, and I am very passionate about this language. I have some experience with Scala and Rust, and I had a lot of fun exploring advanced C++ features. I also published a package on Opam, the Ocaml package manager : github/embedded_ocaml_templates. It includes a PPX rewriter, and a small parser written with Menhir.

Proof assistants and verification

I have taken a course on the Coq proof assistant, and one on the Why3 verification framework. I am not fluent with neither of this tools, but I would love to become more familiar with them.

GUIs

I have experience with a few frameworks for programming GUIs : Qt and Dear ImGUI with C++, WinForm with C#, Swing with Scala, Tkinter with Python.

Web development

Front-end : Good knowledge of HTML and CSS. One month experience during the summer of 2018.

Back-end : Professional experience developing a Node.js web app.

Miscellaneous

Use of a Unix system with the command line : file manipulation, Git, SSH. Image editing with GIMP and Inkscape. Typesetting with Latex.