I study how to design programming languages to improve developers’ productivity. In doing so, I developed PLIERS (Coblenz et al., 2021) (Programming Language Iterative Evaluation and Refinement System), which is a method of integrating user-centered design into the process of designing programming languages. I use this approach to create concrete programming languages and then evaluate how the new languages affect people’s ability to write software. For example, I created Obsidian, a new smart contract language that uses a strong type system to rule out critical classes of bugs at compile time.
I completed my Ph.D. in the Computer Science Department at Carnegie Mellon University. I was a student of Jonathan Aldrich and Brad A. Myers. I also collaborated closely with Joshua Sunshine. Now, I’m a Basili postdoctoral fellow at the University of Maryland. I work with Michael Hicks, Michelle Mazurek, and Adam Porter.
I spent ten years at Apple. For eight years, I was a full-time software engineer on the iWork team, focusing on Numbers. I worked on versions for macOS, iOS, and iCloud. If you’re still using some other spreadsheet app, give Numbers a try!
- Dec. 2021: Gave an invited talk at the MIT CSAIL HCI Seminar.
- Dec. 2021: Gave an invited talk at the Tufts CS Department Colloquium.
- Dec. 2021: Visited the Glassman Lab at Harvard University.
- Dec. 2021: Gave an invited talk at the Northeastern University Programming Language Seminar.
- Dec. 2021: Paper accepted to ICSE 2022 (Garbage Collection Makes Rust Easier to Use: A Randomized Controlled Trial of the Bronze Garbage Collector).
- Nov. 2021: Attended the PLATEAU workshop.
- Nov. 2021: Invited attendance at an NSF-funded workshop on user studies of programmers.
- Oct. 2021: Co-organized the HATRA workshop at SPLASH and gave a talk on cognitive load theory in PL design; at SPLASH, gave a reprise of my OOPSLA 2020 talk on Obsidian.
- May 2022: Presenting journal-first (TOCHI) paper on PL design at CHI 2022.
- May 2022: Presenting paper on Rust garbage collection at ICSE 2022.
- June 2022: Attending Dagstuhl seminar on Theories of Programming.
- ICSEGarbage Collection Makes Rust Easier to Use: A Randomized Controlled Trial of the Bronze Garbage CollectorIn International Conference on Software Engineering. 2022. To appear. (26% acceptance rate)
- TOCHIPLIERS: A Process that Integrates User-Centered Methods into Programming Language DesignACM Transactions on Computer-Human Interaction. 2021.
- OOPSLACan Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in ObsidianIn PACMPL Issue OOPSLA. 2020. (Distinguished Artifact Award)
- TOPLASObsidian: Typestate and Assets for Safer Blockchain ProgrammingACM Transactions on Programming Languages. 2020.
- ICSEGlacier: Transitive Class Immutability for JavaIn International Conference on Software Engineering. 2017. (16% acceptance rate)