Research
I study how software evolves, how defects propagate through codebases and ecosystems, and how AI is changing the way software is built, through large-scale repository mining, program analysis, and empirical methods. I work in the Software Evolution (EVOL) Lab at UNLV, advised by Prof. John Businge.
AI Coding Agents & LLMs for Software Engineering
The problem
AI coding agents are moving from assistants to active contributors in real codebases. Yet we have little empirical understanding of how their contributions differ from human work, what failure modes emerge when multiple agents collaborate, or how developers integrate AI-generated code into production.
My approach
I characterize agent-generated pull requests at scale, covering commit patterns, code change semantics, and merge conflict rates, and study the new class of coordination problems that arise when autonomous agents concurrently modify shared repositories.
Highlights
- 142K+ agentic pull requests mined across 59K+ repositories
- 336K+ fine-grained merge conflict regions released as an open dataset
- Median adoption of ChatGPT-generated code in PRs is only 25%
Patch Integration in Software Variants
The problem
When a bug is fixed in one fork, the fix rarely reaches related forks, even when they share the same vulnerable code. As forks diverge, renamed methods, moved classes, and restructured hierarchies cause patch replay to fail silently, leaving downstream users exposed to known bugs.
My approach
I build refactoring-aware tools and benchmark datasets that make patch integration reliable and automated, and visual analytics that surface missed patches between variants.
Highlights
- RePatch recovers 52.8% of previously failing cross-fork patches
- Distinguished Artifact Award, IEEE SCAM 2025
Software Ecosystems & Data Infrastructure
The problem
No package exists in isolation. Library updates ripple through dependency graphs, vulnerabilities propagate across ecosystems, and the health of one widely-used artifact can affect thousands of downstream projects.
My approach
I apply network science and repository mining to map how package ecosystems evolve. Through the Google.org-funded AirQo project, I also build and evaluate reliable data pipelines for large-scale environmental monitoring across Africa.
Highlights
- Maven Central analyzed as a 1.3M-node, 20.9M-edge dependency network
- Production air-quality data pipeline serving African cities
Code Smells & Software Quality
The problem
Design smells such as God Classes and Feature Envy accumulate quietly as software grows, increasing maintenance cost and bug density long before they trigger visible failures.
My approach
I examine how smells manifest across desktop and mobile platforms, relate them to class role-stereotypes, and release benchmark datasets for reproducible detection research.
Highlights
- 11,350 classes from 30 repositories analyzed for smell and role-stereotype relationships
- Open dataset of 2,513 classified Java classes
Visual highlights of selected projects are on the Showcase page.