Summary
Bachelor in Software Engineering and Masters in Computer Science at the University of São Paulo. I have worked with different technologies along my professional and academic career, being most passionate about Operating Systems (OSes). I also volunteer to the Free/Libre and Open Source Software (FLOSS) community.
Professional Background
Senior Software Development Engineer (Since August 2019, Toronto, Canada)
At AMD, I’m working with the GPU open-source driver named amdgpu. This driver is composed of multiple components, and I have been working on the display elements directly (the KMS part inside the DRM subsystem). The AMD display code is shared with other OS, and as a result, it has multiple teams working in the same code base; as part of my contributions, I helped devise new tools and processes that fast and safely promote closed-source code to open-source. I also helped improve the code quality by expanding the tests for the driver at the kernel level (e.g., improve IGT). I also work fixing bugs, refactoring code, expanding documentation, and helping to support new features.
Autonomous Linux Kernel Contributor (Since January 2018, São Paulo, Brazil)
I upstreamed over 30 commits to the Linux Kernel mainline, across different parts of the project: Context Switch (Core), Virtual Kernel Mode-Setting (DRM), and IIO. I have also contributed to related projects such as IGT GPU Tools (IGT) and Debian.
Intern at Xorg Foundation Working on DRM, Google Summer of Code (GSoC) (April 2018 – September 2018 – São Paulo, Brazil (Remotely)
I worked (with another student) to develop a software-only Kernel Mode-Setting driver module that is useful for testing, debugging, benchmarking, and running compositors on headless machines while still leaving the machine’s GPU free for other tasks (more details at GSOC-Final-Report. During the project, I had to acquire a significant body of knowledge in how the Linux graphics stack works.
Into the Unknown: A Journey Through Science Fiction, Freelancer Developer (November 2016 – April 2017 – São Paulo, Brazil)
Into the Unknown was an exhibition that happened in London and was organized by Barbican. The team I was part of had to develop two applications: one in C++ using SDL framework targeted for managing user access to different games on a desktop; and one in Java for a music player targeted at Android tablets. Both applications lock down the machine to prevent unwanted access from users. I worked with one developer and a tester.
Brazilian Public Software (SPB) Platform, Developer and Technical Leader (July 2014 – December 2015 – Brasília, Brazil)
SPB is a Collaborative Developing Environment that aims at reducing government costs with software contracts. It was a partnership between the Brazilian Ministry of Budget and the University of Brasília. During the project, I programmed mostly with Python and Ruby, and actively acted both on creating the DevOps team and as the technical liaison with other teams.
Intern at Samsung, Android Developer (2014 – Suwon-si, South Korea)
I was given the task of developing an Android app from scratch (details are omitted due to a NDA). The main idea of the application was paper drafted so that no time with wrong requirements was wasted. Next came the entity-relationship structure of the database alongside with the architecture. I focused on creating a robust architecture, made possible by the use of the pertinent design patterns learned at school. At the end of the internship, I had to present the project for many engineers from other teams for evaluation.
Academic Background
January 2016–February 2019, University of São Paulo (USP) - M.S. in Computer Science, São Paulo, Brazil
My research area focuses on Operating Systems. It all began with a partnership project with Hewlett Packard (HP), wherein I was involved with the study of new memory management techniques for high density memories. I evaluated the behavior of one specific algorithm implemented by HP, using Apache HTTPD in benchmarks as study case. From this specific algorithm, the research was expanded to a discussion of new OS process abstractions with the goal of assisting in the definition of the next standard generation of OS process management.
March 2009 – July 2015, University of Brasília, B.S. in Software Engineering with Major in Electronics, Brasília, Brazil
The course is a five-year program that covers classes ranging from hands-on programming to requirement analysis and project management. During my Bachelor course I took extra classes in digital systems and low-level programming, hence the major in electronics. I joined the embedded systems laboratory and worked with Samsung S3C2440 board in a bare metal environment to build a telemetry system.
Extra-curricular activity
July 2013 – July 2014, Sungkyunkwan University (SKKU), Exchange Student in Computer Engineering, South Korea, Suwon
I decided to pursue an exchange period of studies in South Korea due to the Country’s excellence in embedded systems and to my interest in working as intern at Samsung Digital City. I focused on low-level programming and OS. Additionally, I improved my English and began to learn the elementary level of the Korean language. I joined the automation laboratory, managed by professor Jae Wook Jeon, to learn about GPUs in embedded systems.
Publications (as author or co-author)
- Continuous Delivery: Building Trust in a Large-scale, Complex Government Organization (IEEE Software’18)
- Brazilian Public Software Portal: an integrated platform for collaborative development (OpenSym ‘17)
- Optimizing a Boundary Elements Method for Stationary Elastodynamic Problems implementation with GPUs (WSCAD’17)
- FLOSS Project Management in Government-Academia Collaboration (OSS’18)
- Leading successful government-academia collaboration using FLOSS and agile values (JSS) – under review
- The Next-Generation OS Process Abstraction (IEEE Computer) – to be submitted