goa: Untangling Microservices

goa: Untangling microservices The Raise of Microservice Architectures and APIs After suffering through a monolithic Rails application for a number of years, we (the RightScale Engineering team) shifted our focus to microservice architectures.

Concurrency in Golang

Yesterday, I answered a question in Quora about the concurrency model in Go. Now, I feel like I want to say more!! Concurrency in Golang is one of the most powerful features in the language. Numerous folks covered the topic, ranging in their takes from very simple to overly com...

Smart Cryptography with Superdog and Vault

Superdog - the Crypto library for Vault from Hashicorp At XOR Data Exchange we deal with a lot of sensitive data for our customers. We needed to be able to support strong encryption with key rotation in a simple and practical way.

Go Fuzz

In April of this year, Dmitry Vyukov released the first version of go-fuzz, a coverage-guided fuzz testing tool based on ideas from afl. With very little fanfare, he unleashed it on the Go standard library and started filing huge numbers of crashers and other bugs found via autom...

afero: A Universal Filesystem Library

Anyone who spends a few minutes talking with me about development knows I love Go. My Github and Blog are practically a love letter to the language.

Debugging Go programs with Delve

Tracking down bugs in your code can be a very frustrating experience. This is even more true of highly parallel code. Having a good debugger at your disposal can make all the difference when it comes to tracking down a difficult, or hard to reproduce bug in your code.

Working with Semantic Versions

Semantic Versioning (a.k.a SemVer) has become a popular way to handle versions. The structure not only allows for incremental releases but allows people and automation to deduce what those changes mean.

December Blog Series Introduction

It’s that time of year again… The time when young gophers dream of high-quality articles about Go programming. We’ve run our “Advent” series at GopherAcademy for two years now, and it has been by far the most successful content we’ve ever publ...

Producer-consumer problem

This is the first entry in the “Classical synchronization problems” chapter of “The Little Book of Semaphores”, the “producer-consumer problem”. The text describes the problem as a common pattern where some threads are producers and some thread...

Go 1.5 layer for OpenEmbedded

For $WORK reasons, I want an up-to-date Go cross compiler for OpenEmbedded. Taking a look at existing efforts I ended up forking dodgerblue’s repository in order to fix a couple of issues, most notably, the fact that in order to bootstrap 1.5, the recipe goes behind bitbake...