During the unconventional summer of 2020 I did an internship in RiSE in Microsoft Research where I worked with Sebastian Burckhardt. During my internship we worked on a new implementation of Azure Durable Functions, a programming model for reliable stateful serverless applications. The new implementation, called Netherite, guarantees reliable execution of stateful applications and achieves an order of magnitude improvements in throughput and latency compared to the existing implementation. These performance improvements can be attributed to a series of optimizations, such as batching and speculation, that both reduce the number of storage accesses as well move them out of the critical path.
I spent the summer of 2019 in the Automated Reasoning Group at Amazon Web Services under the supervision of Daniel Schwartz-Narbonne. We used the C Bounded Model Checker (CBMC) to verify that certain critical C libraries (aws-c-common, aws-esdk-c) are memory safe and satisfy important functional correctness properties. In the process, I implemented several small extensions for CBMC, mostly focused on improving the support for function contracts.
Before my PhD, I was an undergraduate student at the National Technical University of Athens, department of Electrical and Computer Engineering. I completed my thesis “HiPErJiT: A Profile-Driven Just-in-Time Compiler for Erlang based on HiPE” under the supervision of Kostis Sagonas. It is available online in both English and Greek.
Throughout my undergraduate studies I have developed software for many projects with my colleagues. Some notable examples are a complete compiler for the language Edsger (source), an implementation of the Chord protocol (source), and an extension of the SIP Communicator (source).
I have also participated in Google Summer of Code 2017, where I worked with Evgeny Khramtsov to extend ejabberd. I implemented a mechanism that allows for certificate acquiring through the ACME protocol.