Skip to main content

We build systems that lift the capabilities of programmers dealing with the vast complexity of modern software systems. Our systems automate away inessential complexity and automate in desired features — for example, securing programs that use hundreds of software dependencies, bolting distribution onto existing applications, and parallelizing large-scale pipelines built out of multi-language components. We characterize the behavior of the systems we build using real workloads seen in practice, often paired with mathematical models and proofs of key properties of interest.


News #

Apr'25: Apply to attend the Brown Systems Week 2025!
Mar'25: Our paper on semantics-driven static analysis for the shell made it to HotOS'25!
Mar'25: Received an Amazon Research Award (ARA) on Automated Reasoning for the Unix/Linux shell!
Jan'25: Nikos Vasilakis is organizing EuroSec'25, co-located with EuroSys'25 and ASPLOS'25.
Dec'24: Eric Zhao discusses the intricacies of symbolic execution for the shell at NJPLS'24.
Oct'24: Anirudh Narsipur discusses static analysis for the Unix shell at NEPLS'24.
Aug'24: Lukas Lazarek and Di Jin join the group as postdoctoral associates—welcome!
Jul'24: Eric Zhao, Ethan Lavi, Grigoris Ntousakis, and Yuchen Lu join the group for their PhDs!
Jun'24: Ioanna Gemou starts her research visit on machine learning for systems, co-hosted by Ritambhara Singh.
Jan'24: Evangelos Lamprou starts his research visit on parallel, distributed, and secure systems.

See all news


Team #


Research #

supply-chain

Automating Protections Against Software Supply-Chain Threats
Modern software incorporates thousands of dependencies as a means of accelerating development and reducing cost—risking safety and security for both developers and end-users. We have built a series of systems targeting the JavaScript ecosystem—the largest such ecosystem out there—automating the analysis, transformation, and synthesis of JavaScript dependencies across a variety of threat models. Examples: AsiaCCS'23, CCS'21, CCS'21.

systems

Automating Acceleration and Scale-out of Software Systems
Language-agnostic programming environments hinder automated parallelization and distribution, often forcing developers that deal with large datasets to manually rewrite programs and their components in languages that support these features. We have built a series of systems that accelerate, parallelize, distribute, and scale out computations fully automatically — while maintaining key correctness and security guarantees. Our systems target widely used environments — e.g., JavaScript, Python, the Shell — and are offered by open-source consortia such as the Linux Foundation. Examples: NSDI'23, OSDI'22, EuroSys'21.

microservices

Automated Transformation Towards Secure Scalable Computing Paradigms
Recent trends are pushing developers towards new paradigms of secure and scalable computing—e.g., confidential computing, microservices, serverless computing, and edge computing. Transforming a conventional program to leverage these paradigms is a laborious manual process that can lead to suboptimal performance and in many cases even break the program. We are developing systems that support this kind of decomposition and leveraging special hardware capabilities when these are available in the network. Examples: ARES'22, PLDI'19, ATC'19.