Distributed systems, multi-process RPC, platform-specific code, side-effect dependent behavior, highly security-sensitive, millions of users, users that measure downtime per second in millions of US dollars, and more. These are the properties of the Go code that HashiCorp must ship. To ensure quality for this code, we've learned to test everything multiple times. Despite the requirements, we've "backported" these test practices to our other projects with more relaxed requirements as well since we saw such a hue benefit. In this talk, I describe the methods HashiCorp uses to test software, the pros/cons, and how you can adopt it yourself.
Mitchell Hashimoto is a programmer, author, speaker, and entrepreneur. He is the founder of HashiCorp and creator of DevOps tools such as Vagrant, Consul, Vault, and more. These tools are in use from the world's largest organizations to hobbyists. He is one of the top GitHub users by activity, followers, and contributions. "Automation obsessed," Mitchell solves problems with as much computer automation as possible.
All the tools created by HashiCorp except for Vagrant are written in Go. HashiCorp was one of the first companies to go all-in on Go, predating (and likely happening in parallel to) companies such as Heroku and Docker.