Software Misadventures - Stories behind building HashiCorp | Mitchell Hashimoto

Episode Date: January 30, 2024

Mitchell co-founded HashiCorp in 2012 and created many important infrastructure tools, such as Terraform, Vagrant, Packer, and Consul. In addition to being a prolific engineer, Mitchell grew HashiCorp... into a multi-billion-dollar public company. We discuss: How to structure large projects to avoid demotivation or burnout The "A.P.P.L.E" framework for diffusing tense situations and handling trolls How to decide what to work on Mitchell's unconventional transitions from CEO to CTO and then back to an individual contributor (IC) The quality that Mitchell values the most in an engineering team.   Segments: [0:14:19] Impactful lessons from working at the Apple Store in college [0:22:26] Origin story of HashiCorp [0:26:08] College side project that turned into Mitchell’s first financial success [0:31:25] Why infrastructure? [0:39:50] How individual products came about [0:44:17] Challenges of fundraising as a company with an umbrella of products [0:48:20] Balancing being the CTO and writing code: “I didn’t want to be that CTO that just produced technical debt” [0:53:09] Transitioning from CEO to co-CTO [0:57:26] From CTO to Individual Contributor [1:06:03] What’s next?   Show Notes: Mitchell’s blog: https://mitchellh.com/writing The “APPLE” principle that has guided Mitchell throughout his career: https://mitchellh.com/writing/apple-the-key-to-my-success Mitchell’s Startup Banking Story 😂: https://mitchellh.com/writing/my-startup-banking-story   Stay in touch: 👋 Make Ronak’s day by leaving us a review and let us know who we should talk to next! hello@softwaremisadventures.com

