The 1st of December 2024 AWS announced EKS Auto Mode. Their aim is, as usual, to get your company a working Kubernetes cluster running as quickly and seamless as possible, and no, I am not going to argue whether you need Kubernetes or not, at least not in this post. From installi … | Continue reading
The codebase used in this post can be found in my Github. | Continue reading
The codebase used in this post can be found in my Github. Introduction As a software engineer, I’ve had the opportunity to work with microservices in various companies and each one had its own unique approach to testing the codebase. From my experience, I’ve come to realize that … | Continue reading
We as humans are always changing and evolving, sometimes for the best and sometimes not. In our professional life this is expected, one gains experience, learns new tools, knowns different people with different background, etc. Back when I was working for a consultancy company in … | Continue reading
Introduction Throughout my career I have used Windows, Linux, Mac and Windows again, and each year that passes I discover myself using the terminal more and more. Most of my work is done there, except when doing some heavy coding. Therefore I believe it is important to have the s … | Continue reading
This article is the second of a series of two. If you had not read the first one, you can do it here. In this post we are going to finish the implementation of the checkout-service and the stock-service and wrap up the proof of concept. Revisiting the flow In the previous article … | Continue reading
This article is the first of a series of two. In this first one we are going to talk about what is tracing is used for, the scope of this proof of concept and implement the first service. What is the problem? Nowadays everyone wants to do microservices, it is a buzzword on every … | Continue reading
One of the things that shocked me the most when I changed from C# to Golang is that developers are reluctant of adding libraries to solve problems unless it is strictly needed. This sentiment, at first annoying, turned out to be one of the things I liked the most about Go. The st … | Continue reading
One of the advantages of Go is that null (nil) values are rarer than in some other languages. The following snippet will fail: func getDay() string { return nil } In order to make that snippet work, a pointer is needed as null values are the zero value for pointers (the same appl … | Continue reading
Time to market is a very important part of the life of the developers. In the agile world, a team must make a balance between speed and code quality. This does not necessarily mean that the code will not be good nor tested, but sometimes it limits exploration. A limited explorati … | Continue reading
Without any doubts the year 2020 is one everyone is going to remember and it will appear in the history books (and wikipedia). Amidst so much chaos, the established way of working was forced to change, and companies that before rejected work from home had to adapt. In this way, t … | Continue reading
The other day I encountered the following post where Seth Vargo was doing some statements regarding the usage of environment variables: […] While this approach is simple and straightforward, it comes with considerable security drawbacks - the secrets exist in plaintext in the env … | Continue reading
Some days ago a coworker of mine linked me to the source code of Google’s exposure notifications API and of course is a good chance to see how Google is doing Go related codebases. Continuing with the topic of Postgres and benchmarking, I decided to check out how Postgres configu … | Continue reading
In my previous post I covered how to build concurrently safe upsert queries . This post serves as a continuation where different approaches will be battle tested to expose the performance of each one: Advisory lock On conflict update On conflict do nothing CTE queries Without fur … | Continue reading
Recently at the company I am working for, there was a need to communicate with an external service which required us to send some data along with an integer identifier. The problem is that IDs in our domain are not integers but uuid. The suggestion then was to have a service whic … | Continue reading
2021 update: Since KubeSail was not working as expected, the solution is now hosted in Okteto which offers a free namespace for developers to try out a hosted Kubernetes service. Every company has a different way to work and configure CI/CD, and all of them have pros and cons. I’ … | Continue reading
The newly released dotnet 3 preview 6 has an interesting feature called publish single file where an application can be published as a self contained app that will extract and run on the platform it was compiled for. In order to add this feature in our .csproj, add the following … | Continue reading
Generally speaking, most organisations do not check if a commit is signed or not. Even worse, more companies do not care about this. It might subjective but I like to have the verified badge. If you commit from GitHub, for example: adding or editing a README, you will get the ver … | Continue reading
One day I was given the task of doing a whiteboard word counter algorithm. The requirements were: Print on console all the words and the quantity of times they appear on a 40.000 lines input. Make it as fast as possible. For a start one can do it as simple as possible instead, an … | Continue reading
When I started learning Golang (a couple of months ago) one of the things that I concerned most with was the project structure. It may sound irrelevant to bother with this when you are learning the language; but, every time I am browsing .net core applications or libraries on Git … | Continue reading