Home
I am an Assistant Professor of Software Engineering in the Department of Computer Science at the University of North Carolina at Charlotte. As software systems evolve, maintaining their integrity becomes a moving target. My research focuses on creating innovative tools and techniques to detect and repair deep-seated bugs at both the functional and non-functional levels, particularly those arising from long-term maintenance. By combining program comprehension, change impact analysis, and AI-driven approaches, I diagnose code subtle and latent vulnerabilities to drastically improve long-term software quality, reliability, and robustness.
Additionally, I incorporate effective empirical methodologies to identify the root causes of software quality issues. By combining technical depth with empirical research, I contribute to the development of more reliable and robust software systems. Details about my research can be found in my dissertation.
Prior to joining UNC Charlotte, I taught Computer Science courses at various institutions, covering both undergraduate and graduate levels. I also worked in industry as a senior Java developer for over three years, contributing to the development and maintenance of various web-based applications.
I hold a B.S. in Mathematics and Computer Science from the University of Prishtina (Kosovë), an M.S. in Computer Science from Midwestern State University, an M.S. in Computer Science and Engineering from the University of Notre Dame, and a Ph.D. in Computer Science and Engineering from the University of North Texas.







