Personal Projects

Algorithms in Python

The goal of the website "Algoritmos em Python" is to teach Algorithms and Python, in Portuguese. The motivation for the project came from the fact that there is large amounts of resources in English to teach Computer Science topics, but such resources are scarce in Portuguese.

Udacity - Deep Learning Foundation Nanodegree

Machine Learning and Artificial Intelligence have become two of the most important topics in Computer Science lately. Deep Learning is a branch of Machine Learning that has been successfully applied to a variety of scenarios and has helped solve all sorts of interesting problems in the past few years. Given the importance of such a field, I decided to learn its main techniques and the skills necessary to keep learning more about it. To help me do that, I took Udacity's Deep Learning Nanodegree program. Here's a repository with my solutions to the projects.

Academic Projects

Optimizations for Graphics Processing Units

Throughout my Master's I worked with compiler techniques for parallel applications. The goal of my work was to create tools to raise the abstraction level of writing parallel code and to mitigate divergences in such code. To help developers write parallel code, we provided a suite of static analyses, which rely on OpenACC's capabilities. And to reduce divergences we introduced a novel optimization - the fusion of calling sites - which joins function call sites to avoid that different threads call functions divergently.

Range Analysis

During my undergrad studies I was a research assistant at the Programming Languages Laboratory of the Federal University of Minas Gerais. The main project I worked on during that period was about range analysis and it was among the top ten undergraduate research projects in Brazil, in 2011.