The dream to work with compilers and to become a professor pushes young student to obtain an MSc and a PhD at UFMG’s Department of Computer Science

Andrei Rimsa Álvares began his story at DCC/UFMG in 2009, when he entered the Master Program in Computer Science. He always wanted to work with compilers and, at the time, he saw the opportunity to set foot on a path that would help him to fulfill this dream. So, right after the inaugural class that is offered to all the freshmen, he spoke with Professor Roberto Bigonha about his desire to work with program analysis. Professor Bigonha encouraged him and set up a meeting with a recently hired faculty member who was returning from his doctorate in the United States: professor Fernando Pereira.

During that meeting, 11 years ago, Andrei agreed to pursue a master degree having both professors, Fernando and Roberto, as advisors. Right at the beginning of the master program, Andrei applied to the Google Summer of Code. His proposal was accepted, and he got to work on the LLVM compiler. “There were months of dedication to this project together with the classes in the first semester. The support of the research group at the Compilers Lab and the guidance of Fernando and the GSoC mentor was essential to conclude the project successfully. After a year in the master program, we started a partnership with professor Marcelo D’Amorim, from the Federal University of Pernambuco (UFPE). I worked in Recife, the capital of Pernambuco, for only a few months. However, that time was crucial for the development of our research. I soon understood the importance of partnerships in research. At the end of 2010, I defended my master dissertation and went to work in the private sector”, he said.

Upon graduating with an MSc, Andrei worked in a software house and developed web systems for the Brazilian federal government. He later went to work at a medical equipment company, where he created embedded systems for a heart monitor. Simultaneously, Andrei taught nightly classes at PUC-MG, where he discovered his real calling: education. To achieve this goal of entering the academic world, Andrei applied for a position at the Federal University of Ouro Preto (UFOP) and began working on the João Monlevade campus. “There I realized that I needed to go back to research and, for that, I spoke with professor Fernando to have his support for a possible doctorate. Because I was working, and could only put part of my time into research, Fernando was reluctant to become my adviser; hence, he recommended me to take isolated classes within DCC’s graduate program. In the meantime, I participated in another selection process to become a professor in the Computing Department at CEFET-MG. That position brought me back to Belo Horizonte. After taking some courses at DCC/UFMG, Fernando accepted to be my advisor again, which was an honor and a joy”, he reported.

And so, In 2015, Andrei returned to UFMG’s Department of Computer Science to pursue his doctorate. During this period, he faced problems to conciliate his work with his research. After the PhD’s qualifying phase, he settled for a research path that looked promising: the dynamic analysis of programs. Again, partnerships were essential for the completion of this project. “We spoke with professor José Nelson Amaral, from the University of Alberta (UoA), who offered to help us. This contact led to an invitation from DCC for Amaral to come to Belo Horizonte to give a course about experimental evaluations in our department. Nelson’s visit was funded by the Brazilian Ministry of Education via CAPES. After that, I spent some time in Edmonton under Nelson’s supervision, which further solidified our partnership. During the COVID-19 pandemic, I combined the writing of the thesis with recordings of classes for online teaching at CEFET-MG. And, at the end of 2020, I defended the doctorate”, he said.

Andrei still maintains ties with Professor Fernando’s research group, which, according to what he said, is doing cutting-edge research in the field of compilers. “I have a lot to thank for all the opportunities that DCC has brought me. In particular, I am thankful to professor Fernando, who has always believed in me. I always try to pass the lessons I learned from him to my students and I treasure his friendship”, he concluded, moved.

As for professor Fernando, Andrei was an incredible student, extremely creative and persistent, in addition to having a rare talent for writing very complicated programs and understanding complex systems. “During his doctorate, Andrei learned deeply how the so-called program virtualization systems work. These are tools that interpret and analyze the execution of other programs. A well-known example of this type of system is Valgrind. Andrei knows Valgrind very well. Probably, he is one of the world’s experts in this tool, having contributed many plugins to this framework. Some of these plugins, like CFGgrind, ended up attracting a community of users. Besides that, Andrei is very careful in preparing and teaching courses. The classes he sets up and offers at CEFET-MG attract a large audience of students, even outside the institution where he works. Andrei has brought much to our research group, and, personally, I am very honored for the privilege to call him a friend”, explains Fernando.

To know more about Andrei, visit his webpage ( or his LinkedIn (

Read the whole series about DCC’s alumni