gRPC Go: Beyond the basics

Introduction As a newcomer to gRPC (in Go) there are many resources setting out what gRPC is, where it originated from and how to create a basic service and client.

How to Tokenize Complex Strings with Lexmachine

This article is about using lexmachine to tokenize strings (split up into component parts) in the Go (golang) programming language. If you find yourself processing a complex file format or network protocol this article will walk you through how to use lexmachine to process both a...

Go tools are awesome

Yes, they are. And that’s why I love Go. Almost all important tools come together with Go installation, but there are also some you can install additionally depends on your needs: golint, errcheck, etc.

Web Sessions and Common User Workflows - A Foundation for Go-Based Websites

Go is widely used to implement microservices and APIs. And for those wishing to set up a dynamic website without resorting to, say, Ruby or PHP, Go offers a lot of tools out of the box.

Parsing with ANTLR 4 and Go

What is ANTLR? ANTLR (ANother Tool for Language Recognition), is an ALL(*) parser generator. In layman’s terms, Antlr, creates parsers in a number of languages (Go, Java, C, C#, Javascript), that can process text or binary input.

Property Based Testing

Useful Programs I’ll start this post with a bold but fairly uncontroversial statement: Programs that do not interact with the outside world are useless - they do nothing except consume cycles.

Custom JSON unmarshaler for a GraphQL client

In this post, I will tell a story of how I had to build a custom JSON unmarshaler for the needs of a GraphQL client library in Go.

5 Gotchas of Defer in Go (Golang) — Part I

Repeatable and Isolated Development Environments for Go

One of the common criticisms of the GOPATH is that it is hard to create isolated development environments without resorting to hacks, bash scripts, multiple GOPATH settings, or other trickery.

Managing Dependencies, Forks, and Code Patches with Dep

A few months ago, we switched over to using dep to manage dependencies for Veneur. We were excited to discover that dep provided a straightforward workflow for a longstanding problem in Go development: managing forks of dependencies and contributions to upstream projects.