Riding the Homebrew Wave
Interviewed by Open Source Startup Podcast
John Britton & Mike McQuaid are Co-Founders of Workbrew, the company that provides additional features and support for companies using Homebrew. Homebrew’s main project, brew, is a wildly popular open source project with 40K GitHub stars and provides the missing package manager for macOS (or Linux). In this episode, we dig into John & Mike’s history with Homebrew and their time together at GitHub, how Homebrew has kept projects simple over time and avoided feature creep, how Homebrew has managed to get a lot of value from contributors, how their ICP has shifted from mac admins to dev and security teams & more!
Show transcript
- 0:00 Welcome back to the Open Source Startup Podcast. I'm Robbie, one of your co-hosts and joined
- 0:09 as always by Tim Chen, my awesome co-host from Essence VC. And today we are super excited
- 0:15 to not have one but two guests with us. We have John and Mike here who are the co-founders
- 0:20 of Workbrew, which is a company that provides missing features and support for companies
- 0:24 using Homebrew. And I'm sure many folks in our audience are going to know what Homebrew
- 0:29 is. It's a very, very widely adopted package manager, but we're thrilled to have them on
- 0:34 and hear about the Homebrew and Workbrew story. So welcome, Mike. Welcome, John.
- 0:37 Thanks for having us.
- 0:38 Awesome. So Mike, we're going to start with you and go all the way back to the founding and
- 0:43 creation of Homebrew. So why don't you talk to us a bit about where that idea for a project
- 0:48 Yeah. So I think Homebrew started kind of early-ish 2009. There was a guy called Max Howell working
- 0:56 for Last.fm. It's a nice blast from the past reference. I don't know how many Last.fm users
- 1:01 there are out there anymore. So he was working Last.fm doing kind of package management stuff
- 1:06 on Mac, played around with various tools, wasn't really happy with any of them. And yeah, he
- 1:11 decided one night to kind of just try and build his own thing. So he kind of wrote a sort of
- 1:17 manifesto. I think the first commit to the repo was like the readme about like what he was
- 1:22 making and why he was making it and what the idea was behind it. And then he just started
- 1:27 kind of building away by himself on GitHub. One of the, I guess, the interesting early
- 1:31 approaches that Homebrew did that was a little bit different was most package managers were
- 1:35 like, you know, get a bunch of people together and we'll kind of split up and divide the
- 1:39 responsibility. Cause you know, this is like maybe two years after GitHub was founded and
- 1:44 Max was a GitHub user. So he was like, okay, well let's get the community to get involved
- 1:48 from day one. Right. So I can be a bit more his words, but we don't mind lazy about having
- 1:53 to do everything himself. So maybe like six months later, I I'd been kind of dabbling
- 1:58 around with my own package management problems and kind of hacked some stuff around with existing
- 2:05 stuff. And I couldn't really equally find anything that worked the way I wanted it to.
- 2:08 And I heard about this Homebrew thing, like Max was a friend of friends in London where I
- 2:13 was working at the time as well for another startup over there. And yeah, I basically just
- 2:17 started kind of adding some stuff to Homebrew and just never really stopped. And yeah,
- 2:22 the project's kind of grown over that time. I guess I was the third person to kind of get
- 2:26 involved as a maintainer. I'm the only one left of that kind of early crew. And yeah,
- 2:31 we've now got like 30 maintainers and many thousands of packages and thousands of contributors
- 2:37 and all that good stuff.
- 2:38 Yeah. That's amazing. I think Max was actually on our podcast before talking about tea.
- 2:42 So we definitely had our own fun talking about Homebrew. So you joined a little later as
- 2:48 contributor and now become a maintainer, right?
- 2:51 I don't think people understand what is maintaining a package manager really feels like. What do
- 2:56 you do? Because I'm actually, I'm personally curious, like, what do you do that much these
- 3:00 days? Because there's going to be the packages and a bunch of vendors or users contributing
- 3:05 side. And there's also the core system side, right? Like, what do you spend most of your time on these
- 3:10 days to maintain Homebrew?
- 3:11 Yeah. I mean, me personally, nowadays, I mainly spend my time on the code side, I guess, on
- 3:17 everything except the packages themselves. Like I get pulled in sometimes when there's some
- 3:22 something contentious or whatever. But day to day, like most of the packaging stuff gets handled by
- 3:26 other people. In my earlier days, I did a bit of everything. And it's kind of, if anyone's interested
- 3:31 in getting involved with a package manager, the fun thing about it is you can go from writing like
- 3:35 a couple of lines of C++ to a couple lines of Haskell to a couple lines of Go, like all within a few
- 3:39 hours of each other, because you're just having to kind of dip your toe into many different pools.
- 3:43 But yeah, but for me, like nowadays, a lot of it is just code review and investigating kind of what
- 3:50 the other maintainers, what some kind of new contributors or whoever are wanting to do in
- 3:54 Homebrew, any new bugs in Homebrew, like triaging those, like trying to figure out what do we want to
- 4:00 be building in the next one, six, 12 months, and then like talking with a bunch of the maintainers
- 4:04 in Slack. I guess I feel like I sort of wear that out of, if Homebrew was a company,
- 4:09 which is not of like sort of a combo between CEO, CTO, head of product, and security guards.
- 4:17 And so, you know, whenever we're looking at a very widely adopted popular open source projects,
- 4:23 I'm always curious, like now we can look back why Homebrew is actually that popular, right?
- 4:28 You know, back in the day, I probably have no clue. But in your opinion, what made Homebrew
- 4:33 the default thing? Because there's a Mac force before, there are some other things happen,
- 4:37 come here and goes, but Homebrew definitely is the one that stays. And everybody has no mistake now,
- 4:42 brew install is by default there, which is truly amazing. It's not an Apple thing at all, right?
- 4:48 This is pretty much a community contributed project that made it become like the standard.
- 4:52 What do you think is like the secret of Homebrew or things that got right that made it become
- 4:58 the default thing?
- 4:59 Yeah, I mean, that's a great question. I think, as you say, like this stuff is often
- 5:03 more obvious in hindsight, I think, than it was at the time. So one big thing, I think I sort of
- 5:10 alluded to a little bit before, which was like going all in on GitHub. And we've still continued to do
- 5:14 that to this day. We use a lot of GitHub infrastructure. You know, John and I used to
- 5:18 work there. Like it's definitely something where even if I didn't work there and before I worked
- 5:23 there, I was still very much like, okay, like it makes sense to kind of do this. And I guess really
- 5:27 leading into the idea of, which was very innovative in 2009, seems less so now, but the idea that
- 5:33 the best way of maintaining something at really high scale is not to have a small number of people
- 5:40 doing a lot of work, but an awful lot of people doing small amounts of work and that things work
- 5:45 well. That way you can kind of fan things out and have a contribution model. And the maintainers are
- 5:50 operating more like kind of shepherds than the people who are expected to do the bulk of work by
- 5:55 themselves. And I think the other thing is just like usability. I think there's, you know, Mac ports,
- 6:01 and I don't want to talk ill of the other projects, but I think I definitely feel like with Homebrew,
- 6:08 it has always tried to embody that Apple ethos of trying to be really, really usable and try to
- 6:15 really care about what the interface looks like. Don't support things if you can't support them well,
- 6:20 make error messages really clear for people, make it really clear what needs to be done if rather than
- 6:26 telling a user to do something, if you can just do it for them automatically, sensible defaults, like
- 6:31 all this type of stuff. I think like that's what has contributed most to Homebrew success. And in many
- 6:37 of those cases, those changes to get things more usable or a little bit nicer or trimming down options
- 6:43 have been, there's been a vocal minority who've been very unhappy about them along the way. But I
- 6:47 actually think like, that's partly why it's been successful is being willing to embrace usability over
- 6:52 necessarily making the maybe very loud power users sometimes the happiest.
- 6:57 Yeah, I think adding on to the like choosing to do a lot of things, you know, fully embrace GitHub.
- 7:01 Also, Homebrew is a project, I'm a contributor, you know, I've been using Homebrew since the very early
- 7:06 days. And whenever something I don't like doesn't work correctly, or there's not a package that I need,
- 7:11 the ease of contributing is just like, so, so easy. And the way that the project is managed,
- 7:17 as a newcomer to the project, getting up to speed, everything is super well documented,
- 7:22 there's kind of guardrails in place that are automated, things like telling you that you're
- 7:27 doing something wrong, and enforcing a rule is done by a bot rather than by a human, right? So the
- 7:31 human comes along and tells you, hey, let me help you out. But the bot saying, sorry, you can't do it
- 7:35 that way, figure out a new way. And I just think from a contribution perspective, the project,
- 7:39 the fact that it's like formula are written, you know, the packages are written in like a DSL,
- 7:43 it's really easy to understand, it just makes it way more approachable than, you know, other really
- 7:48 complicated projects.
- 7:49 And it's amazing that the project's been around for so long, and still has that usability, because
- 7:54 usually over time, things complicate themselves. And it's hard to remain, you know, simple and very
- 8:00 user friendly. I'm curious, so this is a question for either or both of you, the project's been around for
- 8:06 so long. Company is quite new. Why start Workbrew when you did? Like, what were kind of the signals
- 8:12 that said, okay, like now is when we should start this company?
- 8:14 So I think that the first time we had an idea for doing something like this was back in like 2012.
- 8:20 So Mike and I worked together at GitHub for a number of years. And I always said, like, you know,
- 8:27 Homebrew is a great project. I think there's a really big opportunity here. But just the timing
- 8:30 wasn't right among the people who were involved. You know, we were working at GitHub during a really
- 8:35 high growth phase, doing a lot of really interesting stuff. And in 2019, after I left the company,
- 8:40 I knew I wanted to be an entrepreneur and start a new company and had been working. And as soon
- 8:46 as I left, I kind of reached out to Mike and was like, hey, Mike, you should come join me and we
- 8:50 should start a company together. And that took a few years, but eventually it came through to him.
- 8:53 He decided, you know, to leave GitHub. And when we started working together, we weren't actually
- 8:58 working on Workbrew. And we had this really, like, very pivotal conversation where Mike said to me,
- 9:05 he's like, you know, we should really be focused on things that we're good at and play to our
- 9:08 strengths. And I just reminded him, I said, you know, we could always do, you know, features for
- 9:13 Homebrew for this open source project for the enterprise, like we should work on that. And that's
- 9:17 when we decided to start. So that wasn't all that long ago, but it's been an idea kind of in the back
- 9:21 of our minds for a very long time. And I think that the other story that relates to our experience,
- 9:28 both having worked at GitHub in the past and kind of what we're doing with Workbrew is there was an
- 9:33 internal kind of meme at GitHub called Remember Chatboxes. And it's basically this idea that over
- 9:40 time, software gets more complicated. People ask for more features. And you kind of alluded to this
- 9:44 with Homebrew being really simple and easy to use. And that's because in Homebrew world, they're
- 9:48 really, really focused on the most common standard experience, making sure that people have a really
- 9:53 good out-of-the-box experience. But when it comes to enterprise software, it's not our job to tell a
- 9:58 big company with 20,000, 100,000 employees how they should run their development and run their stuff.
- 10:03 And they need checkboxes. They need customization. They need different kinds of compliance, all kinds of
- 10:08 features like that. And so it kind of like fits really well in saying like, yeah, there's this thing out
- 10:13 there. Everybody loves it. But there are some situations where big companies need something a
- 10:18 little more customized, a little more flexible for them. And that's where we come in with the
- 10:22 business. You know, that's the fun thing about starting a company is that I think John was
- 10:26 convinced this was a good idea, as he said, back from 2012. Like, whereas I wasn't convinced this
- 10:31 was a good idea, even when he eventually said that. And then I went and had dinner with my kids.
- 10:36 And I was like, the only reason that convinced me it was a good idea is I was like, yeah, we should be
- 10:39 playing to our strengths. And I was like, yeah. I mean, based on what I said to John,
- 10:43 if I actually believe what I said, he's completely right. Right. But even if, you know, before I came
- 10:49 and joined him, he was like, hey, Mike, let's go and do the homebrew. It's almost, it's the funny
- 10:53 thing that like, sometimes you have to be like in the right place to like hear that stuff. And I think
- 10:58 also for me, it was the, I guess I always wanted homebrew to be in the right place as well. Like
- 11:03 there was some kind of minor controversy a few years ago about people feeling like I had too much power
- 11:08 in the project. And I was maybe approaching sort of BFDL sort of status and that. And then now we have
- 11:14 like a kind of governance model and leadership committee and elections and all this type of
- 11:19 stuff. And I feel much more comfortable kind of starting a company around homebrew now than I did
- 11:24 before, because, you know, even if I decided tomorrow, like my evil master plan is to somehow try and
- 11:30 take homebrew away and make everyone pay for homebrew. I don't have the power to do that,
- 11:35 you know? And there was a point where I maybe did. And in some ways like that kind of scared me a bit
- 11:40 because like I, it would make some things easier, but it would make the homebrew project much more
- 11:45 at risk. And I guess we've seen a lot of stuff with open source recently where you have had that more,
- 11:50 I guess, blurred line between the commercial organization and the open source project. And there's been a few
- 11:56 stories in the news recently about maybe the community, not always being terribly happy about how that
- 12:00 ends up. Yeah. Just given the nature of the project, you are very, I guess, dependent and also you want
- 12:06 to almost mass contribution to your project. So I think there's definitely sensitivity when it comes
- 12:12 to like, hey, here's a company behind it, right? But I guess you're not even saying this is behind it.
- 12:16 This is almost like a company that's working primarily with it, right? That's probably almost
- 12:22 like one way to kind of key it. I think that's really an interesting perspective to take is it's not
- 12:26 that we're behind it. I mean, we fully support homebrew and want to do everything we can
- 12:30 to make the project better for everybody that uses it. But I like to think of it as we're
- 12:34 complimentary to the project. All of these situations with like other companies doing
- 12:37 open source and then you see like maybe they change their open source licensing or they like
- 12:42 none of that stuff is possible in our situation. And we have no interest in that, but we sell
- 12:46 a product. You know, we make enterprise software and we sell it for money and it's complimentary
- 12:51 to homebrew. It's not part of homebrew. It's not a fork of homebrew. All of our customers use the
- 12:56 exact same open source homebrew that everybody else does. And if we have something that needs to get
- 13:00 support in homebrew, you know, we make an open source contribution to homebrew and it will get
- 13:04 accepted if it's something that's beneficial to the entire community. Right. And so that's,
- 13:08 it's really like a complimentary situation rather than a fork or any, any other kind of model.
- 13:13 Yeah. So there was a nice example in the last week, in fact, where there was some stuff where
- 13:17 like some parts of homebrew that workbrew relies on more heavily than your typical user might.
- 13:23 And some stuff was really slow and that was really annoying me. So I made it like, you know,
- 13:28 like 50 times faster because it was annoying me how slow it was. But the thing is, is that's
- 13:33 something where everyone who uses homebrew now, who uses that command and that flow can benefit from
- 13:39 that thing being 50 times faster. And so I think there's this nice kind of symbiotic relationship
- 13:44 where as workbrew gets better and as workbrew has to make homebrew better for our own benefit,
- 13:49 then it also makes homebrew better for everyone. And in some ways, again, I feel like I kind of got
- 13:54 good practice at this at GitHub, where there was times where, you know, homebrew was very widely
- 13:59 used inside of GitHub right from the very early days and homebrew relied very heavily on GitHub itself.
- 14:04 So there was this nice kind of balance where there's a few API calls in the GitHub API and
- 14:09 features on GitHub that were added primarily for homebrew and are now used by many other places.
- 14:14 But then also vice versa, there's various times where like GitHub was migrating to rely on homebrew
- 14:20 more heavily. And I would spend a bit of my time at work kind of making homebrew kind of work better
- 14:26 in a way that worked for GitHub, but then worked for other places. So I don't know. I feel like
- 14:29 there's always a little bit of this kind of balancing act that you have to be kind of careful,
- 14:33 but I feel like I'm used to that by now from kind of having that had this split for a fairly while.
- 14:39 So I want to talk a bit about who workbrew is built for and how you made that decision,
- 14:43 because I imagine just with the number of homebrew users, there are different product
- 14:47 directions you could go into. And it sounds like you landed on enterprise, but even the
- 14:51 definition of enterprise is kind of all over the place these days. So how did you determine who the
- 14:56 user was going to be for workbrew? And like, what was kind of the iteration process? Like,
- 15:02 was it always kind of the direction you're on now? Or did you try a few different things?
- 15:05 We did a lot of research. We looked at all kinds of issues in the homebrew issue tracker. We talked to
- 15:09 people, we looked for problems. And one of the problems that came up over and over again was
- 15:15 homebrew is widely used. And it's often used in companies where they're engineers on Macs,
- 15:21 and they use it for their developer environments. They use it for consistent setup process,
- 15:26 getting people onboarded more quickly. There's a lot of different use cases why companies are using
- 15:29 homebrew. But as you add more endpoints, more end user devices into the system, the problem becomes
- 15:36 more multifaceted and there are more considerations. And so what we found was that in environments where
- 15:43 there's maybe a dozen or so Macs with homebrew, it's pretty easy to just manage that individually.
- 15:48 But in environments where you have hundreds to thousands or tens of thousands of devices,
- 15:53 sure, each end user can manage those things. But those types of organizations are often regulated.
- 15:58 They might have security requirements, you know, have to be compliant with like SOC 2 or ISO.
- 16:03 They might have additional kind of regulation around the type of industry they're in, whether it's
- 16:08 healthcare or financial. And they might have some kind of restrictions on the way that end users
- 16:14 can use their devices. And so we found that the people who are responsible for solving those problems
- 16:19 tend to be IT managers. You know, people who are in the IT department who often will be dealing with
- 16:25 things like MDM tooling or other kind of on-device security detection, things like that.
- 16:31 And so when we set out to build Workbrew, we really set out to try to solve some of their problems.
- 16:36 And we talked about this a little bit before the recording, but the idea of there's kind of like
- 16:41 deployment, getting Homebrew onto the devices. There's like analytics and management, and then there's also
- 16:46 like a security component to this. And so the main kind of key person in that whole situation is the
- 16:52 IT manager. They're the ones who kind of like choose the tool, deploy the tool into production,
- 16:56 are responsible for running it. And they have stakeholders in both engineering and the security
- 17:00 departments. So that's how we kind of got to this customer profile. But I think that over time,
- 17:07 like you were saying, there are a lot of different paths we could go with a lot of, you know,
- 17:10 different values we can add for the different kind of personas. It's just that this IT management
- 17:17 situation is very, very urgent for people. It's something we hear over and over again. There's no
- 17:21 solution on the market for them right now. And what it means is that big companies, you know,
- 17:26 like Fortune 500 companies are out there building their own tooling that's in the direction of what we're
- 17:31 building at Workbrew, but it's far inferior. They don't have the staff to maintain it. And it
- 17:37 doesn't have the same kind of synergy with the Homebrew open source project where we can
- 17:42 lean on all the experience that Mike has from being a maintainer and a contributor for such a long time.
- 17:46 So that's how we ended up where we are now.
- 17:48 So I'm curious because Homebrew, given it's like a 2009 project, I know it's been maintained over time,
- 17:53 but definitely has like a long history at this point. Now you're trying to build a product around it.
- 17:59 I would imagine it may not be the easiest thing on earth. You can just stick one project, you know,
- 18:05 controls our Homebrew. So let me talk about what does the product do today? And then very curious
- 18:11 about what kind of things you have to do to make sure a product can work on top of Homebrew. Because
- 18:15 that doesn't seem like the most obvious thing right now. Did you have to fork Homebrew, for example?
- 18:21 Or did you have to do some kind of crazy modifications to it to be able to support anything? Like,
- 18:25 maybe talk about some of that. Yeah.
- 18:26 I think that like a good way to answer this is just to kind of talk about the architecture
- 18:30 of Workbrew and like how it actually works. We talked a little bit before about the idea of
- 18:34 it being complimentary to Homebrew. So what we've built is essentially a control center. You know,
- 18:40 I hear this phrasing all the time from people when I'm talking to them about, you know,
- 18:43 the problems they're facing with Homebrew. And they say they're trying to get their hands around
- 18:46 Homebrew at their organization. What does that mean? That means they have no idea who has it installed.
- 18:50 They have no idea what packages are installed on their machines. They have no idea what's out of
- 18:54 date. What might be a security vulnerability? Are they compliant with the certifications that they
- 18:58 need? That's kind of the idea of like, I need to get my hands around this. And so what we've built is
- 19:03 effectively an installer, a way to deploy Homebrew at scale zero touch. So if you're in an organization
- 19:10 where you use something like Apple Business Manager and an MDM tool, you can now take a brand new Mac out of
- 19:15 the box, turn it on for the first time. When it connects to the network, it will have Workbrew installed,
- 19:19 right? Then kind of the next thing is analytics and, you know, observability, knowing what's
- 19:26 installed across your fleet, having some kind of way to make sure that that's within, you know,
- 19:31 whatever your operating guidelines are. And then getting alerts around security vulnerabilities. We had
- 19:36 just a couple of weeks ago, a month ago, the XZ vulnerability. We had tons of people reach out
- 19:41 to us and say, we've got 10,000 Macs with Homebrew installed. How do I make sure that XZ is up to
- 19:45 date on all of those machines? So this is definitely a problem that's related to a wide scale issue.
- 19:51 So anyways, we have this kind of installer that makes the deployment much easier.
- 19:55 The next thing is kind of an agent. The installer puts this on the machine,
- 19:59 lets your machine kind of check in with Workbrew and provide, you know, diagnostics, analytics,
- 20:04 but it also provides for the IT manager to help keep your machine up to date. Install packages
- 20:10 that might be important for a team so they have an environment ready to go on day one. And then
- 20:14 lastly, there's the console, which is kind of a dashboard where you can log in, view your entire
- 20:18 fleet, manage it in groups and things like that. But what's interesting, you asked, is this a fork
- 20:23 of Homebrew? And like, that's decidedly no, right? We are not a fork of Homebrew. You're using exactly the
- 20:29 same open source project as everyone else. And another question I get a lot is, what if we have
- 20:33 a fleet, you know, we have 10,000 devices with Homebrew already installed and each of those people
- 20:37 has a bunch of packages installed and we want to get Workbrew, what happens to those existing
- 20:41 Homebrew installations? Well, because they're literally the exact same Homebrew that we use,
- 20:45 upgrading is effectively installing Workbrew, flipping a couple of bits here and there, and then you're
- 20:51 able to keep all the packages you have on your machine installed, use the existing Homebrew
- 20:55 installation, but get all of the kind of enterprise like fleet level features right away.
- 21:00 When you talk about the product value for Workbrew really being around scale and around enterprise
- 21:05 use cases, so that's going to be applicable to some parts of the Homebrew community, not all.
- 21:11 How do you think about or how have you gone to market alongside Homebrew? Like, do you
- 21:16 leverage the community or like message to the community? Do you do independent product marketing?
- 21:21 Like, how do you kind of grow with the community and let folks know that there's kind of another
- 21:26 option here if they want to manage at scale? Like, how does that go to market work?
- 21:29 I mean, John talked earlier about the, I guess our initial persona we're going off to as the kind
- 21:34 of Mac admin, but definitely in the longer term, we're also looking at engineers and security teams
- 21:39 and stuff like that as well. And we've kind of had the principle for this stuff that any feature or
- 21:44 functionality we add in Workbrew makes life better for at least one of those three demographics,
- 21:50 and does not make life worse for any of the demographics. So I love the questions you had,
- 21:54 Tim, about, you know, are you running a forked version of Homebrew or do we need some crazy
- 21:58 modifications or whatever? And the nice thing about that is that using Workbrew feels exactly the same
- 22:04 as using Homebrew, essentially. There is some stuff going on under the hood that means it's actually,
- 22:09 even if you're just using it on your machine, it's a lot more secure than Homebrew. There's a much
- 22:14 smaller attack surface and much kind of better separation and stuff like that. And the performance
- 22:19 basically feels exactly the same. But yeah, we have ideas in the future, I guess, partly based on my
- 22:25 experiences of maintaining Homebrew, but also kind of working in many teams across places like GitHub of
- 22:30 Homebrew works really well as John used to talk about, like single player and multiplayer. So Homebrew works
- 22:36 really well as a single player tool. If you're just installing stuff in your machine and you pull
- 22:40 down a version of a package and you want to upgrade it or whatever, then that works fine. But as soon
- 22:45 as you start to work on developer teams of, you know, maybe even five to ten people, let alone a kind of
- 22:50 developer orgs of 100, 1000, 10,000 people, you know, you get everyone to install something using
- 22:55 Homebrew and run a command. And it turns out those people now have, because they installed at different
- 23:01 times, five different versions of the thing installed. And when they run the command, they will get five
- 23:06 different behaviors. So like, this is the type of thing that for your average Homebrew user, if you're
- 23:10 just like a hobbyist and you're playing around in your evening and you don't really care what versions
- 23:13 things are, that doesn't matter. But if you're doing like serious professional software development,
- 23:17 like that really matters. Like it matters if your team cannot get mapped on a single kind of locked in
- 23:24 version of the software they're using. And even just, I have to hat tip to John, like the name,
- 23:29 the conversation we had where John pitched the idea, he pitched the name Workbrew at almost exactly the
- 23:35 same time. And I think for me, I like the kind of differentiation where this, we don't see Workbrew as
- 23:41 almost like a competitor to Homebrew, but it's more like one is single player, the other is multiplayer.
- 23:46 One is free software, the other is paid software. One is for use at home, the other is for use at work.
- 23:51 Right. And over time, I think as we keep adding offerings for IT people, for engineers, for security
- 23:59 people, like I think Workbrew is going to become the dominant way of using Homebrew at work, because
- 24:04 our offering is just going to be so much more, I guess, easy for teams to use in a more consistent way than
- 24:10 Homebrew is today. Yeah. And on the second part, regarding like go to market and what we've done
- 24:14 so far, part of it has been just engaging with community about the problems that they face.
- 24:19 We could come up with a list of, you know, 15 or 20 different problems that these type of IT admins
- 24:25 are trying to solve with Homebrew. Things like, you know, I have a fleet of a thousand machines,
- 24:29 how do I make sure all the right packages are installed on day one? In order to do that,
- 24:33 they have to write a bunch of custom scripts, deploy them through the MDM tool, or use another open source
- 24:38 project like one of Mike's projects called Strap to set the machine up on the first run.
- 24:42 But doing that is labor intensive. They have a lot of custom code and there's no kind of standardized
- 24:48 way to do it. And what we've done is just kind of talk to people about these various problems and,
- 24:53 you know, give them solutions. We had a kind of a online like webinar conversation with a handful
- 24:58 of potential customers. And we went through all these different problems and just gave them the solution.
- 25:02 You know, here's, here's a way to solve the problem. Like we had one problem that comes up a lot,
- 25:06 which is we work in a regulated industry, let's say a bank, and our end users are not
- 25:11 allowed to have admin privileges on their device. As a developer, that sounds terrible to me. I want
- 25:15 admin privileges on my device, but like when you work at a bank, you're not allowed, right?
- 25:19 And so the way to solve that problem, when it comes to using Homebrew, it's like,
- 25:22 you need to have admin privileges to run Homebrew. When it comes to solving that problem,
- 25:25 there is a way to do it. And there are a bunch of different privilege escalation tools. So what you can do is
- 25:31 have Homebrew installed, your end user doesn't have admin privileges, they click a button in this
- 25:36 privilege escalation tool, and they ask for admin privileges, it gets approved. And for a temporary
- 25:40 period, they can install stuff with Homebrew, and then they get removed from the admin group,
- 25:44 like after the time limits up, and they have to have an audit log for each one of these things.
- 25:48 And that's kind of a painful experience, but it's a workaround and you can do it. And so what we've
- 25:52 been doing in terms of like go to market is just showing people what the solutions out there are
- 25:55 for those things, but then also giving them a much better alternative, which is to use Workbrew,
- 25:59 which out of the box works in that situation. You know, you can have end users installing
- 26:04 packages on their machines without having admin privileges on the device. You know,
- 26:07 you can have zero touch deployment without having to write any custom code. And so that's really been
- 26:13 the main activity we've been doing. And then there's also a relatively established community of people
- 26:20 that self identify as they're called themselves Mac admins. So IT administrators who work on predominantly
- 26:26 Mac fleets. And, you know, there's like a conference, there's a podcast, there's, you know,
- 26:31 an open source foundation, there's a Slack channel. And we just try to, you know, participate in those
- 26:35 kinds of events and those kinds of communities in a really genuine way and answer questions about
- 26:40 Homebrew. When they ask about how to solve something that's not in scope for Homebrew, we give them
- 26:45 alternatives and then, you know, show them the way with Workbrew.
- 26:47 Maybe going back a little bit. I'm very curious how you landed to this product because
- 26:52 Homebrew has such a massive user base. You can spend your whole lifetime talking to everybody
- 26:58 and figure out what they need. And I'm sure it's not going to be easy. There's too many signals,
- 27:03 potentially. What are the kind of the areas you was contemplating about what to start with? And what
- 27:09 was the process for you to even talk to? Like, did you have to segment into like small, large companies
- 27:14 and Mac admins, non-Mac admins? Like, what are the possibilities here? And then say, okay,
- 27:19 this might be a better route to take. I'm just curious how that process went for you guys.
- 27:23 Well, so the nice thing with Homebrew is because it's a still essentially entirely volunteer run
- 27:29 project. You know, there's like a small stipend, but like that doesn't go about covering anyone
- 27:34 anywhere approaching like market level wages. I mean, probably not even market level wages to,
- 27:39 you know, work in a grocery store, to be honest, but you know, it gives people some compensation,
- 27:43 but as a result, things only get done if a maintainer or contributor want them to get done.
- 27:47 So we've had a long tail of, I guess, particularly maybe over the last, maybe more of the last five
- 27:53 or 10 years than the whole 15 years of the project where Homebrew is being used super widely in a lot
- 27:58 of big companies. And, you know, every so often you get someone in one of those big companies
- 28:03 who Homebrew doesn't play nicely with the way they do things. I guess John sort of alluded to that
- 28:08 earlier. And they come to Homebrew and they say, "Hey, Homebrew, like we're a big, serious,
- 28:13 important company, right? So you have to change the way you're doing things because, you know,
- 28:18 we're doing it the right way and you're doing the wrong way and go about that." And previously,
- 28:22 people would, you know, there was one particularly grumpy Homebrew retainer, I think he was called
- 28:27 Mike McQuaid or something, who would regularly tell people like, "No, you can't have this and you can't
- 28:32 tell us what to do. We're all volunteers. Nah, nah, nah, nah." So the nice thing is when we kind of went to
- 28:37 looking at this stuff, we had a very long tail of lots of almost entirely public conversations where
- 28:44 often myself or other Homebrew maintainers had said, "Hey, like we don't have the time or energy or
- 28:50 inclination or whatever to build this stuff." And we had people in big companies often citing the names of
- 28:56 their companies to try and get these features developed saying like, "Hey, we need this thing.
- 29:01 Like, why wouldn't you do this thing?" So that kind of gave us a really nice opportunity to begin with
- 29:05 for painstorming. And I remember the first few weeks after us having this idea, me just like trolling
- 29:10 through the Homebrew issue tracker and discussion boards and stuff like that, and just generating lists
- 29:15 upon lists of like, here's people asking for stuff, right? And what are the themes that are coming out
- 29:21 of this? And what seems like the sort of lowest hanging fruit that could be like a viable MVP
- 29:26 that solves an actual real problem for real people today, that there's no real good solution out
- 29:32 there, right? And in some cases as well, like there's some parts of what we built with Workbrew where
- 29:37 if you go searching around GitHub, like there's abandoned projects that haven't been touched in eight
- 29:42 years that tried to solve some of these problems. But the problem is partly in the macOS ecosystem as
- 29:47 well, that things are forever changing. So if you sign up to do one of these things,
- 29:52 you're sort of signing up to do it forever. So it's very hard to keep something that works
- 29:58 well on Macs, works well with Homebrew, and keep that going indefinitely without being sufficiently
- 30:05 plugged into either Apple or Homebrew itself. And we are lucky enough to be plugged into Homebrew itself.
- 30:11 Yeah. So I think that's what helped from the beginning with us not having to just guess or
- 30:16 interview thousands of Homebrew users on what they need because we could see this stuff. And again,
- 30:22 even with that, like the kind of interview process, I think the thing that I've learned through,
- 30:26 I guess, doing essentially product management on Homebrew for an awfully long time is I have,
- 30:31 I guess, a line on product management in the, it doesn't sound very nice, but humor me,
- 30:35 users are like babies and they can tell you that there's something wrong, but they can't tell you
- 30:40 what they need. And I find that's often the case, again, with these problems where you go and read
- 30:45 what people ask for, that we're not building exactly what they said they wanted implemented. Because
- 30:50 often if you ask engineering centric people, they jump straight to a solution, but we're being like,
- 30:55 okay, what is the shared problem all of these people have? And what's the best solution to their
- 31:00 problem? Even if they don't know about it yet. So yeah, I feel like that's how we've got to where
- 31:04 we are with what we built. Yeah. Another like kind of component of that, Mike said the low-hanging
- 31:09 fruit, you know, when we look at those lists of possible things we could build, everything we've
- 31:12 built so far as a prerequisite, you know, no matter which direction we go on any of those, you know,
- 31:17 many, many opportunities of features or potential products we could build fundamentally having a fleet
- 31:24 management idea of all of the devices within your organization is kind of a prerequisite to any of those
- 31:29 things. And so that combined with the fact that people are asking for automate deployment,
- 31:36 do things like have default packages installed, make sure that I know about security vulnerabilities.
- 31:41 I mean, they're all like pretty straightforward in a lot of ways.
- 31:44 So I'm curious because we have a lot of founders on this podcast that for the most part have only had
- 31:50 projects that have been around for a couple of years. This is probably one of the longest standing
- 31:55 projects that a company is built around. And I'm curious, what's hard about that? Because I
- 32:01 mentioned on like the plus side, you have a lot of like users already, you have kind of this like
- 32:07 group that you can build products for. But on the flip side, like there might already be like set
- 32:11 user expectations or competitors. Like what's hard about building the kind of company that you're
- 32:15 building right now? I think probably like a sense of momentum or inertia, right? As you, I guess you
- 32:21 touched upon a few things there where I think people have a certain idea of how homebrew is and how
- 32:27 homebrew works. And I think with the problems as well, like it's funny, John will probably remember,
- 32:32 we've had a few discovery calls where we've said to people, okay, so like what problems are you
- 32:37 experiencing in your business with homebrew? And they say, no, but it turns out what they actually mean
- 32:42 when you dig in, because there's been times we've had those and you can see like John starts sweating,
- 32:47 whatever. And I say like, we've come to terms. Yeah. Have you ever had this thing happen? And
- 32:52 they're like, yeah, you know, like, so I guess like a classic example might be like, have you
- 32:57 ever had the situation where like, you know, homebrew pushes the version upgrade, a bunch of your team
- 33:01 upgrades, and then it breaks all your libraries? Like they're like, yeah, like they're like, yeah,
- 33:05 that happens at least three or four times a year. And it's like, how much engineer time would you say
- 33:09 that cost you? And it's like, well, probably like about a week to two weeks per engineer per year.
- 33:14 And it's like, that sounds like, and how many engineers you have using homebrew? Like, oh,
- 33:17 a thousand. That sounds like quite a big problem. But like in their head, because homebrew has been
- 33:23 around for so long, because homebrew works the way it's always worked in their head, they're just like,
- 33:27 this is just a thing. This is like a tax you pay for using an open source project like homebrew,
- 33:32 and you just have to deal with this forever. And maybe they tried Nix or Mac ports or something
- 33:37 like that, and that just had its own problems. And then they came back to homebrew. So like the idea
- 33:41 that like someone could actually fix this so that it never happens again, and those week or two weeks
- 33:47 of engineering time of year don't happen, that's much harder for them to like come up with by themselves.
- 33:53 And sometimes people really need poked and be, and the funny thing is like, there's some stuff on our
- 33:58 roadmap where if we shared it publicly today, we'd probably get like laughed out the room because
- 34:03 people are like, there's no way you're ever going to do that. That's way too hard. Right. And I guess
- 34:07 I actually know, like, it's actually not that hard. This is doable stuff, but sometimes people's like
- 34:13 imagination is, does not stretch big enough to encompass like, what are the easy things and what are the
- 34:18 hard things. And I guess another strength that you sort of alluded to Robbie is, you know, we've hired
- 34:23 some people already from the homebrew community who are like staggeringly intelligent, talented
- 34:29 engineers and know like macOS and like Apple internals and how to make macOS do absurd things that I had
- 34:38 no idea it could do that open all these doors for us to do things. And actually, you know, like a lot of the
- 34:45 stuff that they maybe don't know as well, like, you know, we're built on a rail stack and they're the
- 34:49 people we've heard so far, like new to rails, but it's like, but that's kind of the easy bit, right?
- 34:53 Like doing kind of crud logic is easy, but like doing all the kind of complicated wrangling across
- 34:59 OSs and like POSIX layers and whatever is all the kind of gnarly hard stuff. So yeah, hopefully that
- 35:06 answers your question.
- 35:07 Yeah. And when it comes to that tax too, you know, another one of the reasons why the people,
- 35:11 you know, the users kind of like have come to terms with it is like the alternative of not
- 35:15 using homebrew at all is like just a non-starter, right? I've talked to a number of customers where
- 35:19 they're like, yeah, we have an ISO security requirement, but if we actually enforce the
- 35:24 ISO security requirement, that means our engineers can't use homebrew. And that's just not an option.
- 35:28 We won't do that. So it ends up with them either talking to us or saying we're going to devote an
- 35:34 entire engineering team to this for the next year and a half to like make our own internal solution,
- 35:38 which I know of a handful of companies that have done that. So yeah, it's, it's definitely a
- 35:43 mindset shift of like, you know, homebrew has been around for a long time. It's kind of like,
- 35:48 it's part of the ecosystem. People know it and are used to it and that's a benefit,
- 35:52 but it also has this kind of, well, they know it for what it is, not for what else you could do with
- 35:56 it or, you know, what we might be able to add as well.
- 35:59 Cool. So jumping to another side of questions here, you've been working at homebrew for so long
- 36:03 and joining me working at GitHub, you've seen a lot of developers in this ecosystem pretty familiar
- 36:07 with. What are biggest challenges you didn't anticipate? And now you learn almost like surprises,
- 36:14 like, oh wow, this is actually harder than I thought, or I didn't even think of this will be
- 36:18 a big problem. What are those kinds of challenges you face, you know, starting this company so far?
- 36:23 I mean, one of the reasons I left GitHub in the end and, you know, I joined when we were like
- 36:28 200-ish people and left. And even then that was the second biggest company I'd ever worked for.
- 36:33 So for me at workbrew, it's when I came, we're doing a completely greenfield code base,
- 36:39 all this type of thing. And, you know, between that and co-pilot and all these tools we have
- 36:43 nowadays, I can move so fast and I can get things done like staggeringly quickly. But then every so
- 36:49 often you run into a wall of like, oh, I have to like get verified with like Apple Business Manager
- 36:56 or like DUNS or some MVM tool or whatever. And it's like, it's so hard to have something where like,
- 37:03 I guess there was, you know, some products that we've integrated in and building the integration
- 37:07 entirely took two hours, but getting like all the paperwork done so that I could play with the
- 37:13 integration took like two months. Yeah. This is like, it's maybe not even hard as a founder. It's
- 37:18 just hard for my soul having to deal with things that just take so long. And it just feels so
- 37:24 unnecessary that it must take so long, but I get it. These big boy and girl companies can't be
- 37:29 startups forever. Yeah. From my perspective, the biggest challenge is like doing things you've never
- 37:34 done before. I'm an engineer by background. And I'm also, I've done like a lot of like go to market
- 37:39 on developer tools. But as far as a founder goes, you know, I've not really done sales and being an
- 37:45 enterprise product, I have a lot of sales conversations. And so I mostly take them from
- 37:50 kind of the founder sales approach of just being helpful, trying to understand their problems.
- 37:54 And what I found really interesting about that is this is an entire career path that tons of people
- 38:00 are very, very talented in and spend many, many years, more years than I've spent as an engineer
- 38:05 or as a marketer, you know, honing those skills. And as a new founder, it's like, you have to do it.
- 38:10 So one of the things that's been really valuable for me is working with, you know, a former salesperson
- 38:15 from GitHub, who I knew really well, and who can kind of like go through the deal process with me,
- 38:19 talk to me about like, kind of this particular company that you're talking to, I've sold to,
- 38:24 you know, a multimillion dollar deal before, these are the people you need to talk to how to do it.
- 38:29 And it's like, there's just a ton and ton of new stuff that we have to learn all the time.
- 38:33 And I think that's true for all three of us doing things that are outside of our comfort zone.
- 38:37 I actually have an addition there as well, where I think it's the sense of responsibility.
- 38:41 Like I had a conversation, I'm hopefully she wouldn't mind me sharing this with my wife a while ago.
- 38:45 And she was like, hey, like, are you actually happy at work through?
- 38:48 Because you seem to kind of come to me with like so many more problems than when you were at GitHub.
- 38:53 And I realized like, yeah, I am happier, but the difference is every problem I had at GitHub,
- 38:57 like particularly by the end, it's like 99% of those are outside of my control.
- 39:01 Some, my bosses, bosses, bosses, bosses, boss, or someone at Microsoft decided that like,
- 39:06 this thing is not happening anymore.
- 39:08 And I can't talk to them.
- 39:10 I can't influence them.
- 39:11 Whereas with the start, with, you know, the three of us are now with employees or whatever.
- 39:15 It's like, everything is my problem, right?
- 39:18 Like everything is, it might not be on my plate necessarily to solve every problem,
- 39:23 but like I have influence over everything.
- 39:25 And like that's simultaneously liberating and incredibly terrifying at the same time.
- 39:31 And it means that, you know, there's a lot more conversation with my wife where I'm like,
- 39:34 what should I do?
- 39:35 And she's like, I don't know.
- 39:36 And I'm like, well, I don't know.
- 39:37 I kind of have to decide because I don't have any adults anymore to decide for me.
- 39:42 I feel similarly.
- 39:44 So final question for each of you, what's one piece of advice you'd have for an open source
- 39:50 founder that is earlier on than you?
- 39:53 I guess from my perspective, you know, I'll go back actually to when I started the company.
- 39:58 So I started this company in 2019 when I left GitHub shortly thereafter.
- 40:02 And I was a solo founder doing something totally different.
- 40:06 And I've been through, you know, a number of different pivots.
- 40:08 It wasn't necessarily open source, but it was always kind of engineering related.
- 40:12 And I think my biggest lesson was like, don't go it alone.
- 40:15 Ever since having Vanessa and Mike join, I feel like I've been much happier, had a lot more clarity.
- 40:20 You know, when things are confusing or I don't know what to do,
- 40:24 it's very easy to just like, you know, talk to my co-founders and work with them.
- 40:28 And so I think it's like a very, very special kind of person who could be a solo founder.
- 40:31 I thought I was one of them, but I'm definitely not.
- 40:33 I would recommend, you know, don't go it alone, whether it's having co-founders
- 40:36 or just like a really good network of advisors, people like deeply involved in your business,
- 40:41 having other people involved in your open source project, obviously, as well.
- 40:44 But, you know, that was like the single biggest inflection point for me and being a founder.
- 40:49 I'm going to focus on the open source side of the open source founder, I guess.
- 40:53 And I think it's particularly relevant right now.
- 40:56 As I said, there's been all this stuff in the news, but I think it's worth paying attention to that stuff.
- 41:02 Not necessarily worth paying attention to the naysayers and, you know,
- 41:06 the Hacker News crowd who are not always the most positive bunch.
- 41:10 But the thing that is worth paying attention to is I think we're all, when you start a company,
- 41:15 a product of the moment you're in, right?
- 41:18 And you can't look at what worked five years ago or 10 years ago or sometimes even one year ago
- 41:23 and try and replicate that model and get the same success.
- 41:26 You have to be influenced by them and learn the lessons from the greats and your kind of peers
- 41:31 in the industry.
- 41:32 But it doesn't work to go and say, well, this model worked for Red Hat or GitHub or whoever,
- 41:39 and I'm going to just follow this model with a letter and do things that way.
- 41:42 Because we're in a different world now.
- 41:44 And like some of these places paved the path in a good way.
- 41:47 And some of them, I don't know what the opposite of paving the path is,
- 41:50 but, you know, maybe blew up the path along the way and you can't go that way anymore.
- 41:54 So, yeah, I guess for me, it's been really helpful to kind of read and learn and soak
- 42:01 up as much information as I can about what other open source companies have done and are doing
- 42:07 and are planning on doing and just kind of learn from that and combine that with what my co-founders
- 42:13 think, what my peers think, and try and pave our own way.
- 42:16 And hopefully it works.
- 42:17 Awesome.
- 42:19 Well, this conversation has been fantastic.
- 42:21 We so appreciate both of you joining us.
- 42:23 I think our audience is going to take a lot away from this.
- 42:25 Thanks for having us.
- 42:26 Yeah, it's been great.