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 study first? To answer this question, I imagined a process (maybe a framework?) The first step is to exercise your artistic gifts (which I don’t have) and create a series of circles with you at the center:...
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 and JSON conversions to databases and HTTP servers, we can develop complex applications without importing third-party packages. Another essential feature of the language is the power of its interfaces....
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 to check if there are any performance differences between a “regular” function and another using this new functionality. To demonstrate this, I will use the library lo, one of the first that uses Generics and that has recently gained prominence for implementing several valuable features for slices and maps....
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 and many posts, and putting a large number of products into production. I say this because, despite leading technical teams for a little over a decade and reading good books and posts, I feel safer writing about technology than about leadership....
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 AsyncAPI. Inspired by the OpenAPI, the AsyncAPI goal is to document applications that use the Event-Driven Architectures or EDA. In the following image, we can see a comparison between the two patterns:...
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....
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....
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?...
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?...
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....