PhD Candidate, Full CV (Updated as of December 2022)
I am a fifth-year Computer Science PhD student at the University of Michigan focused on the intersection of Software Engineering and Human Factors (expected graduation, spring 2024). My work enables developers to become experts faster and be more supported and productive. I have built and evaluated tools that automatically provide debugging hints for programmers of various expertise levels. Additionally, I have looked at factors that influence happiness and productivity, including psychoactive substance use and its regulation among professional programmers. Much of my work has a diversity aspect, making software more accessible for all. For instance, my work developing cognitive interventions is helpful for programmers from lower socioeconomic backgrounds. I have experience with quantitative and qualitative research methods; I have conducted human studies of programming (200 in person participants, 400 remote), survey research (800 participants), empirical tool evaluations (including APR and synthesis tools on 25,000 user programs), statistical data analysis (scipy and statsmodels), neuroimaging (40 participants), mining software repositories (20,000 GitHub repositories), and semi-structured interviews (26 participants). I am looking for a research internship in the Summer or Fall of 2023.
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.
Indicative Papers: Relating Reading, Visualization, and Coding for New Programmers: A Neuroimaging Study
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.
Indicative Papers: Hashing It Out: A Survey of Programmers' Cannabis Usage, Perception, and Motivation
Ongoing Projects: Deeper qualitative analysis, an observational study on cannabis use while programming, and an exploration of cannabis use's effect on UI interactions.
Coming soon
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.