Insights from category creators and the investors who believe in them.

From Open Source to the Enterprise: The Evolution of HashiCorp

July 30, 2020

Who are the most important employees in any company today? Software developers, of course. Every company in every sector is rapidly morphing into a technology company, and to fuel this transformation, every company must hire armies of developers to build the infrastructure that powers their businesses. Thus, software companies that provide the platforms and tools developers need to build the best applications are in hot demand, and they’re collectively creating the next trillion-dollar software industry. Perhaps no company is more integral to this developer-driven revolution than HashiCorp, a commercial open source company that provides the fundamental building blocks around infrastructure and automation that developers need to create scalable, secure, high-performance applications hosted in the cloud. Valued at over $5 billion and now with over 1,000 employees worldwide, HashiCorp started out life in 2010 as an open source project and since grown into the defacto standard for modern cloud-computing development.

I recently sat down with Armon Dadgar, co-founder and CTO of HashiCorp, at GGV’s annual Evolving Enterprise conference for an in-depth conversation about the origins of HashiCorp and what’s next for the company. What follows are excerpts from our wide-ranging discussion.

How did HashiCorp get started?

That’s a long story that goes back to the University of Washington where I met Mitchell [HashiCorp Co-Founder and CTO Mitchell Hashimoto]. We actually met under pretty hilarious circumstances. I had joined a terrible research project just before I met Mitchell. We were porting a Python-based runtime to run on old Windows Treo phones circa 2007, with 12MB of RAM. You can't even start a Python runtime under 10MB of RAM, but we were trying to get it to work on this phone. After a quarter, I threatened to quit if I was made to work on it any longer. The person running the project told me, “No problem, I found another undergrad who doesn't know any better, Mitchell; you can train him to take over and then you don't have to do it anymore.” That’s how we became friends, working together on the worst research project ever.

Within the context of this project, we got invested in the local Seattle Ruby community and spent a lot of time trying to figure out how to do stuff in the cloud, but there wasn’t a lot of cloud-specific tooling at the time. We focused on building our own tools just for fun, going to local meetups and presenting about them. Fast forward a few years, and I decided to go into academia and moved to the Bay Area to attend UC Berkeley. Mitchell graduated a quarter before me and joined a mobile ad company in San Francisco. I’d made up my mind I didn’t want to go into industry, but after much pestering, Mitchell convinced me to interview for a job at the seven-person startup. I fell in love with the team, got the job, and ultimately dropped out of Cal. 

How did working at an ad network then lead to HashiCorp?

After three years of working together, Mitchell and I found we were spending most of our engineering cycles building infrastructure tooling. Half of the engineering team was doing provisioning, service, discovery, security, auto scaling—all things that had nothing to do with the core competence of being an ad network. We asked peers at GitHub, Slack, Stripe, etc., about what they were doing and they all said they had at least 30% of their engineering teams building platform tools. This seemed insane that a third of every development team was rebuilding the same set of tools to do cloud provisioning. That was the lightbulb moment when we asked ourselves, could HashiCorp exist as a company? Could we build a common wheel so that everyone else doesn’t have to do the repetitive, undifferentiated lifting? We weren’t sure if a business could be built, but we saw the market need and a clear demand. We thought, why not us? Let’s solve this common challenge every development team is facing.

Glenn: For those who aren't familiar with HashiCorp, can you explain what the company does?

Armon: Most developers know us for our portfolio of open source tools. Vagrant is used for  local development environments; Packer is for building automated machine images; Terraform is for doing infrastructure provisioning and management; Vault is for doing secrets and identity management; Console is for networking automation; and Nomad is for application deployment. Zooming out, we ultimately help developers with automating cloud infrastructure. Using a logically consistent framework, HashiCorp plays in four main categories; infrastructure provisioning, security, networking, and developer runtime.  

Glenn: One of the things I think is pretty remarkable is how much time and effort it took to get HashiCorp where it is today. When you think about your open source projects, most people assume they just sort of take off on their own. But, in reality, there is a lot of groundwork to get projects to percolate. What were the early days of HashiCorp like?

Armon: None of our tools were an overnight success. It took us three or four years to get to 100,000 downloads of our first product and, the first year, we were essentially on life support. The reality is with open source or any sort of a bottoms-up development project, there are years and years of community building. We didn’t just magically attract a community of developers who became our advocates and supporters; we spent years cultivating that community. In the first few years, Mitchell flew 350,000 miles a year around the country to meet with early advocates. I tell open source entrepreneurs to expect it to take two to three years for a software product to hit early critical mass, and you’ll only get there if you’re 100% focused on building a community of true evangelists.

