Konstantinos Kallas


he/him or they/them
PhD student at UPenn
Co-creator of CS PhD MentoRes
Member of Penn's DSL and PLClub
Office: Levine 513 (or ⛰️)
Contact: kallas@seas.upenn.edu

Curriculum Vitae
Personal Blog

Overview

I am a final year 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 computer systems and programming languages.

I am a member of the Technical Steering Committee of PaSh, a shell-script parallelization project hosted by the Linux Foundation.

Together with Manos Theodosis we co-created CS PhD MentoRes in 2021, a mentoring initiative for people that are interested in applying for PhD programs in Computer Science and related fields but don't have access to adequate resources. If you are interested in applying for a PhD (or just want to know more about what it entails), contact us!


đź“° News: đź“° I am on the academic job market this year (2023-2024 cycle) looking for tenure track positions.


Links: Research, Papers, Awards, Software, Mentoring, Outreach, Service, Personal


Note: 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.


Research

The goal of my research is to enable the development of high-performance applications with robust correctness guarantees. To achieve this goal, I build practical programmable software systems that target realistic workloads in widely-used environments. I build my systems on solid foundations using formal specifications and techniques drawn from the programming languages, compilers, and formal methods literature. The following diagram shows an overview of the research during my PhD.


Here is some more information about two of my current research projects. Past research projects can be found here.

Automated scale-out of shell programs

Links: PaSh Star, try Star, DiSh Star, MIT News Article on PaSh, Disseminate Podcast Episode on PaSh, hs paper (HotOS 2023), DiSh paper (NSDI 2023), PaSh-JIT paper (OSDI 2022), PaSh paper (Best Paper ⭐ EuroSys 2021), Dataflow Model paper (ICFP 2021), Shell Future paper (HotOS 2021), Short video (1st place ⭐ POPL SRC), Shell Future talk (Distinguished Presentation ⭐ HotOS 2021), PaSh is hosted by the Linux Foundation

Collaborators: Nikos Vasilakis, Michael Greenberg, Tammam Mustafa, Achilleas Benetopoulos, Lazar M. Cvetković, Thurston Dang, Pratyush Das, Shivam Handa, Dimitris Karnikis, Georgios Liargkovas, Tianyu (Ezri) Zhu, Konstantinos Mamouras, and Martin Rinard

Shell programs are ubiquitous (steadily in top 10 programming languages for the last decade according to Github's survey) due to the shell's unique features: simple command composition and easy access to the state of the whole system. Unfortunately, these features hinder optimizations on shell scripts to scale to handle contemporary workloads and utilize available resources. The goal of my research is to develop bolt-on systems that automatically scale out shell scripts with theoretical and practical correctness guarantees.

Our work is open-source, available on Github, and hosted under the Linux Foundation. If you want to learn more about it, start from our EuroSys 21 paper.

Programming models for stateful serverless

Links: mu2sls Star, Netherite Star, Microservices on Serverless (POPL 2023), Netherite paper (VLDB 2022), Durable Functions semantics (OOPSLA 2021)

Collaborators: Haoran Zhang, Rajeev Alur, Sebastian Angel, Vincent Liu, Sebastian Burckhardt, Badrish Chandramouli, David Justo, and Christopher S. Meiklejohn

Serverless is an emerging computing platform that allows application developers to offload deployment, operation, and maintenance tasks to cloud providers. Unfortunately, existing programming models for serverless expose implementation details and make application development hard, especially for stateful and non-monolithic applications. Developers have to manually implement concurrency control and fault tolerance in their applications—requirements that are known to be very hard in the distributed setting. To address this, I am working on developing higher level programming abstractions for developers so that they can focus on application logic and ignore implementation details that are specific to serverless. I am especially interested in stateful microservice applications and how to facilitate their development while correctly deploying them on a serverless platform.

I have worked on two programming models for stateful serverless, mu2sls and Durable Functions, both of which are available on Github (mu2sls, Netherite). If you want to learn more start from the Durable Functions semantics paper that describes the semantics of the Durable Functions programming model including many examples.


Selected Publications

A complete list of my publications, talks, and reports, can be found here or on my Google Scholar profile.


Awards


Software


Mentoring

I get significant fulfillment and satisfaction from mentoring students and helping them develop to independent researchers. I have followed this inclination and mentored several students throughout my PhD. Here is a list of current mentees of mine:


Outreach


Service


Personal

In my free time I enjoy human activities. I really enjoy lying down and falling asleep in nature, with or without the presence of other people. During the late 2010s I was obsessed with escape rooms 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.