Golang — My learning choice in 2024

Victor Macedo
4 min readFeb 7, 2024

--

The first developing experience in Go

I once had a professional experience in which it was necessary to build an API that should only fetch data from a database, but was capable of handling 15000 requests per minute with an average response time of 5ms for each request. Therefore, the team chose some languages to test and I had to implement the same API in Kotlin, Python and Go. To perform the load test, K6 was used.

We already had the assumption that Go would be more performant than Kotlin and Python. However, since Kotlin was also able to meet the requirements described and people within the company are much more familiar with Kotlin and Java than with Go, we chose to put the version built in Kotlin into production.

Even though the code that was shipped to production was not in Go and my resulting Go code was a mess at best, since it was my first contact with the language, I had a good development experience with the language and was impressed with the performance that was delivered and with the little computational resource required to handle the load.

Motivation

A while ago I was chatting with a friend and he said a phrase that really caught my attention. It was more or less like this:

When you choose a path it means not choosing many other possible paths

In other words, making the decision to invest time in learning Go would mean choosing not to learn any other technology or tool. The question I should answer for myself is: Is learning Go aligned with my personal and career goals?

My career objectives

Taking a step back, today I work as a machine learning engineer. It’s nothing more than a beautiful name for a DevOps focused on operating machine learning models that also has one foot in data engineering and big data.

Considering the market niche in which I operate, at some point I end up having to build automation, CLIs, work with Docker and Kubernetes, and sometimes I also have to set up APIs, as I described at the beginning of this article.

That said, I have some technical goals that I want to achieve in my career, they are:

  1. I delve deeper into Kubernetes to the point of building my own operators. For those who want to delve a little deeper, this article by Elton Minetto is sensational;
  2. Build and operate applications capable of supporting a large volume of requests;
  3. After having an application ready, being able to understand the entire application life cycle, including operational monitoring;
  4. Having knowledge up my sleeve, in case it is necessary for any challenge that I may face in my day-to-day work and stand out.

From a personal point of view, the objective is to be a valued professional in the market and be able to work on an international level, for foreign companies. In order to have contact with other cultures and have a more attractive salary.

Keep in mind that I am Brazilian and the USD dollar exchange rate today is USD 1 = 5 BRL. So be paid in dollars is a big deal.

Therefore, there are some surveys that provide some interesting data about the compensation of those who work with Go.

Market research

Before exploring the international market, using data from the Código Fonte TV salary survey (a survey that a Brazilian YouTube channel conducts), those who use Go in their stack have a very attractive monthly salary. Being above BRL 10 thousand/month.

Exploring the international market, in the 2023 StackOverflow survey, Go is the tenth highest paid language, having a compensation of approximately USD 91 thousand/year (USD ~7500/month) and having increased compared to USD 89 thousand/ year (USD ~7400/month) in 2022 survey results.

Since Go is only the tenth highest paid language on the market, you might ask: Why not aim for the number one spot? The answer is relatively simple: The number of opportunities available.

Doing a quick search for job openings on LinkedIn on the day I am writing this article, using only the name of the languages and filtering for positions in the USA, Go has 355311 open positions. On the other hand, the second language with the most opportunities, which is within the top 10 of the highest paid languages according to StackOverflow, Perl, has 12090.

Wrap up

Knowledge within the software development market is somewhat ephemeral. In other words, what we learned today in a matter of a few years, if not less, is already outdated. In addition, we are often pressured by the volume of content that the field of technology has.

However, in my opinion, what we should do in this scenario is to be consistent. An athlete doesn’t win an Olympic medal because he trained one day until he couldn’t take it anymore, but rather every day improving 1% or less every day for years, decades.

To conclude, I will look for or create from scratch a project in which it is possible to get my hands dirty in learning the Go language. Whenever possible, I will document this process.

Wanna connect?

--

--

Victor Macedo

Machine Learning Engineer | MLOps | Desenvolvedor | DevOps | Java | Python | Go | Kubernetes