After many years building and researching technology for new systems, I decided to write a programming book. May serve this article to share my experience.

Photo by Hitesh Choudhary on Unsplash

It is said that there are three things you must do in your lifetime: plant a tree, have a child, and write a book. I recently finished the last one. Nevertheless, I wrote a programming book. A programming book in the 21st century with all those wonderful online resources you can find for free? Yes. Are you some sort of romantic fool? Maybe. Let serve these lines to describe my experience and give you some do’s and dont’s that can save your time.

Why a book?

Now we have many available formats to broadcast any educational material. They are handy and easy to…

A short example of how to get a working shell completion script to push your CLI to the next level.

Photo by Joan Gamell on Unsplash

You probably use a CLI on a daily basis. Depending on the solution the CLI works for, the number of available options can be overwhelming. Because no visual recognition is available, we depend on the help to find the correct arguments. An appealing extension to CLIs is to provide users with shell completion. This simplifies the life of the user by displaying the expected arguments of the command without interruptions. This post explains how to get a shell completion CLI in Go using the Cobra library.

The Cobra library is a solution that well deserves your time if you are…

With the new online publishing platforms the number of available programming books is overwhelming. Let serve these lines to discuss about experiences, authors’ concerns, and the idea of teaching a programming language.

Photo by Alfons Morales on Unsplash

This post is a continuation of a previous one where I explained some aspects of my experience writing and self-publishing a programming book. Well, yesterday the blog multiplied its traffic by 100,000. I thought the server was under attack :) Someone sent the link to Hacker News and the traffic started flowing. Thanks to all those who took their time to read the post. There was a good…

The Kafka REST API can be a solution when no available native drivers are available for our project. Here is an example of how to use it with Go.

Photo by Emanionz on Unsplash

Apache Kafka has demonstrated to be a scalable solution and it is widely adopted as a publish/subscribe event streaming platform. The ecosystem around Kafka is vast and rich and you have probably used one of its many solutions.

Kafka uses its own protocol over TCP that can be implemented in any programming language. In the case of Go, there are some available implementations. The official one provided by Confluent is a wrapper around the librdkafka library. Others like the one offered by Segmentio are Go native and do not require any additional libraries.

The utilization of wrappers around libraries may…

The most awaited video game of 2020 is a collection of bugs and glitches. This is not something new in the video game industry.

Photo by Adam Valstar on Unsplash

Cyberpunk 2077 is probably the most awaited game from this pandemic 2020. A lot of expectation has been around this game since it was first announced back in 2012. In 2018 it was the sensation during the E3 (the most important video games fair in the world) winning several awards. The next year, in 2019 many lines were written discussing the pros and cons of this game. Initially, the game was announced to be released in April 2020 unfortunately, the Covid-19 delayed the release. Finally, the game was released on December 10th with a huge number of sales, hundreds of…

A summary of the most relevant problems graph computing practitioners have to overcome.

Photo by israel palacio on Unsplash

In a previous post, I exposed my opinion about the lack of a clear platform/solution/framework/architecture for graph processing. However, what are the main issues graph processing has to deal with? Serve these lines as an appetizer for the curious minds out there.

(Images are property of the author if not mentioned otherwise).

1. Graphs are unstructured

A graph is a collection of vertices V and edges E connecting these vertices. A graph G=(V,E) can be directed or undirected. In a directed graph any edge from vertex u to vertex v has a direction (uv). …


Do you know the most popular graph processing solution? No? Don’t worry. There is no such thing yet.

Photo by Rupert Britton on Unsplash

We all depend on the Internet to search for potential solutions to technical problems. For example, for big data problems after five minutes in Google you will find out that Spark may help you. Even if you have no idea about what is Spark you will come across this name. Something similar occurs to TensorFlow when searching for deep learning solutions, Kubernetes for cloud, Docker for containers… It seems that there is always one platform/framework/library for every buzzword in computer science. However, try to look for a graph processing solution. You will find out that there is no clear victor

Despite its trendiness, you will barely find an edge computing position.

Photo by Free To Use Sounds on Unsplash

Edge computing was born with content delivery networks such as Akamai. Netflix or YouTube would not exist without edge computing. In the context of distributed systems, this paradigm has recently gained popularity with the new challenges imposed by IoT, AI or mobile phones. The edge is promising millions of dollars. However, where are the edge computing specialists? Why don’t we see open positions for edge computing engineers, specialists, or architects?

Edge Computing Is Not as Popular as We Think

This is a simple exercise. Let’s take Google Trends and compare three popular computing topics: edge computing, big data, and deep learning.

Edge Computing promises millions of dollars of revenue. However, we do not yet have a definition of what it is.

Photo by Edurne Chopeitia on Unsplash

The first time I heard about edge computing was back in 2015. Since then, I have been working for startups to enable distributed data-driven solutions for the edge. It looks like everybody (or almost everybody) is aware of what edge computing is. However, all this time I have been working in a technological paradigm without a clear definition statement.

At the moment of writing this post, there is no clear definition of what the edge is. These are some definitions you can find online. Some of them are the ones used in the Wikipedia entry for edge computing.

all computing…

Consider these before, during, and after installing Istio

Photo by Kristel Hayes on Unsplash.

There is no doubt that deploying and maintaining applications in K8s can be harsh for any DevOps team. Services are becoming more and more convoluted, involving several external services, different versions, and several APIs. It is for these reasons that security, authentication, monitoring, and maintenance become difficult and time-consuming tasks.

Istio is gaining popularity among K8s practitioners and DevOps because it simplifies the connectivity between services. With a continuously growing community, it has become a tool you must consider for any production environment.

I have been working with Istio for a year and tested four versions in single and multi-cluster…

Juan M. Tirado

I help people dig into data-based solutions | I wrote Build Systems with Go: | |

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store