Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Shadaj Laddad

dblp:280/8310 · DBLP profile ↗
← Back
8ranked-venue papers
5as first author
7since 2021 · last 2026
0000-0002-6658-6548ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 4 first-author · 4 since 2021Databases, data management, data science and information retrieval · 3 · 1 first-author · 3 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
3 papers
Distributed systems · 83% Memory systems · 17%
Software engineering, system software, and programming languages
4 papers
Programming languages and type systems · 38% Program synthesis and code generation · 34% Software testing · 22%
Databases, data mining, and information retrieval
3 papers
Data stream processing · 50% Database system architecture and tuning · 38% Query processing and optimization · 13%
Computer graphics and multimedia
1 paper
Visualization and visual analytics · 100%

Topics — the 12 heaviest of 17, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Distributed systems › replication › replicated data types
conflict-free replicated data types
1.122022
Keep CALM and CRDT On · Proc. VLDB Endow. 2022
Katara: synthesizing CRDTs with verified lifting · Proc. ACM Program. Lang. 2022
Programming languages and type systems › language semantics
stream semantics
0.912025
Flo: A Semantic Foundation for Progressive Stream Processing · Proc. ACM Program. Lang. 2025
Distributed systems › distributed algorithms
distributed protocols
0.812024
Optimizing Distributed Protocols with Query Rewrites · Proc. ACM Manag. Data 2024
Memory systems
protocol optimization
0.812024
Optimizing Distributed Protocols with Query Rewrites · Proc. ACM Manag. Data 2024
Program synthesis and code generation › formal synthesis
verified lifting
0.612022
Katara: synthesizing CRDTs with verified lifting · Proc. ACM Program. Lang. 2022
Distributed systems
consistency models
0.612022
Keep CALM and CRDT On · Proc. VLDB Endow. 2022
Distributed systems › consistency models
coordination-free consistency
0.612022
Keep CALM and CRDT On · Proc. VLDB Endow. 2022
Distributed systems
replication
0.612022
Keep CALM and CRDT On · Proc. VLDB Endow. 2022
Visualization and visual analytics › visualization generation
automated visualization generation
0.512021
VizSmith: Automated Visualization Synthesis by Mining Data-Science Notebooks · ASE 2021
Software testing
metamorphic testing
0.512021
VizSmith: Automated Visualization Synthesis by Mining Data-Science Notebooks · ASE 2021
Query processing and optimization
query rewriting
0.212024
Optimizing Distributed Protocols with Query Rewrites · Proc. ACM Manag. Data 2024
Empirical software engineering
mining software repositories
0.112021
VizSmith: Automated Visualization Synthesis by Mining Data-Science Notebooks · ASE 2021

Methods — techniques the papers use, named apart from their topics

