Over the years as I became fluent in the Ruby language, I kept my eyes peeled for a language which could help me take my career to the next level the way Ruby had. As a dynamic, interpreted language, Ruby never quite met my performance standards. It was fast enough to handle simple API requests on a small scale, but due to MRI Ruby’s use of a GIL, concurrency was a pain in the ass to even attempt, let alone accomplish.

As I began to venture into managing backend systems and architecture, command-line tools and scripts were frequently needed to be created. Ruby was okay for building tooling, but again — too slow. Statically-compiled languages (like C and Java) never made much sense to me. Attempts to build something simple would result in me throwing my hands in the air, shouting, “This is just too complex!” — especially after being spoiled rotten with Ruby, my first true love!

Things changed while I was working at Rovi back in 2013 when Go was recommended to me in passing for a certain tool I was trying to build. I figured I would give it a try. For the first time since Ruby had won my heart, I felt a spark! I wrote my first tool in a compiled language and put it into production that day. I couldn’t contain my excitement, and desperately sought out more reasons to use Go.