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.

A Tale of Two `rand`s

I had always been a bit confused as to how the crypto/rand package and the math/rand package were related, or how they were expected to work (together).

Creating Your Own Bot Experience with go-sarah

Chat tools have been good friends of developers. On chat tools we share our thoughts, problems, solutions, jokes, and pretty much everything we do as software engineers.

Processing spreadsheet data in Go

Your managers, all through the hierarchy, love circulating spreadsheets via email. (They simply don't know better.) How to extract and analyze the relevant data from the daily mess? Go can help.