Caitlin Sadowski

I am a Software Engineer at Google, Mountain View, where my mission is to make program analysis usable for developers. I created Google's internal static analysis platform; I now lead a team focused on extending and maintaining this platform. I also work on compiler-level static analysis tools, such as error-prone.

I completed my computer science Ph.D. at the University of California at Santa Cruz, where I worked with my advisors Cormac Flanagan and Jim Whitehead on a variety of research topics related to Programming Languages (PL), Software Engineering (SE) and Human Computer Interaction (HCI). My dissertation was focused on dynamic analyses for detecting concurrency errors such as data races. I also have a line of research on hard real-time multiprocessor scheduling.

In summer 2010 I worked at Microsoft Research with Tom Ball on developing and evaluating a parallel and concurrent programming course and with Sebastian Burckhardt and Daan Leijen on extending the concurrent revisions framework. In summer 2011 I worked at Google on adding a thread safety analysis to the Clang C/C++ compiler. Since Clang is all open source, you can check it out and play around with it.


My CV is available here; my resume is here.


Contact
E-mail: supertri @ google.com
Service
  • ICSE 2015, PC Member
  • OOPSLA 2014, PC Member
  • PLDI 2014, ERC Member
  • MSR 2014, PC Member
  • ICSE 2014 Posters, PC Member
  • USER 2013, Co-chair
  • PLATEAU 2012, PC Chair
  • USER 2012, Co-chair
  • TMC 2011, Co-chair
Publications

Journal Publications

[ACM | pdf]
DP-Fair: a unifying theory for optimal hard real-time multiprocessor scheduling. Shelby Funk, Greg Levin, Caitlin Sadowski, Ian Pye, and Scott Brandt. Real-Time Systems 47(5): 389-429, 2011.

Peer-Reviewed Conference Publications

[ACM | pdf]
Programmers’ Build Errors: A Case Study (at Google). Hyunmin Seo, Caitlin Sadowski, Sebastian Elbaum, Edward Aftandilian, Robert Bowdidge. International Conference on Software Engineering (ICSE), 2014.
[ACM | pdf]
Does Bug Prediction Support Human Developers? Findings from a Google Case Study. Chris Lewis, Zhongpeng Lin, Caitlin Sadowski, Xiaoyan Zhu, Rong Ou, E. James Whitehead Jr. International Conference on Software Engineering (ICSE), 2013.
[ACM | pdf]
Sound Predictive Race Detection in Polynomial Time. Yannis Smaragdakis, Jacob M. Evans, Caitlin Sadowski, Jaeheon Yi, and Cormac Flanagan. Symposium on Principles of Programming Languages (POPL), 2012.
[ACM | pdf]
Benefits and Barriers of User Evaluation in Software Engineering Research. Raymond P.L. Buse, Caitlin Sadowski, and Westley Weimer. Conference on Object Oriented Programming Systems, Languages, and Applications (OOPSLA), 2011.
[ACM | pdf]
Two for the Price of One: A Model for Parallel and Incremental Computation. Sebastian Burckhardt, Daan Leijen, Jaeheon Yi, Caitlin Sadowski, and Thomas Ball. Conference on Object Oriented Programming Systems, Languages, and Applications (OOPSLA), 2011.
ACM OOPSLA Distinguished Paper Award.
[ACM | pdf]
An Empirical Analysis of the FixCache Algorithm. Caitlin Sadowski, Chris Lewis, Zhongpeng Lin, Xiaoyan Zhu, and E. James Whitehead, Jr. Working Conference on Mining Software Repositories (MSR), 2011.
[ACM | pdf | Poster]
Mental Models and Parallel Program Maintenance. Caitlin Sadowski. Doctoral Symposium at the International Conference on Software Engineering (ICSE), 2011.
[ACM | pdf]
Cooperative Reasoning for Preemptive Execution. Jaeheon Yi, Caitlin Sadowski, and Cormac Flanagan. Annual Symposium on Principles and Practice of Parallel Programming (PPoPP), 2011.
[ACM | pdf]
Practical Parallel and Concurrent Programming. Caitlin Sadowski, Thomas Ball, Judith Bishop, Sebastian Burckhardt, Ganesh Gopalakrishnan, Joseph Mayo, Shaz Qadeer, and Madanlal Musuvathi. ACM Technical Symposium on Computer Science Education (SIGCSE), 2011.
[IEEE | pdf]
DP-Fair: a Simple Model for Understanding Optimal Multiprocessor Scheduling. Greg Levin, Shelby Funk, Caitlin Sadowski, Ian Pye, and Scott Brandt. Euromicro Conference on Real-time Systems (ECRTS), 2010.
ECRTS Best Paper Award.
[ACM | pdf]
SingleTrack: A Dynamic Determinism Checker for Multithreaded Programs. Caitlin Sadowski, Stephen N. Freund, and Cormac Flanagan. European Symposium on Programming (ESOP), 2009.


