Hello!
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?
Find out the reviews of books that are key for practitioners.
Curated content
Start to finish
AZ-900 and AZ-204
The unicorn project
About me
Academic background
- PhD - Software engineering (focused on software testing) - CURRENT
- MSc - Software engineering (focused on software testing)
- MBA - Software development and game development for mobile applications
- MBA - Software engineering
- Degree - Technology analysis and systems development
EN publications
- Behaviors To Avoid When Practicing Pair Programming
- TDD: From Katas to Production Code
- The Never-Ending Debate: For Loops in Test Cases or Multiple Assertions
- TDD Knowledge Book- Insights from the first TDD Conference
PT-BR publications
- Matheus Marabesi: Testing - 7Masters
- Matheus Marabesi: Migrando de Mysql para MongoDB - 7Masters
- Nesse novo mundo da Internet das coisas, nos perguntamos: e o PHP? - iMasters
E-books
Certifications
Keep in touch
Recent posts
The Challenges in Adopting DORA Metrics for DevOps success
Learn about the key obstacles and strategies for successfully implementing the DORA metrics in your software development project.
Retrofitting Tests into a ReactJS Codebases without tests
This blog post explores strategies for enhancing testability with ReactJS context, challenges in maintaining and refactoring code without tests.
A Guide with test-doubles for Testing ReactJS Context
Learn to set up tests, verify default context values, simulate user interactions with and without test-doubles to make your reactjs app refactor friendly
Global day of code retreat Madrid - CraftersMadrid + Iberia
Join me in this reflection of how it was the code retreat experience in 2024.
Reflections on Software Crafters Barcelona 2024
Just attended Software Crafters Barcelona 2024, where I explored technical and cultural challenges shaping software development today. From managing high cardinality in metrics to tackling cultural change, and insights on clean code and emotional intelligence, the sessions were packed with practical takeaways. Highlights included Mercadonas large-scale refactoring strategies and live mob programming sessions, bringing hands-on learning and collaboration. Check out my recap for insights.
The differences between frontend and backend for TDD
TDD (Test-Driven Development) applies equally to both client-side and server-side applications, despite initial literature focusing on Java, a primarily server-side language. Initially, client-side testing was undervalued, partly due to influential works like “Clean Architecture” by Uncle Bob, which minimized the importance of UI testing. However, the industry has since evolved, recognizing the importance of client-side testing with tools like QUnit for jQuery, jest/mocha for modern applications, jasmine for Angular, and testing-library for ReactJs. Client-side and server-side applications have distinct roles, with the former focusing on responsiveness and browser APIs, and the latter on storage systems and HTTP requests.
Searching for the type of tests
Discover the nuances of different types of testing and its definition based on multiple authors.
Fetching data with ReactJs using Pokemon API
useEffect has been used to synchronize external effects with the internal reactjs component state. Effects vary based on their source. it could be an API, an update made in the DOM or any other source that comes from the outside of a reactjs component lifecycle.
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.