Konstantinos Kallas
banner
konstantinoskallas.bsky.social
Konstantinos Kallas
@konstantinoskallas.bsky.social
Assistant Professor of CS at UCLA // Systems, Compilers, PL // he/they Website: https://angelhof.github.io/
If you (or anyone you know) would like to do your PhD in a vibrant city with great weather, next to the sea, and the mountains, make sure to apply to UCLA and mark my name as a potential advisor :)
November 20, 2025 at 10:53 PM
Stephen (@stephenmell.bsky.social) is also looking for postdoc opportunities so reach out to him if you are working in the intersection of PL, ML, and systems and are looking to hire! He is amazing!
October 30, 2025 at 7:58 PM
You can find a lot more information on our work, proofs, details, additional evaluation, and more 😮 in our paper that Stephen (@stephenmell.bsky.social) presented at OOPSLA a few weeks ago. You can also read it here: dl.acm.org/doi/pdf/10.1...
dl.acm.org
October 30, 2025 at 7:58 PM
We prove correctness by proving that the semantics is confluent 🚰 , meaning that even if different execution steps are happening with our opportunistic evaluation, they will all lead to the same final program state.
October 30, 2025 at 7:58 PM
But why is that correct you may think to yourself? 🤔 Thanks for asking, I wouldn’t have thought to tell you!

We have proved that our approach is ✨ correct ✨, meaning that the behavior of the program does not change when executed with opportunistic evaluation.
October 30, 2025 at 7:58 PM
We then use everyone’s favorite technique (Church ⛪ encodings) to desugar control flow of a high level language down to our calculus enabling streaming and parallelization for programs that involve LLMs and other ML models.
October 30, 2025 at 7:58 PM
Our key insight is an evaluation strategy that is neither totally strict, nor totally lazy, and can automatically exploit parallelization and streaming. We build this evaluation strategy on top of a core calculus with first class support for external calls (like ones to an LLM).
October 30, 2025 at 7:58 PM
To address this, we built a novel 🏇opportunistic 🏇 evaluation system that automatically parallelizes independent calls and streams their results! Our system reduces the execution time of this script from 51s to 9s, and the first output arrives on the terminal after only 1.3s!
October 30, 2025 at 7:58 PM
In the example script in the image above, all calls to the LLM are completely 🐜🐜🐜 sequentialized 🐜🐜🐜 and there is no streaming. This script takes about 51 seconds to execute, and it took more than 7 seconds to start seeing output written in the terminal.
October 30, 2025 at 7:58 PM
There is some alignment between these two threads indeed I think! Happy to chat whenever :)
July 2, 2025 at 6:31 AM
In this paper we don't yet build such guardrails but primarily talk about what these guardrails should/could look like! We also focus on guardrails at the systems and PL level, instead of improving the agents. The paper is short so please read it and share your thoughts with us :)
July 1, 2025 at 1:43 PM
😠😠😠😠
April 1, 2025 at 9:05 PM
The data includes statistical information about the shapes and sizes of real-world Durable Functions applications. We hope that it will provide new insights to the community and indicate directions for future work!
February 23, 2025 at 10:15 PM