I'm a researcher in the Future of Programming Lab at the University of Michigan, where my work focuses on programming languages, specifically Hazel, a live functional programming language. I'm interested in utilizing the intersection of Programming Language Theory and Human-Computer Interaction to make the power of computing better for everyone. My long-term vision is to extend live programming into creating malleable software by integrating programming language structures into end-user interfaces. Before my research career, I worked as a professional software engineer for over a decade.
Outside of my research, I'm a novice climber, always looking to improve and tackle new challenges.
I am currently looking at adding features to Hazel to make it amenable as a live, rich, composable, and collaborative planetary compute engine. The goal is to help address the climate crisis by creating better tools for climate scientists to interface with data and enabling them to better collaborate and share their work. If you are interested in this topic I would encourage you to watch my talk from PROPL 2024. That work is currently taking the form of providing more data-oriented features to Hazel, such as first-class labeled tuples and better support for tabular data. It is written up in our OOPSLA 2026 paper, Interactive Data Analysis with Lively Typed Tables, which introduces live typing: an enhancement to gradual typing that feeds runtime observations back into type checking, making it possible to type-check operations like pivot or unstack whose output columns are determined by the data itself.