PhD Candidate, Full CV (Updated as of February 2022)
I am a forth-year computer science PhD student at the University of Michigan where I am advised by Westley Weimer. Broadly, my research is at the intersection of software engineering and human factors where I am interested in exploring creativity, communication, and cognition. On the cognition side, I use neuroimaging and transfer-training-based experiments to study connections between natural language, spatial reasoning, and software engineering. As for communication, I have helped build and evaluate tools that automatically provide debugging hints for novices. I am also interested in how humans can best communicate scientific results, both of automatic patches and in other mediums such as Jupyter Notebooks. Finally, with respect to creativity, I am interested in understanding the diversity of human thought as expressed through programming. When I'm not working on research, I enjoy cooking, reading, traveling, hiking, and having long, overwrought conversations about moral philosophy, history, and astrophysics. I also play cello, and I'm always up for improvising and swapping music recommendations!
In this area of work, I use a variety of techniques, including programming tests, psychological assessments, and medical imaging to better understand the factors behind programming expertise with the ultimate goal of helping novices become experts faster.
Ongoing Projects: Using VR to teach spatial reasoning for novice programmers, and investigating cognitive causality in programming more directly using TMS
For this line of work, I investigate both the perceptions and effects of mind-altering substance use on both programming ability and general user interface interactions. I am interested in how this substance use can impact and shape programming culture, conflict between software company policy and developer preferred behavior, and impacts on productivity or creativity.
Ongoing Projects: Deeper qualitative analysis, an observational study on cannabis use while programming, and an exploration of cannabis use's effect on UI interactions.
Around a third of all novice Python programs contain a call to standard input. These inputs can be surprisingly complex and can contain bugs. However, modern programming hint generators usually consider only the source code when identifying and fixing errors. With this work, I aim to understand input structures and and fix erroneous inputs for unique novice programs.