Transcript
Discussion (0)
Starting point is 00:00:00 The one I did in college was Vagrant. And Vagrant was local, but the constraint that made Vagrant happen locally was that I was a college student that wanted to be really frugal. So I didn't want to pay an hourly rate to AWS to launch a development environment. So I had to be local.
Starting point is 00:00:16 So I think, I always say more generally that I think the best engineering comes out of constraints. And the question is who defines those constraints? And I think in that scenario, that's a good example of an environmental constraint, which was this has to be free, that caused the design that I think other people weren't thinking about at the time. Welcome to the Software Misadventures podcast. We are your hosts, Ronak and Guan. As engineers, we are interested in not just the technologies, but the people and the stories behind them. So on this show, we try to scratch our own itch by sitting down with engineers,
Starting point is 00:00:55 founders, and investors to chat about their path, lessons they've learned, and of course, the misadventures along the way. Hi everyone, it's Guang here. In this episode, we're chatting with Mitchell Hashimoto. Mitchell co-founded HashiCorp in 2012 and created many important infrastructure tools, such as Terraform, Vagrant, Packer, and Console, which Ronik and I have used as early as when we got into software engineering. This was a big honor for us to speak with Mitchell. And in
Starting point is 00:01:25 addition to being very insightful, we're just really impressed by just how humble and candid he is. Beyond funny stories like when he transitioned from CEO to an engineer and meeting new employees that don't realize he's the founder, I personally learned a lot from the frameworks that Mitchell has developed over the years, like how to structure large projects to avoid burnout and how to diffuse tense situations and handle trolls. Without further ado, let's get into the conversation. Mitchell, super excited to have you with us today. Thank you for joining. Thanks for having me. So we thought we would start with asking you about this one thing that I read on the internet.
Starting point is 00:02:05 And someone quoted you, but you can't believe everything you read. So we're going to ask you this. Why did Neopets send you a seize and desist order? One, is this true? And if so, can you tell us more? Yeah, they sent me a letter. That's true. So how I got into programming pretty much was that i played this game neopets
Starting point is 00:02:28 and you know i didn't have that much time to be on the computer because i was in school and at homework and my parents had restrictions and so like to make the in-game currency and neopets took a lot of time that i didn't have so i looked at bots as a way to make the in-game currency so that when i came home from school i could just like play the games to make the in-game currency so that when I came home from school, I could just like play the games and use the in-game currency, not like grind it out. And that sort of led me, you know, Neopets is constantly patching to make sure the bots didn't work anymore.
Starting point is 00:02:55 And then I'd wait for updates and made me question like, how do these bots work? And can I make the updates myself? Like, how does this work? And so that long story short, led me to learn how to do programming i wrote a lot of cheats for neopets and a lot of other games but i did get a letter from from neopets asking me to stop at some point i think you know it's just a game of cat and mouse
Starting point is 00:03:16 and they realize at some point that we all know apis we all know web stuff like you could keep changing the api you keep changing things and like you could always cheat it pretty much and so they were like let's just send a legal letter and then that stopped everything when your parents saw the letter what was the reaction like honestly it was pretty calm it was sort of just like we don't know what you're doing on the computer but whatever you're doing like stop and don't do anything illegal and that was it like i didn't get grounded or get in trouble or get less computer time honestly they were just like this just stop doing whatever you're doing and i did do they brag to their friends being like oh you know my uh my son is so smart that the fbi is good i don't i don't think they've ever brought this up with anyone. So, no, it's probably more shame.
Starting point is 00:04:06 Oh, no. We'll cut this part out and they can listen to the rest of the episode. So, in terms of learning programming, is this something that you self-taught yourself or was this something you were learning in school? Well, I self-taught, but I did eventually go to college and study computer science. But by the time I went to college, I was already sort of building websites and building desktop apps and all sorts of stuff. And so I did learn a lot in college, but I was self-taught originally. And yeah, I was self-taught, but at the same time, I spent my time, you know, this is the early 2000s, right? Late 90s, early 2000s. So I spent my time living in like online forums and bulletin
Starting point is 00:04:46 boards and things like that. So even though I'm self-taught, a lot of people in those communities helped me out a lot because I would post on their dumb questions and usually they would either have links or answers to things. And so that's sort of how I figured out my way. Like going back to the Neopets thing, I found a community of people that wrote online web game cheats like for Neopets. And so when I was specifically trying to figure out how to work on Neopets stuff, I could ask them questions about that specific domain, and they usually had answers. And that's what really got me going. And there's another component, which I'm sure will lead into other questions. But there's people that release the source code for the cheats they made. And so
Starting point is 00:05:24 it's not open source in any sort of sense there's no license or anything attached to it it's just like a source drop but by reading that source code it taught me a lot a lot like i remember my 12 year old mind being blown by figuring out how to given like html how to get like a substring out of it like it's so basic now but i was trying to figure out how to read out the number of currency you currently have. As a 12-year-old, the idea of finding the character before and then finding the character after and
Starting point is 00:05:52 then doing a subtraction to figure out the length, I still remember that because it was the first time in my life that I felt like math that I was studying in school had a real, real application. I was like, holy cow, even though it's just subtraction, it was really cool. That is pretty cool. i don't think i was doing that when i was 12 so that is pretty cool even for what you were doing as a young as a young kid i i think it's really cool that you
Starting point is 00:06:15 had that realization like before going to study so that when you actually later on and you know studied computer science i feel like there was a lot more motivation. It's like, this is useful. Versus I think for me and both Veronica, it was like after the fact, like we were getting into software like after grad school. And it's like, oh yeah, probably should have taken this other class,
Starting point is 00:06:36 you know, that would have been helpful. That's very relatable though, the story. Cause I think for me also like learning about Kubernetes, like trying to set that up back at work uh he was also was very early so you know like reading through like github issues and then just like getting help from people like getting literally messages from kelsey hightower like telling us like oh yeah you should try this you should do that i'm curious what's your take on learning programming? Because nowadays, right, it's much easier. There's so many resources. I'm trying to learn Flutter and there's tutorials.
Starting point is 00:07:10 But at the same time, I feel like it's harder to get into those more, like, I don't know, grassroots communities where you're really trying to figure out things. How do you see that evolving, I guess? And like for someone that's trying to get into you know software engineering like what would you do if you were back at 12 years old i don't know i mean i think things are totally different now so i think it would be hard for me to give like concrete advice about like any sort of technology or anything i mean i think the the thing i always tell people that are learning is to find something to build for yourself.
Starting point is 00:07:46 I think that's the most motivating way. If you watch, like, now there's so much information that you can watch YouTube videos and read content nonstop. But, like, there's such a big gap between reading something and in your mind understanding it and being able to actually put it into practice. You know, I think we've all experienced that where you read a whole book and you're like, yeah, I got it. And then you go do something and you realize you don't know anything. And so I always tell people like, great, yeah, take a course on whatever, like Python, JavaScript, whatever, and then go build a real application. And I had a friend, I think that's a really good example of this, who had no background at all in computer science, didn't go to college at 19 years old just moved to san francisco and decided he wanted to work in tech not as an engineer he didn't you know he didn't know anything so he didn't just want to work in the tech industry but he taught himself
Starting point is 00:08:35 programming and one of the first things he did was he took an online like python like little video boot camp course which is really cool and then um after he took that boot camp course he wrote a personal website and what he wanted to do i remember him coming to me and telling me he wanted to do this and me thinking there's no way he's going to be able to do this and he ended up pulling it off which was he's like i want a website where people come i'm going to overlay my name and information but on the background i want to render a map and i want the map to be my current location based on my iphone and i was like okay and i i didn't really help him honestly i just pointed him into some libraries that i googled around but two weeks later he came and he's like it works and he found a way to host
Starting point is 00:09:16 like and find my iphone relay on heroku this is like 10 years ago on heroku and so it acted like a phone and it was pinging it and actually like rendered it with like not an exact location he just rendered like the map and the like 20 mile radius of where he was and then someone who had never programmed before and i just thought like he it was hard he didn't do it easily he had a lot of questions but i think after that he was such a better programmer and it happened so quickly versus somebody who would have spent those same two weeks reading or watching a lot more videos i think he learned a lot more by just fumbling through building this project so that's my general advice to people is build things yeah like how did he not give up because one of the of the i think the pros of like the community is like there's so
Starting point is 00:10:01 many people that it's like moral support i think psychologically helped a lot did he tell you how what kind of kept him going um i mean i he didn't tell me um my guess is i agree i think progress is really important to to not give up on something you have to kind of see some sort of progress that you're getting somewhere and so my guess is every day he'd come to work and we worked at the same company and he would we were on the same train back to our apartments and he would take that time to ask me some questions but they were really specific and i have no problem like answering really specific questions so i think he was connecting the dots through those questions you know the thing that i always you could tell the difference between someone who's like learning something
Starting point is 00:10:46 and on the path to learning something versus like trying to find a quick way out because the people finding the quick way out ask you these very vague, large questions. And the people that are actually learning had to ask you more specific, nuanced questions. So I could tell that he was doing something because I didn't understand the big picture.
Starting point is 00:11:02 He would just ask me questions like, oh, you know, like if I use this library, do I have to run it on the server? Or is this like a Java? Should this be in like JavaScript? And I would just give him the answer being like, oh, you probably want to run that on the server. I don't know what you're doing.
Starting point is 00:11:16 But then like the next day, he had a different question. I think he was putting all the pieces together. Nice. That's pretty cool. I think one thing which you mentioned in one of your blog posts around how you work on large technical projects was trying to shoot for something that's demo able and that allows you to one, limit the scope of what you're trying to do, but also make progress
Starting point is 00:11:36 that is visible. Could you talk more about how you think about these things? Yeah, I don't know if this is true about everybody, but I'm one of those people that if I don't see progress on what I'm working on, I get burnt out or burnt out is the worst case, but I get just really demotivated quickly. I learned that at a pretty early age, like before I went to college, because especially as a young programmer, you have all these grand ideas. I'm sure that you experience this too, where you learn programming. It's like, I'm going to make a 3d game, like something huge. And then you realize you're not making progress, you can't figure anything out, and then you throw it away. So I learned really early on that if I make my individual goals smaller to where I could see progress, then I'll be more successful. So when working even on large complex projects,
Starting point is 00:12:20 I try to break it down into pieces that not only can I complete on code quickly, but that I can complete and see an actual running result. So that's one of the methods that I use with my projects when I'm planning them is breaking them down into components that are demoable. And you've had a lot of side projects throughout your career and even before when you went to college when you know programming and many things pique your interest like i could do this or that or maybe this other thing how do you choose what you actually work on so the answer is the same between side projects and my professional work actually i've always been one of those people that i prioritize working on problems that i am having myself there you know There's a lot of problems out there that you can't do that, like software, like nuclear control systems engineering. I doubt that those people have issues with nuclear control systems in their house. But I personally am one of those
Starting point is 00:13:16 people that gets the most motivation by working on problems that I am acutely experiencing. So whether it's a side project or whether it was me earlier looking for what my next job would be, what companies I should apply to, it was always for me had to be things that I would use or need soon. So that's how I do it. So that requires discipline. I find myself starting thinking about that, but then I get distracted very quickly. I think that's true for many people. So what resulted in you having that discipline to say, you know what, don't get distracted, focus on the things that are actually important? Yeah, I don't have a great answer for that one. I mean, I think that for me, I have at this point successfully shipped software before.
Starting point is 00:13:58 And I think once I reached that point where I shipped software, I realized that the joy and excitement that comes from seeing others use your software and solve their problems as well is sort of what pushes me to complete a project towards the end. I wasn't always this way. Definitely, at different times in my life, I just try things for a few weeks, throw it away, and try another thing. I think that's really useful for learning. But at a certain point, you know, most people have to ship whether it's maybe never for a side project. It's not that important. But, you know, for work or something, you have to be able to have some discipline. Otherwise, you'll be bouncing around jobs or teams or something.
Starting point is 00:14:40 For sure. For sure. So you've mentioned on scrolling through your Twitter or X thread, and you'd mentioned the time of working at the Apple retail store. I saw your picture holding the first MacBook Air in Oregon. Yeah, yeah, yeah. One of the first in Washington. Yeah, that's pretty cool. So what was that experience like?
Starting point is 00:15:00 I think it had an influence on how you even think about products. So curious to know what influence it had it had a pretty big influence and i i was always one of those kids that worked a lot of jobs so i had been a math tutor i'd worked at a smoothie place i'd worked at a coffee place i'd worked at a grocery store and so the apple store though i don't think any of those were particularly formative but the apple store i do believe was actually quite formative for my career and it's both in product and in i think equally or more important is like human customer interaction so i'll say on the product side i mean it's less like i was a retail employee so it's like not like i saw how they designed the products but i think for me it was how they cared so much about the
Starting point is 00:15:45 products even from a retail perspective so seeing how the thing that blew my mind i a lot of things but the thing that really i couldn't believe i don't know if they still do this today but back then we had to comp they taught us to constantly shuffle around the store whenever we weren't talking to a customer and robotically do this thing where you line up all the computers again or ipods or iphones or whatever was out and you don't just line them up to like what you think looks good they had a few i think to this day yeah yeah to this day all the apple products are on these wood grain counters or tables and they actually marked out no they didn't mark it you just had to memorize it there was a grain grain of wood that the laptops and well, the different products, there was a grain of wood that the MacBooks lined up to a grain of wood that iMac lined up to. And you just had to learn what that grain was and map
Starting point is 00:16:35 it up perfectly. And it was a really, it was a thing like I remember our managers would walk around and they would be like, yo, this is, you know, it would be like a millimeter off and be like, this isn't the right place where this mouse is supposed to go. And that attention to detail really stuck with me being like, this is such a huge company and they care about stuff like this. So I think that was one thing.
Starting point is 00:16:54 And then I think on the customer side, I actually blogged about this, but their approach to empathy and understanding, like one of the first things they teach you is when someone has an issue with a technology device they're usually super super frustrated like they might have just lost their wedding photos or they might have just lost the ability to contact a loved one or ability to do schoolwork or something so they tend to come in super angry and they're going to be angry at you even though you had nothing to do with this and so they taught you this we spent eight hours in a hotel like little conference room doing
Starting point is 00:17:30 training where they were teaching you how to interact with people who were coming in hot and so that was super useful because i applied that over and over and over to this day i apply that to all like open source twitter whatever interactions um my family likes to say like i have no formal background in this this is just apple store stuff and and then my experience after that in open source but like my wife and my parents always tell me like i'm a professional diffuser because i don't mind at all anyone coming at me super super angry like i like working i don't like it i guess but i'm comfortable working with that person to figure out what the problem is calm them down get to a place in equal
Starting point is 00:18:12 footing and move forward together and i think that was really constantly helpful in open source and my company when i started that wait can we actually talk a little bit? So like give us like the two minute version. So you said four steps over there. So yeah, can you tell us more about the framework? Five, five. Oh, sorry. Yeah, the framework is Apple.
Starting point is 00:18:36 It's an acronym for APLE. So it's approach, probe, present, leave. And I forgot the E is now. So basically approach, right? So you approach one of these people. If they're angry, don't just leave them to be angry. Approach them. Actually take the chance to come to them and try to show that you care by coming to them.
Starting point is 00:18:58 The second step is to probe and sort of figure out what sort of is the problem. What's the actual behind all the anger, behind all the huffing and puffing, what went wrong or what do you need? And this is also throughout this whole thing is remaining calm yourself because one of the core tenets they taught was that it's very hard for an angry person to remain angry with someone who is not angry. Usually like an angry person is trying to get a rise out of you. So if you're able to keep yourself level, keep yourself calm. The person who's angry tends to over time feel more and more like, you know, an a-hole.
Starting point is 00:19:38 You know, over time, if you're just constantly like laying into someone who's trying to be really nice to you, you feel worse and worse about about yourself so just stay calm and that's going to bring them down so approach pro for the problem and then the third one is sort of like present a solution so actually don't just listen and be like thanks listen consider the options present potential solutions to their problem that they could have and then then after that sort of, you know, leave the L is like leave, like leave everyone happy, leave everyone like feeling like they got something out of it. And then I forgot what the E said for it. But I remember it has something to do with like inviting them to come back. So it's sort of like the idea that tell them, you know, if you ever
Starting point is 00:20:18 have a problem, again, just email me directly, just call me directly, we'll figure this out, it's going to be okay. So make sure they have a door to come back and get help. And so, yeah, that's constantly what I've done. I'm sure like there's examples of this over and over that are very public because I did this in open source, Dan. I can imagine working on open source projects and especially if you're active on Twitter,
Starting point is 00:20:40 this being an extremely helpful skill because like this is true, even in open source, people would spend 30 seconds on trying something. And it doesn't work. This this create an issues like this thing is not working, and so on and so forth. So yeah, yeah. And the other thing they taught as part of that was, if you go through these steps, and the person is still being unreasonable, like they're, let's not say unreasonable, they're being angry, then they are unreasonable. And this is also a good way to filter out the
Starting point is 00:21:04 people that are angry, because they actually have a problem that they want unreasonable. And this is also a good way to filter out the people that are angry because they actually have a problem that they want solved and people that are angry because they're just trying to be bad people. They're trying to make your day worse. And so in the context of a retail environment, that's pretty nice because the people that are trying to make your day worse, you could just escalate them to a manager. The manager is probably just like, yo, get out of the store in a nicer way, because you're not doing anything productive. And we've seen these people in tech too, that just like troll, they're just trolls, right? That's what you would call them. And so this is a good way, like if I engage in this process, and I realized that they're just being trolled, but I could just disengage, like there's really no issue, you could disengage, I've had
Starting point is 00:21:41 people where I've disengaged from and they're being trolled. So then they try to make a scene out of it being like, look, Mitchell's not being helpful. He's being a dick, whatever. But then I could show like the evidence is all there being like, I tried to help and you didn't engage. And so, you know, it makes it really clear what's happening here. And so that's sort of also part of the framework. And what time was this? This was before you went to college? It was my freshman year of college. It was my, like, I moved to Washington. I moved out of state. And the first thing I did was look for a job because I've always had a job.
Starting point is 00:22:13 And I had to buy stuff at the Apple store and ask if they were hiring. And yeah, got a job. And I think after graduating, you went to work at this company called Keep. I don't know if that's the right pronunciation. Yeah, it is actually yeah i see and i think at keep at some point you decided that you wanted to start hushy corp can you tell us like going from being a software engineer to deciding to start a company how did that transformation happen yeah so i started like slightly before keep uh while i was a junior in college. That's when I sort of started
Starting point is 00:22:45 both physically the software and thinking about the software that I wanted to write. So Vagrant started in college. I met my co-founder Arman in college and we were talking constantly about ideas. And then I started a notebook where I would actually keep track
Starting point is 00:22:59 of some of these ideas that I had. There's a lot that I never did, but in that notebook, which I still have, and I've sent pictures to HashiCorp and stuff, but I still have the physical notebook. You know, I actually have like a one pager of what became Terraform, a one pager of what sort of became like, console S console turned into something quite a bit different, but that that core networking problem, etc. And so that was before keep and then at Keep, I was in charge of infrastructure. And it was
Starting point is 00:23:25 a startup. So even though I had very little experience like that, I just kind of fell into the role of being in charge of infrastructure. I sort of tested these ideas. So I wrote a lot of Python scripts that I wrote something called we called launchy at the time, but it was what Terraform. It was like Terraform-esque.
Starting point is 00:23:42 Right. And then we wrote something that was a bunch of tools,, it was like Terraform-esque, right? And then I wrote something that was a bunch of tools, but it was a DNS-based service discovery mechanism that would ultimately be console. When I say become, none of this code, like I threw it all away, but the ideas and the learnings behind it are what became. And so that's where I got to do that.
Starting point is 00:24:02 And so the open source is getting pretty popular. I was testing these ideas and there was a certain point while I was there where I realized I was spending eight hours a day at work and then I was going home and then spending eight hours a night on open source and realizing, okay, I'm 21, 22, this is fine, but this is not going to be fine for very long.
Starting point is 00:24:21 And so I decided to just take the leap and start a company. I think that was the only option I saw at the time to do this stuff full time. I think there's actually different options today. But that was all I saw at the time. And that's sort of how that went. But I never expected to start a company like I didn't start any of these projects thinking, I'm going to start a business that was never an intention. Did you like worry about the financials before you quit? Yeah, I'm not dissolutioned at all to state that I was in like a fairly privileged position for a couple reasons. So I didn't have any help from family or anything. But I'd always worked job.
Starting point is 00:25:02 I'd always been pretty good about saving money. I think that as tech people coming out of college around that time, we were being paid way more than the average person coming out of college. So again, I was good at saving money there. So even though I only worked a couple years at Keep, I had put away over, I think it was like 60% of my paycheck and savings. And then in college, I actually had one successful side business that i continued to run while i was at keep and i ended up selling that business and so it's not like when i say sell a business it's not like millions of dollars i i sold the business for 200 ish thousand dollars and so you know a huge amount of money for a 21 year old 22 year old but it's not like i was going
Starting point is 00:25:43 to retire or anything i had to figure something out so you know by the time i quit keep i probably had like three three hundred fifty thousand dollars saved up which again for a 20 something year old 21 22 year old is crazy but i'd always been super frugal and stuff so i was pretty comfortable from a financial standpoint and uh yeah i think that's how I viewed the finance thing is I knew I had a few years to figure this out. And the side business that you mentioned that you had in college, this was, if I remember correctly, about helping people sign up for courses. Is that right?
Starting point is 00:26:17 Yeah. The University of Washington had a terrible system where if a class was full, it rejected your entire schedule, your proposed schedule. So you would submit your desired schedule, your proposed schedule. So you would submit your desired schedule for the entire quarter. And if any single thing in your schedule was full, it rejected the whole thing. So you'd have to resubmit. But by the time you resubmitted, another one of your classes became full. And so you would, the ultimate result, you would get none of them. So I started a service where you'd pay $5 per class and i would just text message you the moment a student dropped so that you could quickly log in and sign up i couldn't do the sign up
Starting point is 00:26:50 because of federal privacy regulations but i could text message you and say this class is now open and you could go get it actually really really funny like weird coincidence so we're recording this now yesterday at lunch i was having lunch with a parent that we met randomly because we have a baby now and you meet parents and i met this parent turned out we went to the same college and he was a customer and this this happens once in a while i really like if someone said if someone says i went to university washington i say what years and if there's like a four-year overlap on either side or on i guess on the graduating side there's like a four-year overlap i always go how did she get into class oh that's funny uh in this case by the way like having a side project that does this thing is a slightly different skill than actually charging people for it.
Starting point is 00:27:48 At the time, how did you spread the word around this and say, hey, you know what? I have this service. You can just pay me five bucks. I never, ever, ever marketed. It was all word of mouth because I was super afraid that what I was doing was not legal. I wasn't sure. I was young and I wasn't sure if the university would be cool with it. So, I mean, now I talk more publicly about it, but for the
Starting point is 00:28:12 longest time, nobody except my college roommates and they didn't tell anybody, nobody knew who was behind this thing. And the funniest stories then, or when I was in like computer science labs or libraries, and I would hear people talking about it and i actually heard a couple people i heard a couple people having a discussion being like who makes this are they a student what are like and i was sitting like a table over and uh but i was just so afraid of anyone finding out um because i was making you know for again for a college student i was making decent money on it it was making, you know, for again, for a college student, I was making decent money on it. It was making about like $40,000 a quarter pre-tax. And so I didn't want to give that up. Right. And so, yeah, I was, I, my plan was to stay quiet until they shut it down or something.
Starting point is 00:28:58 I ended up selling it and then they did shut it down a couple of years later. How would people pay you in this case if they didn't know exactly who was behind it, like PayPal account or something? Yep, PayPal. And then PayPal was just fronted by a business name. Oh, I see. That's interesting.
Starting point is 00:29:16 It's interesting to have here, we will talk about behind you, next to you thing, who is behind this thing. Yeah, I got some really good ideas, actually. There is someone this you know the podcast isn't about this but there i was at a computer lab and i charged five dollars per class okay that's how it worked per class so if you had three classes you didn't get into it for a quarter that's 15 and i had this person behind me at a computer lab and i heard her and she was complaining
Starting point is 00:29:40 how it's five dollars a class she's like i wish i could just pay one time and get as many classes as i want and i thought oh that's an interesting idea i went home that day and this is a bit slimy but you know i think this is good business sense of what i did here i i had been running it for three years at that point when i heard the girl say that in the computer lab i downloaded all my sales data into an excel spreadsheet and what i did was i calculated i have their like student id number which is public information like it's just on the front of their card so i had all that and so i was able to tell by the duration for the what was for each student what was the expected lifetime value of a person and the expected lifetime value was about 2525, $30. Because as a freshman, yeah, you might pay me $15 a quarter. But as you get more senior, there's less people fighting for the same classes.
Starting point is 00:30:30 So you get into the class anyway. But as a freshman, you don't realize that. And you feel like your whole four years is going to be complicated. So I figured out the expected lifetime value is $30. So I decided to charge $50 for a lifetime thing. And it was crazy successful. Like I think that was when I went, I went from like $25,000 a quarter to like 40.
Starting point is 00:30:53 That was like the jump to make all that money. And it never, I was like, okay, I'm going to have one good quarter and then it's all going to come down because everyone in the next quarter is not going to pay me anything. False. Like this stayed up the whole time.
Starting point is 00:31:04 And so that was a really interesting, I didn't come up with that on my own. I had an ex-girlfriend at the time who her dad was like a CFO at a big company. And I asked him what I should do. And he was like, yeah, just figure out, figure out what they would pay and then charge them more and see if they'll pay for it. And I was like, okay. And it worked. That's really cool so you mentioned like working at keep you you became uh in charge of the infrastructure pieces and a lot of ideas that you had been thinking about call it service discovery or deployment automation or provisioning infrastructure a lot of these things i'm going to use a very large bucket. They fall in the traditional category of ops,
Starting point is 00:31:45 to say. And it's not something that I've, at least in my experience, I haven't seen a lot of folks in college think about ops per se. They want to build flashy applications. They want to put up the website that people come to. They want to build a mobile application. The ideas you had been tinkering with, or at least were thinking about, are a lot of these, well, day two problems. Like, okay, once you build something or once you build infrastructure, how do you want services to talk to each other? How do you roll them out? So what kind of resulted in you thinking about these sorts of infrastructure problems? Yeah, I worked for a consultancy that built like a Ruby on Rails consultancy for a couple of years in my junior, senior year in college.
Starting point is 00:32:25 And while I was doing that, there was just ops people at the consultancy. And I thought it was really interesting. I just thought I just gravitated towards a problem and thought it was really interesting. I had fun building apps and I wanted to build these flashy apps, but I also thought it was really interesting
Starting point is 00:32:40 how they got these deployed and working for consultancy, we were able to do more complicated things then, was, you know, like, background queuing and scheduled workers and video encoding and chat systems, all sorts of we got I got to experience all sorts of fun stuff on the dev side. But it was more interesting, like, how do you deploy the system? And so that's sort of how I got into it, just asking questions. And then I think it really piqued my interest because I really think that automating a large amount of servers is such a fun problem, especially as a young engineer. I always joke that it's like building a Lego, but instead of building a Lego, you're building
Starting point is 00:33:19 a room full of synchronized robots, right? And that's the challenge that I loved to have. And so I sort of, yeah, gravitated towards it. Personally, I empathize with that a lot because my job at the bootcamp was pretty much doing this. I didn't build Terraform. I was using Terraform to do that actually. And one of our other friends, Austin,
Starting point is 00:33:40 both of our jobs was to pretty much do this where you would have every quarter, like 30, 40 people who would come into the bootcamp and they wanted to bring up all these servers on AWS. Plus, they didn't want to worry about how do I install Kafka on this machine? So just seeing like, do like Terraform apply and you see the entire infrastructure come up and you do destroy and it just goes away. Yeah.
Starting point is 00:34:00 Kind of magical to look at and even just experience as an engineer. Yeah. Yeah. And that idea of the destroy side of things, because, okay, the one I did in college was Vagrant. And Vagrant was local. But the constraint that made Vagrant happen locally was that I was a college student that wanted to be really frugal. So I didn't want to pay an hourly rate to AWS to launch a development environment. So I had to be local. So I think I always say more generally that I think the best engineering comes out of constraints.
Starting point is 00:34:28 And the question is, who defines those constraints. And I think in that scenario, that's a good example of a concern environmental constraint, which was this has to be free, that caused the design that I think other people weren't thinking about at the time, I think there was work at the time to try to spin up AWS-based dev environments. And now we see that. And I think the technology has just come so much further where that's actually more practical today. But back in 2009, we didn't really have the web technology in general
Starting point is 00:34:58 to put an editor in the browser or anything. So it had to be local. So I think that's also an important point. Yeah, yeah, yeah yeah there's two sort of sides to the coin of being very curious about the tooling right of building something because on one hand you can do a lot of automation you can make things much more efficient but the on the other hand it kind of distracts from because i remember being kind of also very excited about infrastructure and my first startup.
Starting point is 00:35:27 But then it was like life sciences, like tech. And then I was trying to put our Spark clusters on Kubernetes when it was way too early to be doing that. It would have been much better for the business, I think, if I just used Databricks. Now that you've been many years founding HashiCorp, and I'm sure you've come across a lot of engineers who maybe want to go too deep into the engineering part instead of thinking about the bigger picture. What's your take on that? I think that in a work environment alone, I think that professional environments, generally generally they have to be thinking about making money like that's their stated purpose. And so as a result of that, I think that there isn't enough time given to actually be able to reliably change the way things are done. You know, like, for example, running Spark on a Kubernetes cluster, I don't have experience doing this. I don't have experience deploying Spark. So I'm just talking about this metaphorically here. But you know,
Starting point is 00:36:29 if you had spent two months full time doing that, maybe you could have brought it. And but like you, the argument is that two months full time was a waste of time for the company, maybe. But if you spend two months doing that, you get it to happen. And then you show other companies how they can make it happen. And that two months suddenly probably comes worth it but no one's willing to pay for that two months it has to be done like sort of like for the good of the community and so i think that within a business you have to balance that but for me for example like i feel like all the big changes i made that ended up having some sort of impact was because I spent an irrational amount of time trying to get there. And so I don't think there's a way around this other than if you get really lucky at work where they're willing to be wasteful or you've got to find the time, go home, and figure it out yourself. I just don't think our society, economy, whatever, is structured in a way that there's a good platform to be able to make these changes.
Starting point is 00:37:33 So coming back to Weigrant, I think that was at some point Weigrant started making money. And I think you had a partnership with VMware, if I remember correctly? Just a product built on their product no partnership yeah okay so i started making money and i think that was the tipping point that resulted in you starting hushy corp at least this is from the stories i've read could be wrong reverse yeah i started hushy corp and then felt this this pressure to make money as quickly as possible we weren't sure when we started hushy cor, we weren't sure if it would be venture-backed yet. So there was an immediate pressure
Starting point is 00:38:09 to figure out how to make money, to give us more time to figure out what we were doing. So there was a huge demand for a VMware product integration. So I built that integration just on my own and then like on my own as in without a partnership with VMware and started selling it for $80, a licensed perpetual perversion. just on my own and then like on my own as and without a partnership with vmware and uh started selling it for 80 a license perpetual perversion and uh yeah that ended up being even though we ended up raising venture capital the amount we made from that vmware integration i've already
Starting point is 00:38:37 said publicly before has ended up paying like a few salaries for like four or five years honestly yeah it was not bad that's pretty huge uh yeah for a starting product so in this case like when you started hashicorp vagrant was a thing that you had built before and hashicorp built a whole lot of new things after and like you said you didn't know whether you wanted to be venture backed or not but did you have this idea of what kind of products you wanted to build? And not just kind of products, but also domains with an infrastructure that you wanted to touch? Yeah, definitely. We had everything up to Nomad written out before we founded HashiCorp. We had more stuff than that, that we ended up canceling for various reasons. But we had everything up to
Starting point is 00:39:22 Nomad. The only exception, the only weird one that came out, which ended up being really important for the company, was Vault. We knew we wanted to look into the secrets problem. We didn't think that would be... We thought that would be more per product. It would just have a mindset around secret information. We didn't realize secrets would be a full standalone
Starting point is 00:39:39 problem that needed to be solved, but everything else up to that point was pre-planned and when i say planned i mean like the problem the general shape of the solution but the exact technology is exact what came out like obviously that was more in the moment yeah did you how do you go about doing that is it like okay you know i'm trying to do this thing therefore right like for someone bringing up infrastructure like these are the things that i need so really focusing on that sort of profile or is it like hey i'm trying to do this one thing and then that naturally led to okay well i need this other thing in order to do it better and then like how did you approach that
Starting point is 00:40:19 yeah it was it was based on my experience at this previous startup and then another consultancy it was just like, okay. And there was also a research project, an undergraduate research project that I was part of. That's how I met Armand. A lot of it came from there too, just the problems. But it was sort of just all interrelated, which was like, okay,
Starting point is 00:40:39 if we want to live this truly elastic dream that AWS is pitching us, we need the ability to create and destroy servers like fast, automatically. Like it needs to be fluid. So that was sort of like one problem. Another problem was it felt that configuration management was king at the time.
Starting point is 00:40:57 So Chef, Puppet, things like that. And it felt like those technologies didn't, I was struggling to really make them work in this highly elastic dynamic environment so that sort of led to packer i was like i want this vagrant style thing where you just start it and it already has everything on disk ready to go so that led to packer and then we had this issue where you have all these servers that are very ephemeral how do you find them so that led the console and and so on and so forth and so like
Starting point is 00:41:25 that that could just keep going and going and so we were able to sort of i guess paint this large diagram of all the various categories of things that needed to be solved and i think very ambitiously thought we would just try to solve all of them the reality is obviously things take time and as we were building different problems, different things got solved. Like I think a huge, massive one, for example, that we had written down that we ended up canceling was what you would now call a container runtime. At the time, no one used the word container runtime,
Starting point is 00:41:56 but we knew that we wanted, we described it as Packer for application. And so that's what we were thinking about was how to bring image based deployment down to the application level, rather than there was this huge like that. And that was inspired by Heroku, because Heroku was already well established by then. And Heroku had this build step. And for anyone who had used Heroku will understand this, but at the end of the build step, you got a slug. It was called a slug. And the slug was this root FF that just got splatted onto machines.
Starting point is 00:42:28 And so that was what inspired me to think Packer for Applications would be generalizing the build pack and then using containerization though. We were thinking LXC, like using LXC to actually run these slugs in different places beyond Heroku. So that ended up being
Starting point is 00:42:44 canceled for very obvious reasons but stuff like that it was easy it felt easy for us to map it all out given our experience yeah and how did you pick which ones to prioritize and start uh first uh we sort of solved them in the order that we felt they needed like technically made sense. Like, so for example, Terraform is not very useful without the images, in my opinion. So we did Packer first, and then service discovery, you don't need until you have ephemeral machines. So we did Terraform first, and so on and so forth. So yeah. And you had these ideas written down, if you think about a bunch of these systems, they could be, or at least some of them could be a company on their own.
Starting point is 00:43:25 And in a way, HashiCorp has a diverse set of products all within the infrastructure space, but they're solving different problems. So when you went to, like, at some point you decided to raise capital. So when you were pitching this idea to investors, did it make it challenging to talk about all these different ideas you wanted to do under the same company? Yeah. Yeah, definitely. Like, definitely. It was a constant point of discussion amongst new investors and current investors that we had at various points in time. And they constantly asked, like, what are you going to focus on? You got to focus on something. What are you going to focus on? Pick one product, things like that. We were really stubborn about it. I think we compromised by doing less. And I think that was the right move. I think we did spread ourselves
Starting point is 00:44:10 really, really thin. But at the same time, I think selfishly, we wanted to solve these problems. One of my core ideas behind it was that, and I actually still believe this, and I think this is a problem with our industry, with the, I won't say our, but with the infrastructure industry today, is at the time, I felt that if you have a different entity building different products, they don't work together super well. And so I wanted to be, yeah, I wanted to build this big company that built a lot of products that ended up working together well. And I think in some ways we succeeded in other ways we really didn't. But regardless, I think the industry as a whole has turned into this map of dozens, hundreds of products that you're responsible for writing the glue for. And that's what I didn't want to happen. So I would say this
Starting point is 00:45:03 part of my vision didn't play out as how I wanted. But that in my mind, that's what I didn't want to happen. So I would say this part of my vision didn't play out as how I wanted, but that in my mind, that's what I wanted to see was this cohesive set of products. And I think that also came from the Apple experience, right? If you're within the Apple ecosystem,
Starting point is 00:45:16 then it's this beautiful working experience generally versus like you see, like non-Apple people, I would say pick on one product like if you pick on an airpod if you use airpods but you have no other apple products they are pretty annoying to use but as soon as you use like their pairing is weird there's no like good indicators but as soon as you have an iphone pretty cool and then as soon as you have like multiple products and you realize
Starting point is 00:45:42 pairing with one pairs it with all of them automatically for all time, even new ones, it all starts coming together. And so I always had this dream of being able to do that with infrastructure products, and that didn't quite play out to the extent I wanted it to. But that was also one of the core reasons we did multiple products.
Starting point is 00:46:00 One of the main things that is different about Apple and HashiCorp, I would say, is like, if I think about Apple, it's a fairly closed source, meaning you need a special hardware to even open up your, let's say, iPhone or your MacBook. Good point. But HashiCorp, on the other hand, you started with a very different philosophy on the other end of the spectrum, which is you started with open source. What resulted in you starting with open source?
Starting point is 00:46:24 Well, I mean, I think one part of it is just like that's momentum. That's how we had been doing things already. Because I never planned on ever building a business. There was never any reason for me to close source any of this originally. And so I think there was that decision that it's hard to go back on that. But I think another part, which is equally if not more important, is that infrastructure was the type of industry where people were making decisions
Starting point is 00:46:50 based on whether something was open source or not. Of course, there's a ton of infrastructure companies that are fully closed source, infrastructure software that's fully closed source that's very successful.
Starting point is 00:46:59 But the up-and-coming software was, at the time, driven by open source. If like if it wasn't open source it was sort of a non-option for a period of time yeah i think that is changing again right now because of sass mostly uh but that was also an important driver of differentiating uh between people yeah and at hashicorp like you started as a CEO of the company, and at some point, you transitioned to CTO. But before you even talk about the transition, I think you posted your GitHub stats. I was looking at the numbers. Well, one, they're mind-blowing. And I mean, you're a prolific programmer. And if I remember correctly, you were also writing code, engaging in open source community on GitHub issues as the CEO of the company. You had as a CEO of the company, you have a whole lot of other responsibilities too. So how did you manage time to make code like spending time on code a priority?
Starting point is 00:47:59 Well, the code you could see, you could see in those statistics, it's actually very clear. If you know my background, you could see a pretty steep drop off. It is pretty significant. It still seems like a lot. But, you know, if we get down off. It is pretty significant. It still seems like a lot, but you know, if we get down to like the low points and those statistics were down to like a thousand fifteen hundred contributions, GitHub's word contributions per year, but
Starting point is 00:48:13 a contribution as far as I know also includes issue responses, pull request review, etc. So I have a feeling without digging into the data, I have a feeling during those low years, it was primarily that and less me making actual commits. Because there was a period of time where I stopped completely on HashiCorp stuff. I always had side stuff going on. But on HashiCorp stuff, I stopped completely because I didn't want to be that CTO that just produced technical debt, right? That just swooped in in doesn't have any context like and so at a certain point i did that for a period of time i upset some people and so at a certain point i just stepped back completely from the hot shoe cart product besides like really focused ones i was working on so no i
Starting point is 00:48:57 think you can't really do both very well so i didn't and that was part of my transition process and how what was the what was it like the getting the feedback and that must not have felt very nice but then being able to you know take that and then make adjustments uh which feedback the um the part about just uh or creating more tech that as you put it yeah i don't think you know especially at that point i don't think anyone was comfortable enough like just like being mad at me you could you have to have a certain level of like eq right like a certain amount of ability to just like read people and i could just tell that i was producing stuff that people were getting stuck with maintenance of. And I could tell their mood, the way they talked about it. They weren't thrilled by it.
Starting point is 00:49:50 And so I sort of took that signal and adjusted myself accordingly. And it wasn't that I didn't want to do maintenance. Like, I don't have any issues doing maintenance. It was just that I got pulled away into other things. So the maintenance had to happen, but I was busy with other things. So I couldn't do the maintenance. So I decided if I couldn't be around to do the maintenance, then I wouldn't do it unless there was a specific emergency type situation. So there was like a couple instances of like, we're shipping a brand new product, we really need, we really want like a founder's vision or
Starting point is 00:50:24 mindset on this product so knowing that i would be on the product to help them launch it but then i would depart to like do other stuff like if that was well established ahead of time then i would do it but i stopped just like i used to just do some work and then at night i would just pull up like terraform issues and be like oh yeah i'm gonna fix this one i'm gonna fix this one and then i would just like pull request them and i stopped doing that that's very impressive though i know of like founder ctos right who can't do that because they're like this is my baby did you how did you i mean like how did you get that eq but like did you receive like ask for like a coaching or like uh like do you talk to the board or like they give you a heads up?
Starting point is 00:51:05 No, no. I can't recall specific instances but in my mind, it feels like there had to have just been concrete events that didn't feel good that we're learning. I made mistakes and then I learned from them. It wasn't a pre-planned sort of thing. But it definitely didn't feel good. I didn't want to...
Starting point is 00:51:22 My favorite product that we ever made is Terraform and I think I would have been really happy working on Terraform forever, but I had to step away from it. And for me, the only way I could step away from products is sort of really letting go of them and giving it's my wife likes to tell me like, I'm a very much like an all in or all out type of person. I really struggle to be 50 5050. So I think when I was all in, I was very much like a BDFL type character within the community. I made all the final decisions.
Starting point is 00:51:51 I drove the roadmap. I did everything. And then when I step out, I try to be, I try to share my opinion, but I'm very much, it's your product. You make the decision,
Starting point is 00:52:01 but here's my thinking behind it. And I think there's pros and cons to that but for me i have to do that for my own like mental health and going from ceo to cto like that's an interesting transition one i don't know if many people can do that or want to do that but the other part is also like you started the company as a ceo you kind of get to call all the shots yes you have stakeholders to answer to, but still you're deciding roadmap priorities, everything. When you become the CTO, you're letting go of some control of the company you built. And that transition doesn't sound easy. So what
Starting point is 00:52:38 resulted in you deciding that I'm okay with this, let me transition to a CTO role? So I think at a certain stage of a startup company, the CEO job becomes very differentiated from any other job. So at any startup company for the first period of certain period of time, it doesn't really matter what title anyone has, right? Because you kind of have to do everything. And yeah, okay, the founder is involved, the only one probably involved with like fundraising and things like that. But it's not that time consuming. And so you could kind of still do other stuff. At a certain point in a company's life, the CEO job starts becoming a real differentiated job.
Starting point is 00:53:15 And I think when that started happening, I realized that differentiated job was something that I didn't enjoy doing. And not only did I not enjoy doing it, but I thought, I don't know what I'm doing. So I'm going to make a lot of mistakes here. And so as part of that, we were open to bringing in a CEO and then switching to CTO. And I think a big thing is at an early stage company, you could still be really involved. Like there's no rule that says the CEO has to make all the decisions and the CTO has no say, right? So Dave became our CEO. Dave came in, was really respectful of me and Armand. And we as a trio sort of ran the company together, even though Dave took over the CEO responsibilities, investor relations, financial management, sort of some growth planning in terms of headcount, budgeting, things like that. But every major decision, all three of us were involved. So I felt good about that. The thing that made it tricky is that CEO was the first person we ever hired.
Starting point is 00:54:12 Maybe only, I guess, but it's the first person we ever hired where me and Armand alone, they didn't have the ability to fire that person if there was a mistake. That requires board level approval. So that was the first time we had not full control, just us two. And so that was the scariest part, because we were afraid of a scenario where we might bring someone in, they might be doing a good job for the board, but we didn't like what they were doing. But the board wouldn't be on on board, so to speak, with getting changing them or something. So that was what we kept us up at night. But we are really lucky. I mean, we never had that problem at all day was great.
Starting point is 00:54:50 But that I think that's okay. So for a long period of time, there's really no giving up control besides the control of fire. And then at a certain point, yeah, the company becomes much bigger, and the CEO is really doing a different thing. But since we brought Dave in so early, by the time the company reached that point, we were so comfortable with each other that it was all good. And at this point, I think you and Arman were co-CTOs of the company.
Starting point is 00:55:16 Yeah. How do you spread the responsibility at that point? It was pretty simple, actually. Arman more or less, okay, these lines really blur, but while we were co-CTOs, Arman more or less became sort of the public facing or like a customer facing CTO.
Starting point is 00:55:29 And I was more of the community and engineering focused CTO. And by engineering, I mean like product planning, working with VP of engineering, VP of product. Again, lines are really blurry because Armand definitely met with engineering product leaders and I definitely still did customer travel but in terms of like where our hours went he spent more hours doing that I spent more hours doing this and I think that's like that's totally normal like if you look at a company like VMware or something you know any big company they probably have like 10 to 15 CTOs yeah it's you know it's not the S you have a global CTO is basically just the boss of all the other
Starting point is 00:56:06 CTOs. It's pretty normal. So I think like Armand ended up being like, you know, the more field focused CTO and I ended up being the more internal CTO and it worked out great. And I think like if, you know, ultimately I became an ICO, ultimately I left, but I think we could have been co-CTOs
Starting point is 00:56:21 indefinitely. There was enough work to do and that balance worked well enough. You spent about five years as a CTO. And if things were going well, why switch to being an IC? Like that is, by the way, that transition overall from CEO to CTO to IC, I've never seen that.
Starting point is 00:56:38 My data points might be less, but yours was the first one I ever heard about. Yeah, I don't know. I don't know. Maybe. I'm sure someone else has done it. But yeah, so I always tell people that I did enjoy being a CTO and I did enjoy my job responsibilities and I wasn't burnt out and I could have kept doing it forever indefinitely. The issue was that as time went on, it became a life choice of what makes you happiest, so to speak. As I was thinking, looking ahead towards
Starting point is 00:57:13 Hoshikor being 10 years old, doing this for all my 20s and half my 30s, as I started getting that point, it was like, I could keep doing this and i don't dislike it but like what would optimize for me like selfishly what would optimize for my happiness and i always just loved you know coding and just like throwing code around and just being an individual contributor type engineer i loved it and as much as i liked talking to customers and doing the conference things and being part of product planning if that's like let's say if that's like a b plus level enjoyment like coding was always like a plus like always and so they're both good they're both right in there but you know i liked coding more so and it was binary like you kind of couldn't do one with the other, right? It was too time consuming on one side. So I started planning
Starting point is 00:58:06 this sort of more selfish decision at that point. I sort of felt after over 10 years of doing this and the company growing to where it was, you know, I felt like fair, it was fair that I could start thinking about this future for myself. For a long time, I made a lot of my decisions based on balancing what I wanted wanted but also what would make investors happiest and what would be best for the employees because you know employees get a lot of equity and stuff like the company by helping the company to help employees so i balanced all this and i sort of felt like with us approaching an ipo liquidity event for employees with like that i knew that was coming right from the inside with that,
Starting point is 00:58:47 with the growth that we've had or things like that. I just felt like, okay, I think it's fair that I did right by these people and that I could start being a little bit more selfish. First question. So has there been any like new team members who doesn't know the backstory and then joins the team, you know, maybe like two weeks into it was like, oh, you have a funny. Why is your last name in the company?
Starting point is 00:59:11 What's the relationship here? Has that happened? Actually, yeah. Yeah, yeah, yeah. It's not that. I mean, maybe it's really awkward for them. It really doesn't bother me at all but for the for up until pretty much the day i left um we did this thing uh where slack it was a bot in slack and slack would randomly pair two people in the company together and you
Starting point is 00:59:30 would spend 30 minutes and especially once i stepped down from being in leadership and our company was getting thousands of employees almost everyone honestly almost everyone i was getting for months i had no idea that they we would do this one-on-one they would they would literally ask me like what do you do with the company? And I would tell them. That's a legitimate question, even for my role. So I would say, like, oh, I'm an engineer on this
Starting point is 00:59:54 project. They're like, oh, cool. How long have you been here? I'd be like, oh, like, 11 years? And they're like, whoa, that's almost since the beginning. We would, like, go through this this thing and then i think the funniest was when i was leaving you know we gave some warning to various leadership groups that i was leaving even though i wasn't part of them just in case you know there was
Starting point is 01:00:16 some fallout from that and then they were telling more people and there was like i thought you know i never name and shame any of these people because it really doesn't bother me but there is a couple people that they were like oh mitchell mitchell's gonna announce that he's leaving and they're like who's mitchell like who are we talking about because i actually view that as a huge success because it had been long enough that i was unimportant enough that who cares right and that's the best time to leave but But yeah, it's definitely super funny. I think you've reached like the level above sort of like recognition and then, you know, being kind of appreciated by employees to the more like higher level of like self-actualization. I have this question. This may not go anywhere so we can skip it. But one of the things that you said, at some point you started thinking about what actually gives you happiness in the grand scheme of things and yes being the co-founder cto of the company did give you joy
Starting point is 01:01:10 but writing code gave you even more joy all of this when you are smack in the middle of things there are lots of priorities you need to get done with you rarely have the mental bandwidth to get this clarity you're just like execute deliver stuff make progress when progress gets made that's like you get the dopamine hit you do it again yeah was there a specific thing you went through to reflect and realize you know what take a step back and this is not the thing i want to do long term versus this is the other thing i would do instead yeah there there's various moments of reflection, I think, that happen. The way I sort of distill it to people without getting into like specific events, I would say, is I always knew that coding and that sort of thing made me the happiest because it was always the thing I made time for, even when I didn't have time. And so that's when people say like, what is my, I don't, I'm not passionate about anything or something. I always say like, what would, if you were exhausted and you know, you were out of
Starting point is 01:02:12 time at the end of the day and you did a full day of work, what is something you would still make time to do if you could? And so for me, you know, I would travel internationally, fly for 12 hours, come home. It would be like two in the morning, and I would still be like, you know, before I go to bed, I'm going to fix one GitHub issue. And it's like, there was no reason to do that, right? The only reason I was doing that was because I really wanted to do it. And so looking back when I saw stuff like that's what made me realize that's what I'm going to make time. I wasn't going to make time no matter what for a lot of the other stuff I was doing.
Starting point is 01:02:47 I like that advice, but then also, I think I'm too old to be a professional, you know, esports gamer. So I don't quite like that answer also. So you transitioned to being an IC at this point. When you transitioned, did you decide like, how did you decide what projects you would work on or like what did that overall look like yeah i think you know i had the privilege where anyone
Starting point is 01:03:12 was open to me choosing whatever i wanted to work on which i i decided to continue working on the product that i was i was sort of leading anyway so i just moved from a leadership position to i was familiar with the team. Everyone knew me. I moved straight into an IC position. I think that worked pretty well. And then after that, because I was afraid of sort of just jumping
Starting point is 01:03:33 into certain pre-existing teams, I did work more on like special projects after that that would sort of help kickstart other teams. But yeah, that's how I made that initial decision. And in this case, like if you identify as an IC, if people had feedback about you, would they come up to you and say this directly as a peer? Or would they have a channel to go to and say, hey, you know what, this is something we don't like? Or what did that look like? Well, you know, I don't know the things people didn't tell me, right? So I can't know.
Starting point is 01:04:07 But I tried really hard to create an environment where it was really clear that they were welcome to give me feedback that I wouldn't take it poorly. But more importantly, I tried to make it really clear that I would never abuse my founder title to do anything. So, and that happened regularly for not super dramatic things. You know, like people would come to me and say, hey, do you think you could talk to the manager
Starting point is 01:04:34 about making this change on the team? And I would, and it wasn't negative, but I would just say, no, I'm not going to do it. Because, you know, if I say it, then yes, there might be some implicit weight behind it. And I'm not trying to do that. So you should, you should tell them and things like that. So I tried really hard to do that. I participated in the one-on-ones and peer review, just like anyone else. Yeah, it was, I think it was okay. But like I said, you know, I don't know what people were saying behind my back. So I't know and recently i think in december you
Starting point is 01:05:06 announced that you're departing from hashicorp now that was another big step two years after you transitioned to being a seat being an ic tell us more about how you decided to do that yeah the um so you know the blog posts i wrote it and uh it's true you know it wasn't written by pr or anything and what's what i've stayed there is true which is that the big difference between being an ic which i was having a blast doing and leaving the company was that i really wanted to have the bandwidth to play around with stuff that wouldn't necessarily benefit the company in any way. I had spent over 10, I mean, 10 years of the company, but 15 years, not like total thinking about infrastructure, just like every day, just thinking about infrastructure. And I really wanted to now
Starting point is 01:05:56 think about other things. And so I didn't feel comfortable doing that while being paid, while like having these benefits, things like that. It didn't feel fair to me in a, especially like in a tighter economy when there's less jobs, like it just didn't feel good. There's, there's people out there that say it's your company, you know, you have that privilege, whatever, whatever. I think that's fair. But I felt like financially, I was in a place where I didn't need that. If me leaving opened the door for another person to get hired, that's better than me staying there, honestly. So I wanted to do this. And so that was the main motivator to make that final step.
Starting point is 01:06:31 Did you consider this option where you could still tinker around with stuff, but that becomes another product for HashiCorp? So that way you could still stay at the company? Yeah, of course. I think I just wanted, I didn't have any specific product things in mind. I just wanted to do things like learn learn spend more time doing like gpu programming some more time doing like different categories and things and the issue is like there's a good chance none of this is ever relevant like hush group would never want this stock anyway at all so it was sort of a waste
Starting point is 01:07:00 yeah i mean i think bigger big big big companies like google and stuff i think they have specific like categories of people that literally do this you know as long as they get to own the copyright they're happy with you doing completely mindless things but punch corps is not at that stage and uh it just that never felt great to me and so at this point i I know you're building this new terminal emulator. Apart from this, what's next for you? Nothing specifically. So one, I'm taking a break because I have a brand new baby at home. And so I do want to be a good dad and focus on that.
Starting point is 01:07:46 But on the other side, I am really taking this time to just explore and do various things and solve my own problems and if anything comes out of it great but there's no like specific thing that I'm gunning for I think that yeah the terminal emir project is a little more public it's a little more like real than other stuff I've been playing around with and there's actually users and things
Starting point is 01:08:02 like that but it's not necessarily going to be this huge focus of mine. I'm not sure yet. What are the other things that you are playing around with if you don't mind sharing? Nothing that exciting. I think that I've been having fun with, like I said, just systems-level programming,
Starting point is 01:08:19 I've been having fun with trying to figure out what can I use hardware-specific features for like make better software so i always think about this in the context of like if i were writing terraform today if i were writing whatever you know vault console today like if i said that it was super optimized for a specific type of hardware would that change something because one of the things that actually really bothers me that I would want to do differently is I think too much software today
Starting point is 01:08:50 doesn't scale enough on a single machine. Like you need the jump to when you need more machines is too quick. So in my perfect world, I think that software would require two or three machines just for availability, not for compute. And then those two or three machines just for availability not for compute and then
Starting point is 01:09:05 those two or three machines would scale super far like that was always sort of the idea i had so back when we worked at keep armand and i wrote you know keep wasn't super high scale but we wrote a lot of the core software and see the api backends were in Python, but they called out the C stuff for the hot paths. And by writing all the stuff in C, we scaled to like, I don't remember the exact number anymore, but it wasn't huge, but it was something like 500,000 requests per second
Starting point is 01:09:35 or something. It's not tiny, but it's not huge. But 500,000 requests per second and I think we were just on like two machines for availability and it was at like 5% CPU and it was just because we're like well if you write it in a language that you're like you're controlling every single machine
Starting point is 01:09:52 instruction then it and the benefit of the cost like there's a cost benefit but it's also just like mental overhead if you have everything running on one machine and it's like you can look at the process tree and understand everything you don't need to understand network failure scenarios
Starting point is 01:10:07 like you don't get partial memory corruption. Usually there's any memory corruption and the whole thing blows up. So like everything becomes atomic at that point. Yeah, I've been like thinking like could you write, I'm not doing this, I'm not doing this. I didn't sign anything to say this but I don't want to do infrastructure
Starting point is 01:10:23 again right now. But I always thought, could you write a Kubernetes? Could you write a Terraform? Could you write a tool like that today, knowing the problem that you're solving in a systems-level language? You're saying this works exceptionally well specifically on, you know, 2020-plus ARM chips. It's made for these ARM chips. chips like if you write it specific for
Starting point is 01:10:47 certain hardware how fast can you get to the point where the payoff is worth it because you would say oh yeah you only need two machines and that's just because of availability only one is active at any given time and yeah i think that's really interesting to me i think people have i think as engineer people i think engineers we've come so far, we've gone so far up the abstraction and we've gotten so comfortable with how reliable networks seem to be that we're doing these big distributed systems, but I've come all the way around to questioning whether we need them. I like when you say the networks seem to be reliable. When you do your demo on three machines for two days and it doesn't go down, you're like, yeah, this is great.
Starting point is 01:11:30 And then it changes everything. Yeah, what could go wrong? Well, I work at LinkedIn. We still have on-prem machines. I know when people start relying on specific machines, like, I care about this host name. I'm like, no, no, no, you can't do that. Okay, so you shared a lot with us
Starting point is 01:11:49 about what you have spent time on, what's going to come next. We are running close to time, so we have a couple more questions. One thing which I would ask is like, as an engineer, you have strong opinions about how to build software, not just build software,
Starting point is 01:12:02 but also like how you go about PR reviews or chainsets, something that you have a blog post on. So when working with teams, what are the things that you like to see in the engineering team that you're working with? That's a hard question. I think it's funny because in the email you sent me, you mentioned this a lot, but it is an important word for me. I think when I'm working with teams, the most important thing I like to see is pragmatism. You know, I am an engineer that has long opinions. I am an engineer that when I work on my own individual project, I want them to, the code to be beautiful and the distractions to be beautiful and blah, blah, blah, blah.
Starting point is 01:12:41 But when I'm on a team, I'm a different engineer because I have to be pragmatic about what the business is trying to achieve, what my teammates might care about, et cetera. So when I'm on a team, that's what I look for. I really have a bad experience working with people that are hard-line zealots about any specific decision. So, yeah. How do you work with such people on the team?
Starting point is 01:13:07 Because I know all of us have experienced that at some point or the other, where you have some team, it's like sometimes even, well, the customers are asking for the wrong thing. They shouldn't be using this stuff. That's stupid. Like you hear all of these things.
Starting point is 01:13:19 These words are said around very casually. How do you go about working with such engineers to say, you know what? Got something to deliver. I mean, as a founder, you engineers to say, you know what, got something to deliver? I mean, as a founder, you can do that, but any advice for others on how to deal with this? No, I don't think, I don't think, I think, I don't know. I tried my best when I was in a leadership position. I tried my best to explain that to someone that like, I don't disagree with you, but we have deadlines.
Starting point is 01:13:44 We have to balance maintenance, past decisions, et cetera. When I've been a peer on a team, it's much, much harder to do. I mean, I think you have to get leadership involved at some point if they're not willing to yield. And yeah, I don't know. I just generally speaking, I mean, there's a huge generalization. I've just almost never had a good like the those those the people that think in that way are not recoverable like nine out of ten times like they just don't fit the team they have to go somewhere else and that's just unfortunately been the experience i've had i see and before before we let you go do you have any advice for a lot of engineers out there and it was a very
Starting point is 01:14:25 vague open-ended question yes yeah i mean i think just build stuff like i think that's the the most important thing is to to really build stuff and try new things and also like be diverse in the technologies that you use because i see people go really deep and they spend 10 years only writing like javascript or something And that's like fine. But I think a lot of the times that I've become a better programmer in the environments that I work on, like I did basically go only nonstop for about 10 years. But that whole time I was doing Go, I would always spend breaks or free time on my own learning React, whatever the newest thing learning react learning
Starting point is 01:15:06 ocaml learning like systems languages whatever is a new thing like i would spend time learning it and i always felt that that experience came back to improve my core programming language as well because it taught me better maybe how computers work or taught me a better way to think about a certain abstraction so I think the best engineers are those that they're not like, I know there's a lot of like, funny memes and stuff about full stack. I'm not saying you have to be full stack, right? Like, this is not what I'm trying to say. But by being diverse in what you learn, you could be single stack and be way more, I think, effective. No, that's really well said. And thank you so much, Mitchell, for joining us today.
Starting point is 01:15:47 This was an awesome conversation. And we highly encourage people to check out your blog post. You write really well in addition to writing code really well. In fact, there is one story which I want to touch on, but we didn't have time. I think your banking story, that was fun. Oh, yeah. We'll just say this. I think Chase Bank at some point was using HashiCorp as an example to teach employees about startups.
Starting point is 01:16:15 If people want to know why they should read that blog post, we'll link it to the show notes. It's an amazing story. And I hope Alex didn't get fired because of you. I hope so, too. Yeah. Awesome. Thank you so much, Mitchell. This has been amazing. Thank you both. Thanks so much, Mitchell. Hey, thank you so much for listening to the show. You can subscribe wherever you get your podcasts and learn more about us at softwaremisadventures.com you can also write to us
Starting point is 01:16:46 at hello at software misadventures.com we would love to hear from you until next time take care

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.