Senior Research Felow
Director, Undergraduate Research Programs
Office: TCS Hall 323
I am a Senior Research Fellow in the Institute for Software Research at Carnegie Mellon University. I have broad research interests at the intersection of programming languages and human-computer interaction. I am particularly interested in better understanding of the factors that influence the usability of reusable software components.
I am fortunate to work with amazing PhD students. I advise Jenna Wise (co-advised by Jonathan Aldrich), Wode “Nimo” Ni (co-advised by Ken Koedinger), Matthew Davis (co-advised by Brad Myers), Sam Estep (co-advised by Keenan Crane), and Ian McCormack (co-advised by Jonathan Aldrich) . I also collaborate with Katherine Ye.
I direct the Research Experience for Undergraduates in interdisciplinary Software Engineering (REUSE) program with Charlie Garrod and Claire Le Goues. The program provides an opportunity for a diverse cohort of undergraduates from school accross the country to spend the summer working with the world’s leading computer scientists. Students conduct research in a broad range of areas, including: collaboration and teams, computational statistics, computer architecture, diagrams and visualization, data mining and analysis, embedded systems, human-computer interaction, networking, privacy, program synthesis, program repair, programming languages, security, software architecture, societal computing, software requirements, and testing.
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 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 three children: Akiva, Elisheva, and Tamir.
- UISTReCode: A Lightweight Find-and-Replace Interaction in the IDE for Transforming Code by ExampleIn Proc. Symposium on User Interface Software and Technology (UIST), 2021.
- CACMPL and HCI: Better TogetherCommununications of the ACM (CACM), 2021.
- TOCHIPLIERS: A Process That Integrates User-Centered Methods into Programming Language DesignACM Transactions on Computer-Human Interaction (TOCHI), 2021.
- SIGGRAPHPenrose: From Mathematical Notation to Beautiful DiagramsACM Transaction on Graphics (SIGGRAPH), 2020.
- CHIHow Domain Experts Create Conceptual Diagrams and Implications for Tool DesignIn Proc. of the Conference on Human Factors in Computing Systems (CHI), 2020. 🏆 Best Paper Honourable Mention