As a teenager with too much free time, Mitchell Hashimoto’s natural coding ability and love of video games got him in a bit of trouble. Under threat of legal action from Neopets and others, the enterprising 14 year-old high school freshman forcibly shut down his US$25-per-month membership site selling automated video game cheats he coded in his spare time.
“I started programming at age 12 because I wanted to cheat games,” Hashimoto said. “Looking back, the entrepreneurial bug hit me right away. I just liked to automate things. The site went pretty well until my confused parents, who thought I was just playing video games after school, sat me down after they got a cease-and-desist notice and told me to stop. Then I just kept programming for fun.”
Hashimoto, now 25, has never stopped automating. He’s held software engineering, DevOps and consulting jobs at several different companies, started two more businesses of his own (including current startup HashiCorp), and created or contributed to 75 open-source projects and counting. One of those is Vagrant, the automation tool that’s revolutionized the creation of virtualized development environments.
Since starting HashiCorp in 2012, Hashimoto and cofounder Armon Dadgar have released four other open-source projects in the Vagrant ecosystem—Packer, Serf, Consul and Terraform—each forming a different piece of a puzzle the two set out to solve more than half a decade earlier as undergrads at the University of Washington. HashiCorp recently released Atlas, the company’s first commercial product tying all their open-source projects together into one DevOps SaaS for application delivery. Along with a new funding round of $10 million, Atlas represents a milestone not just for HashiCorp, but also for the decade-long friendship it’s founded on.
As Dadgar put it, Hashimoto has always been driven by a pretty simple philosophy: If you’re waking up at 5 a.m. for any reason, you should replace that task with a computer.
“I remember in the early days we were sitting in this coffee shop and Mitch was showing me Vagrant,” said Dadgar. “He was like, ‘I have this idea where you’ll have a different file for every project, and it’ll automatically set up a virtual environment.’ Vagrant was born out of that need to re-image his laptop for every consulting cycle. That’s kind of the classic story of Mitch. Every time he finds himself doing some manual task he doesn’t want to be doing, especially at odd hours of the night, he thinks…there’s got to be a way to automate that.”
Building up to Vagrant
Hashimoto and Dadgar met as freshmen at the University of Washington in 2007 working on the Seattle Project, a research effort to build a global scientific compute cloud. The two worked on containerizing scientific applications to be deployed across millions of computers, with Hashimoto working to automate as much of the platform and device testing as he could. At the same time, he was already involved in various open-source projects on top of doing regular consulting work for Citrusbyte, a software design and engineering firm.
“Mitchell was the first person I’d met that knew so much about so many different things and was passionate about learning more and constantly pushing boundaries,” Dadgar said. “It’s startlingly rare that you meet someone who’s so passionate in the way that Mitchell is passionate about computer science. The kind of person who’s consumed by it. Mitchell sees the limit of his knowledge and runs out into that frontier beyond it. If you talk to Mitchell about an idea, you know the next time you’ll see him he’ll have spent the whole night researching the ins and outs of a problem and probably have a prototype application on GitHub.”
Soon after they’d met, Hashimoto embarked on his next business idea: UW Robot, an automated system to register students for courses. Students paid him a small fee, and Hashimoto’s software automatically registered them for a course when it was open, rather than waking up early to click a mouse. According to Hashimoto, by the time he was a senior, UW Robot was registering 70-80% of the undergraduate student body and “was pulling in about half a million dollars a year” for an automation program he only spent a few hours a year maintaining.
“UW Robot was a great example of Mitchell thinking, ‘Why am I waking up at 5 a.m. to register for classes?’ Computers are always awake,” Dadgar said. “I think by the time we graduated, everyone was using UW Robot. It was always funny when people were like, ‘Wait, you’re the guy who wrote that?’ Mitchell’s so unassuming about it.”
Hashimoto sold UW Robot when he graduated, and is legally bound from discussing the terms of the deal. During those early years, in parallel to his classwork, side projects, open-source contributions, research and consulting, the initial idea for Vagrant was already seeding in his mind.
Hashimoto was on vacation over the December holidays in 2009 when his manager at Citrusbyte called him about a client who needed some basic last-minute work on a project. The job only took two hours, but provisioning his laptop to run the right development environment to work on it took more than eight hours. On the flight back out to Seattle, Hashimoto’s mind was restless.
“I’ve always been fascinated by making computers do things that are pretty rote for humans, automating repeatable tasks and letting people focus on being creative,” he said. “So I kept thinking there must be a better way to do this. Does it just need more scripts? Can I automate the install so I can format my machine really quickly? All these ideas were going through my head. By the time I landed, I narrowed it down to this virtualization thing. I hadn’t really used virtualization at this point, I’d just read about it—or use this cloud thing. AWS was pretty new at the time. I actually chose virtualization primarily because it was free and because I was a frugal college student. That was the genesis of Vagrant.”
The new normal
From that point on, Vagrant began taking up more and more of Hashimoto’s time. He released the first incremental version in March of 2010, and for six months after no release got more than 100 downloads. By that summer, though, Vagrant was gaining momentum, and what at first was a side passion project became his main focus.
Hashimoto got a sponsorship from PaaS company Engine Yard to attend conferences. As he began evangelizing Vagrant and raising awareness, downloads steadily grew to 200, 500, and more than 1,000. As of this past December, HashiCorp’s collection of open-source tools had racked up more than a million downloads.
As Vagrant took off, Hashimoto was also experiencing Silicon Valley for the first time. During that summer, he was working on another project in Mountain View, Calif., with a few other developers, including John Bender, Hashimoto’s longtime friend and co-creator of Vagrant 0.1. The two developers, who met online while Hashimoto was publishing a popular Erlang blog and grew closer playing World of Warcraft together, began working together on implementing early features of Vagrant running at first only on Oracle’s free VirtualBox VM. Mostly, Bender said Hashimoto would finish a feature and move onto the next before Bender could even write a few lines of code.
“Mitch had this clear vision and amazingly fast software development skills with the Ruby tool chain,” Bender said. “At the time, this is also when tools like Chef and Puppet were starting to get popular. So that dovetailed really nicely, because prior to that, how would you even go about testing something in Chef? You’d have to do your own manual setup of the VM or do it on the server or some test server. So there was this nice confluence of factors and that’s why Vagrant really took off.”
As popular as Vagrant has become, it’s only one aspect of a larger problem Hashimoto and Dadgar set out to solve back at UW with an academic project called Cockpit. In college, they realized the generic deployment prototype they’d created wasn’t yet up to the massive challenge it faced. They filed it away in a Moleskine notebook, along with other high-level ideas born out of late-night hacking sessions and brainstorming meetings.
Hashimoto graduated from UW a semester early in January 2011, and he moved to Silicon Valley to work as a DevOps engineer for Kiip, a mobile advertising company. Under what Dadgar referred to as constant, relentless badgering from Hashimoto, he joined Kiip a few months later as a distributed systems architect, deferring his graduate studies.
Over the next two years, Vagrant grew too big. Faced with a changing perception of what he felt he was meant to do, Hashimoto left Kiip in mid-2012 to found HashiCorp and focus exclusively on Vagrant and other open-source projects. He’d already started working on Packer. Dadgar joined a few months later in early 2013 as a cofounder.
Hashimoto wrote about this shifting Silicon Valley perception and refocused ambition in a January 2013 blog post entitled “The New Normal.” The post marked a milestone of sorts in Hashimoto’s mind, and once both he and Dadgar were onboard, Hashimoto said the first thing they did was break open the old Moleskine.
“When we finally got [HashiCorp] together, we realized everyone was still having the same problems as back in college,” Hashimoto said. “We needed something to build images or artifacts. We had ideas in there about building machine images, building things into bigger boxes. Then we said, well, if we do that, we need a way after you build to deploy them. After you deploy them we need a way to scale. Suddenly we had all the time, and it re-motivated us to double down.”
Next came the open-source release of Packer in 2013 for creating machine images with immutable infrastructure, followed later in the year by Serf for managing decentralized clusters. 2014 brought the release of Vagrant Cloud, followed by the Consul tool for service discovery and configuration, and Terraform for codifying and automating data center infrastructures.
On the heels of the $10 million funding round in December 2014, HashiCorp released Atlas, a commercial product with an open-source foundation. Atlas weaved together all the ideas from the notebook into the end-to-end automation platform Hashimoto and Dadgar first envisioned Cockpit to be.
“Atlas, in many ways, is kind of a reboot of our initial Cockpit idea but done infinitely better,” said Dadgar. “Conceptually, it’s the same. It was very naive of us to think we could tackle this massive project all at once, but it was development by frustration. Why is this all so challenging? Why can’t we just codify it and put it into one super-automation platform that automates everything end to end? From the outside it may look like a random collection of open-source projects, but in reality it had always been different pieces of the same puzzle; Atlas is the culmination of it all.”
Hashimoto set out with HashiCorp to automate the whole of application delivery. As Dadgar put it, the open-source projects culminating in Atlas were the equivalent of the low-hanging fruit. Hashimoto hasn’t yet scratched the surface of the automation puzzle.
Automating the world
Tim Goh is Hashimoto’s former manager at Citrusbyte and the current director of engineering at cloud-based Web development startup Nitrous.IO. Goh worked with the then-college student designing custom software, and even when coding something as trivial as a Facebook Auto-Tune app for Sony, he noticed the way Hashimoto thought about solving complex software problems.
Hashimoto said he considers Goh a mentor, crediting Goh with his maturation from a “child programmer” into a professional. Citrusbyte was Hashimoto’s first real programming job after high school, and there he learned how to think about designing a sound software solution, and why it was always important to care about the work he did.
“I remember my manager at Citrusbyte asked how Mitch was developing once we started working together,” Goh said. “I remember telling him, ‘This guy is going to be better than me in a year, or even maybe six months.’ The reason is because Mitch’s learning speed is just ridiculous. I don’t think there’s a ceiling [for what he could accomplish]. It’s basically as far as he wants to take it.”
“There was a point where Mitch was just going around learning new languages on his own time; it seemed like one a week,” said Bender. “There’s a distinction you need to make between knowing a language and using and understanding it. He would write serious programs with hallmarks of a much deeper understanding of any given language than something skin-deep.”
Bender believed his old friend is one of the few brilliant minds in Silicon Valley who’s actually capable of pulling off the automation solution.
“There are a lot of good people doing software development out there, and a lot even as good as Mitch,” he said. “Really driven and successful people are stereotypically Type A, and can be focused to a fault. Mitch sent me a onesie for my daughter when she was born; he doesn’t lack for being kind and good to other people. But when Mitch sees clearly where something is wrong, he feels in some way obligated to improve on it.
“Most programmers aspire to think deeply about their problems before they sit down to solve them. It’s an ideal way to write software, because if you’ve thought of everything upfront, implementation is just more or less typing. Mitchell is one of the few people who can actually do that. For him, implementation goes so quickly because he already has it planned out in his head. Then he just sits down and does it.”