Konstantinos Kallas


he/him or they/them
Assistant Professor at UCLA CS
Co-creator of CS PhD MentoRes
TSC member of PaSh
Office: Engineering VI, 382 (or ⛰️)
Contact: kkallas@cs.ucla.edu

Projects

I am broadly interested in software systems, compilers, programming languages, and formal methods. This page contains some information about some current projects but it is not updated frequently. I am generally not restricted with respect to the projects that I work on, so if you want to work with me but don't see a project that interests you here, shoot me an email and we can figure something out!

Here is some information about two of my current projects, including a diagram that shows an overview of my research during my PhD. 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.