Glenn: Let’s talk about commercialization. When we invested in HashiCorp’s Series A, I was super excited and then with each passing quarter, I’d notice “no revenue yet.” You were hard at work building a product called Atlas, which never took off. Why do you think that product failed and how did you recover from that? 

Armon: Now that I can be brutally honest, building Atlas was to keep our investors happy. We needed to define the commercial nature of the business, so the idea behind Atlas was to focus on building a product for the SMB market with a freemium model. But despite some paying customers, we knew Atlas wasn’t going to be the future of HashiCorp. In 2016 when we finished building out our open source portfolio, we had a really tough conversation around the future of the company. We needed to define our core customer: SMB or enterprise? The odds didn’t look great as an SMB tech company, we decided to go for enterprise customers. But Atlas wasn’t suitable for enterprise customers, so in early 2016, we started building enterprise versions of our open source tools. 

Glenn: What did the decision to target enterprise customers mean for HashiCorp as a small, young company? What processes did you have to change when selling to enterprise customers?

Armon: Though every potential customer, of any size, had a similar infrastructure provisioning problem, we quickly realized that selling a solution to a five-person startup was very different from selling to Apple. When we made the decision to go enterprise, we needed to find executives who knew how to run a traditional enterprise sales machine, not just people who were experts in growth hacking for SaaS. We started a radical retool of the business and part of that was building a very particular executive team with enterprise software chops.

Glenn: You guys made a fairly unconventional decision when the company was just 30 people: you brought on Dave McJannet as CEO and you and Mitchell, who had been co-CEOs, became co-CTOs. What was that process like and how did you determine Dave was the right fit?

Armon: It started with questions about which customers we wanted to reach and then we thought about who would be the best person to lead the transition toward those customers. Dave, with his experiences selling open source to enterprise customers at HortonWorks, and having worked at VMWare and Microsoft, was the perfect fit to lead HashiCorp into its next chapter. Before Dave came on board, Mitchell and I alternated who was CEO on a monthly basis, like a game of hot potato. Being CEO wasn’t a role that either of us loved, but we were willing to do it early on to build our company. However, we always knew we would eventually bring on a CEO who was good at that role so we could focus on what we do best, which is build products and evangelize them to the community.

Glenn: Your role has changed dramatically from when you were a company of five people to now with over 1000 people. How do you spend your time now versus how you spent it then?

Armon: For the first few years, I was super hands-on and programmed every day. Mitchell and I wrote a large portion of every version of our initial products. Over time, I moved into a more executive role. The last time I wrote a line of code was in 2017. Today, I spend about half my time with major customers and owning relationships with cloud partners. The other half of my time, I do a ton of developer advocacy at conferences and meetup groups. My role has shifted a few times, from being a hands-on coder, to much more high-level guidance of product and engineering, to now being more of the outbound face of the company.

Glenn: As you grow, it puts pressure on the company to hire the right people. How has HashiCorp gotten better about hiring?

Armon: Culture is so important as a distributed company, and we have an almost entirely remote team with people scattered all over the world. At HashiCorp, culture flows top down. A candidate may have an amazing CV, but if they’re not a culture fit, we won’t hire them. It takes a certain person to thrive in a remote-team environment and we’re up front with potential hires about the challenges and benefits of working from home. Another thing I’ve learned is that I always fire too late. I have had a hard time knowing when it’s time to move on. The toughest cases are the people who don’t have performance issues, but you just sort of outgrow them. The person who was right when the company was 50 people and the person who is right when the company hits 800 people may be different. Letting someone go never gets any easier, so I’ve learned to do it sooner rather than later as it’s more fair for everyone involved.

Glenn: HashiCorp has come a long way. What does the future look like?

Armon: We have always been a product portfolio company. We narrowly scope our products to each solve a specific problem. As the company has reached commercial success, we are always looking at adjacencies around existing products we could naturally expand into. HashiCorp plays a mission-critical role to customers by providing core infrastructure. Customers are making enormous bets on us, and they rely on us to be stable and deliver products that just work. Our future goal is the same as today: be a reliable, scalable company that customers can depend on.