I am a computer Science graduate from EPFL, where I worked with Prof. Clément Pit-Claudel and Dr. Aurèle Barrière in the SYSTEMF lab. I am currently seeking a PhD position.

Research interests

My main interest lies in programming language design and implementation, with a particular focus on extensible verified compilers. My aim is to build compilers as extensible and formally verified rewriting systems, allowing users to experiment with domain-specific optimizations and features while maintaining correctness. I would like to use such approach to build high-performance DSLs.

Research

Linear Regex Matching

Most of my previous research revolved around the efficient matching of modern regular expressions, particularly those used in JavaScript. In JavaScript, regexes are typically implemented as part of the runtime (for example, in V8) using a backtracking algorithm. While fast on average, this approach has an exponential worst-case execution time, making the web quite vulnerable to ReDoS (Regular Expression Denial of Service) attacks. Alternative algorithms to match modern regexes in linear time do exist, one is even available in V8. However these performs often poorly on average, and in the case of V8, this alternative engine is kept behind a flag. To alleviate these issues, I built a compiler that translates JavaScript regular expressions to WebAssembly. The resulting code executes in linear-time and is also 3 to 4 times faster than the implementation within V8. The compiler itself was compiled to JavaScript, making it available as a web library. This work was carried out as part of a semester project at SYSTEMF (report). I later extended this idea by reimplementing a similar compiler directly within V8, targeting native machine code by leveraging V8’s existing compilation infrastructure. The resulting compiler not only produces efficient code but also achieves compilation speeds comparable to V8’s original regex compiler. This work was completed as part of my master’s thesis. In the meantime, I completed an internship at Oracle Labs, working on TRegex, a regex engine that leverages Graal for native compilation. There, I developed novel algorithms for efficiently matching a feature known as “bounding repetition” in linear time.

Teaching

Student Teaching Assistant

During my Master studies I TAed the following classes: Introduction to Multiprocessor Architecture (CS-307), Stochastic Models in Communication (COM-300), Software Engineering (CS-305) and Software Construction (CS-214). The work consisted in answering questions during exercise sessions and online, creating exercises, labs and exams, and grading them.

Software Project Coach

For the Software Development Project course (CS-306) I coached for 4 groups of ~6 students, each building an Android app. I helped them use good software engineering practices, to structure their project and to use modern tools.