I am an AWS Community Builder

I started using AWS tools in mid-2008 when a local cloud provider left the startup where I was CTO (the late Drimio) down for more than 24 hours. Since then, AWS has always been my first choice as a cloud solutions provider. It was my recommendation to host the servers of Coderockr customers. After that, at Codenation, we made heavy use of EC2, S3, RDS, CloudFront, Route53, and lambda functions. And at Trybe, we just migrated our infrastructure from Heroku to EKS....

October 7, 2021 · Elton Minetto

Accessing Postgres via REST using pRest

In this post, I’m going to talk about a handy Open Source tool called pRest. With pRest, it is possible to create a RESTFul API to access the contents of a Postgres database in a fast and straightforward way. The project, written in Go, can be found on its official website and Github. According to the documentation, there are several ways to install pRest. To write this post, I chose to use the Docker installation option....

August 31, 2021 · Elton Minetto

Making technical decisions using RFCs

Teams need to make several important decisions in the software development process, from programming languages, architectures, processes, tools, etc. As the project and team grow, making these decisions becomes more complex and essential. In addition, how can you ensure that the decisions made at the beginning of the project are clear so that new people on the team understand the reasons and contexts that led the team to a particular conclusion?...

May 21, 2021 · Elton Minetto

Work-focused daily meeting

If you work as a software developer, you have probably participated in a daily meeting, daily scrum, or stand-up meeting (although this name lost sense during the pandemic since we’re all sitting in front of our computers). This meeting is one of the most common ceremonies of agile methodologies like Scrum and Kanban, and people usually answer these questions: What did you do yesterday? What are you going to do today?...

April 17, 2021 · Elton Minetto

Microservices in Go using the Go kit

In one of the chapters of the book Microservice Patterns: With examples in Java the author mentions the “Microservice chassis” pattern: Build your microservices using a microservice chassis framework, which handles cross-cutting concerns, such as exception tracking, logging, health checks, externalized configuration, and distributed tracing. He goes further and gives some examples of frameworks that implement these concepts in Java and Go: Gizmo Micro Go kit After some research I chose the Go kit as it is one of the most popular, it is being updated at a constant speed and I liked the architecture that it proposes....

February 16, 2021 · Elton Minetto

How We Measure Developer Experience at Trybe

You have probably heard the term UX (User Experience), which is defined as “the discipline responsible for designing enchanting user experiences to retain and win customers”. Analogous to this term there is a more recent one, but it has been gaining popularity in recent years. This is the DX (Developer Experience). As this is the topic of the post, I will explain it using excerpts from this great post:...

January 17, 2021 · Elton Minetto

Clean Architecture, 2 years later

In February 2018 I wrote what would become the most relevant text I have ever published: Clean Architecture using Golang. With more than 105k views, the post generated presentations at some Go and PHP events and allowed me to talk about software architecture with several people. Using this architecture for the development of Codenation’s products, we gained experience and solved problems. We wrote some posts reporting these experiences: Golang: using build tags to store configurations Continuous integration in projects using monorepo Monitoring a Golang application with Supervisor Data Migration with Golang and MongoDB Using Golang as a scripting language Creating test mocks using GoMock Using Prometheus to collect metrics from Golang applications Profiling Golang applications using pprof Testing APIs in Golang using apitest After this whole experience I can say::...

July 6, 2020 · Elton Minetto

Testing APIs in Golang using apitest

One advantage of the Go language is its standard library, which contains many useful features to develop modern applications, such as HTTP server and client, JSON parser, and tests. It is exactly this last point that I will talk about in this post. With the standard library it is possible to write tests for your API, as in the following example. API code In our main.go file, we will create a simple API:...

April 21, 2020 · Elton Minetto

Profiling Golang applications using pprof

In the last few weeks, Codenation has been experiencing very significant growth. Confirming the sentence of the great Bruno Ghisi who says that “on the scale everything breaks”, features that always worked perfectly become problematic. We noticed in the metrics of our Prometheus that one of the endpoints of our API was consuming a lot of resources. Talking to the team we came up with a suspicious reason, but before I refactored the code, I thought it would be better to do a more “scientific” analysis....

April 8, 2020 · Elton Minetto

Using Prometheus to collect metrics from Golang applications

This text is part of a series of posts I am doing with examples of applications using Clean Architecture. The other posts that are part of this series are: Clean Architecture using Golang Golang: using build tags to store configurations Continuous integration in projects using monorepo Data Migration with Golang and MongoDB Using Golang as a scripting language Creating test mocks using GoMock In this post, I will talk about a very important feature in the complex projects we work with daily: metrics....

March 13, 2020 · Elton Minetto