I am a PhD student at the University of Pennsylvania, where I am
fortunate to be advised
by Rajeev Alur. My
research interests lie in the intersection of programming
languages, distributed systems, and software verification.
I have done an internship in Microsoft Research, where I worked with
and an internship in the Automated Reasoning Group in AWS, where I worked with
Before my PhD, I did my undergraduate studies at the National Technical University of Athens,
where I was advised by Kostis Sagonas.
I am committed to ensuring that everyone feels comfortable being part of our research community.
I am always happy to talk to anyone (junior or senior) who feels like they want to share or discuss anything; be it a negative (or positive) experience, an interaction with another member of our community, or an issue with university and other processes.
I have often needed to seek help myself and found that having access to a listening ear is very helpful.
Automatic parallelization of shell scripts
PaSh paper (Best Paper ⭐ EuroSys 2021),
Dataflow paper (In submission),
Shell Future paper (HotOS 2021),
Short video (1st place ⭐ POPL SRC),
Shell Future talk (Distinguished Presentation ⭐ HotOS 2021)
Lazar M. Cvetković,
and Martin Rinard
Together with Nikos Vasilakis, we are
leading a research project on the automatic parallelization of shell scripts.
The ultimate goal is to improve our understanding of the shell,
approaching it from a programming languages viewpoint, and build frameworks
that enable further studies and analyses on it.
We have described this vision for the future of the shell in
(coauthored with Michael Greenberg)
that appeared in HotOS '21, where we also organized a
on future avenues for shell research.
The paper that started this research was published at EuroSys 2021
One of the main challenges that we had to overcome is that shell commands
are arbitrary black boxes that can be written in a plethora of programming languages,
making any analysis infeasible.
We addressed that by developing an annotation language that captures a few key properties
of shell commands that can then be used by our system to parallelize a script.
These annotations are written once per command, and can be shared among users
in the form of annotation libraries.
We are also working on a paper
that formalizes an order-aware dataflow model that is equivalent to a "scheduling-free" fragment of the shell.
We use this model as an convenient representation on which we apply transformations that expose parallelism.
After we are done parallelizing, the dataflow graph is transformed back to a shell script that can
execute on any standard shell.
Our work is open-source and available on Github.
Partial order driven stream processing
Flumina on Github
Diffstream on GitHub
Diffstream paper (OOPSLA 2020)
and Caleb Stanford
Existing abstractions for stream processing either consider streams to either be totally ordered sequences,
completely unordered relations, or some fixed point in between, e.g., CQL considers streams to be sequences of relations.
However, these representations face a number of issues.
If a representation does not capture adequate order, streaming queries can produce erroneous results
due to nondeterminism and out-of-order input data.
If a representation is "too ordered", then it does not expose available parallelism,
and optimizations due to lack of order.
We propose a flexible partial order abstraction that can capture fine-grained ordering requirements,
allowing for correct and maximally parallel stream processing.
Our first paper on this work was published at OOPSLA 2020
where we describe a differential testing framework
for stream processing applications that allows
users to define the ordering requirements on their application's output, improving testing accuracy.
We are also working on a programming model that can exploit the partially ordered nature of the input stream,
generating highly parallel implementations. This work is under submission,
but a prototype of the code is available on
-  Serverless Workflows with Durable Functions and Netherite. In submission. (link)
with: Sebastian Burckhardt, Chris Gillum, David Justo, and Christopher S. Meiklejohn.
-  Flumina: Stream Processing with Specification-Guided Synchronization. In submission.
with: Filip Niksic, Caleb Stanford, and Rajeev Alur.
-  An Order-aware Dataflow Model for Parallel Unix Pipelines. In submission. (link)
with: Shivam Handa, Nikos Vasilakis, and Martin Rinard.
-  Synchronization Schemas. Invited Paper at Proceedings of the 40th Symposium on Principles of Database Systems (PODS 2021).
with: Rajeev Alur, Phillip Hillard, Zachary G. Ives, Konstantinos Mamouras, Filip Niksic, Caleb Stanford, Val Tannen, and Anton Xue.
-  Unix Shell Programming: The Next 50 Years. Proceedings of the Workshop on Hot Topics in Operating Systems (HotOS 2021). (pdf) (talk)
⭐ Distinguished Presentation Award ⭐
with: Michael Greenberg and Nikos Vasilakis.
-  PaSh: Light-touch Data-Parallel Shell Processing. Proceedings of the Sixteenth European Conference on Computer Systems (EuroSys 2021). (link) (pdf) (talk)
⭐ Best Paper Award ⭐
with: Nikos Vasilakis, Konstantinos Mamouras, Achilleas Benetopoulos, and Lazar M. Cvetković.
-  Code-level model checking in the software development workflow at Amazon Web Services. Software: Practice and Experience 2021. (link)
with: Nathan Chong, Byron Cook, Jonathan Eidelman, Kareem Khazem, Felipe R. Monteiro, Daniel Schwartz-Narbonne, Serdar Tasiran, Michael Tautschnig, and Mark R. Tuttle.
-  DiffStream: Differential Output Testing for Stream Processing Programs. Proceedings of the ACM on Programming Languages (OOPSLA 2020). (pdf)
with: Filip Niksic, Caleb Stanford, and Rajeev Alur.
-  Code-Level Model Checking in the Software Development Workflow. 42st International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP 2020). (pdf) (talk)
with: Nathan Chong, Byron Cook, Kareem Khazem, Felipe R. Monteiro, Daniel Schwartz-Narbonne, Serdar Tasiran, Michael Tautschnig, and Mark R. Tuttle.
-  Security Criteria for a Transparent Encryption Layer. Workshop on Foundations of Computer Security (FCS 2019). (link)
with: Clara Schneidewind, Benjamin C. Pierce, and Steve Zdancewic.
-  HiPErJiT: A Profile-Driven Just-in-Time Compiler for Erlang. 30th Symposium on Implementation and Application of Functional Languages (IFL 2018). (link) (pdf)
with: Konstantinos Sagonas.
-  PaSh: Data-parallel shell scripting. Student Research Competition @ POPL. 2021. (link) (pdf)
-  Flumina: Correct Distribution of Stateful Streaming Computations. UCSD PL Tea. 2020. (pdf)
-  Flumina: Correct Distribution of Stateful Streaming Computations. Athens PL Seminar. 2019. (pdf)
-  HiPErJiT: A Profile-Driven Just-in-Time Compiler for Erlang based on HiPE. Athens PL Seminar. 2018. (pdf)
-  Configurable Consistency Notions - WPE 2 Report. University of Pennsylvania. 2020. (pdf) (talk)
-  HiPErJiT: A Profile-Driven Just-in-Time Compiler for Erlang based on HiPE. National Technical University of Athens. 2018. (link) (pdf)
- ACM SRC Grand Finals 2021 2nd place at Graduate Category among SRC winners across all ACM conferences.
- HotOS 2021 Distinguished Presentation Award Awarded for our paper "Unix Shell Programming: The Next 50 Years" (talk).
- EuroSys 2021 Best Paper Award Awarded for our paper "PaSh: Light-touch Data-Parallel Shell Processing".
- POPL 2021 Student Research Competition 1st place at Graduate Category.
- Gerondelis Foundation PhD Award
A system that automatically parallelizes your shell scripts.
A programming model and system for stateful distributed streaming computations.
A differential testing library for stream processing applications in Apache Flink.
- SIGPLAN-M Mentor
- POPL 2022 Student Volunteer Co-Chair
- HotOS 2021 Co-organizer of a panel on the future of the shell
- VMCAI 2021 Artifact Evaluation Committee
- POPL 2020 External Reviewer
In my free time I enjoy human activities.
I really enjoy lying down and falling
the presence of other people.
During the late 2010s I was obsessed with
but I am not going that often anymore.
I occasionally like producing rhythmic sounds from electric guitars, usually in the context of some jam session.