I investigate and develop tools and techniques for improving software development quality and productivity levels, especially by reducing unnecessary effort and frustration in software developers work activities. I pursue a mix of academic excellence with industrial relevance.
My main research interests are in the following topics and their integration: advanced (semi-structured, structured, semantic) code merging tools, code integration conflicts, continuous integration and deployment, software modularity, software product lines, and refactoring.
I am a member of the ACM and of the Brazilian Computer Society.
I have a D.Phil. in Computing from Oxford University, and an M.Sc. and a B.Sc. in Computer Science from Federal University of Pernambuco.
2014-2, …, 2019-2 (please email or chat for class code)
An undergraduate level course introducing basic software engineering concepts, activities (requirements management, configuration management, project management, testing, design and implementation, refactoring), techniques, and tools. This is a very practical, hands-on, course exploring in detail a single technique and tool for each activity, instead of overviewing a number of techniques and tools for each activity. The techniques and tools are applied in the context of software as a service, using Typescript, Angular, and Node.js. As learning these technologies is not the main focus of the course, we simply overview them.
2019-2 (please email or chat for class code)
An advanced undergraduate and graduate level course discussing code integration tools and techniques, including different kinds of merge tools (textual, syntactic, semantic), continuous integration and deployment, and integration conflict prediction. We discuss a number of research papers and technical blog posts, and students execute an empirical study to either replicate the discussed studies or answer related research questions.