My research is broadly focused on language design and domain-specific languages. I believe that clear and expressive languages are essential for understanding, solving, and explaining difficult problems. I am especially interested in type systems, functional programming, and modularity.
Currently, I am researching formal representations and analyses of variation. I am the co-creator of the choice calculus, a simple calculus of variation that can be easily extended with new features and instantiated by new object languages. This research was originally motived by improving the development and maintenance of massively configurable software, such as software product lines. However, it has since been applied to modeling resource consumption, optimizing gradually typed programs, typing generalized algebraic data types, and more.
CS 583: Advanced Functional Programming (Spring 2020)
Past courses are listed on my teaching page.
I am an organizer and activist for the United Academics of Oregon State University. If you have any questions about our new faculty union here at OSU, please shoot me an email. I’d love to talk!
Recently, I organized and chaired the graduate consortium at VL/HCC 2017, and organized and co-chaired several workshops: FOSD 2017, DSLDI 2017, and DSLDI 2016. I was also the web and publicity co-chair for SPLASH 2017.
I am also serving or have recently served on the program committees for:
I lead a diverse team of fantastic students:
- Sebastian Benjamin, Honors thesis
- Margaret Walters, Honors thesis
My past students, along with their theses or project reports are listed on my advising page, along with advice you should read if you're interested in applying to work with me.
Elsewhere on the Web
Here are my profiles at some sites I actively use:
I do not have accounts at ResearchGate or Academia.edu for the reasons described here.