Open Source Friday with Mike McQuaid and Homebrew

Interviewed by GitHub's Open Source Friday

🚀 Join us this #opensourcefriday with Mike McQuaid, early GitHub engineer (#232) and Homebrew maintainer (#3).

Show transcript
  • 0:00 Thank you.
  • 0:30 ...is much more than the place where you can store code.
  • 0:40 But let's see it in action.
  • 0:42 Meet Mona, a developer who's just been assigned a new project.
  • 0:46 Mona uses GitHub projects to manage her tasks and track iterations of work.
  • 0:50 GitHub's customizable views, filters and layouts make it easy for teams to work their way.
  • 0:56 Mona quickly sets up an on-demand development environment using GitHub Codespaces, no more fighting with dependencies.
  • 1:02 She dives into coding with GitHub Copilot, making her code more readable and efficient.
  • 1:08 She then sets up automated testing with GitHub Actions, easily version-controlled like the rest of her code.
  • 1:15 Meanwhile, Mona's colleague had set up repository rules to enforce DevOps governance practices across their GitHub organization.
  • 1:22 Mona avoids leaking secrets by using GitHub Advanced Security Secret Scanning Push Protection,
  • 1:27 and also identifies potential security vulnerabilities using code scanning.
  • 1:32 In this short video, we've seen how GitHub can streamline your experience throughout the development lifecycle.
  • 1:37 that we've seen how GitHub is being able to do a lot of work, and we've seen how GitHub is being able to do a lot of work.
  • 1:42 We've seen how GitHub is being able to do a lot of work.
  • 1:44 We've seen how GitHub is being able to do a lot of work.
  • 1:46 We've seen how GitHub is being able to do a lot of work, and we've seen how GitHub is being able to do a lot of work.
  • 1:47 We've seen how GitHub is being able to do a lot of work.
  • 1:49 We've seen how GitHub is being able to do a lot of work, and we've seen how GitHub is being able to do a lot of work.
  • 1:50 We've seen how GitHub is being able to do a lot of work.
  • 1:51 We've seen how GitHub is being able to do a lot of work.
  • 1:52 We've seen how GitHub has been able to do a lot of work.
  • 1:53 We've seen how GitHub has been able to do a lot of work.
  • 1:54 We've seen how GitHub has been able to do a lot of work.
  • 1:57 We've seen how GitHub has been able to do a lot of work.
  • 2:00 We've seen how GitHub has been able to do a lot of work.
  • 2:02 We've seen how GitHub has been able to do a lot of work.
  • 2:04 We've seen how GitHub has been able to do a lot of work.
  • 2:07 We've seen how GitHub has been able to do a lot of work.
  • 2:10 We've seen how GitHub has been able to do a lot of work.
  • 2:12 We've seen how GitHub has been able to do a lot of work, and we've seen how GitHub has been able to do a lot of work.
  • 2:17 We've seen how GitHub has been able to do a lot of work.
  • 2:19 We've seen how GitHub has been able to do a lot of work.
  • 2:23 We've seen how GitHub has been able to do a lot of work.
  • 2:25 We've seen how GitHub has been able to do a lot of work.
  • 2:26 We've seen how GitHub has been able to do a lot of work.
  • 2:28 We've seen how GitHub has been able to do a lot of work.
  • 2:29 We've seen how GitHub has been able to do a lot of work.
  • 2:32 We've seen how GitHub has been able to do a lot of work.
  • 2:34 We've seen how GitHub has been able to do a lot of work.
  • 2:36 We've seen how GitHub has been able to do a lot of work.
  • 2:38 We've seen how GitHub has been able to do a lot of work.
  • 2:41 We've seen how GitHub has been able to do a lot of work.
  • 2:43 We've seen how GitHub has been able to do a lot of work.
  • 2:46 We've seen how GitHub has been able to do a lot of work.
  • 2:48 GitHub has been able to do a lot of work.
  • 2:51 We've seen how GitHub has been able to do a lot of work.
  • 2:53 We've seen how GitHub has been able to do a lot of work.
  • 2:55 We've seen how GitHub has been able to do a lot of work.
  • 2:58 We've seen how GitHub has been able to do a lot of work.
  • 3:00 We've seen how GitHub has been able to do a lot of work.
  • 3:02 GitHub has been able to do a lot of work.
  • 3:04 We've seen how GitHub has been able to do a lot of work.
  • 3:06 GitHub has been able to do a lot of work.
  • 3:08 GitHub has been able to do a lot of work.
  • 3:10 GitHub has been able to do a lot of work.
  • 3:12 GitHub has been able to do a lot of work.
  • 3:14 GitHub has been able to do a lot of work.
  • 3:16 GitHub has been able to do a lot of work.
  • 3:18 GitHub has been able to do a lot of work.
  • 3:20 GitHub has been able to do a lot of work.
  • 3:22 GitHub has been able to do a lot of work.
  • 3:24 GitHub has been able to do a lot of work.
  • 3:26 GitHub has been able to do a lot of work.
  • 3:28 GitHub has been able to do a lot of work.
  • 3:30 GitHub has been able to do a lot of work.
  • 3:33 GitHub has been able to do a lot of work.
  • 3:34 GitHub has been able to do a lot of work.
  • 3:36 GitHub has been able to do a lot of work.
  • 3:38 GitHub has been able to do a lot of work.
  • 3:40 GitHub has been able to do a lot of work.
  • 3:42 GitHub has been able to do a lot of work.
  • 3:44 GitHub has been able to do a lot of work.
  • 3:46 GitHub has been able to do a lot of work.
  • 3:48 GitHub has been able to do a lot of work.
  • 3:50 GitHub has been able to do a lot of work.
  • 3:52 GitHub has been able to do a lot of work.
  • 3:54 GitHub has been able to do a lot of work.
  • 3:56 GitHub has been able to do a lot of work.
  • 3:58 GitHub has been able to do a lot of work.
  • 3:59 GitHub has been able to do a lot of work.
  • 4:02 GitHub has been able to do a lot of work.
  • 4:04 GitHub has been able to do a lot of work.
  • 4:06 GitHub has been able to do a lot of work.
  • 4:08 GitHub has been able to do a lot of work.
  • 4:10 GitHub has been able to do a lot of work.
  • 4:12 GitHub has been able to do a lot of work.
  • 4:14 GitHub has been able to do a lot of work.
  • 4:16 GitHub has been able to do a lot of work.
  • 4:18 GitHub has been able to do a lot of work.
  • 4:20 GitHub has been able to do a lot of work.
  • 4:22 GitHub has been able to do a lot of work.
  • 4:24 GitHub has been able to do a lot of work.
  • 4:26 GitHub has been able to do a lot of work.
  • 4:30 GitHub has been able to do a lot of work.
  • 4:32 GitHub has been able to do a lot of work.
  • 4:34 GitHub has been able to do a lot of work.
  • 4:36 GitHub has been able to do a lot of work.
  • 4:38 GitHub has been able to do a lot of work.
  • 4:40 GitHub has been able to do a lot of work.
  • 4:42 GitHub has been able to do a lot of work.
  • 4:44 GitHub has been able to do a lot of work.
  • 4:46 GitHub has been able to do a lot of work.
  • 4:48 GitHub has been able to do a lot of work.
  • 4:49 GitHub has been able to do a lot of work.
  • 4:50 GitHub has been able to do a lot of work.
  • 4:51 GitHub has been able to do a lot of work.
  • 4:52 GitHub has been able to do a lot of work.
  • 4:53 GitHub has been able to do a lot of work.
  • 4:54 GitHub has been able to do a lot of work.
  • 4:55 GitHub has been able to do a lot of work.
  • 4:56 GitHub has been able to do a lot of work.
  • 4:57 GitHub has been able to do a lot of work.
  • 4:58 GitHub has been able to do a lot of work.
  • 4:59 GitHub has been able to do a lot of work.
  • 5:00 GitHub has been able to do a lot of work.
  • 5:01 GitHub has been able to do a lot of work.
  • 5:02 GitHub has been able to do a lot of work.
  • 5:03 GitHub has been able to do a lot of work.
  • 5:04 GitHub has been able to do a lot of work.
  • 5:06 GitHub has been able to do a lot of work.
  • 5:08 GitHub has been able to do a lot of work.
  • 5:09 GitHub has been able to do a lot of work.
  • 5:10 GitHub has been able to do a lot of work.
  • 5:11 GitHub has been able to do a lot of work.
  • 5:12 GitHub has been able to do a lot of work.
  • 5:13 GitHub has been able to do a lot of work.
  • 5:14 GitHub has been able to do a lot of work.
  • 5:15 GitHub has been able to do a lot of work.
  • 5:16 GitHub has been able to do a lot of work.
  • 5:17 GitHub has been able to do a lot of work.
  • 5:18 GitHub has been able to do a lot of work.
  • 5:19 GitHub has been able to do a lot of work.
  • 5:20 GitHub has been able to do a lot of work.
  • 5:21 GitHub has been able to do a lot of work.
  • 5:22 GitHub has been able to do a lot of work.
  • 5:24 GitHub has been able to do a lot of work.
  • 5:25 GitHub has been able to do a lot of work.
  • 5:26 GitHub has been able to do a lot of work.
  • 5:27 GitHub has been able to do a lot of work.
  • 5:28 GitHub has been able to do a lot of work.
  • 5:29 GitHub has been able to do a lot of work.
  • 5:30 GitHub has been able to do a lot of work.
  • 5:31 GitHub has been able to do a lot of work.
  • 5:32 GitHub has been able to do a lot of work.
  • 5:33 GitHub has been able to do a lot of work.
  • 5:34 GitHub has been able to do a lot of work.
  • 5:35 GitHub has been able to do a lot of work.
  • 5:36 GitHub has been able to do a lot of work.
  • 5:37 GitHub has been able to do a lot of work.
  • 5:38 GitHub has been able to do a lot of work.
  • 5:40 GitHub has been able to do a lot of work.
  • 5:42 GitHub has been able to do a lot of work.
  • 5:45 GitHub has been able to do a lot of work.
  • 5:46 GitHub has been able to do a lot of work.
  • 5:48 GitHub has been able to do a lot of work.
  • 5:49 GitHub has been able to do a lot of work.
  • 5:50 GitHub has been able to do a lot of work.
  • 5:51 GitHub has been able to do a lot of work.
  • 5:52 GitHub has been able to do a lot of work.
  • 5:53 GitHub has been able to do a lot of work.
  • 5:54 GitHub has been able to do a lot of work.
  • 5:55 GitHub has been able to do a lot of work.
  • 5:56 GitHub has been able to do a lot of work.
  • 5:57 GitHub has been able to do a lot of work.
  • 5:58 GitHub has been able to do a lot of work.
  • 5:59 GitHub has been able to do a lot of work.
  • 6:00 GitHub has been able to do a lot of work.
  • 6:01 GitHub has been able to do a lot of work.
  • 6:02 GitHub has been able to do a lot of work.
  • 6:03 GitHub has been able to do a lot of work.
  • 6:04 GitHub has been able to do a lot of work.
  • 6:05 GitHub has been able to do a lot of work.
  • 6:06 GitHub has been able to do a lot of work.
  • 6:07 GitHub has been able to do a lot of work.
  • 6:08 GitHub has been able to do a lot of work.
  • 6:09 GitHub has been able to do a lot of work.
  • 6:10 GitHub has been able to do a lot of work.
  • 6:11 GitHub has been able to do a lot of work.
  • 6:12 GitHub has been able to do a lot of work.
  • 6:13 GitHub has been able to do a lot of work.
  • 6:14 GitHub has been able to do a lot of work.
  • 6:15 GitHub has been able to do a lot of work.
  • 6:16 GitHub has been able to do a lot of work.
  • 6:17 GitHub has been able to do a lot of work.
  • 6:18 GitHub has been able to do a lot of work.
  • 6:19 GitHub has been able to do a lot of work.
  • 6:20 GitHub has been able to do a lot of work.
  • 6:21 GitHub has been able to do a lot of work.
  • 6:22 GitHub has been able to do a lot of work.
  • 6:23 GitHub has been able to do a lot of work.
  • 6:24 GitHub has been able to do a lot of work.
  • 6:25 GitHub has been able to do a lot of work.
  • 6:26 GitHub has been able to do a lot of work.
  • 6:27 GitHub has been able to do a lot of work.
  • 6:28 GitHub has been able to do a lot of work.
  • 6:29 GitHub has been able to do a lot of work.
  • 6:30 GitHub has been able to do a lot of work.
  • 6:31 GitHub has been able to do a lot of work.
  • 6:32 GitHub has been able to do a lot of work.
  • 6:33 GitHub has been able to do a lot of work.
  • 6:34 GitHub has been able to do a lot of work.
  • 6:35 GitHub has been able to do a lot of work.
  • 6:36 GitHub has been able to do a lot of work.
  • 6:37 GitHub has been able to do a lot of work.
  • 6:38 GitHub has been able to do a lot of work.
  • 6:39 GitHub has been able to do a lot of work.
  • 6:40 GitHub has been able to do a lot of work.
  • 6:41 GitHub has been able to do a lot of work.
  • 6:42 GitHub has been able to do a lot of work.
  • 6:43 GitHub has been able to do a lot of work.
  • 6:44 GitHub has been able to do a lot of work.
  • 6:45 GitHub has been able to do a lot of work.
  • 6:46 GitHub has been able to do a lot of work.
  • 6:47 GitHub has been able to do a lot of work.
  • 6:48 GitHub has been able to do a lot of work.
  • 6:49 GitHub has been able to do a lot of work.
  • 6:50 GitHub has been able to do a lot of work.
  • 6:51 GitHub has been able to do a lot of work.
  • 6:52 GitHub has been able to do a lot of work.
  • 6:53 GitHub has been able to do a lot of work.
  • 6:54 GitHub has been able to do a lot of work.
  • 6:55 GitHub has been able to do a lot of work.
  • 6:56 GitHub has been able to do a lot of work.
  • 6:57 GitHub has been able to do a lot of work.
  • 6:58 GitHub has been able to do a lot of work.
  • 6:59 GitHub has been able to do a lot of work.
  • 7:00 GitHub has been able to do a lot of work.
  • 7:01 GitHub has been able to do a lot of work.
  • 7:02 GitHub has been able to do a lot of work.
  • 7:03 GitHub has been able to do a lot of work.
  • 7:04 GitHub has been able to do a lot of work.
  • 7:05 GitHub has been able to do a lot of work.
  • 7:06 GitHub has been able to do a lot of work.
  • 7:07 GitHub has been able to do a lot of work.
  • 7:08 GitHub has been able to do a lot of work.
  • 7:09 GitHub has been able to do a lot of work.
  • 7:10 GitHub has been able to do a lot of work.
  • 7:11 GitHub has been able to do a lot of work.
  • 7:12 GitHub has been able to do a lot of work.
  • 7:13 GitHub has been able to do a lot of work.
  • 7:14 GitHub has been able to do a lot of work.
  • 7:15 GitHub has been able to do a lot of work.
  • 7:16 GitHub has been able to do a lot of work.
  • 7:17 GitHub has been able to do a lot of work.
  • 7:18 GitHub has been able to do a lot of work.
  • 7:19 GitHub has been able to do a lot of work.
  • 7:20 GitHub has been able to do a lot of work.
  • 7:21 GitHub has been able to do a lot of work.
  • 7:22 GitHub has been able to do a lot of work.
  • 7:23 GitHub has been able to do a lot of work.
  • 7:24 GitHub has been able to do a lot of work.
  • 7:25 GitHub has been able to do a lot of work.
  • 7:26 GitHub has been able to do a lot of work.
  • 7:27 GitHub has been able to do a lot of work.
  • 7:28 GitHub has been able to do a lot of work.
  • 7:29 GitHub has been able to do a lot of work.
  • 7:30 GitHub has been able to do a lot of work.
  • 7:31 GitHub has been able to do a lot of work.
  • 7:32 GitHub has been able to do a lot of work.
  • 7:33 GitHub has been able to do a lot of work.
  • 7:34 GitHub has been able to do a lot of work.
  • 7:35 GitHub has been able to do a lot of work.
  • 7:36 GitHub has been able to do a lot of work.
  • 7:37 GitHub has been able to do a lot of work.
  • 7:38 GitHub has been able to do a lot of work.
  • 7:39 GitHub has been able to do a lot of work.
  • 7:40 GitHub has been able to do a lot of work.
  • 7:41 GitHub has been able to do a lot of work.
  • 7:43 GitHub has been able to do a lot of work.
  • 7:44 GitHub has been able to do a lot of work.
  • 7:45 GitHub has been able to do a lot of work.
  • 7:46 GitHub has been able to do a lot of work.
  • 7:47 GitHub has been able to do a lot of work.
  • 7:48 GitHub has been able to do a lot of work.
  • 7:49 GitHub has been able to do a lot of work.
  • 7:50 GitHub has been able to do a lot of work.
  • 7:51 GitHub has been able to do a lot of work.
  • 7:52 GitHub has been able to do a lot of work.
  • 7:53 GitHub has been able to do a lot of work.
  • 7:54 GitHub has been able to do a lot of work.
  • 7:55 GitHub has been able to do a lot of work.
  • 7:56 GitHub has been able to do a lot of work.
  • 7:57 GitHub has been able to do a lot of work.
  • 7:58 GitHub has been able to do a lot of work.
  • 7:59 GitHub has been able to do a lot of work.
  • 8:00 GitHub has been able to do a lot of work.
  • 8:01 GitHub has been able to do a lot of work.
  • 8:02 GitHub has been able to do a lot of work.
  • 8:03 GitHub has been able to do a lot of work.
  • 8:04 GitHub has been able to do a lot of work.
  • 8:05 GitHub has been able to do a lot of work.
  • 8:06 GitHub has been able to do a lot of work.
  • 8:07 GitHub has been able to do a lot of work.
  • 8:08 GitHub has been able to do a lot of work.
  • 8:09 GitHub has been able to do a lot of work.
  • 8:10 GitHub has been able to do a lot of work.
  • 8:11 GitHub has been able to do a lot of work.
  • 8:12 GitHub has been able to do a lot of work.
  • 8:13 GitHub has been able to do a lot of work.
  • 8:14 GitHub has been able to do a lot of work.
  • 8:15 GitHub has been able to do a lot of work.
  • 8:16 GitHub has been able to do a lot of work.
  • 8:17 GitHub has been able to do a lot of work.
  • 8:18 GitHub has been able to do a lot of work.
  • 8:19 GitHub has been able to do a lot of work.
  • 8:20 GitHub has been able to do a lot of work.
  • 8:21 GitHub has been able to do a lot of work.
  • 8:22 GitHub has been able to do a lot of work.
  • 8:23 GitHub has been able to do a lot of work.
  • 8:24 GitHub has been able to do a lot of work.
  • 8:25 GitHub has been able to do a lot of work.
  • 8:26 GitHub has been able to do a lot of work.
  • 8:27 GitHub has been able to do a lot of work.
  • 8:28 GitHub has been able to do a lot of work.
  • 8:29 GitHub has been able to do a lot of work.
  • 8:30 GitHub has been able to do a lot of work.
  • 8:32 GitHub has been able to do a lot of work.
  • 8:33 GitHub has been able to do a lot of work.
  • 8:34 GitHub has been able to do a lot of work.
  • 8:35 GitHub has been able to do a lot of work.
  • 8:36 GitHub has been able to do a lot of work.
  • 8:37 GitHub has been able to do a lot of work.
  • 8:38 GitHub has been able to do a lot of work.
  • 8:39 GitHub has been able to do a lot of work.
  • 8:40 GitHub has been able to do a lot of work.
  • 8:41 GitHub has been able to do a lot of work.
  • 8:42 GitHub has been able to do a lot of work.
  • 8:43 GitHub has been able to do a lot of work.
  • 8:44 GitHub has been able to do a lot of work.
  • 8:45 GitHub has been able to do a lot of work.
  • 8:46 GitHub has been able to do a lot of work.
  • 8:47 GitHub has been able to do a lot of work.
  • 8:48 GitHub has been able to do a lot of work.
  • 8:49 GitHub has been able to do a lot of work.
  • 8:50 GitHub has been able to do a lot of work.
  • 8:51 GitHub has been able to do a lot of work.
  • 8:52 GitHub has been able to do a lot of work.
  • 8:53 GitHub has been able to do a lot of work.
  • 8:54 GitHub has been able to do a lot of work.
  • 8:55 GitHub has been able to do a lot of work.
  • 8:56 GitHub has been able to do a lot of work.
  • 8:57 GitHub has been able to do a lot of work.
  • 8:59 GitHub has been able to do a lot of work.
  • 9:00 GitHub has been able to do a lot of work.
  • 9:01 GitHub has been able to do a lot of work.
  • 9:02 GitHub has been able to do a lot of work.
  • 9:03 GitHub has been able to do a lot of work.
  • 9:04 GitHub has been able to do a lot of work.
  • 9:05 GitHub has been able to do a lot of work.
  • 9:06 GitHub has been able to do a lot of work.
  • 9:07 GitHub has been able to do a lot of work.
  • 9:08 GitHub has been able to do a lot of work.
  • 9:09 GitHub has been able to do a lot of work.
  • 9:10 GitHub has been able to do a lot of work.
  • 9:11 GitHub has been able to do a lot of work.
  • 9:12 GitHub has been able to do a lot of work.
  • 9:13 GitHub has been able to do a lot of work.
  • 9:14 And I guess thank you for a very nice introduction and a very humble one.
  • 9:18 It was a real pleasure and treat working with Andrea.
  • 9:20 If anyone watching this gets the chance to do so, I would thoroughly recommend it.
  • 9:24 She's a lovely person to work with and is very good at her job.
  • 9:27 And my face exploded.
  • 9:29 Thank you, Mike.
  • 9:30 I appreciate you.
  • 9:31 And I appreciate you taking the time of coming by.
  • 9:34 It's been a moment since you let GitHub.
  • 9:37 Not a year.
  • 9:39 No.
  • 9:40 Yeah, just over a year.
  • 9:41 Just over a year.
  • 9:42 Happy.
  • 9:43 Okay, wow.
  • 9:44 And of course, you went off to do your own thing, co-found your own company, which is super exciting.
  • 9:50 I do want us to touch on all the amazing work that you're doing with Workbrew.
  • 9:53 And for folks here who might be interested in a solution like that, it'd be great to, you know, maybe show them if you're up for it.
  • 10:00 But I also want to talk to you, take it way back.
  • 10:05 When we think about open source, taught leadership, and that's, I use that term loosely, because there's a lot more than taught leadership that you do.
  • 10:13 But there is so much incredible content that you put out to support other maintainers based, of course, on your own experiences from leading and maintaining this project that is so pivotal to all of us for so many years.
  • 10:26 But we have to take it way back.
  • 10:27 We're going to do a little bit digging here, because I don't think I've ever actually asked you this question.
  • 10:33 How did you come about being the maintainer and project leader for Homebrew?
  • 10:39 Like, how did that happen?
  • 10:40 Yeah, so I mean, I guess the, yeah, the maintaining came before the leading by quite a long way.
  • 10:47 So I guess in 2009, when Homebrew kind of originally got created, that was a guy called Max Howell, MXCL on GitHub.
  • 10:58 He was using kind of package managers on Mac and stuff like that.
  • 11:01 And he never found anything that kind of quite fit his needs.
  • 11:04 So he wants to make his own thing called Homebrew.
  • 11:06 And he had worked on it for a while.
  • 11:10 I'd heard about it and stuff like that.
  • 11:12 And then I'd be kind of like building something else, like not really my own package manager, but you know, like a sort of hacking a different package manager to work the way I wanted it to.
  • 11:20 And then I saw Homebrew and it was like, oh, this looks like this is kind of, this works how I want it to work.
  • 11:25 So I just submitted some pull requests.
  • 11:27 You know, this is, I think he created it maybe April, May 2009.
  • 11:32 You know, this is probably like August, September, 2009.
  • 11:35 Wow.
  • 11:36 Submit some pull requests of just like stuff I wanted to be in there for my own use.
  • 11:40 And then kind of more pull requests.
  • 11:42 And then, yeah, eventually I guess got asked to kind of join the project and review other people's stuff.
  • 11:48 And, you know, it went on from there.
  • 11:50 Although I guess I realized I just misspoke actually, because in, I believe in 2009 when I started GitHub didn't have pull requests yet.
  • 11:56 So the way things used to work is you would open an issue with a, I think it was like a link to your, a commit in your fork or like message Max on IRC with a commit to your fork.
  • 12:08 And then he would like pull it in that way.
  • 12:11 And so, yeah, so that, that's, I guess how I got started.
  • 12:14 And then I just sort of never really stopped, I guess.
  • 12:17 Yeah.
  • 12:18 We're, we're 15 years later and, uh, I'm still working on homebrews, still reviewing pull requests, still trying to fix stuff and make the project grow and be better each year than it was the year before.
  • 12:29 Yeah.
  • 12:30 I love the fact that you were actually kind of doing your own hacky solution and then found a thing that was like, okay, yeah, this is actually, let me, let me contribute to that.
  • 12:39 Um, you haven't taken a break in being a, uh, maintainer of homebrew, right?
  • 12:45 Like you've been continuously.
  • 12:46 Yeah.
  • 12:47 I mean, I've, I've taken holidays where.
  • 12:50 Of course.
  • 12:51 Yes.
  • 12:52 Of course.
  • 12:53 Yeah.
  • 12:54 I think it's probably more than, I don't know, at most two weeks, probably in that, uh, 15 year periods where I've not reviewed at least some pull requests.
  • 13:05 Oh my gosh, Mike.
  • 13:06 And how many, uh, maintainers are there now on the, like the.
  • 13:10 I'm not sure.
  • 13:11 I can't remember the exact number off the top of my head.
  • 13:14 I think it's 30 something.
  • 13:16 If you go to homebrew.
  • 13:17 So one of the things that I really like about homebrew is, uh, we partly inspired by me and partly a lot of people.
  • 13:23 Some other people around there, like we really lean really heavily into automation.
  • 13:27 So if you go on the read me, there's like a list of, you know, who all the people are in homebrew and the current maintainers and stuff like that.
  • 13:33 I think there's 30 of us.
  • 13:35 Um, and yeah, that list is like automated.
  • 13:37 So if someone gets, you know, added to or removed to the homebrew maintainers list, a little bot in the background will then open up a PR to change the read me and all this type of stuff.
  • 13:45 So that's, cause this is open source.
  • 13:47 Of course you can go and look at the code.
  • 13:48 If you, if you're like, Hey, I want to do that in my project, then, you know, go have a look at the codes and you can figure out how to do it yourself.
  • 13:54 Awesome.
  • 13:55 All of you who are looking to create your organizations, read me and do it in a way that makes sense and automated.
  • 14:01 Go check out the homebrew ripple and leave them a star while you're at it, please.
  • 14:06 Not that you need them.
  • 14:07 It's got plenty.
  • 14:08 I noticed you have a discussions also there.
  • 14:11 That's super active too.
  • 14:12 I'm going to share the link for this on the screen too.
  • 14:14 So like folks go check out the discussions so you can get a feel for how is.
  • 14:18 How the community is, but okay.
  • 14:20 So you join, you started contributing.
  • 14:23 You did such a great job that they invited you to be part of the first three.
  • 14:28 I suppose at that time, if you were a maintainer number three, and then you have not stopped.
  • 14:34 And how many years now since 15, 15 years, 15 years, no end in sight for Mike, no end in sight for Mike.
  • 14:44 You know, I've read a lot of the content that it, but, and by the way, folks, if you have not check out Mike's website and the content that he writes is absolutely fantastic.
  • 14:55 Especially for you, if you're a maintainer or someone who is aspiring to take on the big responsibility of maintaining, contributing to a project, take a look, take a look.
  • 15:04 I've quoted you so many times.
  • 15:06 One of the last bits that you did about maintainers don't owe you anything.
  • 15:10 When I was reading it, my neck about broke it.
  • 15:12 I was like, yes, yes, yes, exactly.
  • 15:14 It's so easy for us to become so entitled.
  • 15:17 And we come a long way from having to send the link to the commit to the upload request.
  • 15:24 Like, wow.
  • 15:25 It's, it's, it's been a journey for sure.
  • 15:27 So definitely check out Mike's website.
  • 15:29 I'm going to put it on the chat.
  • 15:32 Um, so that you can give it a read when, when you have some time, because there's definitely a ton of stuff going on there.
  • 15:38 So obviously it's been 15 years.
  • 15:42 A lot has changed.
  • 15:43 The original idea is there, right?
  • 15:45 You're still the missing component to Linux and Mac.
  • 15:50 You're still so essential to developers in the world.
  • 15:55 Um, if you look back at like all the work that you've done in this 15 years, like, is there any milestone in particular that you're super proud of that you're like, when we did this, when you have created the pull request and it was easier.
  • 16:07 No, not that one, but for the project in particular, is there something that you look back and you're like, that was, uh, sort of like a shift in.
  • 16:14 Moment.
  • 16:15 Uh, and home.
  • 16:16 Yeah.
  • 16:17 I dunno.
  • 16:18 Like the nice thing is there's been, there's been so many things that, I mean, there's been a few things I've done kind of by myself.
  • 16:23 And there's been lots of things I've been involved with or reviewed or whatever, I guess.
  • 16:26 Um, me personally, probably the biggest thing I felt like I did was, um, I guess transition homebrew from being when homebrew started, it was, I guess what we would call a from source package manager.
  • 16:38 So, uh, you, when you run an install command, it would go and download the stuff, the source code from maybe a gal repo, build everything on your machines.
  • 16:48 This was back in Intel Mac days.
  • 16:49 So your fans were going spinning away, something like a spaceship was going to take off.
  • 16:54 Um, but yeah, but like that ended up, that was a huge waste of like time and energy.
  • 16:59 Cause essentially like everyone's machine ended up building the same thing.
  • 17:02 So I created again, leading into the, the beer metaphor, this thing called like bottles for homebrew, which was our binary packages.
  • 17:09 And I kind of designed the first kind of system of doing that.
  • 17:12 And originally that was all built by me on my machine and then built by me in a VM and on my machine.
  • 17:19 And then we did the Kickstarter and that then turned into be, you know, we had our dedicated hardware that it ran on and then VMs on those hardware and then virtualized hardware.
  • 17:29 And now it's kind of all plugged into GitHub actions and stuff like that.
  • 17:32 And yeah, it's, it's kind of nice.
  • 17:34 Just having seen, you know, now we kind of are delivering whatever it is like thousands of packages with probably hundreds of updates every week.
  • 17:44 Um, all through that kind of infrastructure and using that packaging format that I sort of like relatively naively created back in.
  • 17:50 I don't know what year it would have been maybe 2010 or something like that.
  • 17:54 Um, yeah, so that, that, that makes me feel happy every time I see a little, like, you know, pouring the bottle in, uh, homebrew on someone's screen.
  • 18:02 I'm like, yeah, like I, I helped do that.
  • 18:04 So yeah, that's probably my, my, my proudest little addition to homebrew.
  • 18:08 I love that.
  • 18:09 If you have been using the homebrew long enough to.
  • 18:11 Notice this transition definitely leave a comment.
  • 18:14 A big thank you for making that happen and making it easy.
  • 18:17 Um, easier for everyone else to use it.
  • 18:19 I love the beer metaphors.
  • 18:20 I have to ask, where did that come from?
  • 18:22 Like why homebrew?
  • 18:23 You know why he named it that?
  • 18:25 I think just Max, the creator, he liked beer a lot.
  • 18:29 And then I think he came up with the original idea after having drink, been drinking some beer.
  • 18:34 Uh, so like that there's, you can see in the first commit for, uh, homebrew ever.
  • 18:40 It's like the kind of initial read me of like describing the project.
  • 18:44 And yeah.
  • 18:45 And one of the things was, you know, I think the last question that he asked himself that's in the read me is, you know, did you create homebrew while under the influence of beer?
  • 18:54 And it was the answer was yes.
  • 18:55 So, um, yeah, that's, that's where the, you know, some people don't really like the beer theme.
  • 19:00 Uh, other people are fine with the beer theme, but hates the brown color scheme on the website and everything like that.
  • 19:06 But I don't know, like I feel it's kind of got its own quirky charm at this point.
  • 19:11 Yeah.
  • 19:12 I love that.
  • 19:13 Well, um, listen, you can please everyone with aesthetics.
  • 19:17 So it does the job.
  • 19:19 I love the cask.
  • 19:20 I like everything is kind of, it ties together.
  • 19:22 Like the packages from the tap, like everything is, is sort of the same.
  • 19:26 I actually, I find that quirkiness flipping nerdy awesomeness.
  • 19:30 So that's fantastic.
  • 19:31 Thank you.
  • 19:32 Thank you for sharing that.
  • 19:34 Okay.
  • 19:35 So we talked a little bit about, you know, when you got started, um, sort of the pivotal moment for you that, well, a big development, something that you contributed to the project.
  • 19:46 Um, what are you now as a project?
  • 19:50 What is the future hold?
  • 19:52 I'm not trying to fast forward too much, but I know there are folks that joined because they're particularly interested in talking roadmap.
  • 19:57 And, um, yeah, so far I've seen a lot of comments loving homebrew, but I'm sure there'll be someone that comes up with some grievances.
  • 20:03 Uh, but I wanted, I wanted to hear from you, like as a team, what you're thinking.
  • 20:08 And if there's anything in particular that you could share, what else that'd be great.
  • 20:11 Well, shout out to, I saw George's comment there that just got highlighted.
  • 20:15 I mean, that's particularly satisfying for me because the, the last big project I worked on when I was still at GitHub was the merge queue.
  • 20:21 So that's, it's nice kind of when the two things overlap like that.
  • 20:25 Um, but yeah, with, with homebrew, the future is we don't, it's interesting.
  • 20:29 Cause we like, as each year goes on there in the past has been kind of like really big things that it's like, oh, well, we must transition from this to this.
  • 20:37 So whatever.
  • 20:38 Um, I, I don't know that there's lots of big things like that, uh, coming up with homebrew in the near future, but I guess two of our big concerns maybe for the, the rest of the year are just kind of improving performance and improving security.
  • 20:50 Like we're aware if I did a, um, you know, Google image, sorry, Google like auto completions the other day.
  • 20:57 And, you know, one of the things that was pops up and people ask is like, why is homebrew slow?
  • 21:01 So we have a bunch of maintainers in, I think a month or two, actually, who are going to have probably some sort of hackathon where they're going to focus on performance and security work in homebrew.
  • 21:11 So I would imagine after that, like certain aspects of homebrew will be faster.
  • 21:15 But still I merged some performance related pull requests this week.
  • 21:20 Um, and yeah, we're, I guess we're just trying to make homebrew continually faster, more reliable, more secure, and just better for people.
  • 21:29 I love that.
  • 21:30 I love that.
  • 21:31 And thanks Tanki for the comment.
  • 21:33 You've seen a lot of change in the last five years.
  • 21:35 That's awesome.
  • 21:36 That's awesome.
  • 21:37 Things are getting better.
  • 21:38 Uh, the talk of this hackathon, this is a group of maintainers that's organizing, or is it just, uh, contributors to the project that decided to like focus on it?
  • 21:44 Yeah.
  • 21:45 So it's, we have like a project leadership committee, which is some of those people are maintainers.
  • 21:49 And some of them are people just passionate about homebrew who want to kind of help with the organization and stuff like that.
  • 21:54 So the project leadership committee are the ones who've organized it and homebrew has some kind of funds.
  • 21:59 You can go and look at our open collective to see the money that's been currently donated to the project.
  • 22:03 So we're using some of those funds to sponsor some maintainers to get together in one place, um, in like the next few months, basically.
  • 22:11 Um, so that they can work together on this stuff and try and improve some performance and security aspects of homebrew.
  • 22:16 Oh, fantastic.
  • 22:17 Okay.
  • 22:18 And are it.
  • 22:19 It's well, we'll talk a little bit about what it takes.
  • 22:21 How can one become first a contributor?
  • 22:23 And then how do you, um, pull into maintainers?
  • 22:27 Um, but before we do that, folks, if you use homebrew and likely you do go ahead and sponsor homebrew and the homebrew project.
  • 22:33 So they can go ahead and do things like sponsor these maintainers to take the time to work on the things that matter to you.
  • 22:39 And apparently a lot of Google searches out.
  • 22:41 So, um, you can sponsor them through GitHub as you see on the screen or through your open collective, which I am going to pull and add up to it as well.
  • 22:50 Although I personally particularly like it when you use GitHub sponsors, because again, that was one of the things I helped to build a GitHub.
  • 22:56 It makes me happy whenever anyone uses it.
  • 22:58 So.
  • 22:59 Right.
  • 23:00 I love this energy.
  • 23:01 It's like, it's your thing and also your thing.
  • 23:04 So that's fantastic.
  • 23:05 Okay, folks.
  • 23:06 There you hear it.
  • 23:07 And again, this is one of those things that like any contribution matters.
  • 23:10 Uh, anything that you can put towards the project is only gonna go towards the needs of the project.
  • 23:15 And I love the transparency of like how all the funds are being spent.
  • 23:18 Um, that's, you know, that's a beautiful open source, everything out in the open.
  • 23:22 Um, questions.
  • 23:23 If you don't have, uh, the money to donate right now, that's completely fine.
  • 23:27 And if you have time instead, then feel free to.
  • 23:29 You can donate your, your code and your brain instead.
  • 23:32 That is equally, if not more valuable than any financial donation.
  • 23:36 A hundred percent.
  • 23:37 I agree.
  • 23:38 So let's talk about that.
  • 23:39 How can one become a contributor to the homebrew project?
  • 23:43 What does it take to have a PR merge?
  • 23:45 And how do I go back and start it?
  • 23:46 Homebrew has a nice little section.
  • 23:48 If you look, go to the homebrew repository that was linked earlier.
  • 23:51 Uh, you can see there's a contributing section and that kind of has a nice description of like how to get involved with homebrew.
  • 23:58 Uh, we've got some fairly extensive documentation that kind of guides you through things and some nice little ways of kind of getting started because we've got so many packages in homebrew.
  • 24:07 Chances are one of them is outdated or could do with some little code being cleaned up or whatever.
  • 24:13 And that's how most people get started with homebrew.
  • 24:15 Most people start as a repository.
  • 24:17 Homebrew is sort of split between the package manager itself, which is in a repository we call homebrew brew, which is like github.com slash homebrew slash brew.
  • 24:24 And then there's homebrew core, which is the main package for formula, which are like the main packages in homebrew.
  • 24:30 Um, so most people pretty much all maintainers, I guess myself included, get started with modifying formula before they go and start digging into the homebrew internals or the package manager itself.
  • 24:41 Um, unfortunately I don't review as much of the formula land anymore because we have lots of other maintainers who do that way better than me.
  • 24:47 So you might not see me until you go and make a pull request over in homebrew one day.
  • 24:52 But yeah, that's the best way to get involved.
  • 24:54 And we have, I think the, let's see.
  • 24:57 So the, the package manager homebrew brew has had 960 contributors over the years and homebrew core is I think quite a lot higher than that.
  • 25:07 Give me one second while I find the exact number.
  • 25:10 Uh, so we seem to be at, uh, yeah, over 5,000.
  • 25:15 I think it's over 10,000 actually like this.
  • 25:17 Yeah.
  • 25:18 Lots of contributors to homebrew core over the years.
  • 25:20 Uh, so yeah, if that's something you're interested in, then there's a very good chance that you'll be able to find something and get involved.
  • 25:27 A common thing you may get, uh, is people say, oh, well this is written in Ruby and I don't know Ruby yet.
  • 25:32 I would encourage you to take a look anyway.
  • 25:34 Uh, Ruby is quite an easy language to get started with.
  • 25:36 Um, and particularly like homebrew core.
  • 25:37 Like it doesn't really feel like you're writing Ruby as much as just kind of writing homebrew's own special little language.
  • 25:43 Um, and also I guess encouragement for anyone out there.
  • 25:46 So for me, the first Ruby I ever really wrote was for homebrew.
  • 25:50 Um, and then, you know, I've had a career since then where I've been mostly writing Ruby.
  • 25:54 So sometimes, uh, it's a nice way of kind of with homebrew or any open source project, I guess.
  • 25:59 It's a nice way of kind of getting started with maybe a language or a technology or a framework.
  • 26:03 You don't already know.
  • 26:04 Exactly.
  • 26:05 This is a good, well, for all of you Ruby, it's a perfect fit.
  • 26:08 And for all of you who might be interested in learning a new programming language, maybe it's Ruby.
  • 26:12 Maybe you take a look and this is how you start.
  • 26:14 So that's cool.
  • 26:15 So you think for folks who are starting the formulas will probably be like a good point of entry.
  • 26:21 Yeah.
  • 26:22 Starting clear up, updating that.
  • 26:23 I'm sure that documentation is beautiful and fantastic and it has all the things that you need to know.
  • 26:27 So that, you know, you make sure everything is stable and compatible as you're doing all your work.
  • 26:33 So you hear from Mike, if you can contribute financially, please do.
  • 26:37 But if you cannot, then you can also contribute with your brain power and take a look at there is likely to be something that needs to be updated.
  • 26:45 And why not go give the team a hand?
  • 26:48 Um, any other community initiatives that you have going?
  • 26:51 Um, besides of course, contributions of code and like the core team having the hackathons and stuff like that.
  • 26:57 Yeah.
  • 26:58 I guess we always value people kind of submitting pull requests, uh, for stuff.
  • 27:02 Like both fixing bugs, improving the style of stuff.
  • 27:05 But also if there's, you know, a feature of homebrew that you feel like is missing or some small addition, then that's always viable.
  • 27:10 Also in our kind of discussions forum that you linked earlier, Andrew, uh, there is lots of people asking questions in there.
  • 27:16 So if you go in there and you see the answer to a question is in your head and you're like, no one's answered this yet, then it's really lovely to go and help people out that way and answer questions that way.
  • 27:25 Um, and then similarly on our kind of issues, sometimes it's helpful if someone is asking for help in an issue.
  • 27:31 Like if you know what the solution is already, then that's a good place to jump in.
  • 27:34 But that's, that's a little bit more tricky.
  • 27:36 Cause I guess most of the times by the time people are opening an issue, it's generally like they might need one of the maintainers to help them out.
  • 27:41 Gotcha.
  • 27:42 Okay.
  • 27:43 Well, listen, this is all excellent, excellent advice.
  • 27:46 Um, so now, you know, if this is a project that you're interested in contributing in, um, there is many ways that you can do it.
  • 27:53 And I love the idea of helping folks out in the discussions.
  • 27:55 Cause even if you're new to homebrew, uh, heck new to software engineering and being a developer, you already know more today than you do the person who started, you know, yesterday or.
  • 28:08 They're not something like that, you know, you already have something to share.
  • 28:13 Um, so definitely it's nice to, to be able to do that.
  • 28:16 Okay.
  • 28:17 Well, so we know a little bit about what you're thinking for the future.
  • 28:21 We talked a little bit about how you became a maintainer, um, what the core team is doing.
  • 28:27 Love that you took chair with us, that there is going to be a focus on performance.
  • 28:32 So stay tuned because I, I guess the next five years are going to be even more awesome than the last five years.
  • 28:37 Uh, like someone commented, um, I, I appreciate you sharing a bit of background on that.
  • 28:42 And then I have to ask, especially because you have such a, just wealth of knowledge and experience being a maintainer.
  • 28:48 If you give someone who's seriously looking, maybe some, they started maintaining some packages.
  • 28:54 Maybe they started and now they're really considering, you know what?
  • 28:57 I think I'm going to, if I get invited to be a core maintainer, I'm going to do it.
  • 29:02 Um, there isn't really a manual out there anywhere telling people, that's a book you can write, Mike.
  • 29:08 They're telling folks like, you should think about this before you do that.
  • 29:11 Like, what is something that you wish you knew before you accepted that slack message?
  • 29:16 Or I don't know what, what, what are you using then?
  • 29:19 Yeah.
  • 29:20 DM.
  • 29:21 Yeah.
  • 29:22 So, uh, I think it was probably an IRC DM.
  • 29:25 Uh, I forget what they call that in IRC days, but yeah.
  • 29:28 So I mean, I, I guess like a lot of the stuff that I wish I knew, thankfully has between homebrews got some documentation that is, if you go to docs.brew.sh, I mentioned before with our automation, like our documentation is okay.
  • 29:42 It could always be better, but we try and have documentation for maintainers and even homebrew commands for maintainers to use and things like that all be nice and out there and open.
  • 29:52 So other people can learn from things and stuff like that.
  • 29:54 Essentially we try and keep things private as little as possible.
  • 29:58 Um, as you know, as long as it kind of makes the project kind of function well and be safe.
  • 30:03 So if you check out like the homebrews, uh, documentation, there's some maintainer advice there, like guidelines for maintainers and stuff like that.
  • 30:10 And then as Andrea mentioned more generally, like outside of homebrew, like I've written a little bit on my blog over the years about things like, I guess the, the post you highlighted earlier, I guess one of my more amongst some demographics, popular posts.
  • 30:23 Some people don't like it very much is, uh, open source maintainers.
  • 30:27 Are you nothing?
  • 30:28 And in some ways, yeah, I wrote that to myself, uh, for something I wish that I had had very early on.
  • 30:34 Like it's, it's very easy when you're maintaining open source software to feel kind of overwhelmed by the expectations of other people.
  • 30:41 Or like if someone is being really entitled or very rude or is very angry that you introduced a bug, which negatively infect them.
  • 30:49 It's very easy to kind of internalize that stuff and feel like this is my fault.
  • 30:55 I have to stay up all night fixing this or whatever it may be.
  • 30:58 And just, you know, knowing that you don't actually have to do literally anything with open source, right?
  • 31:04 It's, it's always up to you.
  • 31:05 What you do is I think really helpful.
  • 31:07 And I think for me being involved with, uh, homebrew for 15 years, I think that's the thing that's managed to help me stay involved is that figuring out that stuff and having a bit more, I guess, like work life balance, open source life balance.
  • 31:23 Maybe perhaps where I don't have homebrew github notifications on my phone.
  • 31:27 I don't have homebrew slack on my phone for maintainers.
  • 31:29 Like for me, it's homebrew is a thing I do when I sit down on my computer and when I'm not on my computer, I don't get bothered by homebrew stuff.
  • 31:36 And if somehow there was some urgent homebrew thing that only, you know, I only, I have access to be able to do this thing.
  • 31:45 Then enough of the maintainers have my personal cell number that they could get in touch and let me know that way.
  • 31:51 But that's, that's not happened or at least hasn't happened for at least five years.
  • 31:55 So yeah, it's, it's, it's nice to kind of feel like partly through attitude shift and partly through kind of hard work.
  • 32:03 It's at a point where it's probably not dependent on any one person, including myself.
  • 32:07 And, uh, it's, yeah, it's a bit more of a chilled vibe.
  • 32:11 And we, I guess kind of like families, like we look out for each other, right?
  • 32:15 Like another nice thing I like about the homebrew project that I've tried to introduce is if you're really,
  • 32:21 rude or unkind to one of the other maintainers or, you know, a bunch of our users or contributors, then we, we don't like that.
  • 32:29 And particularly when the maintainers are giving up most of the time, they're unpaid labor on evenings and weekends.
  • 32:35 You know, it's if you can't be polite and you can't be civil.
  • 32:38 And if you're asked to adjust your behavior and you don't adjust your behavior, then that maintainers having a good day is more important than your pull request or issue being fixed or whatever it may be.
  • 32:47 Because at the end of the day, if you don't have any humans who want to work on homebrew anymore, then the project is dead.
  • 32:52 So the most important thing is the humans behind it.
  • 32:54 A hundred percent.
  • 32:56 I think it's so easy to lose that.
  • 32:58 We kind of dehumanize what we can see.
  • 33:01 And so the people in the background doing all the work become just like dots.
  • 33:06 And yeah, I seen some of the comments.
  • 33:08 I mean, there is plenty, please read my song because there is a lot of experiences and stuff there that would just kind of make you just sometimes just lose faith in humanity.
  • 33:18 But we're all here supporting open source.
  • 33:20 We're here on Friday talking about it.
  • 33:22 So we're going to create a new generation of folks that are going to be much more grateful to folks like you who put in so much of their time.
  • 33:29 This separation of like how you view work and view maintaining the project.
  • 33:36 Were you like that from the beginning?
  • 33:37 Because 15 years is a long time to maintain something without burning out, without just saying like, I'm sorry, I'm out.
  • 33:44 No, I definitely wasn't like that at the beginning.
  • 33:46 In the early days, I had homebrew slack on my phone.
  • 33:49 I was doing a lot more stuff on like late into my evenings and my weekends.
  • 33:54 And, you know, if I got pinged at the dinner table when I was eating my meal, you know, go and let my food get cold when I went and fix things.
  • 34:00 You know, it took a long time to learn that because I didn't really have anyone to sort of teach me that stuff.
  • 34:04 But also, you know, like getting older and, you know, I've got several kids now and a dog and a wife and a therapist and, you know, all of these things kind of help you like figure out your priorities and what's important and what's not and what needs to be done right now versus later.
  • 34:24 And I mean, and I think also just the stuff makes you more efficient with your time partly as well.
  • 34:30 And I feel like it nothing sharpens the mind and knowing that, well, at this time, I'm going to have dinner with my kids.
  • 34:36 And if this isn't fixed by this time, then it's not fixed today.
  • 34:40 So, yeah, stuff like that is it's helpful.
  • 34:43 But, yeah, it's something I would encourage everyone to think about.
  • 34:47 It's less you don't need to be quite maybe as strict as I am on some of this stuff when you're younger.
  • 34:52 But, you know, the older you get, if you want to still be around in 10 years, then, yeah, it's the sustainability aspect is very important, I think.
  • 34:59 Please take note, young and old people alike.
  • 35:02 I needed this message today, by the way.
  • 35:04 I needed this message today.
  • 35:06 So thank you.
  • 35:07 Thank you for that.
  • 35:08 Nothing is the end of the world, folks.
  • 35:10 I promise you that.
  • 35:11 Even though we feel it and we take everything so personal, I'm like that.
  • 35:14 I take a lot of pride in my work.
  • 35:15 So to me, everything is an emergency.
  • 35:17 But I need to slow that.
  • 35:18 There is a question from Jorge or Georgie.
  • 35:21 Sorry.
  • 35:22 Let's see if we can help.
  • 35:24 Mike, thanks for the session.
  • 35:27 Can you give us any color on the work Homebrew is doing via Alpha Omega OpenSSF?
  • 35:33 How is it going so far?
  • 35:35 What's securing the packaging supply chain?
  • 35:37 What respect to the security?
  • 35:40 That's a great question.
  • 35:41 And it's, I guess what they might call in the music land a deep cut, because it's a small effort, but it's very important, but kind of not widely known.
  • 35:50 There's some kind of ongoing work now going on through the OpenSSF and we've got some home maintainers and some non-maintainers who are kind of getting involved right now to essentially increase the confidence.
  • 36:01 I mentioned bottles earlier.
  • 36:02 This is kind of, I guess, part of kind of securing that.
  • 36:04 So when you download a binary package, a bottle, then we automatically want to check some on that to make sure that it's verified appropriately and things like this.
  • 36:14 So there's another layer on top of that, where you have the ability with GitHub actions.
  • 36:17 Now it has a support for, I think it's attestations.
  • 36:20 Yeah.
  • 36:21 Do you see it now?
  • 36:22 Yeah, exactly.
  • 36:23 So that's what this is related to.
  • 36:24 So this is effectively saying, because we build stuff on GitHub actions, having a way that you can with right now, it's like an opt in homebrew command, but eventually it will be part of the actual full flow and homebrew itself.
  • 36:37 But being able to say, Hey, this thing that I downloaded, it's that definitely like legit and from homebrew itself and being able to follow the chain essentially to GitHub and say, and GitHub can verify.
  • 36:47 Yeah, this was built from this GitHub actions build at this time in this day and whatever.
  • 36:51 So we're going to have that and backfill it as well for some of our binary packages.
  • 36:55 Well, eventually all of our binary packages.
  • 36:57 So yeah, so that work that Georgia mentioned is going really well.
  • 37:01 And yeah, I'm very, very happy with the progress that's been in so far.
  • 37:06 Awesome.
  • 37:07 Okay.
  • 37:08 Let's talk about your new venture, please, because I'm super curious as to how was it born?
  • 37:14 Obviously, and I'm, I guess was there, there was no other company doing this, right?
  • 37:21 Yeah.
  • 37:22 Yeah.
  • 37:23 So, I mean, there's been kind of, people have talked to, I guess, me and probably some other homebrew interners for years about the idea of like, Hey, like, what about having a company around homebrew?
  • 37:32 There's quite a lot of open source projects.
  • 37:34 There's not all good news around that in the news recently, without naming any names, but there's been a lot of, you know, open source oriented companies that have kind of tried to figure out, Hey, can we make a business around this open source project?
  • 37:49 And yeah, I, in the past have been kind of never that kind of into the idea, probably never felt like the right time for either me or for the homebrew project itself.
  • 38:01 But now homebrew has like a really robust kind of nonprofit governance structure and its own funds and stuff like that.
  • 38:06 It felt like it was a good time.
  • 38:08 I was leaving GitHub anyway, and I had two former GitHub coworkers who I loved working with.
  • 38:15 And the three of us kind of got together and came up with this thing that my CEO, John, called Workbrew.
  • 38:22 It was a, I thought an excellent idea of the name.
  • 38:25 And it's essentially, you know, what homebrew is to doing stuff at home, workbrew is to doing stuff at work.
  • 38:31 So we're building like a layer on top of workbrew itself, on top of homebrew, sorry, itself.
  • 38:36 So it makes it easier for people to be, right now we're focused on if you've got like a, if you're a security professional, a Mac admin, IT admin, and you have, you know, say like a hundred, a thousand devices in your company that are all running homebrew.
  • 38:51 And you have something like the, the X Z or X Z, I guess, as the Americans would call it vulnerability from like a few months ago.
  • 39:00 Then right now there's not really a good way of saying, Hey, I want to make sure that I have the latest version of that on every machine.
  • 39:06 So we, we built something that can kind of do that.
  • 39:08 We have a version of homebrew called workbrew that runs on your machine.
  • 39:13 It looks and feels exactly the same as normal homebrew, but it runs under its own user for improved security.
  • 39:20 And on top of that as well, we have our console, like a cloud service called the workbrew console, and then a background service that runs on your machine called the workbrew agent.
  • 39:29 And effectively between the three of them, you have the ability to run stuff in homebrew as you normally would, but in a more secure fashion and allow your kind of IT administrator to be able to upgrade like stuff throughout the, their fleet of devices as they need to.
  • 39:45 So that provides kind of improved security for people.
  • 39:48 And we've got a lot more stuff coming down the pipeline to make work group even better for engineers who are using homebrew at work,
  • 39:54 who want a little bit more in the way of kind of stability and better handling of versions and things like that.
  • 39:59 So we're in private beta right now, but if you go to workbrew.com, you could read more details.
  • 40:03 You can get a demo with our CEO, but we expect that we're going to be in public beta later this year, and maybe even have a full public release later this year.
  • 40:12 And then we'll be able to release all our pricing information and stuff like that.
  • 40:16 Amazing.
  • 40:17 Okay.
  • 40:18 Well, so I added a link to the website.
  • 40:21 So you're on private beta now, but there is a contact.
  • 40:26 I think there is a contact option there.
  • 40:28 So if you're interested, definitely hit them up.
  • 40:31 I don't know if your private beta is closed now, but
  • 40:34 Yeah, so we're still looking for more people for the private beta.
  • 40:37 So we're looking for, I guess, what we call design partners right now, which would be people who sign up, start using it, appreciate that we're not kind of a V1 yet.
  • 40:46 And people who are kind of willing to work with us to kind of give us feedback in exchange for us kind of building the product more in the direction that might be useful to them than they otherwise might get if they join later down the line when we've got more customers in a year or two.
  • 40:59 Yeah.
  • 41:00 I love that.
  • 41:01 This is like an administrator's dream, because you don't have to pester everybody to do like your updates or like now, I guess you control everything virtually, right?
  • 41:10 Like they have complete control.
  • 41:11 Yeah.
  • 41:12 And we're also trying to do like a fairly, I guess, again, I alluded earlier to some of the kind of less popular stuff around open source.
  • 41:20 One of the nice things we're trying to do as well is the work brew itself is something that you pay money for, you know, we'll have free trials and demos and all that type of stuff as you would expect.
  • 41:31 But essentially work brew is like a paid project to be used by companies and homebrew is, is and will remain an open source project used by individuals.
  • 41:40 And in the course of our work on work brew and even my personal work on work brew, I end up doing a bunch of stuff that makes homebrew better for people as well.
  • 41:49 So I feel like it's, it's also one of those nice things because I can now dedicate more of my time to focusing on work group.
  • 41:54 I need and want homebrew to be better.
  • 41:57 So like in the last week, I, this performance optimization in homebrew sometimes looks like porting a bunch of Ruby code to bash code because it runs even faster.
  • 42:06 So I ported a bunch of Ruby stuff to bash stuff and reordered a bunch of things.
  • 42:09 So a few commands run a hundred times faster than they did before.
  • 42:12 And that was primarily oriented for work brew and for our customers and the way they're using our project.
  • 42:17 But the nice thing is, is that benefits everyone who uses homebrew.
  • 42:20 So you have more people spending more time working on making homebrew better now because of work brew.
  • 42:27 Amazing.
  • 42:28 Can you show us anything?
  • 42:29 Are you up for it?
  • 42:30 Yeah, sure.
  • 42:31 All right.
  • 42:32 Let me see.
  • 42:33 So just screen share for a little demo.
  • 42:35 Yeah.
  • 42:36 There should be a little, there should be a little plus.
  • 42:40 Let me do it.
  • 42:41 Let me do it.
  • 42:42 So let's see.
  • 42:43 And folks, go ahead and check out the website.
  • 42:52 And at the beginning of the session, I said, we're going to do a little giveaway.
  • 42:57 So I'm going to put that link again so you can enter and we'll do it before we go.
  • 43:02 Let me see what I'll be able to see when your screen pops up, Mike.
  • 43:08 Is that popping up or not?
  • 43:11 Let's see.
  • 43:12 Not yet.
  • 43:13 I only see.
  • 43:14 Yeah, not yet.
  • 43:15 I think it says I might have to rejoin the stream.
  • 43:18 Can I leave and come back?
  • 43:19 Oh, that missed me.
  • 43:20 Absolutely.
  • 43:21 No, you'll be fine.
  • 43:22 Let me try this.
  • 43:23 I'll be back in one second, everyone.
  • 43:25 Wait, please.
  • 43:26 All right.
  • 43:27 Please don't leave.
  • 43:28 Mike is coming back.
  • 43:29 Wow.
  • 43:30 Mike is not here.
  • 43:31 Let's try this again.
  • 43:33 Let's see if I can share this banner while keeping myself there.
  • 43:39 I feel like that should work.
  • 43:44 Oh, here we go.
  • 43:47 All right.
  • 43:48 So now, Mike, you're back.
  • 43:49 I'll go ahead and share the QR code again for the giveaway, but I'll share the shortened version
  • 43:54 so you can go ahead and enter.
  • 43:56 If you're up for it, you can buy yourself something nice at the shop.
  • 44:00 Why not?
  • 44:01 And I dropped the link and yes, Workbrew does sound dope.
  • 44:07 Let's take a look at it.
  • 44:10 So this is Workbrew.
  • 44:12 This is the Workbrew console.
  • 44:13 Right now, as it says, you only can get access if you're in our private beta, but I'll give
  • 44:17 you a little sneak preview of what we're doing so far.
  • 44:20 So I'm going to sign with GitHub because we're on open source Friday.
  • 44:24 Why not?
  • 44:25 Let's do that thing.
  • 44:26 So we're going in here.
  • 44:28 So if I see like I've got my little avatar up here, I've got a few things over here that
  • 44:33 I can do.
  • 44:34 I'll just click through these briefly.
  • 44:35 So this is my Workbrew workspace that I'm on here right now.
  • 44:39 So that's basically just my collection of things.
  • 44:42 These devices are all different Macs.
  • 44:44 So this is my Mac here right now.
  • 44:46 So we're going to go and have a look and see like what I've got installed.
  • 44:49 This is also linked to an MDM provider called Kanji.
  • 44:51 You can download the kind of Workbrew package here, which is nicely signed or like distributed
  • 44:56 through your MDM provider if you're using one of those.
  • 44:59 If I go through here, I can see essentially like the stuff that's on my machine.
  • 45:03 I can see all my packages that you have.
  • 45:06 This is all you can infer this from my brew files.
  • 45:08 So this is all public anyway.
  • 45:10 I've got this Node.js is currently outdated.
  • 45:12 There's a 22.1.0 updated here.
  • 45:15 So I could click that button and I can go and say, I want to upgrade that machine.
  • 45:19 Make a upgrade node on that machine.
  • 45:22 I could run that just on my machine here, or I can run them on all the devices in the fleet.
  • 45:26 And similarly as well, I could go and customize homebrew on any given machine.
  • 45:29 I can go and pass some homebrew environment variables here.
  • 45:32 There's all the stuff in the man page in here of all the stuff you can get homebrew to do.
  • 45:37 So I could go and apply that on the machine.
  • 45:39 And then that is set in this kind of system-wide location.
  • 45:42 That means any homebrew on that machine is going to use these environment variables.
  • 45:45 So that's our today's little brief demo.
  • 45:48 Oh, no.
  • 45:49 In fact, let me see.
  • 45:50 I'll share my terminal actually as well.
  • 45:52 Oh, perfect.
  • 45:53 Even more fun times in terminal land.
  • 45:56 Give me one second.
  • 46:05 So where are we?
  • 46:07 Present show screen.
  • 46:14 So.
  • 46:15 There we go.
  • 46:16 This is my -- let's see.
  • 46:18 Can I make this a bigger size so you can see some of this?
  • 46:21 Let me -- I'm going to try and make this nice and big.
  • 46:24 Thank you.
  • 46:25 Oh, no.
  • 46:26 It's now going too big.
  • 46:27 This is like Tetris with a terminal.
  • 46:30 This is terrifying what's happening.
  • 46:32 Anyway, so this is my terminal.
  • 46:34 My machine is called MicBook because I'm a dad and I like silly jokes like that.
  • 46:38 Yeah.
  • 46:39 So homebrew and workbrew work pretty similar.
  • 46:42 So if I run brew version, then I can see I'm on workbrew 0.6.
  • 46:46 And then homebrew has all these details.
  • 46:48 If I run brew config, then I can see all my stuff that I've been using.
  • 46:50 My stuff that I've set up by, you know, my workbrew version.
  • 46:54 But then all my homebrew stuff runs as it normally does.
  • 46:57 If I have -- I guess we saw the node stuff earlier.
  • 47:00 So let's upgrade node.
  • 47:02 So this is using homebrew.
  • 47:06 If any of you haven't seen homebrew before, this is like the typical way that homebrew is doing its thing.
  • 47:11 As I said, that's the pouring thing that I mentioned earlier.
  • 47:13 So this makes me -- oh, this is a new bug.
  • 47:16 I'm probably going to go fix this later.
  • 47:18 So I've gone and poured nodes here, which has got my new version of node.js.
  • 47:25 I have homebrew auto clean up everything afterwards.
  • 47:28 So that's in here.
  • 47:29 And the only real sign that this is anything different, this is workbrew, is this little coffee cup here.
  • 47:34 So instead of using the beer icon, by default, homebrew -- sorry, workbrew will use this little coffee cup.
  • 47:38 But yeah.
  • 47:39 But other than that, everything works pretty much the same.
  • 47:41 But if you -- if we want to -- if you want to go in the real -- the real fun deep dive stuff, you can go and look.
  • 47:47 So we have -- if I'd one -- excuse me while I figure my current setup.
  • 47:54 But yeah, we want which brew.
  • 47:55 This is not actually going -- normally this would go to opt homebrew bin brew.
  • 48:02 So let's see what's going on there.
  • 48:04 So we have opt homebrew bin brew, which is like a normal homebrew installation.
  • 48:07 Everything in here is like what you would normally see in homebrew.
  • 48:10 But this is now all owned by workbrew now.
  • 48:14 So when I'm running brew from the opt workbrew bin, it is running this.
  • 48:23 This is owned by root instead of normally by workbrew or by the normal user.
  • 48:27 So this lets me go and run everything and I don't need to be an admin.
  • 48:30 And it all intelligently changes to the other user and stuff like that.
  • 48:33 So it's basically -- it's nice.
  • 48:36 It works essentially the same way as homebrew, but it's dramatically more secure
  • 48:40 and nicely integrated.
  • 48:41 So I can kind of send commands to the machine from the remote console
  • 48:45 that I showed you before and everything like that.
  • 48:47 So welcome to workbrew.
  • 48:49 Very neat.
  • 48:50 Very neat.
  • 48:51 Let's see the question.
  • 48:52 So we can push package out to a fleet with workbrew.
  • 48:55 This is -- there is a good package that should use code committed send.
  • 49:01 I'm not sure.
  • 49:02 Committed send.
  • 49:03 I'm going to have to check it out.
  • 49:04 Yeah.
  • 49:05 And there was a really good question above actually from --
  • 49:08 Let me see.
  • 49:09 I think.
  • 49:10 Oh, yeah.
  • 49:11 Let me see.
  • 49:12 Was it about --
  • 49:15 It wasn't about workbrew, but it was about open source stuff.
  • 49:20 So I thought that -- but I thought it was really interesting.
  • 49:21 Oh, yes.
  • 49:22 Yes.
  • 49:23 We got to that before we finish.
  • 49:24 Absolutely.
  • 49:25 Yes, please.
  • 49:26 This one.
  • 49:28 And this is dear and dear to everybody that's thinking about maybe contributing doesn't feel like they're quite there yet.
  • 49:35 So how much time did it take you?
  • 49:37 What did it take to become confident in open source contributing?
  • 49:40 Yep.
  • 49:41 And how do you deal with the expectations of all reviewers?
  • 49:43 Or when do you know your code is good enough?
  • 49:45 Yep.
  • 49:46 So I'm going to work backwards from the end.
  • 49:49 So your code is never good enough.
  • 49:51 My code is never good enough.
  • 49:52 I've been doing, you know, I've been probably writing code in some form for, I don't know, maybe, I guess, just probably over 20 years now.
  • 50:00 And I've been working on Homebrew for 15, but I still -- this very week, you can go and have a look at the Homebrew tracker and see how in that performance PR I mentioned earlier.
  • 50:09 I also broke something which broke a bunch of Homebrew's testing.
  • 50:13 It broke things for some users and everything like that.
  • 50:15 So that code was not good enough.
  • 50:17 It got reviewed by someone else, a very talented code reviewer and programmer, but he did not spot the mistake either.
  • 50:23 So there you go.
  • 50:24 That's what's going to happen.
  • 50:25 But I think if I can give anyone advice, and this goes to whether you're doing open source or whether you're doing closed source stuff or working or learning or whatever, you're going to write bugs.
  • 50:36 The one inevitability with all software is there are going to be bugs.
  • 50:39 And, like, also, the sooner you can detach the sense of if you introduce the bug that, like, you don't beat yourself up and be like, I'm a bad person, I'm an idiot, I suck, whatever it may be.
  • 50:51 And it's just be like, well, everyone writes code and sometimes you write some bugs and sometimes you don't write some bugs, right?
  • 50:56 And if I was writing code that had to be on the space shuttle or whatever, then chances are probably the number of bugs would be reduced, but it would take me a lot longer to do it.
  • 51:05 And sometimes actually spending that time and doing things really, really, really slowly, but really carefully is what's worthwhile.
  • 51:12 And sometimes it's not.
  • 51:14 And as to the first question, how much time did it take you to become confident in open source contributing?
  • 51:20 I guess I got started with open source probably, you know, less than two or three years after I started coding for the first time ever, really.
  • 51:30 I didn't really do any meaningful coding before I did a degree when I did computer science.
  • 51:35 And I used Linux back in those days and I kind of, you know, I sort of start getting involved with contribution.
  • 51:40 That was all this was all before GitHub.
  • 51:42 So the contribution and I sent a few patches back and forth and stuff like that.
  • 51:47 But it mainly looked in the early days, like just hang out in RC channels and helping people out where I could or posting on issues where I could figure stuff out or testing other people's patches or whatever it may be and writing some docs and stuff.
  • 51:59 But with GitHub, the beautiful thing is, I mean, I don't think you need to be really great or really confident or whatever.
  • 52:06 Like it's the best way to learn and to get good is just to get started.
  • 52:10 Right. And as I said, with Homebrew, I didn't know any Ruby to begin with.
  • 52:13 And a lot of the Ruby I wrote was terrible.
  • 52:16 A lot of the Ruby I still write is terrible, but it's about kind of just learning along the way and trying to enjoy that experience.
  • 52:23 And at the end of the day, on a project like Homebrew, if you're sending a contribution, like everyone wants you to succeed.
  • 52:28 Everyone wants you to learn and get better.
  • 52:30 And we all kind of care about growing the number of people who contribute to open source and Homebrew and everything like that.
  • 52:36 So, yeah, I would just encourage you to, like, just try it.
  • 52:40 And a good thing that people used to say a lot less so now in open source was this idea of scratching your own itch and what was meant by that.
  • 52:48 And I think it's a good thing that you can learn from if you want to get started with open source contribution is this idea of the best bug to fix is a bug that's really annoying you.
  • 52:58 Because even if it might be harder than a really easy bug, then I guess, yeah, Pranav just asked.
  • 53:04 He said he wanted to contribute as well.
  • 53:06 Like, yeah, the best way to contribute is find something that annoys you.
  • 53:09 It's either a bug or something doesn't work quite the way you expect it to or maybe fail some of the time or whatever.
  • 53:16 And it's much easier, I think, to motivate yourself to work on that stuff where it's something where, you know, like, hey, if this gets merged and included and depending on the software and a new release or gets released straight away, then I can benefit from that straight away.
  • 53:31 You know, at the end of the day, I still use Homebrew.
  • 53:33 I still use Homebrew every day.
  • 53:35 Right.
  • 53:36 And the things I'm most likely to fix most quickly in Homebrew are the things that annoy me the most.
  • 53:40 The performance improvement I added for, you know, for work brew but went into Homebrew.
  • 53:46 No one told me to do that.
  • 53:48 A customer don't request that.
  • 53:50 I essentially requested myself because I noticed something was too slow.
  • 53:53 And I was getting very angry because I'm very impatient that something took a second when I thought it should take 0.1 of a second.
  • 53:59 So I made it take 0.1 of a second instead of taking a second.
  • 54:01 And now I'm happy.
  • 54:02 But if, you know, if I'd gone to a list and was like, oh, well, you know, which issue is going to help other people the most?
  • 54:08 It probably wouldn't have been that one, but it's the one that I found it the easiest to make myself to work on.
  • 54:13 So there you go.
  • 54:14 Good luck to all of you.
  • 54:15 Yeah.
  • 54:16 Thank you so much.
  • 54:17 The motivation came from a personal problem.
  • 54:19 So find the thing that annoys you, the thing that you want to fix or the thing that you're into, the thing that you're like, you know, interested on and it makes you excited to sit down and write code.
  • 54:29 Mike, it's been so nice having you.
  • 54:31 Thank you so much.
  • 54:32 Is there anything coming up for you that you want to share?
  • 54:35 Like, are you going to go talk somewhere or no?
  • 54:38 Come back here and talk.
  • 54:39 Yeah.
  • 54:40 So I'm going to speak at, if anyone's in Japan next, in a couple of weeks, I think it is, there's the Ruby Kygi conference.
  • 54:48 It's the main kind of international conference for Ruby in Japan.
  • 54:52 So I'm going to be going over there and I'm going to be speaking about humbrew and Ruby.
  • 54:56 So I'm really excited to do that.
  • 54:58 And I'm pretty much every year.
  • 54:59 I'm at FOSDEM, the free and open source developers European meetup in Brussels in February.
  • 55:05 So humbrew generally has our AGM where we kind of try and get everyone together around that sort of time.
  • 55:11 And so if you're there, if you see me, please don't be shy.
  • 55:15 Like, please come and say hello.
  • 55:16 And I met at a conference last year, a guy called Bruce Perez, who's the guy who created the term open source.
  • 55:24 And I took a gratuitous selfie with him massively fangirled because I feel like, you know, so the thing to remember is if you see me at a conference and if you feel shy or whatever, like, however shy you feel.
  • 55:37 So I felt just as shy if not 10 times as shy when I've met my heroes too.
  • 55:41 And I'm very friendly, really.
  • 55:43 I don't bite and come and say hi, tap me on the shoulder and we'll have a lovely chat.
  • 55:48 Amazing.
  • 55:49 Unless your meat bite or something like, let's let Mike eat.
  • 55:52 And then, then you can go talk to them.
  • 55:54 But thank you so much, Mike.
  • 55:56 I appreciate it.
  • 55:57 I posted the comment, um, on the website for Ruby Kai, Kai, Kai, I can't say it.
  • 56:02 Um, and look at you.
  • 56:04 My Ruby is not Ruby and you're going to speak on a Ruby conference.
  • 56:08 So I love that.
  • 56:09 I love that so much.
  • 56:11 And hopefully, yeah, Sam, hopefully we'll see you there.
  • 56:14 Um, Mike, you're the best.
  • 56:15 Thank you so much for all the amazing advice.
  • 56:17 Thank you to everyone who showed up and asked such thoughtful questions.
  • 56:21 Super appreciate you being here.
  • 56:22 And thank you for, you gave us like a lot, like real life advice and real technical advice.
  • 56:28 So I'm super grateful for your time today.
  • 56:30 Thank you.
  • 56:31 You're very welcome.
  • 56:33 And anyone who asked a question, thank you so much.
  • 56:35 Anyone who's question.
  • 56:36 I didn't get a chance to answer.
  • 56:37 Feel free to send me an email.
  • 56:38 My emails.
  • 56:39 I'm not going to give it out right now.
  • 56:40 It's an exercise to the reader, but it's relatively easy to find.
  • 56:43 And if you email me, then I'll do my best to respond.
  • 56:46 Have a great weekend, everyone.
  • 56:47 There you go.
  • 56:48 Thank you, Mike.
  • 56:49 We'll see you hopefully again soon.
  • 56:51 Once you go out with work, would you have to come back and do it on a demo?
  • 56:54 Please, please, please.
  • 56:55 Thank you.
  • 56:56 Thank you, Mike.
  • 56:57 Appreciate you so much.
  • 56:58 Thank you everyone who joined us for Open Source Friday.
  • 57:02 Wow.
  • 57:03 That was incredible.
  • 57:04 So exciting to get to catch up with Mike and also like see what Workbrew is going to be doing.
  • 57:09 Really, really exciting things coming up.
  • 57:11 I love that as a byproduct of creating this company, Homebrew is only going to get better and better and better and better.
  • 57:16 Like how cool is that?
  • 57:17 So definitely shout out to that team that's building this solution and shout out to all of the core contributor maintainers, folks that are keeping Homebrew alive.
  • 57:26 Thank you for everything you do.
  • 57:28 Let's do this giveaway, please.
  • 57:31 Please, please, please.
  • 57:32 Don't leave me yet.
  • 57:33 I'm going to beam the...
  • 57:35 There we go.
  • 57:36 If you haven't entered yet, I'm going to give it like 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
  • 57:42 And we'll go ahead and do this giveaway because today is a special day, folks.
  • 57:48 Special day.
  • 57:49 Thank you again to everyone who joined.
  • 57:52 You're the absolute best.
  • 57:54 All right.
  • 57:55 Let's go ahead and...
  • 57:56 And I'm going to use the tool.
  • 57:57 I'm going to use the little app.
  • 57:58 So there shall be no nepotism in the giving of the awards.
  • 58:03 But thank you.
  • 58:04 Let's do it quickly.
  • 58:05 And shout out to this.
  • 58:10 I think...
  • 58:11 I don't know if it's not an open source project, but we're definitely taking it.
  • 58:15 Maybe you had an MIT license that allowed us to take it.
  • 58:17 So the original creator of this is called iSlam.
  • 58:20 We're going to drop them a shout out and some stars.
  • 58:23 All right.
  • 58:24 Let's see.
  • 58:27 Beautiful.
  • 58:28 Congratulations, GearHeads.
  • 58:29 Thank you for being here.
  • 58:31 And to every single one of you who was here with us this Open Source Friday,
  • 58:36 thank you for supporting Open Source.
  • 58:38 Hey, if you know a maintainer, tell them congratulations.
  • 58:41 I feel like the entire month of May is a month for maintainers to be celebrated.
  • 58:45 So tell them congratulations.
  • 58:48 Give them a shout out on Twitter.
  • 58:50 Never X.
  • 58:51 On LinkedIn.
  • 58:52 Whatever.
  • 58:53 You know, let's do these things in public and show our appreciation and bring some positivity
  • 58:57 to this.
  • 58:58 That is so important to all of us.
  • 58:59 Thank you, everyone.
  • 59:00 GearHeads, I'll be sending you an email shortly.
  • 59:04 I appreciate all of you.
  • 59:05 We'll see you next week for another Open Source Friday.
  • 59:07 Thank you for being here.
  • 59:08 Bye-bye.
  • 59:09 Take the rest of the day off.