Why Glide 0.8 Is Our Biggest Release

December 11, 2015

The Go package management ecosystem has been missing something -- something most other language ecosystems have had for a long time. The new version of Glide brings it.

Historically, Go dependency management has shied away from a package management philosophy. Instead, two approaches have been advocated...

What it Really Takes to Build a Container Platform

November 13, 2015

Here is the video of the ContainerDays NYC 2015 session I did entitled "What it Really Takes to Build a Container Platform: 10 Lessons We Learned the Hard Way".

The session covers the Deis project's learning experiences as we've built and re-built our PaaS architecture. I cover some of the encounters...

Five Interview Questions You Should Ask Your Interviewer

November 5, 2015

That awkward moment where the interviewer leans forward and says to you, "Do you have any questions for me?" What do you say? Will your question sound dumb? Will your question give you any useful information? And you know you've got another interview right after this one... what if you use up your...

Querying PostgreSQL to Find The Primary Key of a Table

October 26, 2015

Recently I found myself trying to programmatically find out which columns on a database table were acting as the primary key. It turns out that there is a relatively straightforward (and standard!) way of doing this.

Postgres provides the SQL-compliant Information Schema database, which contains...

In Memoriam Jim West

October 16, 2015

The ancient Greek astronomer and philosopher Heraclitus says that the sun, moon, and stars are bowls of fire facing the earth. The soul, too, is made of fire: flickering, flaring, spreading its warmth. It is the animating force simultaneously constant and ever-changing, yearning toward its brethren...

Information Feudalism and the Oath You Swore to Your Printer

October 11, 2015

Welcome to the 9th century. The lord owns the land. The vassals are given permission to farm the land in exchange for fealty, money, products, and services. The oath of fealty binds the vassal to the lord. Feudalism evokes images of castles overlooking European heaths. Small huts dot the landscape...

The Biggest Mistake Job Interviewers Make

October 9, 2015

Over my tenure in the tech industry, I have interviewed probably hundreds of job candidates. From small companies like Palantir and Revolv, to large companies like HP, About.Com, and Google, I've sat on the judging side of the table.

Surprisingly, interviewers (including me) tend to make the same...

3 Reasons the University Should Up Its Security Game

October 5, 2015

I recently changed my password for an account at a university with which I am affiliated. It went something like this:

New Password:  XPNRWDeai60h$4IQtjLtZ8&9AV
Error: Cannot use special characters

New Password: XPNRWDeai60h4IQtjLtZ89AV
Error: Cannot use a character more than once

New Password:...

Go Quickly - Parsing Anonymous JSON

October 2, 2015

Go is great for parsing known JSON formats. But what if you don't know ahead of time what the JSON will look like? There are a few ways to handle this case in Go. On one hand, you can use the tokenizer and sequentially read through the JSON. On the other, you can simply parse the JSON into generic...

Quick Go Hack - Renaming Structs

September 26, 2015

Today I found myself needing to rename a struct throughout the codebase of a project. In many languages, doing this would either require some perl/sed kung-fu or an IDE tool like you'd find in IntelliJ. Go, however, comes with a handly tool for doing this: gofmt. That's right, it does more than just...