Blog


Metrics First When Writing Go Services

May 20, 2018

When writing a server in Go, it can help to start by thinking of what you're going to measure, ie. metrics. Classifying failure cases up front in metrics will help you quickly write clean code.


Build Your Own Redux for React

Apr 17, 2018

It's easier in the long run to use the patterns that Redux represents, rather than using the packages that implement it.


Acoustic Fingerprinting Television

Feb 6, 2018

How hard is it to create a system that can acoustic fingerprint a television episode, and identify the playback position based on audio sample?


Cloud Architecture with Packer, Terraform, Nomad, and Consul

Jan 1, 2018

...step back from the problem, you can use a set of OSS tools, services, and frameworks to make your services more manageable, and make changing and comparing providers easier...


Building a Spreadsheet with Formulas in Javascript

May 26, 2017

Building a spreadsheet with errors, data types, ranges and formulas in Javascript and Typescript.


A Guesser's Guide to Google Spreadsheets

May 4, 2017

Exploring the features of MSE and GS, through the lens of a programmer; What are the data types? How are types cast? What are the errors? Through my trial-and-error experiments in Google Spreadsheets, I've figured out the answers to most of thee questions. So this is a post about an exploration of GS, and reverse engineering it.


Procedural Terrain Generation

Nov 30, 2016

...thought that procedurally generated worlds would be the future of video games. How cool would it be to walk through a forest, or fly over the mountains of a world that was generated specially for you? The web is filled with...


Introduction to GRPC and Protocol Buffers in Go

Nov 26, 2016

...while there's no solution for people being unable to predict and manage the future, Protocol Buffers and GRPC are two tools that make it easier for people to manage features, models, and services...


From IDE to binary: Developing in Golang in InteliJ

Nov 5, 2016

In my experience, Golang is a really easy language to get started in. Install Go, write main.go, go run main.go. But beyond that, developing in Golang has its quirks, like IDEs, build scripts, and testing. Luckily...


Cluster membership with the SWIM protocol and the memberlist library

Oct 24 2016

One of the several hallmarks of a distributed system is cluster membership and failure detection. Without any single machine in charge of the management of a group of machines, how do they communicate, and identify as being...