My name is Martijn Dwars, a 27-year old Software Engineer. I obtained my masters degree at Delft University of Technology, where I graduated from the Programming Languages group led by Eelco Visser. I currently live in the beautiful city of Zürich (Switzerland) where I work as a Senior Member of Technical Staff at Oracle Labs. When I’m not behind a monitor I like to go running, biking, or hiking.

From April 2017 until November 2017 I did an internship at Oracle Labs HQ where I worked on Green-Marl, a domain-specific language (DSL) that is specially designed for graph data analysis. My goal was to create a new compiler backend that compiles a Green-Marl program to C++ code that compiles and links against the distributed graph analytics engine PGX.D. I implemented this compiler backend in Stratego, a program transformation language that is part of the Spoofax Language Workbench.

After my internship I joined the Parallel Graph Analytix (PGX) team as a full-time employee. My biggest contribution to PGX was the development of PGX Algorithm, a new frontend for Green-Marl language that has a strong resemblance to Java. I also worked on gremlin2pgx, a transpiler that transforms Gremlin traversals to PGQL queries, allowing existing Gremlin workloads to be executed on PGX. This work led to an accepted talk at Oracle Code One 2019. My other contributions in PGX include the development of several PGX shells (Java, Python, R), a guest lecture at TU Delft’s Compiler Construction course (CS4200), and several patent applications.

At the end of 2019 I joined the Walnut team at Oracle Labs. Within this team I focus on the design and implementation of a set of Active Libraries. Active Libraries are libraries that are self-optimizing and perform aggressive speculation based on the data they observe. By leveraging Truffle and Polyglot, each library needs to be implemented only once, and is available to any other Truffle interpreter. This resulted in the creation of FAD JSON-B, an implementation of the JSON-B API (JSR 367) that specializes the JSON (de)serializer on the observed data. Using these techniques we were able to achieve significant speedups compared to Jackson, the state-of-the-art JSON (de)serializer on the JVM.

A recruiter-friendly version of my professional achievements can be found here.