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.

Recifehttp://www.ufpe.br/

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.

Petrolinahttp://www.pe.senac.br/unidades/petrolina/