Resilience in communication between microservices using the failsafe-go lib

Let’s start at the beginning. What is resilience? I like the definition in this post: | Continue reading


@eltonminetto.dev | 1 month ago

JSON vs FlatBuffers vs Protocol Buffers

When we think about communication between services/microservices, the first option that comes to mind is good old JSON. | Continue reading


@eltonminetto.dev | 2 months ago

Go is a platform

Thanks to the Google Developer Experts program, I had the opportunity to participate in Google I/O in Mountain View, California, in May this year. | Continue reading


@eltonminetto.dev | 4 months ago

Alternatives to Makefiles written in Go

First things first: what is make? Present in all Linux distributions and Unix derivatives such as macOS, the tool’s manual describes it as: | Continue reading


@eltonminetto.dev | 4 months ago

Interesting projects using WebAssembly

This text is the last part of a series of posts I wrote about one of the technologies that have had the most impact on me in recent years: WebAssembly. | Continue reading


@eltonminetto.dev | 6 months ago

Using test helpers in Go

Recently, in a code review, the great Cassio Botaro gave me a handy tip: refactor some tests to use the test helpers feature from the testing package. | Continue reading


@eltonminetto.dev | 8 months ago

Load testing using k6

In the previous post, we saw that there are different types of load tests and what their objectives and characteristics are. | Continue reading


@eltonminetto.dev | 9 months ago

Load Test Types

When we talk about “load testing,” perhaps the first thing that comes to mind is “sending traffic to the application until it cries. | Continue reading


@eltonminetto.dev | 9 months ago

Running WebAssembly code in Go

This post is the second part of a series about WebAssembly and Go. In the first post, we saw how to run Go code in a web browser. In this one, we will import a WebAssembly function and run it in a Go application. The first step was to create a function in WebAssembly, and in this … | Continue reading


@eltonminetto.dev | 10 months ago

WebAssembly: using Go code in the browser

Occasionally, a technology emerges that significantly impacts developers' daily lives—things like Linux, Git, Docker, and Kubernetes, among others. WebAssembly is a technology that has the potential to appear on this select list. WebAssembly (also known as WASM) was launched in 2 … | Continue reading


@eltonminetto.dev | 11 months ago

New in Go 1.21: Toolchains

The version 1.21 of the language implemented an essential new feature. According to the documentation: Starting in Go 1.21, the Go distribution consists of a go command and a bundled Go toolchain, which is the standard library as well as the compiler, assembler, and other tools. … | Continue reading


@eltonminetto.dev | 12 months ago

Writing tests for a Kubernetes Operator

In the last post, we saw how to create a Kubernetes operator using operator-sdk. As that text was quite long, I decided to write this second post to focus on the application’s testing part. Using the operator-sdk CLI to create the operator skeleton makes an initial structure for … | Continue reading


@eltonminetto.dev | 1 year ago

Creating Kubernetes Operators with operator-sdk

If you develop APIs or microservices, especially in medium to large environments, you probably use Kubernetes. Kubernetes is a project created by Google in mid-2015 that quickly became the standard for managing container execution. You can host it on your machines or use a soluti … | Continue reading


@eltonminetto.dev | 1 year ago

GDE in Go

I came across an exciting project called Google Developer Experts. According to the official website, this is a group of “experienced Google technology experts, influencers, and thought leaders.” I learned about the project because several people I admire are part of it. I’ve bee … | Continue reading


@eltonminetto.dev | 1 year ago

Developer productivity for fun and profit - Part 2

This text is the second part of a series of posts about productivity. In the first part, I discussed how developers can improve their productivity. In this text, I will mention some ways in which the company or team can improve the daily lives of developers. Do Onboarding Startin … | Continue reading


@eltonminetto.dev | 1 year ago

[Go] How to work with dates in tests

Working with dates in any programming language presents some challenges. In this post, I will show how to work with dates when writing unit tests for a Go application. | Continue reading


@eltonminetto.dev | 1 year ago

Improving the terminal

The terminal is the tool I use the most in my day-to-day work. Over the years, I’ve created a series of shortcuts, scripts, and habits that make me more productive in performing many of my tasks. In this post, I will tell you some of the things I’ve set up and been using to inspi … | Continue reading


@eltonminetto.dev | 1 year ago

Choosing dependencies using deps.dev

Choosing a project’s dependencies is something we sometimes overlook, but it can have a very relevant impact. The following image illustrates the idea: To facilitate this process, Google recently launched a new project, deps.dev. Its slogan summarizes its objective: Understand yo … | Continue reading


@eltonminetto.dev | 1 year ago

Why I like Go's error handling

One of the most controversial issues in the Go language is how we handle errors. I remember when I started working with the language, in mid-2015, after having used PHP for a few years, and I was surprised that it didn’t use the famous try/catch. After the first impact passed, I … | Continue reading


@eltonminetto.dev | 1 year ago

Developer productivity for fun and profit - Part 1

Whether in scenarios of accelerated growth or even in the unfortunate moment of layoffs that we are going through, developer hours are one of the most expensive and valuable resources for companies. In this way, productivity and efficiency become significant advantages for profes … | Continue reading


