I'm a PhD student in Computer Science advised by Amal Ahmed at Northeastern University.
My research interests revolve around how programming languages can be used to write more reliable software with less effort, taking into account practical concerns like performance and interactions between multiple languages.
I'm especially interested in type systems that strongly protect against classes of errors that are difficult to debug, such as those involving effects and memory.
Previously, I was a Software Engineer at Microsoft in the Azure Quantum team.
During that time, I contributed to the compiler and language design for Q#, Microsoft's quantum programming language.
Highlights include leading the switch to Hindley-Milner-based type inference, the switch from statement-based to expression-based syntax, and a complete rewrite of the compiler in Rust, all while maintaining a high degree of backwards compatibility.
Timeline
- October 2025
- From Linearity to Borrowing appears at OOPSLA 2025.
- June 2025
- Roulette: A Language for Expressive, Exact, and Efficient Discrete Probabilistic Programming appears at PLDI 2025.
- September 2024
- I was a teaching assistant for CS 4400 Programming Languages during the Fall 2024 semester.
- September 2024
- I gave a talk at HOPE 2024, An Incremental Approach to the Semantics of Borrowing, about work in progress which was later published as From Linearity to Borrowing.
- September 2023
- My PhD at Northeastern University begins after leaving Microsoft in August.
- January 2020
- I started a full time job as a Software Engineer at Microsoft. In the Azure Quantum team, I worked on the compiler and language design for Q#.
- December 2019
- I graduated with a Bachelor of Science in Computer Science from the University of Washington.
- June 2019
- For the summer, I was an intern at Microsoft in the Azure Quantum team. My internship involved adding support for code completion to the Q# language server.
Publications
Conferences
- From Linearity to Borrowing (Distinguished Paper)
- Andrew Wagner, Olek Gierczak, Brianna Marshall, John M. Li, Amal Ahmed
- Proceedings of the ACM on Programming Languages, Volume 9, Issue OOPSLA2
- October 9, 2025
- Singapore
- Roulette: A Language for Expressive, Exact, and Efficient Discrete Probabilistic Programming
- Cameron Moy, Jack Czenszak, John M. Li, Brianna Marshall, Steven Holtzen
- Proceedings of the ACM on Programming Languages, Volume 9, Issue PLDI
- June 13, 2025
- Seoul, South Korea
Workshops