Software evolves toward complexity rather than simplicity. Understanding how to handle software complexity is of increasing importance as we move toward ultra-large scale systems. Yet the current state of software engineering is unprepared to tackle such complexities. The introduction of new tools as well as the improvement of existing ones, I believe, are means to help manage such complexities.

With that in mind, there are three main issues in software engineering that I am interested in: (1) the creation of tools that will facilitate the understanding of the workings of software, (2) the usage of such tools as means for educating, and (3) the quantitative evaluation of the efficacy of such tools and the software that they produce. Each topic is important and the combination of the three would foster a better understanding of the engineering of software.

During my graduate studies, my colleagues and I examined each of those questions and come up with interesting insights (see my publications page). Now that I am working in the industry, I am even more interested in continuing with this line of research and creating tools that will greatly benefit both internal and external developers.