Improve Your Breadmaking Skills with Go and Open-Source Monitoring

I have many different interests, including baking, open-source software, and more recently, systems monitoring and learning Go. As a way for me to expand my practical knowledge on each item, I devised a fun little project that leverages sensors, Raspberry Pis, and Prometheus to i...

How to Hash and Verify Passwords With Argon2 in Go

Thanks to Andreas Auernhammer, author of the golang.org/x/crypto/argon2 package, for checking over this post before publication. If you're planning to store user passwords it's good practice (essential really) to hash them using a computationally expensive key-derivation functi...

Creating WebGL apps with Go

TL;DR In this article I’ll share my experience building an interactive 3D WebGL-based application for peer-to-peer messaging protocol simulation without writing any single line in JS.

Building a CI/CD Bot with Slack and Kubernetes.

This article is about an experiment at Africa’s Talking on using Slack to manage our deployment process. Like many companies, we use Kubernetes to manage our deployments, and Slack for internal communications.

A Dive Into the `fmt` Package

We usually use the fmt package without giving it much thought. A fmt.Printf here, a fmt.Sprintf there and on we go. However, if you’ll take a closer look, you’ll be able to get much more out of it.

Go and WebAssembly: running Go programs in your browser

For a long time, Javascript was the lingua franca amongst web developers. If you wanted to write a stable, mature web app, writing in javascript was pretty much the only way to go.

Docker and Go modules

As you may know Go 1.11 includes opt-in feature for versioned modules.

On the tension between generic code and special cases

The io.Reader and io.Writer interfaces appear in practically all Go programs, and represent the fundamental building blocks for dealing with streams of data. An important feature of Go is that the abstractions around objects such as sockets, files, or in-memory buffers are all ex...

Using Goss to validate Packer builds

Ever wanted to validate your Packer image with Goss? Well, you can! I was looking into ways to make sure that the image I just provisioned with Packer and Chef is working as expected. After some research, I found Goss, which is a tool to validate servers. So, I just needed to gl...

How to Send and Receive SMS: Implementing a GSM Protocol in Go

When developers add an SMS component in their app either for verification or notification purposes, they usually do it via RESTful API like the ones provided by Twilio.