type system · 1.7dataflow composition · 1.7order-insensitivity analysis · 1.5data dependency analysis · 1.5result validation · 1.3code generation · 1.3query model · 1.1monotonicity reasoning · 1.1inductive invariants · 1.1SMT solving · 1.1metamorphic testing · 1.0code mining · 1.0
YearPublicationVenuePosition
2026 Stageleft: Multi-stage Programming in Standard Rust
Shadaj Laddad, Mingwei Samuel, Joseph M. Hellerstein
GPCE1
2025 Flo: A Semantic Foundation for Progressive Stream Processing
abstract
Streaming systems are present throughout modern applications, processing continuous data in real-time. Existing streaming languages have a variety of semantic models and guarantees that are often incompatible. Yet all these languages are considered “streaming”–what do they have in common? In this paper, we identify two general yet precise semantic properties: streaming progress and eager execution. Together, they ensure that streaming outputs are deterministic and kept fresh with respect to streaming inputs. We formally define these properties in the context of Flo, a parameterized streaming language that abstracts over dataflow operators and the underlying structure of streams. It leverages a lightweight type system to distinguish bounded streams, which allow operators to block on termination, from unbounded ones. Furthermore, Flo provides constructs for dataflow composition and nested graphs with cycles. To demonstrate the generality of our properties, we show how key ideas from representative streaming and incremental computation systems—Flink, LVars, and DBSP—have semantics that can be modeled in Flo and guarantees that map to our properties.
Shadaj Laddad, Alvin Cheung, Joseph M. Hellerstein, Mae Milano
Proc. ACM Program. Lang.1
2024 Optimizing Distributed Protocols with Query Rewrites
abstract
Distributed protocols such as 2PC and Paxos lie at the core of many systems in the cloud, but standard implementations do not scale. New scalable distributed protocols are developed through careful analysis and rewrites, but this process is ad hoc and error-prone. This paper presents an approach for scaling any distributed protocol by applying rule-driven rewrites, borrowing from query optimization. Distributed protocol rewrites entail a new burden: reasoning about spatiotemporal correctness. We leverage order-insensitivity and data dependency analysis to systematically identify correct coordination-free scaling opportunities. We apply this analysis to create preconditions and mechanisms for coordination-free decoupling and partitioning, two fundamental vertical and horizontal scaling techniques. Manual rule-driven applications of decoupling and partitioning improve the throughput of 2PC by 5× and Paxos by 3×, and match state-of-the-art throughput in recent work. These results point the way toward automated optimizers for distributed protocols based on correct-by-construction rewrite rules.
David C. Y. Chu, Rithvik Panchapakesan, Shadaj Laddad, Lucky Katahanas, Chris Liu, Kaushik Shivakumar, Natacha Crooks, Joseph M. Hellerstein, Heidi Howard
Proc. ACM Manag. Data3
2023 Towards Auto-Generated Data Systems
abstract
After decades of progress, database management systems (DBMSs) are now the backbones of many data applications that we interact with on a daily basis. Yet, with the emergence of new data types and hardware, building and optimizing new data systems remain as difficult as the heyday of relational databases. In this paper, we summarize our work towards automating the building and optimization of data systems. Drawing from our own experience, we further argue that any automation technique must address three aspects: user specification, code generation, and result validation. We conclude by discussing a case study using videos data processing, along with opportunities for future research towards designing data systems that are automatically generated.
Alvin Cheung, Maaz Bin Safeer Ahmad, Brandon Haynes, Chanwut Kittivorawong, Shadaj Laddad, Chenglong Wang 0005, Cong Yan
Proc. VLDB Endow.5
2022 Katara: synthesizing CRDTs with verified lifting
abstract
Conflict-free replicated data types (CRDTs) are a promising tool for designing scalable, coordination-free distributed systems. However, constructing correct CRDTs is difficult, posing a challenge for even seasoned developers. As a result, CRDT development is still largely the domain of academics, with new designs often awaiting peer review and a manual proof of correctness. In this paper, we present Katara, a program synthesis-based system that takes sequential data type implementations and automatically synthesizes verified CRDT designs from them. Key to this process is a new formal definition of CRDT correctness that combines a reference sequential type with a lightweight ordering constraint that resolves conflicts between non-commutative operations. Our process follows the tradition of work in verified lifting, including an encoding of correctness into SMT logic using synthesized inductive invariants and hand-crafted grammars for the CRDT state and runtime. Katara is able to automatically synthesize CRDTs for a wide variety of scenarios, from reproducing classic CRDTs to synthesizing novel designs based on specifications in existing literature. Crucially, our synthesized CRDTs are fully, automatically verified, eliminating entire classes of common errors and reducing the process of producing a new CRDT from a painstaking paper proof of correctness to a lightweight specification.
Shadaj Laddad, Conor Power, Mae Milano, Alvin Cheung, Joseph M. Hellerstein
Proc. ACM Program. Lang.1
2022 Keep CALM and CRDT On
abstract
Despite decades of research and practical experience, developers have few tools for programming reliable distributed applications without resorting to expensive coordination techniques. Conflict-free replicated datatypes (CRDTs) are a promising line of work that enable coordination-free replication and offer certain eventual consistency guarantees in a relatively simple object-oriented API. Yet CRDT guarantees extend only to data updates; observations of CRDT state are unconstrained and unsafe. We propose an agenda that embraces the simplicity of CRDTs, but provides richer, more uniform guarantees. We extend CRDTs with a query model that reasons about which queries are safe without coordination by applying monotonicity results from the CALM Theorem, and lay out a larger agenda for developing CRDT data stores that let developers safely and efficiently interact with replicated application state.
Shadaj Laddad, Conor Power, Mae Milano, Alvin Cheung, Natacha Crooks, Joseph M. Hellerstein
Proc. VLDB Endow.1
2021 VizSmith: Automated Visualization Synthesis by Mining Data-Science Notebooks
abstract
Visualizations are widely used to communicate findings and make data-driven decisions. Unfortunately creating bespoke and reproducible visualizations requires the use of procedural tools such as matplotlib. These tools present a steep learning curve as their documentation often lacks sufficient usage examples to help beginners get started or accomplish a specific task. Forums such as StackOverflow have long helped developers search for code online and adapt it for their use. However, developers still have to sift through search results and understand the code before adapting it for their use.We built a tool called VizSmith which enables code reuse for visualizations by mining visualization code from Kaggle notebooks and creating a database of 7176 reusable Python functions. Given a dataset, columns to visualize and a text query from the user, VizSmith searches this database for appropriate functions, runs them and displays the generated visualizations to the user. At the core of VizSmith is a novel metamorphic testing based approach to automatically assess the reusability of functions, which improves end-to-end synthesis performance by 10% and cuts the number of execution failures by 50%.
Rohan Bavishi, Shadaj Laddad, Hiroaki Yoshida, Mukul R. Prasad, Koushik Sen
ASE2
2020 Fluid quotes: metaprogramming across abstraction boundaries with dependent types
abstract
Object-oriented programming, functional programming, and metaprogramming each offer a unique axis of abstraction that enables modular code. Macros, a common technique for metaprogramming, capture ASTs as quotes to let users manipulate them in the host language. However, macros are often at odds with other programming techniques since they can only process code written at the call-site and cannot analyze code behind abstraction boundaries such as variables and methods. Furthermore, the quotes generated for macro expansion exist only at compile-time and cannot be passed around in user code. Multi-stage programming treats quotes as runtime values to address this problem, but introduces the cost of running the compiler when splicing quotes. This forces developers to choose between low runtime overhead and modularity. What if we could have the best of both worlds? We introduce fluid quotes, a new technique that uses dependent types to let users pass quotes through abstraction boundaries in runtime code while splicing them ahead-of-time. This technique enables new metaprogramming capabilities by eliminating the traditional requirement of co-locating parameter expressions with call-sites. Fluid quotes capture not only source code but also associated runtime context to ensure correctness. In addition, they can be composed into larger expressions without any macro code. We demonstrate the capabilities of fluid quotes through two specific applications: optimizing data processing pipelines and making language integrated queries more flexible.
Shadaj Laddad, Koushik Sen
GPCE1