Generics is a fresh addition to the language. In a nutshell, it allows writing code with types that can be specified later and instantiated when needed. However, it can be pretty easy to be confused about when to use generics and when not to. …
In 2019, I published a post called The Top 10 Most Common Mistakes I’ve Seen in Go Projects. As the name states, it was a way to explain some of the most common mistakes made by Go developers.
This post was pretty much popular (at least for me), and I…
A couple of months ago, I wrote a post about Go and CPU Caches: https://teivah.medium.com/go-and-cpu-caches-af5d32cc5592
Then, I wanted to extend the scope of this post. Following this idea, I had the chance to give a talk to GopherCon Turkey 2020. The topic is the following: Mechanical Sympathy in Go.
I tried to cover the following topics:
Here is the video of my talk:
The beginning of the talk was unfortunately ousted. Yet, you can find the slides here for the missing introduction:
With the rise of distributed architectures, consistent hashing became mainstream. But what is it exactly and how is it different from a standard hashing algorithm? What are the exact motivations behind it?
First, we will describe the main concepts. Then, we will dig into existing algorithms to understand the challenges…
I wanted to let you know that I just released Algo Deck. It is a free & open-source collection of +200 algorithmic cards.
Each card is a synthesized way to describe a concept. For example:
Let’s take a look at the Go package in charge to provide synchronization primitives:
sync.Mutex is probably the most widely used primitive of the
sync package. It allows a mutual exclusion on a shared resource (no simultaneous access):
It must be pointed out that a
sync.Mutex cannot be…
This post is a summary of my 2-day experience at GopherCon UK 2019. I did not attend the first day (workshops only).
Disclaimer: In this post, I am expressing my opinions about some talks. Under no circumstances, I am making a value judgment on the speakers.