Rafael Souza

Talking about Software Engineering

Para o usuário final, a experiência é o que importa

A experiência do usuário (UX) é fundamental para um software, e é uma consequência de alguns aspectos, entre eles, características do sistema que não estão relacionadas a usabilidade ou a interface do usuário (UI).

Read More

Palestra TDC Porto Alegre 2016

Minha apresentação, na trilha de Arquitetura de Software, realizada no The Developers Conference Porto Alegre. Contei um pouco do como foi o último projeto que participei trabalhando com coleta, armazenamento e visualização de métricas em uma arquitetura de microserviços na cloud.

Read More

Design Session

A Design Session é um processo colaborativo de aprendizado e problematização no qual o objetivo é evoluir, iniciar ou afirmar um design de software. É importante ressaltar que, ao contrário da fase de Design proposta pelo modelo Waterfall, a Desing Session não se propõe a entender e resolver todo o problema antes da sua implementação, e sim levantar, de forma rápida, as principais variáveis envolvidas e propor um esboço que funcione como norte para o desenvolvimento.

Read More

Vagrant Multi-Machine and Microservices

Vagrant is a really useful tool in the DevOps era. I’ve been using it for almost three years and I can’t say how much it has helped me in the work and studies/evaluations/POCs. In this post I show how I used Vagrant in an e-commerce project.

Read More

Docker for Database Mock

Sometime ago I decided to create a Java library to easily launch a docker container with a real database instance (like postgres, mysql and so on). This database will be running as an in memory test database and the process to do that is lightweight and quick, what is really useful for test purposes.

Read More

Structuring a Spring Boot Application

In his post about Clean Architecture, Uncle Bob explains how to achieve separation of concerns dividing the software into layers following The Dependency Rule. In this post I show a Spring Boot example project structured using the Clean Architecture concept.

Read More

Software Engineering and Proofs of Concept

Softwares are naturally complex and one of the biggest challenges in the Software Engineering is dealing with this complexity. As it’s a complex problem solving activity, often it’s necessary to make assumptions in the Software Development. There are some ways to verify and test those assumptions and, in this current post, I’ll talk about Proofs of Concept.

Read More