His research is in software engineering and Artificial Intelligence. He studies how developers work with Large Language Models and AI coding agents. He worked on how coding agents are instructed and configured within software projects, and how systems based on machine learning are built and operated (MLOps).
He uses a data-driven empirical approach, leveraging LLM-based agents together with traditional Machine Learning and Deep Learning techniques to analyze large corpora of data mined from software repositories, such as source code and configuration files, commit histories, issues, pull requests, and developer discussions. He has applied the same approach to the social side of open-source development, studying community smells in developer communication.