My name is Elton 👋

I’m a software developer, teacher, speaker and writer

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

Creating test mocks using GoMock

Using mocks in test development is a concept used in the vast majority of programming languages. In this post, I will talk about one solution to implement mocks in Go: GoMock. To show GoMock functionality, I will use the tests created in my repository about Clean Architecture Clean Architecture encourages testing across all layers, so it’s easy to see where we can use mocks to make development easier. As we write unit tests for the UseCases layer we are sure that the logic in this layer is covered by testing....

December 20, 2019 · Elton Minetto

Processing parquet files in Golang

In this post, I will talk about a relatively new data file format, and how to use it in Go. The format is called Parquet and is currently a project supported by the Apache Foundation. It is a binary file format to store and facilitate data processing a columnar storage format. It supports different types of compression and is widely used in data science and big data environment, with tools like Hadoop....

December 10, 2019 · Elton Minetto

Using Golang as a scripting language

Among the technical decisions we made during the development of [Codenation] (https://codenation.dev), one of the right ones was to choose Go as the main language. ...

August 8, 2019 · Elton Minetto

Object Calisthenics in Golang

Jeff Bay introduced the term Object Calisthenics in his book [Thought Works Anthology] (https://pragprog.com/book/twa/thoughtworks-anthology). It is a set of good practices and programming rules that can improve the quality of our code. ...

June 1, 2019 · Elton Minetto