Software development is a human endeavor that requires gathering diverse types of information and decision making, which includes complex, dynamic interdependencies among software artifacts and developers. Implementing a piece of software requires comprehending the code, reasoning about how the new feature fits into the existing code, and the impact of the changes on ongoing work. The technical dependencies among these pieces of software lead to social dependencies among developers, and the need to coordinate changes.
My research aims to understand the cognitive processes of humans and how AI can support in teams becoming productive. My work aim to build efficient and inclusive technology to help both professional and end-user programmers (e.g., data scientists, website designers) become more efficient and less error-prone.
My work leverages human behavior theories (e.g., Education Theory, Cognitive Bias, Information Foraging theory, Transactive Memory Systems) and empirical studies, to design and build AI-infused, inclusive software tools and approaches that help software developers and teams become more efficient. My research approach is interdisciplinary, leveraging research in AI, data mining, cognitive science, program analysis, software design, software visualization, and human-computer interaction.