November 8, 2022

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 acronym that stands for “Configure Unify Execute,” and according to the official documentation: Although the language is not a general-purpose programming language, it has many applications, such as data validation, data templating, configuration, querying, code generation, and even scripting....

October 22, 2022

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 not as widespread as in other languages, we can use some ORMs, like the ones listed here use a tool to generate code from SQL queries I will present in this post a project that fits in the last category: sqlc....

August 31, 2022

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 flow more agile is handy. In this post, I want to introduce a powerful tool that can save you a lot of time in your development process. This is Tilt, which was recently acquired by Docker....

July 19, 2022

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. So it’s natural for us developers to think: What if I generate the documentation from the source code?? I’ve used this approach in a few projects, but in recent years I’ve taken a slightly different process, which I call “documentation first....

July 6, 2022

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. The main.go is where we start the dependencies, configure and invoke the packages that perform the business logic. For instance: package main import ( "database/sql" "errors" "fmt" "log" "os" "github....

June 14, 2022

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:...

June 7, 2022

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

March 11, 2022

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

February 21, 2022

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

January 30, 2022

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:...

page 1 of 4

>>