I am Professor of Software Engineering at the Informatics Center (video) of the Federal University of Pernambuco, where I lead the Software Productivity Group (video). I am currently the Director of the Informatics Center.

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 societal 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 co-founded Qualiti Software Processes, a spin-off of the Informatics Center and C.E.S.A.R., specialized on software development tools and processes. This was one of the first companies to join Porto Digital, now one of the major information technology hubs in Brazil.

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. I was Fulbright Visiting Faculty Scholar at CMU’s Institute for Software Research (currently the Software and Societal Systems Department).

Projects

Semantic Merge Tools

We investigate static and dynamic analysis techniques to develop semantic merge tools that detect conflicts missed by current tools.

Semistructured Merge Tools

We investigate and develop semistructured merge tools that improve code integration accuracy without compromising performance.

Publications

Here I list my latest publications. The full list is available here. You can also check my publication lists at DBLP, Google Scholar, and Semantic Scholar.

(2022). Build conflicts in the wild. Journal of Software-Evolution and Process.

PDF Replication package

(2022). The Private Life of Merge Conflicts. SBES 2022: XXXVI Brazilian Symposium on Software Engineering.

PDF Replication package

Posts and Guidelines

Participando de um painel

Leia How to Kick Butt on a Panel, de Guy Kawasaki. Essa é basicamente a referência que tenho seguido desde a minha primeira …

Escrevendo cartas de recomendação ou referência

Antes de tudo, leia Advice to Graduate School Recommendation Letter Writers, de Shriram Krishnamurthi. Você só deve escrever cartas …

Começando uma carreira acadêmica

Leia How to live in paradise, de David Evans. Esse texto traz muitas dicas interessantes para resumir aqui, mas tirar férias, reservar …

Courses

Introduction to Software and Systems Engineering

2020-1, 2020-3, 2019-2, …, 2014-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.

You can find here the playlists (with videos in Portuguese) for each of the topics covered in the course:

Software Engineering

2020-1 (please email or chat for class material beyond the videos below)

An advanced undergraduate, basic graduate level course covering a larger range of software engineering concepts, activities, techniques, and tools. The previous course is a prerequisite to this one, where we cover more advanced topics and discuss a number of research papers.

You can find here the playlists (with videos in Portuguese) for each of the topics covered in the course:

Code Integration Tools and Techniques

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 carry on an empirical study to either replicate one of the discussed studies or answer related research questions.

OTHER COURSES >

Talks and Outreach Activities

Quero mesmo ser Pesquisador?

Neste episódio, o professor e diretor do CIn, Paulo Borba, recebe Heitor Sammuel Carvalho, ex-aluno e profissional da indústria de TI. …

É o fim da programação?

Em tempos de ChatGPT, será que é o fim da programação? Prognósticos apocalípticos à parte, o episódio 135 do podcast Papo no Auge! …

Impactos da Inteligência Artificial na Sociedade

A Inteligência Artificial (IA) tem sido um tópico cada vez mais relevante da atualidade, com a tecnologia em constante evolução e …

Students and Collaborators

Here are the students I currently supervise, with their expected graduation dates:

  • Amanda Moraes (BSc 2024)
  • João Pedro Henrique Santos Duarte (MSc 2025)
  • Galileu Santos de Jesus (PhD 2024)
  • Guilherme Cavalcanti (Postdoc 2024)
  • Henrique Oliveira (BSc 2024)
  • Hugo Cardoso (BSc 2024)
  • Isabela Menezes (BSc 2024)
  • Matheus Barbosa (PhD 2026)
  • Nathalia Barbosa (BSc 2025)
  • Toni Maciel (BSc 2023)
  • Vinicius Barbosa (BSc 2025)
  • Victor Lira (Postdoc 2024)
  • Victoria Figueiredo (BSc 2026)

I often have opportunities for supervising dedicated students and software developers interested in the topics I study. Please contact me for further detail.

Here are former students with whom I currently more closely collaborate:

  • Gabriela Sampaio (Meta, UK)
  • Guilherme Cavalcanti (IFPE)
  • Klissiomara Dias (UFRA)
  • Léuson da Silva (Polytechnique Montreal)
  • Paola Accioly (UFCA)
  • Rodrigo Bonifácio (UnB)
  • Thaís Burity (UFAPE)

Here is a yet very preliminary list of students I have supervised:

  • Marcela Bandeira Cunha (MSc 2023)

Contact