Hi! I’m currently a Second Year Ph.D student at UC Berkeley, where I’m advised by Sanjit Seshia, and gratefully supported by the NDSEG Fellowship.
My research interests lie at the intersection of machine learning, programming languages, and formal methods. More specifically, I focus primarily on program synthesis and neurosymbolic machine learning. I’m motivated by the following questions: First, how can we use machine learning to help users build programmatic tools more efficiently? And second, how can we use techniques from formal methods, such as program synthesis, to make learning-driven systems safer and more interpretable?
I received my Bachelor’s and Master’s degrees from Rice University, where I worked on projects related to interpretable machine learning via program synthesis and formal methods. I was advised by Swarat Chaudhuri, who I worked with on the “Understanding the World Through Code” NSF Expeditions Project. As an undergrad, I also collaborated with Ankit Patel and Richard Baraniuk. I was fortunate to be supported by the Rice CS Graduate Fellowship.
I’ve also spent time at Microsoft Research AI, where I worked with Alex Polozov and the GRAIL group on interactive ML-driven program synthesis. I am currently collaborating with Jon DeCastro and TRI to help roboticists write better tests.
In my free time, I enjoy doing a lot of things, including but not limited to: playing tennis, writing subpar poetry, cooking, and repeatedly fixing and breaking my jumpshot. I’m originally from Cleveland, Ohio, and I love watching my beloved Cavaliers break my heart year after year.