Last updated Mar 18, 2024 Published Jul 9, 2016


Hello there! I am an aspiring researcher focused on TDD, a close friend of software testing. My research is focused on investigating the influence of Test-Driven Development (TDD) on the generation of test smells. This entails examining various aspects of software development under TDD, including organizational factors, team dynamics, and technical practices. I also developed Testable, a gamified tool that aims to improve the unit test teaching, trying to change the boring perception that developers have in learning how to test their code. Currently I am working as a Software craftsperson at Codurance, changing the way people build systems and trying to close the gap between academia and industry. Want to stay tuned on software development? Sign up on my newsletter "Papers of the week".

What are you looking for?

Book reviews

Find out the reviews of books that are key for practitioners.

Software engineering

Curated content

About me

Academic background

EN publications

PT-BR publications




Current tech stack

Keep in touch

Recent posts

Searching for the type of tests

Discover the nuances of different types of testing and its definition based on multiple authors.

What is testing? - A brief introduction to software testing

You can’t build great software without testing it thoroughly. Testing is a crucial step in the development process, with different teams using various approaches and types of tests. This blog post dives into the world of testing, explaining its role in the software lifecycle through different “testing pyramids” and categories. We’ll explore where testing fits in the grand scheme of things.

A gentle introduction to TDD

TDD is a three-stage process (Red, Green, Refactor) that improves code quality, collaboration, and development. It reduces the gap between decision and feedback during programming. Check out a YouTube playlist for more information.

Opening a new area of research: The intersection between TDD and test smells, where are we and where are we going to?

The current focus is on developing a framework to analyze the impact of TDD practice and test smells on the codebase, emphasizing the context in which TDD is practiced. While tools have been developed for identifying test smells mainly in the Java ecosystem, there’s still a need to adapt these tools for other programming languages. One of the main challenges is integrating various areas of knowledge, such as team and organizational settings, into this framework.

What would I do if I had to learn Laravel again after years of not using it?

For a long time, I used Laravel to build web apps and APIs for my professional career. I spent at least 4-5 years writing PHP apps with Laravel, which led to a book and later on hosting two conferences in Brazil, one in 2016 and the other in 2017. Today, I would like to share what I would focus on if I had to relearn Laravel from scratch, and this post is an exercise that I am doing with that in mind. Be aware that it has been a while since I touched Laravel, and any inputs that might improve...

Code retreat 2023 - a debriefing

Unleash your coding potential with a code retreat, an immersive day of learning, collaboration, and technical growth. Join fellow developers as you tackle coding challenges, master new techniques, and forge valuable connections. Experience the transformative power of refactoring and emerge with enhanced skills, ready to elevate your coding prowess.

The history of test doubles

Test doubles are objects that are used to replace real objects in tests. They are used to isolate the code being tested from its dependencies, to simplify the code being tested, or to speed up tests. There are five main types of test doubles mocks, stubs, fakes, dummies, and spies. Mocks are used to simulate the behavior of real objects. Stubs are used to provide canned responses to method calls. Fakes implement the same interface as real objects but with simplified or simulated behavior. Dummies do nothing. Spies track how real objects are being used.

Live coding with web workers an experimental code kata

This article describes a coding dojo about web workers and test-driven development (TDD). The authors started by introducing web workers and their benefits and drawbacks. Then, they implemented a simple example and a more complex example to explore the limitations of JavaScript and how web workers can improve performance. In the second part of the dojo, the authors applied TDD to refactor their code to use web workers.

Tidy first? Software design by Kent Beck

The book starts with the tydings which are decent of refactoring but with a focused area and not that much of showing concrete code, the key is to understand the concept. In the second part, Beck goes towards a more professional point of view talking about managing the tydings, the chapters in this section provide tips on how to start and keep tyding the code base. Many of us (programmers) usually get lots of changes and forget about the focus of why we are tyding things, this part is to help programmers to avoid this situation. The last part of...

See more