Peer-Reviewed Workshop Publications

[ ACM | pdf | Tech Report | Poster]
Heuristic Evaluation of Programming Language Features. Caitlin Sadowski and Sri Kurniawan. Onward! Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU), 2011.
[ACM | pdf]
The Last Mile: Parallel Programming and Usability. Caitlin Sadowski and Andrew Shewmaker. FSE/SDP Workshop on the Future of Software Engineering Research (FoSER), 2010.
[ACM | pdf]
Applying Usability Studies to Correctness Conditions: A Case Study of Cooperability. Caitlin Sadowski and Jaeheon Yi. Onward! Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU), 2010.
[WCCP | pdf]
A Tool-based Approach to Teaching Parallel and Concurrent Programming. Caitlin Sadowski, Thomas Ball, Judith Bishop, Sebastian Burckhardt, Ganesh Gopalakrishnan, Joseph Mayo, Shaz Qadeer, Madanlal Musuvathi, and Stephen Toub. SPLASH Workshop on Curricula for Concurrency and Parallelism, 2010.
[WODA | pdf]
Tiddle: A Trace Description Language for Generating Concurrent Benchmarks to Test Dynamic Analyses. Caitlin Sadowski and Jaeheon Yi. Workshop on Dynamic Analysis (WODA), 2009.
[ACM | pdf]
Sidetrack: Generalizing Dynamic Atomicity Analysis. Jaeheon Yi, Caitlin Sadowski, and Cormac Flanagan. Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging (PADTAD), 2009.
[WMM | pdf]
Proving Correctness of a Dynamic Atomicity Analysis in Coq. Caitlin Sadowski, Jaeheon Yi, Kenneth Knowles, and Cormac Flanagan. Workshop on Mechanizing Metatheory (WMM), 2008.


Technical Reports

[UCSC | pdf]
SimiHash: Hash-based Similarity Detection. Caitlin Sadowski and Greg Levin. UCSC-SOE-11-07, 2011.
[MSR | LtU | pdf]
A Preliminary Survey on Functional Programming. Caitlin Sadowski and Daan Leijen. MSR-TR-2010-147, 2010.
[UCSC | pdf]
SNS: A Simple Model for Understanding Optimal Hard Real-Time Multiprocessor Scheduling. Greg Levin, Caitlin Sadowski, Ian Pye, and Scott Brandt. UCSC-SOE-11-09, 2009.


Panels/etc.

A Richer Life: Family and Academic Careers. Caitlin Sadowski (Moderator). Women in Science and Engineering (WiSE). Winter panel and luncheon, UCSC, 2011.
[blog]
Babies in Graduate School: Making It Happen. Alexandra Holloway, Caitlin Sadowski, and Laurian Vega. ACM-W CIS Newsletter: Celebrating, Informing, & Supporting Women in Computing, 2011 (3).
[pdf]
Mommies Know Best: Pregnancy, Graduate School, & Beyond. Alexandra Holloway, Caitlin Sadowski (Moderator), and Laurian Vega. Grace Hopper Celebration of Women in Computing (GHC), 2010.
[pdf]
Girls, Games, and Getting to the First Day. Gillian Smith, Caitlin Sadowski (Moderator), and Gail Carmichael. Grace Hopper Celebration of Women in Computing (GHC), 2010.
Links