
Hi, I am Xiaorui! I am a first-year computer science PhD student at the University of Pennsylvania. Advised by Andrew Head, my research lies at the intersection of human-computer interaction and programming languages. My current work centers on the human factors of Property-Based Testing. As a result, I also work closely with Benjamin Pierce. More generically, I am interested in understanding how to make programming more usable, particularly for end-users.
Previously, I graduated from the University of California, Berkeley, where I studied computer science, data science, and history, with a minor in digital humanities. My data science concentration was in geospatial information and technology, and my history concentration was in the history of science. At the start of my research journey in Berkeley, I was very fortunate to be advised by Sarah Chasins and was a part of PLAIT Lab. There, I did a mixed bag of projects at the intersection of PL + HCI, which included a Python eDSL for generating data transformation GUIs (UIST 2025, PLATEAU 2025) and a study on facilitating natural language program generation for Arduino users (PLATEAU 2026). I am grateful for all the kind, brilliant people in PLAIT who inspired me to venture into research.
For some fun additional background, I wrote my history thesis on the trajectory of industrial research labs, specifically IBM’s, in the 1990s. Amongst other escapades, I also wrote a substantial research paper on numerical taxonomy and essentialism in the mid-20th century. I hope to engage with ideas found in STS, intellectual history, and critical theory in future research. Outside of my studies, I am very proud to have taught as an undergraduate for many (7) semesters. I also had the pleasure of working in the Human Contexts and Ethics team at Berkeley, creating course content that integrated real data and ethical considerations into various data science courses. In my free time, I enjoy cooking/baking and casually playing video games.
(This website is forked from this repo, which is forked from this repo.)