Formation
École Normale Supérieure Paris-Saclay
Master's degree in Computer Science Research (MPRI)
École Normale Supérieure Paris-Saclay
Bachelor in Computer Science
Université Lyon 1 Claude-Bernard
Second year of Bachelor in Computer Science and Mathematics
Jean-Perrin preparatory school
First year of Bachelor in engineering
Lycée La Trinité
High school diploma with science focus - with honours
Experience
Developer
Open-source software developement: contribution to the tools of the OCaml platform: odoc, ocamlformat, dune. Search bar in odoc: contributions from the CSS to the search algorithms. Coordination and integration of the feature with the dune build system.
Research internship in computer science
4.5-month intership tutored by Vincent Laviron and Pierre Chambart. Generalisation of recursive tail-call optimisation modulo constructor.
Research internship in computer science
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
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
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
University programming/algorithms competition. Participation in teams of three students. Ranked 37th of 95 teams representing universities from multiple european countries.
Intern C# developer
Two month internship. HSLS shaders, introduction to DirectX and OpenCV, Windows Form development. Greatly rewarding experience abroad.
Front end developer
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
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 two packages on Opam, the Ocaml package manager, and contributed to many: software.
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.
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. I also co-authored the UI module in gamelle, a game library for OCaml.
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. Contributions to the design of odoc documentation pages.
Miscellaneous
Use of a Unix system with the command line : file manipulation, Git, SSH. Image editing with GIMP and Inkscape. Typesetting with Latex.