I am a Postdoctoral Fellow at the University of Toronto, working with Tovi Grossman. My research theme is On-Demand Collaboration in Programming. In particular, my research in human-computer interaction (HCI) studies challenges that computer programmers at all levels of expertise face when using existing tools and methods to seek support. It combines human and machine computation to create programming support systems that can effectively and scalably assist programmers when needed. The systems I create address challenges including providing within-IDE help in nearly real time, providing feedback to learners at scale, making communication more effective, and coordinating teams to more efficiently collaborate, which neither computers nor humans can effectively solve alone. To make these systems possible, my research explores how to design workflows and interfaces that can effectively coordinate and scale the collective effort of experts, non-experts, and machines.
CoCapture allows designers to create UI behavior mockups on existing web interfaces by demonstrating and remixing, and to accurately describe their requests to developers by referencing the resulting mockups using hypertext.
Explores the motivations/barriers/opportunities of live streaming programming as compared to pre-recorded video through interviews with 14 streamers & 12 viewers.
Bashon introduces a crowdsourcing approach to help make program synthesis systems more robust, reliable, and trustworthy, and reduces the cost of downstream data collection for training a program synthesis system.
EdCode applies a semi-asychronous on-demand help seeking model in a learning setting, aiming towards provide more personalized support at scale.
Two techniques, interactive event-flow graphs and GUI-level guidance, that guide GUI testers to discover more test cases and avoid duplicate test cases.
Sifter improves the video curation process by combining automated techniques with a human-powered two-stage pipeline that browses, selects, and reaches an agreement.
Explore the types and causes of the coordination costs for transient software teams when using existing collaborative programming tools: a VCS and a shared editor.
Two studies that present the opportunities and the design recommendations of on-demand remote support systems for developers.