Carnegie Mellon University

Joshua Sunshine

Dr. Joshua Sunshine (CS 2013)

5000 Forbes Avenue
Pittsburgh, PA 15213


I am a Systems Scientist in the Institute for Software Research at Carnegie Mellon University. I have broad research interests at the intersection of programming languages and software engineering. I am particularly interested in better understanding of the factors that influence the usability of reusable software components.

I completed my PhD in Software Engineering from Carnegie Mellon in December 2013. My dissertation focused on the usability of software libraries with ordering constraints (API protocols). I was advised by Jonathan Aldrich.

I graduated from Brandeis University in 2004 and worked for almost four years as a software engineer before starting graduate school. I'm married to Kira Sunshine, and we have we have three children, Akiva, Elisheva, and Tamir.


First-Class State Change in Plaid. Joshua Sunshine, Karl Naden, Sven Stork, Jonathan Aldrich, and Éric Tanter. in Proceedings of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) 2011

Permission-Based Programming Languages (NIER Track). Jonathan Aldrich, Ronald Garcia, Mark Hahnenberg, Manuel Mohr, Karl Naden, Darpan Saini, Sven Stork, Joshua Sunshine, Éric Tanter, and Roger Wolff. in Proceedings of the International Conference on Software Engineering (ICSE '11), New Ideas and Emerging Results Track, 2011.

Typestate-oriented programming. Jonathan Aldrich, Joshua Sunshine, Darpan Saini, and Zachary Sparks. in Proceedings of Onward! 2009

Crying wolf: An empirical study of SSL warning effectiveness. Joshua Sunshine, Serge Egelman, Hazim Almuhimedi, Neha Atri, and Lorrie Cranor. in Proceedings of Usenix Security 2009

A theory of typestate-oriented programming. Darpan Saini, Joshua Sunshine, and Jonathan Aldrich. in Proceedings of Fundamental Techniques for Java Like Programs (FTfJP) 2010

DynXML: safely programming the dynamic web. Joshua Sunshine and Jonathan Aldrich. in Proceedings of Analysis and Programming Languages for Web Applications and Cloud Applications (APLWACA) 2010

Language support for distributed proxies. Darpan Saini, Joshua Sunshine, and Jonathan Aldrich. in Proceedings of Distributed Objects for the 21st Century