EDBT 2026 Demo / reviewers in the wild / expert
Caitlin Sadowski
dblp:17/2324
· DBLP profile ↗
25ranked-venue papers
8as first author
2since 2021 · last 2022
0000-0002-7742-2784ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 20 · 7 first-author · 1 since 2021Systems, architecture and hardware · 2Databases, data management, data science and information retrieval · 2 · 2 first-authorComputer networks · 1 · 1 since 2021Human-computer interaction and ubiquitous computing · 1 · 1 first-author
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.
| Software engineering, system software, and programming languages
15 papers |
Empirical software engineering · 53% Software maintenance and evolution · 23% Concurrent programming · 11% | |
| Databases, data mining, and information retrieval
1 paper |
Web and social media mining · 100% | |
| Computer networks
1 paper |
Network measurement and analytics · 77% Internet architecture and protocols · 23% |
Topics — the 28 heaviest of 34, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Empirical software engineering
developer studies |
2.0 | 7 | 2021 | What Predicts Software Developers' Productivity? · IEEE Trans. Software Eng. 2021 Do developers discover new tools on the toilet? · ICSE 2019 When not to comment: questions and tradeoffs with API documentation for C++ projects · ICSE 2018 |
Web and social media mining › user behavior analysis
user behavior characterization |
0.6 | 1 | 2022 | A world wide view of browsing the world wide web · IMC 2022 |
Web and social media mining
web analytics |
0.6 | 1 | 2022 | A world wide view of browsing the world wide web · IMC 2022 |
Empirical software engineering › developer studies › developer behavior
developer productivity |
0.5 | 1 | 2021 | What Predicts Software Developers' Productivity? · IEEE Trans. Software Eng. 2021 |
Empirical software engineering
mining software repositories |
0.3 | 3 | 2019 | Programmers' build errors: a case study (at google) · ICSE 2014 Do developers discover new tools on the toilet? · ICSE 2019 Benefits and barriers of user evaluation in software engineering research · OOPSLA 2011 |
Software maintenance and evolution › software documentation
API documentation |
0.3 | 1 | 2018 | When not to comment: questions and tradeoffs with API documentation for C++ projects · ICSE 2018 |
Software maintenance and evolution
software documentation |
0.3 | 1 | 2018 | When not to comment: questions and tradeoffs with API documentation for C++ projects · ICSE 2018 |
Program analysis
static analysis |
0.3 | 2 | 2016 | Tricorder: Building a Program Analysis Ecosystem · ICSE (1) 2015 A cross-tool communication study on program analysis tool notifications · SIGSOFT FSE 2016 |
Software maintenance and evolution › code review
code review analysis |
0.2 | 1 | 2016 | Developer workflow at google (showcase) · SIGSOFT FSE 2016 |
Empirical software engineering › developer studies
developer workflow |
0.2 | 1 | 2016 | Developer workflow at google (showcase) · SIGSOFT FSE 2016 |
Empirical software engineering
practitioner studies |
0.2 | 1 | 2016 | An empirical study of practitioners' perspectives on green software engineering · ICSE 2016 |
Software maintenance and evolution
code search |
0.2 | 1 | 2015 | How developers search for code: a case study · ESEC/SIGSOFT FSE 2015 |
Software maintenance and evolution › build systems
build failure analysis |
0.2 | 1 | 2014 | Programmers' build errors: a case study (at google) · ICSE 2014 |
Empirical software engineering › software engineering research methodology
industrial case study |
0.2 | 1 | 2013 | Does bug prediction support human developers? findings from a google case study · ICSE 2013 |
Empirical software engineering
software defect prediction |
0.2 | 1 | 2013 | Does bug prediction support human developers? findings from a google case study · ICSE 2013 |
Concurrent programming
concurrency bugs |
0.1 | 1 | 2012 | Sound predictive race detection in polynomial time · POPL 2012 |
Concurrent programming › concurrency bug detection
data race detection |
0.1 | 1 | 2012 | Sound predictive race detection in polynomial time · POPL 2012 |
Program analysis › dynamic analysis
happens-before analysis |
0.1 | 1 | 2012 | Sound predictive race detection in polynomial time · POPL 2012 |
Concurrent programming › concurrency bug detection › data race detection
predictive race detection |
0.1 | 1 | 2012 | Sound predictive race detection in polynomial time · POPL 2012 |
Concurrent programming
parallel programming models |
0.1 | 1 | 2011 | Two for the price of one: a model for parallel and incremental computation · OOPSLA 2011 |
Programming languages and type systems › programming paradigms
self-adjusting computation |
0.1 | 1 | 2011 | Two for the price of one: a model for parallel and incremental computation · OOPSLA 2011 |
Concurrent programming
synchronization |
0.1 | 1 | 2011 | Cooperative reasoning for preemptive execution · PPoPP 2011 |
Concurrent programming
transactional memory |
0.1 | 1 | 2011 | Cooperative reasoning for preemptive execution · PPoPP 2011 |
Software maintenance and evolution › release engineering
continuous integration |
0.1 | 1 | 2016 | Developer workflow at google (showcase) · SIGSOFT FSE 2016 |
Energy-efficient computing
software energy consumption |
0.1 | 1 | 2016 | An empirical study of practitioners' perspectives on green software engineering · ICSE 2016 |
Program analysis
dynamic analysis |
0.0 | 1 | 2011 | Cooperative reasoning for preemptive execution · PPoPP 2011 |
Program analysis › static analysis
incremental analysis |
0.0 | 1 | 2011 | Two for the price of one: a model for parallel and incremental computation · OOPSLA 2011 |
Software maintenance and evolution
program comprehension |
0.0 | 1 | 2011 | Mental models and parallel program maintenance · ICSE 2011 |
Methods — techniques the papers use, named apart from their topics
survey · 1.7telemetry analysis · 1.1large-scale measurement · 1.1interviews · 1.0causal inference · 0.4experience sampling · 0.3qualitative study · 0.2program analysis · 0.2interview · 0.2automated testing · 0.2log analysis · 0.2empirical study · 0.2build log analysis · 0.2user evaluation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | A world wide view of browsing the world wide webabstractIn this paper, we perform the first large-scale study of how people spend time on the web. Our study is based on anonymous, aggregate telemetry data from several hundred million Google Chrome users who have explicitly enabled sharing URLs with Google and who have usage statistic reporting enabled. We analyze the distribution of web traffic, the types of websites that people visit and spend the most time on, the differences between desktop and mobile browsing behavior, the geographical differences in web usage, and the most popular websites in regions worldwide. Our study sheds light on online user behavior and how the research community can more accurately analyze the web in the future. Kimberly Ruth, Aurore Fass, Jonathan Azose, Mark Pearson, Emma Thomas, Caitlin Sadowski, Zakir Durumeric |
IMC | 6 |
| 2021 | What Predicts Software Developers' Productivity?abstractOrganizations have a variety of options to help their software developers become their most productive selves, from modifying office layouts, to investing in better tools, to cleaning up the source code. But which options will have the biggest impact? Drawing from the literature in software engineering and industrial/organizational psychology to identify factors that correlate with productivity, we designed a survey that asked 622 developers across 3 companies about these productivity factors and about self-rated productivity. Our results suggest that the factors that most strongly correlate with self-rated productivity were non-technical factors, such as job enthusiasm, peer support for new ideas, and receiving useful feedback about job performance. Compared to other knowledge workers, our results also suggest that software developers' self-rated productivity is more strongly related to task variety and ability to work remotely. Emerson R. Murphy-Hill, Ciera Jaspan, Caitlin Sadowski, David C. Shepherd, Michael Phillips, Collin Winter, Andrea Knight, Edward K. Smith, Matthew Jorde |
IEEE Trans. Software Eng. | 3 |
| 2019 | Do developers discover new tools on the toilet?abstractMaintaining awareness of useful tools is a substantial challenge for developers. Physical newsletters are a simple technique to inform developers about tools. In this paper, we evaluate such a technique, called Testing on the Toilet, by performing a mixed-methods case study. We first quantitatively evaluate how effective this technique is by applying statistical causal inference over six years of data about tools used by thousands of developers. We then qualitatively contextualize these results by interviewing and surveying 382 developers, from authors to editors to readers. We found that the technique was generally effective at increasing software development tool use, although the increase varied depending on factors such as the breadth of applicability of the tool, the extent to which the tool has reached saturation, and the memorability of the tool name. Emerson R. Murphy-Hill, Edward K. Smith, Caitlin Sadowski, Ciera Jaspan, Collin Winter, Matthew Jorde, Andrea Knight, Andrew Trenk, Steve Gross |
ICSE | 3 |
| 2018 | When not to comment: questions and tradeoffs with API documentation for C++ projectsabstractWithout usable and accurate documentation of how to use an API, developers can find themselves deterred from reusing relevant code. In C++, one place developers can find documentation is in a header file. When information is missing, they may look at the corresponding implementation code. To understand what's missing from C++ API documentation and the factors influencing whether it will be fixed, we conducted a mixed-methods study involving two experience sampling surveys with hundreds of developers at the moment they visited implementation code, interviews with 18 of those developers, and interviews with 8 API maintainers. In many cases, updating documentation may provide only limited value for developers, while requiring effort maintainers don't want to invest. We identify a set of questions maintainers and tool developers should consider when improving API-level documentation. Andrew Head, Caitlin Sadowski, Emerson R. Murphy-Hill, Andrea Knight |
ICSE | 2 |
| 2016 | An empirical study of practitioners' perspectives on green software engineeringabstractThe energy consumption of software is an increasing concern as the use of mobile applications, embedded systems, and data center-based services expands. While research in green software engineering is correspondingly increasing, little is known about the current practices and perspectives of software engineers in the field. This paper describes the first empirical study of how practitioners think about energy when they write requirements, design, construct, test, and maintain their software. We report findings from a quantitative, targeted survey of 464 practitioners from ABB, Google, IBM, and Microsoft, which was motivated by and supported with qualitative data from 18 in-depth interviews with Microsoft employees. The major findings and implications from the collected data contextualize existing green software engineering research and suggest directions for researchers aiming to develop strategies and tools to help practitioners improve the energy usage of their applications. Irene Manotas, Christian Bird, David C. Shepherd, Ciera Jaspan, Caitlin Sadowski, Lori L. Pollock, James Clause |
ICSE | 6 |
| 2016 | A cross-tool communication study on program analysis tool notificationsabstractProgram analysis tools use notifications to communicate with developers, but previous research suggests that developers encounter challenges that impede this communication. This paper describes a qualitative study that identifies 10 kinds of challenges that cause notifications to miscommunicate with developers. Our resulting notification communication theory reveals that many challenges span multiple tools and multiple levels of developer experience. Our results suggest that, for example, future tools that model developer experience could improve communication and help developers build more accurate mental models. Brittany Johnson, Rahul Pandita, Justin Smith 0001, Denae Ford, Sarah Elder, Emerson R. Murphy-Hill, Sarah Smith Heckman, Caitlin Sadowski |
SIGSOFT FSE | 8 |
| 2016 | Developer workflow at google (showcase)abstractThis talk describes the developer workflow at Google, and our use of program analysis, testing, metrics, and tooling to reduce errors when creating and committing changes to source code. Software development at Google has several unique characteristics such as our monolithic codebase and distributed hermetic build system. Changes are vetted both manually, via our internal code review tool, and automatically, via sources such as the Tricorder program analysis platform and our automated testing infrastructure. Caitlin Sadowski |
SIGSOFT FSE | 1 |
| 2015 | Tricorder: Building a Program Analysis EcosystemabstractStatic analysis tools help developers find bugs, improve code readability, and ensure consistent style across a project. However, these tools can be difficult to smoothly integrate with each other and into the developer workflow, particularly when scaling to large codebases. We present Tricorder, a program analysis platform aimed at building a data-driven ecosystem around program analysis. We present a set of guiding principles for our program analysis tools and a scalable architecture for an analysis platform implementing these principles. We include an empirical, in-situ evaluation of the tool as it is used by developers across Google that shows the usefulness and impact of the platform. Caitlin Sadowski, Jeffrey van Gogh, Ciera Jaspan, Emma Söderberg, Collin Winter |
ICSE (1) | 1 |
| 2015 | How developers search for code: a case studyabstractWith the advent of large code repositories and sophisticated search capabilities, code search is increasingly becoming a key software development activity. In this work we shed some light into how developers search for code through a case study performed at Google, using a combination of survey and log-analysis methodologies. Our study provides insights into what developers are doing and trying to learn when per- forming a search, search scope, query properties, and what a search session under different contexts usually entails. Our results indicate that programmers search for code very frequently, conducting an average of five search sessions with 12 total queries each workday. The search queries are often targeted at a particular code location and programmers are typically looking for code with which they are somewhat familiar. Further, programmers are generally seeking answers to questions about how to use an API, what code does, why something is failing, or where code is located. Caitlin Sadowski, Kathryn T. Stolee, Sebastian G. Elbaum |
ESEC/SIGSOFT FSE | 1 |
| 2015 | An analysis of programming language statement frequency in C, C++, and Java source codeabstractSummary Statement frequency data can inform programming language research and provide a solid basis for frequency‐based code analysis. This paper presents an analysis of programming language statement frequency in a large corpus of C, C++, and Java source code, comprised of more than 54 million lines of code. Across these languages, the top four work‐performing statement types are Method/Function Call, Assignment, If, and Return. As compared to studies of Formula Translating System, Common Business Oriented Language and Programming Language One in the 1970s, the main change is the prevalence of method/function calls. Statement use frequency across languages is remarkably similar, and within each individual language, most statement types have a frequency distribution that occupies a small range. A more detailed examination of assignment and looping statement types shows that many assignments simply involve copying of data and that C++/Java useforstatements more than C. Copyright © 2014 John Wiley & Sons, Ltd. Xiaoyan Zhu 0003, E. James Whitehead Jr., Caitlin Sadowski, Qinbao Song |
Softw. Pract. Exp. | 3 |
| 2014 | Programmers' build errors: a case study (at google)abstractBuilding is an integral part of the software development process. However, little is known about the compiler errors that occur in this process. In this paper, we present an empirical study of 26.6 million builds produced during a period of nine months by thousands of developers. We describe the workflow through which those builds are generated, and we analyze failure frequency, compiler error types, and resolution efforts to fix those compiler errors. The results provide insights on how a large organization build process works, and pinpoints errors for which further developer support would be most effective. Hyunmin Seo, Caitlin Sadowski, Sebastian G. Elbaum, Edward Aftandilian, Robert W. Bowdidge |
ICSE | 2 |
| 2013 | Does bug prediction support human developers? findings from a google case studyabstractWhile many bug prediction algorithms have been developed by academia, they're often only tested and verified in the lab using automated means. We do not have a strong idea about whether such algorithms are useful to guide human developers. We deployed a bug prediction algorithm across Google, and found no identifiable change in developer behavior. Using our experience, we provide several characteristics that bug prediction algorithms need to meet in order to be accepted by human developers and truly change how developers evaluate their code. Chris Lewis 0002, Zhongpeng Lin, Caitlin Sadowski, Xiaoyan Zhu 0003, Rong Ou, E. James Whitehead Jr. |
ICSE | 3 |
| 2013 | 2nd international workshop on user evaluations for software engineering researchers (USER 2013)abstractWe have met many software engineering researchers who would like to evaluate a tool or system they developed with real users, but do not know how to begin. In this second iteration of the USER workshop, attendees will collaboratively design, develop, and pilot plans for conducting user evaluations of their own tools and/or software engineering research projects. Attendees will gain practical experience with various user evaluation methods through scaffolded group exercises, panel discussions, and mentoring by a panel of user-focused software engineering researchers. Together, we will establish a community of like-minded researchers and developers to help one another improve our research and practice through user evaluation. Andrew Begel, Caitlin Sadowski |
ICSE | 2 |
| 2012 | The evolution of data racesabstractConcurrency bugs are notoriously difficult to find and fix. Several prior empirical studies have identified the prevalence and challenges of concurrency bugs in open source projects, and several existing tools can be used to identify concurrency errors such as data races. However, little is known about how concurrency bugs evolve over time. In this paper, we examine the evolution of data races by analyzing samples of the committed code in two open source projects over a multi-year period. Specifically, we identify how the data races in these programs change over time. Caitlin Sadowski, Jaeheon Yi, Sunghun Kim 0001 |
MSR | 1 |
| 2012 | Sound predictive race detection in polynomial timeabstractData races are among the most reliable indicators of programming errors in concurrent software. For at least two decades, Lamport's happens-before (HB) relation has served as the standard test for detecting races--other techniques, such as lockset-based approaches, fail to be sound, as they may falsely warn of races. This work introduces a new relation, causally-precedes (CP), which generalizes happens-before to observe more races without sacrificing soundness. Intuitively, CP tries to capture the concept of happens-before ordered events that must occur in the observed order for the program to observe the same values. What distinguishes CP from past predictive race detection approaches (which also generalize an observed execution to detect races in other plausible executions) is that CP-based race detection is both sound and of polynomial complexity. We demonstrate that the unique aspects of CP result in practical benefit. Applying CP to real-world programs, we successfully analyze server-level applications (e.g., Apache FtpServer) and show that traces longer than in past predictive race analyses can be analyzed in mere seconds to a few minutes. For these programs, CP race detection uncovers races that are hard to detect by repeated execution and HB race detection: a single run of CP race detection produces several races not discovered by 10 separate rounds of happens-before race detection. Yannis Smaragdakis, Jacob Evans, Caitlin Sadowski, Jaeheon Yi, Cormac Flanagan |
POPL | 3 |
| 2011 | Mental models and parallel program maintenanceabstractParallel programs are difficult to write, test, and debug. This thesis explores how programmers build mental models about parallel programs, and demonstrates, through user evaluations, that maintenance activities can be improved by incorporating theories based on such models. By doing so, this work aims to increase the reliability and performance of today's information technology infrastructure by improving the practice of maintaining and testing parallel software. Caitlin Sadowski |
ICSE | 1 |
| 2011 | An empirical analysis of the FixCache algorithmabstractThe FixCache algorithm, introduced in 2007, effectively identifies files or methods which are likely to contain bugs by analyzing source control repository history. However, many open questions remain about the behaviour of this algorithm. What is the variation in the hit rate over time? How long do files stay in the cache? Do buggy files tend to stay buggy, or can they be redeemed? This paper analyzes the behaviour of the FixCache algorithm on four open source projects. FixCache hit rate is found to generally increase over time for three of the four projects; file duration in cache follows a Zipf distribution; and topmost bug-fixed files go through periods of greater and lesser stability over a project's history. Caitlin Sadowski, Chris Lewis 0002, Zhongpeng Lin, Xiaoyan Zhu 0003, E. James Whitehead Jr. |
MSR | 1 |
| 2011 | Two for the price of one: a model for parallel and incremental computationabstractParallel or incremental versions of an algorithm can significantly outperform their counterparts, but are often difficult to develop. Programming models that provide appropriate abstractions to decompose data and tasks can simplify parallelization. We show in this work that the same abstractions can enable both parallel and incremental execution. We present a novel algorithm for parallel self-adjusting computation. This algorithm extends a deterministic parallel programming model (concurrent revisions) with support for recording and repeating computations. On record, we construct a dynamic dependence graph of the parallel computation. On repeat, we reexecute only parts whose dependencies have changed. Sebastian Burckhardt, Daan Leijen, Caitlin Sadowski, Jaeheon Yi, Thomas Ball 0001 |
OOPSLA | 3 |
| 2011 | Benefits and barriers of user evaluation in software engineering researchabstractIn this paper, we identify trends about, benefits from, and barriers to performing user evaluations in software engineering research. From a corpus of over 3,000 papers spanning ten years, we report on various subtypes of user evaluations (e.g., coding tasks vs. questionnaires) and relate user evaluations to paper topics (e.g., debugging vs. technology transfer). We identify the external measures of impact, such as best paper awards and citation counts, that are correlated with the presence of user evaluations. We complement this with a survey of over 100 researchers from over 40 different universities and labs in which we identify a set of perceived barriers to performing user evaluations. Raymond P. L. Buse, Caitlin Sadowski, Westley Weimer |
OOPSLA | 2 |
| 2011 | Cooperative reasoning for preemptive executionabstractWe propose a cooperative methodology for multithreaded software, where threads use traditional synchronization idioms such as locks, but additionally document each point of potential thread interference with a "yield" annotation. Under this methodology, code between two successive yield annotations forms a serializable transaction that is amenable to sequential reasoning. This methodology reduces the burden of reasoning about thread interleavings by indicating only those interference points that matter. We present experimental results showing that very few yield annotations are required, typically one or two per thousand lines of code. We also present dynamic analysis algorithms for detecting cooperability violations, where thread interference is not documented by a yield, and for yield annotation inference for legacy software. Jaeheon Yi, Caitlin Sadowski, Cormac Flanagan |
PPoPP | 2 |
| 2011 | Cooperative Concurrency for a Multicore World - (Extended Abstract)
Jaeheon Yi, Caitlin Sadowski, Stephen N. Freund, Cormac Flanagan |
RV | 2 |
| 2011 | Practical parallel and concurrent programmingabstractMulticore computers are now the norm. Taking advantage of these multiple cores entails parallel and concurrent programming. There is therefore a pressing need for courses that teach effective programming on multicore architectures. We believe that such courses should emphasize high-level abstractions for performance and correctness and be supported by tools. This paper presents a set of freely available course materials for parallel and concurrent programming, along with a testing tool for performance and correctness concerns called Alpaca (A Lovely Parallelism And Concurrency Analyzer). These course materials can be used for a comprehensive parallel and concurrent programming course, à la carte throughout an existing curriculum, or as starting points for graduate special topics courses. We also discuss tradeoffs we made in terms of what to include in course materials. Caitlin Sadowski, Thomas Ball 0001, Judith Bishop, Sebastian Burckhardt, Ganesh Gopalakrishnan, Joseph Mayo, Madan Musuvathi, Shaz Qadeer, Stephen Toub |
SIGCSE | 1 |
| 2011 | DP-Fair: a unifying theory for optimal hard real-time multiprocessor scheduling
Shelby H. Funk, Greg Levin, Caitlin Sadowski, Ian Pye, Scott A. Brandt |
Real Time Syst. | 3 |
| 2010 | DP-FAIR: A Simple Model for Understanding Optimal Multiprocessor SchedulingabstractWe consider the problem of optimal real-time scheduling of periodic and sporadic tasks for identical multiprocessors. A number of recent papers have used the notions of fluid scheduling and deadline partitioning to guarantee optimality and improve performance. In this paper, we develop a unifying theory with the DP-FAIR scheduling policy and examine how it overcomes problems faced by greedy scheduling algorithms. We then present a simple DP-FAIR scheduling algorithm, DP-WRAP, which serves as a least common ancestor to many recent algorithms. We also show how to extend DP-FAIR to the scheduling of sporadic tasks with arbitrary deadlines. Greg Levin, Shelby H. Funk, Caitlin Sadowski, Ian Pye, Scott A. Brandt |
ECRTS | 3 |
| 2009 | SingleTrack: A Dynamic Determinism Checker for Multithreaded Programs
Caitlin Sadowski, Stephen N. Freund, Cormac Flanagan |
ESOP | 1 |