Education
Universidade Federal de Pernambuco
2009 — 2015
Bachelor of Science in Computer Science
Here I've studied the concepts and theories of computing, such as algorithms and data structures; programming languages; software development and analysis; artificial intelligence; and relational and NoSQL database systems; being able to solve real issues regardless of whether the environment is industrial, commercial or scientific.
Complementary courses
Pluralsight
2022
Enterprise Database Migration
Online https://www.pluralsight.com/
Pluralsight
2022
Azure Kubernetes Service (AKS): The Big Picture
Online https://www.pluralsight.com/
Pluralsight
2022
Vue.js 3 Fundamentals
Online https://www.pluralsight.com/
Pluralsight
2022
Spring Framework: Overview of Spring Data
Online https://www.pluralsight.com/
Pluralsight
2022
Spring Framework 2: Creating Your First Spring Boot Application
Online https://www.pluralsight.com/
Pluralsight
2022
The .NET Ecosystem: The Big Picture
Online https://www.pluralsight.com/
Pluralsight
2022
Jira: Getting Started
Online https://www.pluralsight.com/
Pluralsight
2022
Developing SQL 14 Server Databases with Docker 20
Online https://www.pluralsight.com/
Pluralsight
2022
Microservices: The Big Picture
Online https://www.pluralsight.com/
Pluralsight
2021
Spring: The Big Picture
Online https://www.pluralsight.com/
Pluralsight
2021
Getting Started with Kubernetes
Online https://www.pluralsight.com/
Pluralsight
2021
Getting Started with Docker
Online https://www.pluralsight.com/
Pluralsight
2021
Docker and Kubernetes: The Big Picture
Online https://www.pluralsight.com/
Alura
2020
Oracle PL/SQL: Procedures, Functions and Exceptions
Online https://www.alura.com.br/
Alura
2020
Vue.js: Creating Single Page Applications
Online https://www.alura.com.br/
Alura
2020
Spring MVC
Online https://www.alura.com.br/
Alura
2020
REST Assured: Automated Tests of Web Services
JUnit itself may be sufficient to develop unit test for monolithic applications. However, testing services may bring a lot of complexity and duplicate code to deal with requests and responses. The REST Assured framework provides a bunch of features to abstract the creation of requests and to parse and validate responses.
Online https://www.alura.com.br/
Alura
2020
Apache Camel: The Framework for Integrating Systems
Online https://www.alura.com.br/
Alura
2020
Mocks with Java: Automated Testing of Behavior
Sometimes it's impracticable to test some features of an application cause it may depend on external factors - such as databases or services which are out of the tester control - or simply because it's too complex to set up the scenario needed. Mockito comes up to solve this problem, helping to easily simulate returns of methods which are not supposed to be tested, and so letting the tester concentrate on the real test case.
Online https://www.alura.com.br/
Alura
2020
TDD with Java
Testing applications manually may demand a lot of time and workforce that might be used to improve the software. In addition, as changes are made, bugs may be introduced to features already tested, making necessary the test the whole system at each release. Obviously, this approach is undesirable for any software that needs to be competitive in the market. The TDD approach helps to produce more reliable software as it guarantees that each new feature will be tested and will not crash the previously written test cases.
Online https://www.alura.com.br/
Alura
2019
COBOL: Handling Data Files
Online https://www.alura.com.br/
Alura
2019
COBOL: Getting Started
Although the language has been developed in the 50s, it continues to be maintained and evolved as many systems today rely on it to process transactions. Meanwhile, programmers mastering it become rare. Out of curiosity and thinking of that as an opportunity to know a real highly demanding skill, I took this course.
Online https://www.alura.com.br/
Alura
2019
Java 8: New Features
Java has been improved over time in order to make programmers as productive with it as in other modern programming languages. Knowing that, I needed to be aware and better understand the updates of its features such as lambdas and streams, so that I could use them in my work.
Online https://www.alura.com.br/
Alura
2019
Sass and Compass
Aiming to increase my productivity, I've taken this course to learn how to create better CSS writing less.
Online https://www.alura.com.br/
Alura
2019
JMS and ActiveMQ
The need to integrate applications that had to be resilient to failure in any of them made me seek to better understand message-oriented middleware. This course helped me to exercise with a real market software the theoretical knowledge acquired at university.
Online https://www.alura.com.br/
Alura
2019
JAX-WS: Mastering the Development of SOAP Web Services
Although many applications today are RESTful, it still exists the ones that relies on SOAP services. Thus, mastering the SOAP protocol can be very useful to maintain and develop service-based solutions.
Online https://www.alura.com.br/
Alura
2019
Angular: Fundamentals
After learning the basics of AngularJS it was time to update my knowledge of the new version of this well-known framework.
Online https://www.alura.com.br/
Alura
2018
JAX-RS and Jersey: Mastering the Development of REST Web Services
It seems RESTful services have become the rule when building new service-based solutions. Here I could learn the entire lifecycle of a web service with the Jersey implementation of JAX-RS API, from the test phase to deployment. I was introduced as well to some tools and libraries to make that task easier, like Grizzly, to quickly build a server environment; XStream and JAXB, to convert between XML and Java objects; and Gson to do the same with JSON.
Online https://www.alura.com.br/
Alura
2018
Swift 3: iOS Development with Xcode
Seeking to be in touch with the public we needed to make services available in a convenient and easy-to-use way: through their smartphones. Here I have learned the basics of Swift language and Xcode IDE, the tools needed to write safe, fast and accessible native software for one of the most popular smartphone platform.
Online https://www.alura.com.br/
Alura
2018
HTML 5 and CSS 3
Many solutions these days are based on web. In order to make friendly and responsive user interfaces, it is important to have strong knowledge of HTML and CSS. I've used these two since I was beginning to develop web pages and I've updated myself in an "on-demand" fashion. So, I decided to take that course to know if I was not missing any concept introduced over time.
Online https://www.alura.com.br/
Alura
2018
PHP and MySQL: Fundamentals of Creating Web Applications
Many enterprises use PHP on their solutions as it is easy to learn, very powerful and has a large community with which you can discuss or ask some question about the language. During this course I have learned how PHP can be easily integrated with MySQL, providing an inexpensive and complete solution to many kinds and sizes of business.
Online https://www.alura.com.br/
Alura
2018
MySQL: Powerful Queries
Online https://www.alura.com.br/
Alura
2018
MySQL: Getting Started
Reliable and easy to use, MySQL is one of the most popular open-source relational DBMS. Knowing this DBMS specificities is always good when setting up a new project as you will have an alternative to the well-known paid DBMSs available on the market.
Online https://www.alura.com.br/
Alura
2018
PostgreSQL: Getting Started
Working with that DBMS through an ORM has been a good experience. Although, the ORM was sometimes limited or inefficient when dealing with more complex data manipulations. So, I became interested to know more about that database and its native DDL and DML statements.
Online https://www.alura.com.br/
Alura
2018
UML
Although agile methodologies can help to create and maintain software as fast as business changes happen these days, there are some complex and critical features that need to be well planned and documented in order to be maintenable. UML diagrams can be very effective to represent complex systems in a way every team player can understand.
Online https://www.alura.com.br/
Alura
2018
Computer Networks
Knowing about the concepts of computer networks is useful to improve the performance of distributed software as well as to understand and mitigate the risks involved in this type of solution.
Online https://www.alura.com.br/
Alura
2018
Web Security: Vulnerabilities and OWASP
Government agencies often deal with sensitive citizen data. Keeping those data safe is mandatory in order to establish a trust relationship between citizens and the government. In that course I could improve my knowledge with practical examples of how to prevent the exploitation of software security vulnerabilities with SQL injection, brute force, cross site scripting and social engineering.
Online https://www.alura.com.br/
Alura
2018
AngularJS
As the software industry evolves, applications also need to evolve. So I needed to learn something that made me able to build more intuitive and responsive solutions.
Online https://www.alura.com.br/
Alura
2017 — 2018
Algorithms: Selection, Insertion and Introduction to Analysis
As I needed to improve the performance of some algorithms running on Brazilian government's systems, I've taken this short course to remember some concepts of algorithmic complexity I had learned at university.
Online https://www.alura.com.br/
Alura
2017
Threads: Concurrent Programming in Java
Governmental software systems are normally used by lots of people at the same time. So, concurrency problems may arise if we don't give to this subject the attention it demands.
Online https://www.alura.com.br/
Alura
2017
Java: Mastering Collections
The Java language has a very rich set of collection classes, each having its pros and cons. Mastering the differences between them could help one to produce safer code, wasting less time, as many useful behaviors and policies, such as data structures, algorithms and concurrency handling, are already implemented and well tested.
Online https://www.alura.com.br/
Alura
2017
Java: Testing, JSF and Design Patterns Workshop
This workshop aimed to resume the entire lifecycle of a Java application, using TDD. Here I had to construct a simple Java application and its unit tests, using JUnit. Then, I evolved it to a JSF one, using Primefaces. I also practiced the usage of the Java reflection API.
Online https://www.alura.com.br/
Alura
2017
SOLID with Java
Using good programming practices can make more readable, flexible and maintainable code. This course helped me to remember the five SOLID principles and how they can be implemented in a real programming language like Java.
Online https://www.alura.com.br/
Alura
2017
Design Patterns with Java - Programming Best Practices
Using the best coding practices will lead to "cleaner" code. This course explained how to apply some design patterns to Java code, including strategy, chain of responsibility, template method, decorator, state and builder.
Online https://www.alura.com.br/
Alura
2017
Object-Oriented Programming: Best Practices in Java
Java is an OOP language and to leverage that one must know the concepts and best practices of this paradigm. Today it is not difficult to find pieces of Java code written in a procedural fashion. Here I revisited concepts of OOP, such as encapsulation, inheritance, polymorphism, cohesion and coupling. In addition, I learned how to increase flexibility of code with dependency injection.
Online https://www.alura.com.br/
AlgaWorks
2017
Responsive PrimeFaces
As I was in charge of maintaining many applications using PrimeFaces and today people use a large variety of devices to access them I needed to upgrade these solutions to conform to this new context.
Online https://www.algaworks.com/
Fundação Bradesco
2017
Foundations of IT Governance
IT is crucial to almost all businesses and so it should be aligned with institutional goals to improve business value. IT governance is indispensable for that purpose as it helps to objectively define strategies and policies which will help to measure the results, make decisions to improve efficiency and balance the interests of all stakeholders.
Online https://www.ev.org.br/
Fundação Bradesco
2017
Data Modeling
It's mandatory for applications which rely on structured data to have a data model that can be understood without any doubts. This course discussed about the entity-relationship model and how one can use it to transform a real business model into a relational model, using the normalization techniques to make future queries fast and consistent.
Online https://www.ev.org.br/
Caelum
2017
Rich Web Applications with JSF 2, PrimeFaces and CDI
As many applications today rely on the internet and web browsers, it is necessary to make the user experience as rich as it was in desktop software. So I took this course to learn the best approaches to reproduce inside internet browsers the rich look and feel users use to have on desktops.
Online https://www.caelum.com.br/
Caelum
2017
Agile Practices for Software Development in Java
Business environments today change quickly, so have to adapt the software that supports them. To make quality software as fast as business demands, we simulated in groups, with an example project, the application of XP techniques and the continuous integration of changes with Jenkins.
Online https://www.caelum.com.br/
Serviço Nacional de Aprendizagem Comercial
2001
Internet and Development of Websites
By that time I was yet a child, but I was already interested in knowing how people turned their ideas into usable computer solutions. I had already gotten some knowledge on that field by doing my own researches, but taking this course made me get a clearer understanding of that subject.