
My work now fits into these three buckets and depending on the collaboration, it can be more or less.
Theme I: Software as Ecosystems
Nowadays software is not built in isolation, we rely on many third-party library dependencies and frameworks to use functionality. Problems arise when developers struggle to manage these dependencies. My research interests span the themes of the holistic concept of that these dependencies form ecosystems that evolve and intetwine together over time. With the rise of library package ecosystems, I conduct empirical analysis of software ecosystems such as Maven for Java, NPM for JavaScript, and PyPI for Python.
Theme II: Developer Proficiency as Code
We take the concept of lingustic frameworks for assessing an individual natural language skill applied to how developers are writing this code. Defined as code proficiency, I am particularly interested in the role of developer proficiency through understanding how they code. We would like to measure developers skill based on the code, how the code can also be used as a signalling device for collaborators. We investigate how educators are teaching programming languages, and how developers try to move from basic coding concepts to more complex structures. Currently, we focus on the Python programming language and Pythonic code.
Theme III: Bridging Developers Across Societies
Software development is now a global society. This research field aims to understand how developer from emerging nations like Papua New Guinea integrate software engineering into their society. I host international collaborators, workshops and internships with a global perspective.
Research Areas
As an empirical scientist, my team investigates hypotheses related to mining software repositories. Below are the research areas that it overlaps.
Human and Society
This research looks into how communication and human interactions shape software development processes and ultimately affect the societal impact of software.
- How can code proficiency be utlized for developer skills?
- How can a software ecosystem sustain itself?
Evolution
We examine the evolution of software ecosystems and how these changes impact software maintenance activities.
- How does software ecosystem maintain themselves?
- Does proficient code signal maintainable software?
Security
In the realm of security, we analyze various aspects of software ecosystems to assess their vulnerability to both external and internal threats.
- How can we make ecosystems more secure?
- How safe is proficient code?
Era of Artificial Intelligence
AI-assistance is already taking over, hence, my research covers this from an ecosystem perspective and also how code proficiency plays a role in this.
- What is the role of AI in ecosystems?
- What is the role of proficient in the Era of AI?