@eltonminetto.dev | 1 year ago

Go Cloud Development Kit

In this post, I will talk about an exciting project maintained by the team that develops the Go language: the Go Cloud Development Kit, also known as the Go CDK.The Go CDK provides a series of abstractions for many features often used in applications that run in the cloud, such a … | Continue reading


@eltonminetto.dev | 1 year ago

Introduction to Cuelang

I bet that at that moment, you are thinking: “Another programming language”? Calm down, calm down, come with me, and it will make sense :)Unlike other languages like Go or Rust, which are “general-purpose languages,” CUE has some particular objectives. Its name is actually an acr … | Continue reading


@eltonminetto.dev | 1 year ago

Creating an API using Go and sqlc

When writing a Go application that handles data in a database (in this post, I will focus on relational databases), we have a few options: write SQL queries using some lib that implements the stdlib interfaces use some lib that facilitates SQL generation, like Squirrel although n … | Continue reading


@eltonminetto.dev | 1 year ago

Accelerate your local development environment with Tilt

We spend hours and hours developing applications on our machines, with more and more requirements and complexity. In addition, any modern application has multiple containers, microservices, deployments in different environments, various stacks, etc. So any tool that can make our … | Continue reading


@eltonminetto.dev | 2 years ago

Document first

It is a consensus in the software development community that documentation is essential. But at the same time, it’s not one of the most glamorous tasks, especially compared to writing code. | Continue reading


@eltonminetto.dev | 2 years ago

Error handling of CLI applications in Golang

When developing some CLI applications in Go, I always consider the main.go file as “the input and output port of my application.”Why the input port? It’s in the main.go file, which we will compile to generate the application’s executable, where we “bind” all the other packages. T … | Continue reading


@eltonminetto.dev | 2 years ago

How to decide what to study?

You realize you’re getting old when they ask you for career tips. 🙂Jokes aside, this is a subject that interests me a lot, and in these career conversations, a question often appears: Among so many options of subjects and technologies available, how do I choose what to st … | Continue reading


@eltonminetto.dev | 2 years ago

Using Golang stdlib interfaces

In this post, I’ll show you how to use two of the most exciting features of the Go language: its standard library (the stdlib in the title) and its interfaces.Go is famous for providing a lot of functionality, thanks to its powerful standard library. Covering everything from text … | Continue reading


@eltonminetto.dev | 2 years ago

Testing Generics in Go

It’s finally (almost) among us!Finally, after years of hearing that joke “what about Generics?” this long-awaited feature will be available in version 1.18 of the language, scheduled for release in March 2022.In this post, I’ll do an example using Generics and a small benchmark t … | Continue reading


@eltonminetto.dev | 2 years ago

Technical leadership: monitoring X autonomy

Looking at my career, I can say that I have more experience and theoretical background in matters related to technology, especially in the area of software development. This fact is due to having done a graduate degree in Computer Science and having read a good amount of books an … | Continue reading


@eltonminetto.dev | 2 years ago

An introduction to the AsyncAPI specification

If you develop or consume REST APIs, you have probably come across some documentation written according to the OpenAPI specification. It is the industry standard, although I prefer to document using API Blueprint :)But the subject of this post is another specification, the AsyncA … | Continue reading


@eltonminetto.dev | 2 years ago

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 Coderock … | Continue reading


@eltonminetto.dev | 3 years ago

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 Git … | Continue reading


@eltonminetto.dev | 3 years ago

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 … | Continue reading


@eltonminetto.dev | 3 years ago

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 agil … | Continue reading


@eltonminetto.dev | 3 years ago

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, heal … | Continue reading


@eltonminetto.dev | 3 years ago

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. Th … | Continue reading


@eltonminetto.dev | 3 years ago

Clean Architecture, 2 years later

Continue reading


@eltonminetto.dev | 4 years ago

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 … | Continue reading


@eltonminetto.dev | 4 years ago

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 t … | Continue reading


@eltonminetto.dev | 4 years ago

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 mo … | Continue reading


@eltonminetto.dev | 4 years ago

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 ArchitectureClean … | Continue reading


@eltonminetto.dev | 4 years ago

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 … | Continue reading


@eltonminetto.dev | 4 years ago

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. | Continue reading


@eltonminetto.dev | 5 years ago

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. | Continue reading


@eltonminetto.dev | 5 years ago

Full Stack vs Full Cycle developer

Full Stack developer In the last years, the term full stack developer grown in many job opportunities, mainly in startups. According to this post, a full stack developer is: | Continue reading


@eltonminetto.dev | 5 years ago

Data Migration with Golang and MongoDB

One item addressed by the twelve-factor app method is the automation of administrative processes, such as script execution and data migration. This is exactly what I will talk about in this post: how we automate the migration of data using Go and MongoDB. | Continue reading


@eltonminetto.dev | 5 years ago

Monitoring a Golang application with Supervisor

Dear reader… If you are reading this post a few years after his publication date you must understand that in 2018 we were very excited about things like micro services, Docker, Kubernetes and related technologies. | Continue reading


@eltonminetto.dev | 5 years ago