"All happy cloud deployments are alike; each unhappy cloud deployment is unhappy in its own way." — Leo Tolstoy,
Site Reliability Engineer
At Gruntwork, I've had the chance to see the cloud adoption journeys of hundreds of companies, from tiny startups to
Fortune 50 giants. I've seen those journeys go well. I've seen those journeys go poorly. In this talk, I discuss a
few of the ways cloud adoption can go horribly wrong (massive cost overruns, endless death marches, security disasters),
and more importantly, how you can get it right. To help you get it right, we looked at the cloud journeys that were
successful and extracted from them the patterns they had in common. We distilled all this experience down into
something called the Gruntwork Production Framework, which defines five concrete steps you can follow to adopt the
cloud at your own company—and hopefully, to end up with your very own happy cloud deployment.
I did a podcast interview with Software Engineering Radio on Infrastructure as Code best practices. The discussion
covers similarities and differences between conventional software engineering and code-driven infrastructure;
factoring code into modules; layering; terraform code organization for micro-services; releases and tagging; code
reviews; unit testing infrastructure; deployment of infrastructure; ownership and code structure models; and open
source and re-usable libraries.
This talk from QCon SF is a step-by-step, live-coding class on how to write automated tests for infrastructure
code, including the code you write for use with tools such as Terraform, Kubernetes, Docker, and Packer. Topics
covered include unit tests, integration tests, end-to-end tests, test parallelism, retries, error handling, static
analysis, and more.
My talk from QCon London where I shared key lessons from the "Infrastructure Cookbook" we developed at Gruntwork
while creating and maintaining a library of over 300,000 lines of infrastructure code used in production by
hundreds of companies. Topics include how to design infrastructure APIs, automated tests for infrastructure code,
patterns for reuse and composition, refactoring, namespacing, and more.
This talk from HashiConf 2018 is a concise masterclass on how to write infrastructure code. I share key lessons
from the "Infrastructure Cookbook" we developed at Gruntwork while creating and maintaining a library of over
300,000 lines of infrastructure code that's used in production by hundreds of companies. Come and hear our war
stories, laugh about all the mistakes we’ve made along the way, and learn what Terraform, Packer, Docker, and Go
look like in the wild.
This is my talk from HashiConf 2017 where I introduce the work we've been doing at Gruntwork with Terraform Modules.
I explain how modules work, how to design modules so they are highly configurable and reusable, and how to write
automated tests for your Terraform code. Most importanly, I show you how you can use modules to build your entire
tech stack on top of proven, battle-tested infrastructure code—in minutes.
This is the talk I gave at the MIT Martin Center for Entrepreneurship and the Trinity College Blackstone Launchpad.
It's a talk I wish someone gave me when I was in college to help me think about the role of entrepreneurship and
startups in my career.
This talk is a very quick intro to Docker, Terraform, and Amazon's EC2 Container Service (ECS). In just 15 minutes,
you'll see how to take two apps (a Rails frontend and a Sinatra backend), package them as Docker containers, run
them using Amazon ECS, and to define all of the infrastructure-as-code using Terraform.
A comprehensive walkthrough of how to manage infrastructure-as-code using Terraform. This presentation includes an
introduction to Terraform, a discussion of how to manage Terraform state, how to use Terraform modules, an overview
of best practices (e.g. isolation, versioning, loops, if-statements), and a list of gotchas to look out for.
To go faster in a car, you need not only a powerful engine, but also safety
mechanisms like brakes, air bags, and seat belts. This is a talk about
the safety mechanisms that allow you to build software faster.
This talk will introduce you to the basic tools of user-centered and visual
design. It's targeted at developers and anyone else who wants to improve
the design of their websites, mobile apps, resumes, slide decks, and so on.
Choosing the right people is far more important than choosing the right
product, marketing strategy, tech stack, or coding methodology. That means
hiring is the most important thing you do. It's also one of the hardest. In
this talk, I describe how to hire for your startup, including finding
co-founders, early hires, and later hires. I also discuss what to look for
in a candidate, where to find candidates, how to interview them, and how to
make an offer they can't refuse.
Here's the showdown you've been waiting for: Node.js vs Play Framework.
Both are popular open source web frameworks that are built for developer
productivity, asynchronous I/O, and the real time web. But which one is
or Scala? The Google v8 engine or the JVM? NPM or Ivy? Grunt or SBT?
Web pages can get complex and slow. This talk shows how to deal with both
of these issues by using composition and functional programming in the
Play Framework to build complex pages out of simpler parts and how to
stream those parts extremely quickly to the browser using a Facebook
This is the story of the Hackday and[in]cubator programs at LinkedIn; this
is the story of scalable, best-of-breed methods for driving innovation;
this is the story of transformation: of your career, company, and the world.