My little software warehouse


Dec 7

Writing a Kubernetes Controller: part 1

Even when knowing Go, writing a Kubernetes controller is intimidating. In this post, I’ll introduce the Kubernetes operating model, how objects are mapped and what are the tools provided by the go-client framework to write bullet proof controllers. In a following post I will explain how to put all the pieces together and how to define and consume custom types. I will describe the core …


Feb 13

How and why to contribute to Open Source

Today I am writing about contributing to open source, an argoment that I particularly care about. Contributing to opensource is giving something to get something back You give away your time and your expertise and you’ll eventually get something back. Approaching an open source project may be daunting at first We find a lot of reasons for that: We don’t feel good enough We think the …



Oct 23

GoLab 2019

Intro In this post I’ll try to write about my experience at GoLab 2019. As per the 2018 edition, I had the honor to give a talk during the Italian Go conference GoLab. There are many reasons why I loved the conference: The organization was flawless. The people from Develer have been organizing conferences for a long time and it’s pretty clear they know how to do them.


Mar 30

A concurrency experiment

There are some scenarios where the order matters Let’s say that you have an api that can receive “actions” to be performed on a given endpoint. Think about you buying something on Amazon and then changing your mind and revoking your order. You don’t want those two actions to be swapped, otherwise the cancellation will be refused (the order you want to cancel do not exists …



Dec 11

Fast messaging with nats and go part 2

This is the second of a follow up serie of the talk Fast messaging with Nats and Go I gave at golab 2018. The first part can be found here What can we do with nats? Pub sub As you can probably guess, given that Nats is a pure pub / sub system, we can easily implement pub / sub. Please remember that a nats publisher does not assume the audience.


Oct 27

Fast messaging with nats and go

This is the first of follow up serie of the talk Fast messaging with Nats and Go I gave at golab 2018. The slides of the talk can be found here: What is Nats Nats is a messaging system hosted under the CNCF umbrella, which is an open source software foundation dedicated to making cloud native computing universal and sustainable. It’s my place-to-go while looking for software related to …


Oct 26

A new chapter

It’s been a while It’s more than a year since my last blogpost which incidentally (or not) it happened right a month before the birth of my second child. In the past year I lost a lot of sleep, and now I am kind of getting back to normality (which means new side gigs :-)). My interests moved from Android and mobile in general to Go and distributed systems, which is what I am probably …



Apr 30

Android okhttp and websockets

Websockets Rest http calls are the most common interaction between Android apps and remote servers. However, there are some scenarios where the interaction is better handled via a persistent connection: think about a chat, or a multiplayer game where data flows in both directions and the server needs to push data to the clients and to be aware of which client are connected. This kind of scenario …



Aug 27

Android mvp testing

MVP is Model View Presenter .. which is a pattern that is very popular among Android developers nowdays. I don’t intend to write (yet) another guide about MVP in Android, because others have done a better job, for example: Antonio Leiva’s introduction to MVP Hannes Dorfmann’s introduction to Mosby Fernando Cejas’ post on clean architecture A lot have been said about MVP …