AI transcript
0:00:11 He is a legend in the programming and tech world, brilliant and insightful,
0:00:14 sometimes controversial, and always fun to talk to.
0:00:20 He’s the creator of Ruby on Rails, which is an influential web development framework
0:00:26 behind many websites used by millions of people, including Shopify, GitHub, and Airbnb.
0:00:34 He is the co-owner and CTO of 37 Signals that created Basecamp, Hey, and Once.
0:00:42 He is a New York Times bestselling author, together with his co-author, Jason Fried, of four books,
0:00:47 Rework, Remote, Getting Real, and It Doesn’t Have to be Crazy at Work.
0:00:54 And on top of that, he’s also a race car driver, including being a class winner at the legendary
0:00:56 24-hour Le Mans race.
0:01:01 And now, a quick few-second mention of a sponsor.
0:01:05 Check them out in the description or at lexfriedman.com slash sponsors.
0:01:07 It’s the best way to support this podcast.
0:01:11 We got a couple of new sponsors, actually, so please go support them.
0:01:18 Uplift Desk for beautiful workspaces, Lindy for building AI agents, Element for hydration,
0:01:22 Shopify for selling stuff online, and NetSuite for your business.
0:01:23 Choose wisely, my friends.
0:01:25 And now, on to the full ad reads.
0:01:29 I do try to make them interesting, but if you skip, please still check out our sponsors.
0:01:31 I enjoy their stuff.
0:01:32 Maybe you will, too.
0:01:36 To get in touch with me, for whatever reason, go to lexfriedman.com slash contact.
0:01:37 All right, let’s go.
0:01:40 This episode is brought to you by Uplift Desk.
0:01:44 Like I mentioned, it’s a new sponsor, but I’ve been using them for many, many years.
0:01:47 I have six Uplift Desks.
0:01:50 So three of them are in the podcast studio.
0:01:54 So across many years, I don’t know how many years, three, four years, if you see the sort
0:02:01 of wood-colored desk in the podcast studio on camera, those are Uplift Desks.
0:02:04 Once again, have loved them, have used them for many years.
0:02:06 I also use it for the programming setup.
0:02:11 I use it for the robotics work I’m doing, and I’m also using it for music when I practice
0:02:11 guitar.
0:02:15 For programming, I split my time standing and sitting.
0:02:20 I think they have some ridiculous amount of possible desk combinations, but I went with
0:02:26 the biggest or close to the biggest, and mostly because I love horizontal desk space.
0:02:28 Anyway, I can’t believe they’re sponsoring the podcast.
0:02:31 I feel truly fortunate that they are.
0:02:33 I feel truly fortunate to be alive.
0:02:37 It’s just all of us feels like a simulation, because I’ve been using them for so long.
0:02:42 The fact that they somehow decided out of nowhere to be sponsoring this podcast is like,
0:02:44 what is happening?
0:02:51 Anyway, go to upliftdesk.com and use code LEX to get four free accessories, free same-day
0:02:56 shipping, free returns, a 15-year warranty, and an extra discount off your entire order.
0:03:02 That’s U-P-L-I-F-T-D-E-S-K.com slash LEX.
0:03:05 This episode was also brought to you by Linde.
0:03:09 It’s a platform that helps you build multiple AI agents in minutes.
0:03:11 No code.
0:03:12 It could do a lot of stuff.
0:03:13 Sales, customer support, recruiting.
0:03:15 It could take care of phone calls.
0:03:17 It can do a bunch of email automations.
0:03:20 Integrates quite incredibly with a huge number of services.
0:03:22 All of the Google services.
0:03:25 Drive, Gmail, Slack, HubSpot.
0:03:27 User-friendly, easy to set up.
0:03:28 Let’s see.
0:03:29 You can do a bunch of other kind of stuff.
0:03:30 Meetings.
0:03:32 A lot of people talk about using it for meetings.
0:03:33 Meetings, recording.
0:03:34 It can monitor job boards.
0:03:37 It can snapshot Airbnb listings via Gmail.
0:03:44 It can easily set up if this, then that automations, including filters and conditions for more tailored
0:03:45 responses to emails.
0:03:51 And they have just a huge number of templates and recipes to get you started with any kinds of automations.
0:03:55 You can deploy your first AI agent in just 24 hours.
0:04:04 Sign up at go.lindy.ai slash lex to get two weeks free plus 50% off a pro plan for a year.
0:04:07 That’s go.lindy.ai slash lex.
0:04:13 This episode is also brought to you by Element, my daily zero sugar and delicious electrolyte mix.
0:04:20 I’m sipping in it right now because I had a crazy difficult workout at a shitty hotel gym.
0:04:26 I’ve actually not been to many hotels in my life that have a great gym, but the challenge
0:04:29 and many of the amazing things in life are all about the challenge.
0:04:35 The challenge with hotels and the hotel gyms is to get a good workout while there.
0:04:41 The one positive thing about those gyms is that they’re usually empty and there is on
0:04:47 the negative side of the empty, a kind of depressing quality, almost like a sad coldness.
0:04:51 And it is usually extremely air conditioned to that gym.
0:04:56 The treadmills have not been used for years and there’s the dumbbells that only go up to
0:05:01 50 and those haven’t been used and there’s just a sadness to the whole thing.
0:05:10 So you have to reinvigorate the space, I would say, by going nuts and just sweating your ass
0:05:10 off.
0:05:11 That’s what I try to do.
0:05:16 Anyway, before that and after that, I hydrate and rehydrate always with Element.
0:05:20 Get a free eight count sample pack for free with any purchase.
0:05:23 Try it at drinkelement.com slash lex.
0:05:29 This episode is also brought to you by Shopify, a platform designed for anyone to sell anywhere
0:05:31 with a great looking online store.
0:05:37 In fact, in this very episode, we talk about how amazing Toby, the CEO of Shopify and Shopify
0:05:42 is because of the underlying technology of it running on Rails, Ruby on Rails.
0:05:49 And DHH lays out brilliantly and rigorously with clarity in an awe-inspiring way, I would say,
0:05:53 why Ruby and Ruby on Rails is just a beautiful programming language.
0:05:58 And one of the concerns, sort of the memes about it was that, does it really scale?
0:06:04 And I think Shopify also responding with memes on top of memes showed that it can scale incredibly.
0:06:08 I’m always fascinated by the technological details that allow this kind of scale.
0:06:11 That’s true for social networks.
0:06:12 That’s true for e-commerce sites.
0:06:17 I’ll probably do a conversation with Pavel Durov, a telegram event, and one of the things
0:06:23 that’s really fascinating to me is the very detailed technological challenges of pulling that off.
0:06:26 And I’ll probably also talk to Toby eventually, in part for that.
0:06:31 But there’s a lot of really incredible, brilliant people in Silicon Valley who have all said
0:06:37 just how smart Toby is, not just in the space of technology, but also in the space of business
0:06:43 and the space of philosophy broadly about human existence, about this whole thing that we have
0:06:43 going on here.
0:06:49 But anyway, you can sign up for a $1 per month trial period at shopify.com slash lex.
0:06:51 That’s all lowercase.
0:06:54 Go to shopify.com slash lex to take your business to the next level today.
0:07:01 This episode is also brought to you by NetSuite, an all-in-one cloud business management system.
0:07:05 It’s an ERP system, enterprise resource planning.
0:07:07 That’s the machine within the machine of a company.
0:07:11 You could think of it as a kind of API between the different components of a company and manages
0:07:16 those different components and ensures that they can communicate effectively, manages financials,
0:07:20 HR, inventory, supply, e-commerce, and all that kind of stuff.
0:07:26 One of my favorite podcasts called Founders that I highly recommend to everybody is making
0:07:30 me fall in love with businesses and entrepreneurs of all kinds, more and more.
0:07:33 It’s such a fascinating puzzle how to get right.
0:07:38 And the people that do in all the different ways that they do are just geniuses.
0:07:44 They’re bold, they’re fearless, sometimes lucky, but almost always there’s a deep wisdom in there
0:07:47 how to pull it off, how to put it all on the line and make it happen.
0:07:51 David is the host of the podcast. I’m sure I’ll do a podcast with him eventually.
0:07:54 Anyway, the point is creating and running a business is difficult.
0:08:01 So yeah, download the CFO’s Guide to AI and Machine Learning at netsuite.com slash lex.
0:08:03 That’s netsuite.com slash lex.
0:08:06 This is the Lex Freemant Podcast.
0:08:11 To support it, please check out our sponsors in the description or at lexfreemant.com slash sponsors.
0:08:18 And consider subscribing, commenting, and sharing the podcast with folks who might find it interesting.
0:08:23 I promise to work extremely hard to always bring you nuanced, long-form conversations
0:08:27 with a wide variety of interesting people from all walks of life.
0:08:31 And now, dear friends, here’s DHH.
0:08:54 For someone who became a legendary programmer, you officially got into programming late in life.
0:09:00 And I guess that’s because you tried to learn how to program a few times and you failed.
0:09:06 So can you tell me the full story, the saga of your failures to learn programming?
0:09:08 Was Commodore 64 involved?
0:09:10 Commodore 64 was the inspiration.
0:09:12 I really wanted a Commodore 64.
0:09:15 That was the first computer I ever sat down in front.
0:09:18 And the way I sat down in front of it was I was five years old.
0:09:22 And there was this one kid on my street who had a Commodore 64.
0:09:23 No one else had a computer.
0:09:28 So we were all the kids just getting over there and we were all playing Yer Kung Fu.
0:09:30 I don’t know if you’ve ever seen that game.
0:09:31 It was one of the original fighting games.
0:09:33 It’s really a great game.
0:09:35 And I was playing that for the first time at five years old.
0:09:42 And we were like seven kids sitting up in this one kid’s bedroom, all taking our turn to play the game.
0:09:45 And I just found that unbelievably interesting.
0:09:50 And I begged and I begged and I begged my dad, could I get a computer?
0:09:53 And he finally comes home.
0:09:53 He’s like, I got your computer.
0:09:56 I was like, yes, my own Commodore 64.
0:10:02 And he pulls out this black, green, and blue keyboard.
0:10:05 That’s an Armstrad 464.
0:10:07 I was like, dad, what’s this?
0:10:10 The disappointment.
0:10:12 This is not a Commodore 64.
0:10:13 But it was a computer.
0:10:20 So I got my first computer at essentially six years old, that Armstrad 464.
0:10:23 And of course, the first thing I wanted to do, I wanted to play video games.
0:10:32 And I think the computer, which he, by the way, had traded for a TV and a stereo recorder or something like that, came with like two games.
0:10:36 One was this Frogger game where you had to escape from underground.
0:10:38 It was actually kind of dark, like this frog.
0:10:39 You’re trying to get it out from underground.
0:10:41 And I was just, I was pretty bad at it.
0:10:43 And I only had those two games.
0:10:45 And then I wanted more games.
0:10:52 And one way to get more games when you’re a kid who doesn’t have a lot of money and can’t just buy a bunch of games is to type them in yourself.
0:11:00 Back in 84, 85, magazines would literally print source code at the back of their magazines.
0:11:02 And you could just sit and type it in.
0:11:03 So I tried to do that.
0:11:09 And it would take like two hours to print this game into the Armstrad.
0:11:13 And of course, I’d make some spelling mistake along the way and something wouldn’t work.
0:11:15 And the whole thing, I wasn’t that good of English.
0:11:16 I was born in Denmark.
0:11:21 So I was really trying to get into it because I wanted all these games.
0:11:22 I didn’t have the money to buy them.
0:11:25 And I tried quite hard for quite a while to get into it.
0:11:26 But it just never clicked.
0:11:29 And then I discovered the magic of piracy.
0:11:37 And after that, I kind of basically just took some time off from learning the program because, well, now suddenly I had access to all sorts of games.
0:11:41 So that was the first attempt, like around six, seven years old.
0:11:45 And what’s funny is I remember these fragments.
0:11:48 I remember not understanding the purpose of a variable.
0:11:53 If there’s a thing and you assign something, why would you assign another thing to it?
0:11:55 So for some reason, I understand constants.
0:11:58 Like constants made sense to me, but variables didn’t.
0:12:01 Then maybe I’m 11 to 12.
0:12:04 I’ve gotten into the Amiga at this point.
0:12:05 The Amiga, by the way.
0:12:08 Still perhaps my favorite computer of all time.
0:12:13 I mean, this is one of those things where you’re like, people get older and they’re like, oh, the music from the 80s was amazing.
0:12:25 To me, even as someone who loves computers, who loves new computers, the Amiga was this magical machine that was made by the same company that produced the Commodore 64.
0:12:31 And I got the Amiga 500, I think in 87.
0:12:32 Look at this sexy thing.
0:12:35 That is a sexy machine right there.
0:12:39 This is from an age, by the way, where computing wasn’t global in the same sense.
0:12:42 The different territories had different computers that were popular.
0:12:48 The Amiga was really popular in Europe, but it wasn’t very popular at all in the U.S. as far as I understand it.
0:12:49 It wasn’t popular in Japan.
0:12:51 There were just different machines.
0:12:54 The Apple II was a big thing in the U.S.
0:12:57 I’d never even heard of Apple in the 80s in Copenhagen.
0:13:02 But the Amiga 500 was the machine that brought me to want to try it again.
0:13:03 And you know what’s funny?
0:13:07 The reason I wanted to try it again was I remembered the first time to learn.
0:13:12 And then there was this programming language that was literally called Easy Amos.
0:13:14 Like the easy version of Amos.
0:13:17 I’m like, if it’s Easy Amos, how hard can it be?
0:13:19 I got to be able to figure this out.
0:13:21 And this time I tried harder.
0:13:24 I got into conditionals.
0:13:25 I got into loops.
0:13:26 I got into all these things.
0:13:28 And I still, I couldn’t do it.
0:13:34 And on the second attempt, I really got to the point of like, maybe this is, maybe I’m not smart enough.
0:13:36 Maybe programming is just enough.
0:13:38 Maybe it’s too much math.
0:13:41 Like, I like math in this sort of superficial way.
0:13:47 I don’t like it in the deep way that some of my, perhaps slightly nerdier friends did, who I had tremendous respect for.
0:13:49 I’m like, I’m not that person.
0:13:53 I’m not the math geek who’s going to figure it all out.
0:14:02 So after that attempt with Easy Amos and failing to even get, I don’t even think I completed one even very basic game.
0:14:04 I thought, the program is just not for me.
0:14:06 I’m going to have to do something else.
0:14:07 I still love computers.
0:14:08 I still love video games.
0:14:15 I actually, at that time, had already begun making friends with people who knew how to program, who weren’t even programming Easy Amos.
0:14:16 They were programming freaking Assembler.
0:14:24 And I would sit down and just go, how do you, the moves and the memories and the copies, how do you even do this?
0:14:30 I don’t even understand how you go from this to Amiga demos, for example.
0:14:31 That was the big thing with the Amiga.
0:14:33 It had this wonderful demo scene in Europe.
0:14:39 It’s this really interesting period of time in the Amiga’s history.
0:14:50 We had all these programmers spread out mostly all over Europe who would compete on graphic competitions where you could probably bring one of these up on YouTube.
0:15:02 On this thing, they would make these little almost like music videos combining some MIDI music, combining some cool graphics, and they would do all of it in like 4K.
0:15:07 4 kilobytes, that is, not 4Ks of revolution, 4 kilobytes of memory.
0:15:10 And I just thought that was such a cool scene.
0:15:12 This was obviously pre-internet.
0:15:17 It was even pre-BBS, bulletin board systems, to some extent.
0:15:26 It was you swap your demo software with someone else by sending them a disk in the mail, like the 3.5s.
0:15:29 And I just, I was enamored with that whole scene.
0:15:31 I was enamored with what they were able to create.
0:15:35 And I just wanted to be a part of it, even though I kind of didn’t have any skills to contribute.
0:15:38 And that’s how I got into running BBSs.
0:15:44 I didn’t learn programming then, and I wouldn’t learn programming until much later, until I was almost 20 years old.
0:15:55 The bulletin board systems existed in this funny space where they were partly a service to the demo scenes, allowing all these demo groups to distribute their amazing demos.
0:16:00 And then it was also a place to trade piracy software, pirated software.
0:16:06 And I ended up starting one of those when I was 14 years old, in my tiny little bedroom in Copenhagen.
0:16:09 I had my, at that point, Amiga 4000.
0:16:15 I had three telephone lines coming into my tiny room.
0:16:15 Nice.
0:16:18 Which was funny because, again, I’m 14 years old.
0:16:23 By the time I was installing my third line, you had to get someone from the telephone company to come do it.
0:16:27 I get this guy, and he’s just looking around like, what is this?
0:16:32 Why the hell is a 14-year-old having three phone lines into their tiny little bedroom?
0:16:34 What are, what’s going on here?
0:16:39 Why are all these modems blinking red and black and making funny sounds?
0:16:40 Did your parents know?
0:16:42 They did and they didn’t.
0:16:44 They knew I had the phone lines.
0:16:45 They knew I had the computer.
0:16:53 I don’t think they really understood that I was trading pirated software that was both illegal and whatever else was going on.
0:17:03 We should probably say that in Europe, maybe you can comment on this, especially in Eastern Europe, but Europe in general, piracy, I think, was more acceptable than it was in the United States.
0:17:04 I don’t know.
0:17:07 Maybe it’s just my upbringing.
0:17:09 Even that conversation wasn’t present.
0:17:15 I never spoke to anyone growing up in Denmark who had any moral qualms whatsoever about piracy.
0:17:22 It was just completely accepted that you’re a kid, you want a lot of games, you don’t have a lot of money.
0:17:22 What do you do?
0:17:23 You trade.
0:17:26 Some people would occasionally buy a game.
0:17:33 I mean, I once bought a Sega Master System and I bought one game because that was what I could afford.
0:17:34 I got Afterburner 2.
0:17:36 I don’t know if you’ve ever played that game.
0:17:43 It’s pretty bad implementation on the Sega Master System, but it was like 600 crowners.
0:17:47 And I was making money at that time doing newspaper delivery.
0:17:51 I had to do that for a month to afford one game.
0:17:55 I like video games way too much to wait a month just to get one game.
0:17:58 So piracy was just the way you did it.
0:18:05 And that was how I got into running this bulletin board system, being part of the demo scene, being part of the piracy scene to some extent.
0:18:11 And then also at some point realizing, oh, you can actually also make money on this.
0:18:16 And this can fund buying more phone lines and buying more modems and buying more Amigas.
0:18:17 Oh, yeah.
0:18:18 That was one of the demo parties.
0:18:19 These were amazing things.
0:18:21 What am I looking at?
0:18:22 Isn’t that amazing?
0:18:23 Look at all those CRT monitors.
0:18:25 All these CRT monitors.
0:18:30 Again, when I was 14, I don’t understand fully why my parents allowed this.
0:18:43 But I traveled from Copenhagen, the capital of Denmark, to Aus, this tiny little town in Jutland, on the train with a bunch of dudes who were like late teens and their 20s.
0:18:44 I’m 14 years old.
0:18:50 I’m lugging my 14-inch CRT monitor with my computer in the back to go to the party.
0:18:51 That was what it was called.
0:18:54 That was the biggest demo scene party at that time.
0:18:55 And it was exactly as you see in that picture.
0:19:03 Thousands of people just lining up with their computers, programming demos all day long, and trading these things back and forth.
0:19:05 That’s kind of awesome.
0:19:06 Not going to lie.
0:19:07 It’s a little ridiculous.
0:19:08 It’s totally awesome.
0:19:13 And I miss it in ways where the internet has connected people in some ways.
0:19:22 But the connection you get from sitting right next to someone else who has their own CRT monitor, who’s lugged it halfway around the country to get there, is truly special.
0:19:25 Because it was also just this burst of creativity.
0:19:27 You’re constantly running around.
0:19:29 You’re constantly surrounded by people who are really good at what they could do.
0:19:31 They’re really good at programming computers.
0:19:32 It’s infectious.
0:19:38 It was part of that pang I felt then going like, oh, man, why can’t I figure this out?
0:19:40 I mean, why can’t I even figure out Easy Amos?
0:19:43 It’s kind of frustrating.
0:19:46 But on your third attempt, you were more successful.
0:19:49 So third attempt is when I start getting it.
0:19:54 This is when I start helping out, let’s say, building things for the internet.
0:20:00 So around 95, I think it is, or 96, I discovered the internet.
0:20:02 Actually, ninth grade.
0:20:03 That was my first experience.
0:20:07 I went to some university in Denmark.
0:20:10 And in ninth grade, we had this excursion.
0:20:12 And they sat us down in front of a computer.
0:20:15 And the computer had Netscape Navigator, the first version.
0:20:18 Or maybe it was even the precursor to that.
0:20:20 And they had a text editor.
0:20:23 And us kids just got like, hey, build something on the internet.
0:20:23 And it was just HTML.
0:20:29 And the first thing you do is like, oh, I can make the text blink by just putting in this tag and saving it.
0:20:38 That moment, that was actually when I reawakened the urge to want to learn the program because I got a positive experience.
0:20:44 All the other experiences I had with programming was I’d spend hours typing something in.
0:20:46 I’d click run and it wouldn’t work.
0:20:52 And I’d get an error message that made no sense to me as a kid, either at 6 or 7 or at 12.
0:20:55 And here I am sitting in front of a computer connected to the internet.
0:20:57 And I’m making text blink.
0:20:58 I’m making it larger.
0:21:00 I’m turning it into an H1 or an H2.
0:21:05 And these guys out here, we just did it for like an hour and a half.
0:21:12 And suddenly I go, oh, I can make things for the internet that someone in Germany can be able to access and see.
0:21:14 And I don’t have to ask anyone for permission.
0:21:16 This is super cool.
0:21:16 I got to do more of this.
0:21:18 So I got into the internet.
0:21:20 I got into working with HTML.
0:21:22 And I still had all these friends from these demo parties.
0:21:26 And I started working with them on creating gaming websites.
0:21:28 I’d write about the video games.
0:21:28 I’d review them.
0:21:34 This was another good way of getting new video games was to walk down to some store and say like, hey, I’m a journalist.
0:21:36 I’m like this 15-year-old kid.
0:21:37 And they’re looking at me.
0:21:38 You’re a journalist?
0:21:40 Yeah, can I borrow some games?
0:21:46 Because this was when games moved on to the PlayStation and these other things you couldn’t just as easily pirate.
0:21:47 At least not at first.
0:21:49 So I went down there, did all that.
0:21:53 And that started the journey of the internet for me.
0:21:58 It started working on these gaming websites, working with programmers, figuring out that I could do something.
0:22:00 I could work on the HTML part.
0:22:02 It’s not really programming, but it kind of smells like it.
0:22:03 You’re talking to a computer.
0:22:05 You’re making it put text on the screen.
0:22:08 And you’re communicating with someone halfway around the world.
0:22:12 So that became my pathway back into programming.
0:22:15 And then slowly I picked up more and more of it.
0:22:22 First website I did with someone, one of these programmers from the demo scene that was dynamic was ASP.net.
0:22:24 It wasn’t even actually called .net.
0:22:25 That was what we started on.
0:22:27 And then we moved on to PHP.
0:22:29 And PHP was when I finally got it.
0:22:30 When it finally clicked.
0:22:41 And conditionals and loops and variables and all of that stuff started to make sense enough to me that I thought, I can do this.
0:22:48 So would it be fair to say that we wouldn’t have DHH without PHP and therefore you owe all your success to PHP?
0:22:50 A hundred percent, that’s true.
0:22:52 And it’s even better than that.
0:22:58 Because PHP to me didn’t just give me a start in terms of making my own web applications.
0:23:00 It actually gave me a bar.
0:23:07 In many ways, I think the pinnacle of web developer ergonomics is late 90s PHP.
0:23:13 You write this script, you FTP it to a server, and instantly it’s deployed.
0:23:15 Instantly it’s available.
0:23:18 You change anything in that file and you reload.
0:23:18 Boom, it’s right there.
0:23:20 There’s no web servers.
0:23:22 There’s no setup.
0:23:25 There’s just an Apache that runs mod.php.
0:23:30 And it was essentially the easiest way to get a dynamic web page up and going.
0:23:35 And this is one of the things I’ve been chasing that high for basically the rest of my career.
0:23:41 That it was so easy to make things for the internet in the mid to late 90s.
0:23:53 How did we lose the sensibilities that allowed us to not just work this way, but get new people into the industry to give them their success experiences that I had?
0:24:13 Adding a freaking blink tag to an HTML page, FTPing a PHP page to an Apache web server without knowing really anything about anything, without knowing anything about frameworks, without knowing anything about setup, all of that stuff have really taken us to a place where it sometimes feels like we’re barely better off.
0:24:19 Web pages aren’t that different from what they were in the late 90s, early 2000s.
0:24:20 They’re still just forms.
0:24:22 They’re still just right to databases.
0:24:27 A lot of people, I think, are very uncomfortable with the fact that they are essentially crud monkeys.
0:24:34 They just make systems that create, read, update, or delete rows in a database.
0:24:40 And they have to compensate for that existential dread by overcomplicating things.
0:24:42 Now, that’s a bit of a character.
0:24:52 There’s more to it, and there’s things you can learn for more sophisticated ways of thinking about this, but there’s still an ideal here, which is why I was so happy you had Peter Levels on, because he still basically works like this.
0:24:54 And I look at that and go like, man, that’s amazing.
0:24:56 Yeah, you’re chasing that high.
0:24:57 He’s been high all along.
0:24:58 Yes.
0:25:03 Using PHP, jQuery, and SQLite.
0:25:08 I think it’s amazing, because he’s proving that this isn’t just a nostalgic dream.
0:25:10 He’s actually doing it.
0:25:11 He’s running all these businesses.
0:25:18 Now, some of that is, as he would admit up first, up front, is that he’s just one guy.
0:25:20 And you can do different things when you’re just one guy.
0:25:31 When you’re working in a team, when I started working on a team, when I started working with Jason Freed on Basecamp, we at first didn’t use version control together.
0:25:39 I used version control for myself, and then I thought, you know what, designers, they’re probably not smart enough to figure out CVS.
0:25:43 And therefore, I was just like, no, no, no, you just FTP it up.
0:25:44 You just FTP it.
0:25:45 I knew they knew how to do FTP.
0:25:53 And then after the third time I had overridden their changes, I was like, goddammit, I guess I got to teach Jason CBS to not do that again.
0:26:05 But I think there’s still way more truth to the fact that we can work the way we did in the 90s, work the way Peter works today, even in the team context.
0:26:12 And that we’ve been far too willing to hand over far too much of our developer ergonomics to the merchants of complexity.
0:26:15 And you’ve been chasing that with Rails 8.
0:26:28 So how do you bring all the cool features of a modern framework and make it no build, make it as easy to create something and to ship it as it was in the 90s with just PHP?
0:26:37 It’s very difficult for me to beat the Peter Lovell’s approach of just, it’s so easy to just ship some PHP.
0:26:38 And it should be.
0:26:40 Why should it be harder than that?
0:26:46 Our computers today are almost infinitely faster than what they were in the 90s.
0:26:49 So shouldn’t we be able to work in even easier ways?
0:26:53 We should be looking back on the 90s and go like, oh, that was way too complicated.
0:27:00 Now we have more sophisticated technology that’s way faster and it allows us to work in these easier to use ways.
0:27:01 But that’s not true.
0:27:07 But now you can see the line I draw in my work with Ruby and Rails and especially with Rails 8.
0:27:18 No build to me is reaching back to that 90s feeling and going, now we can do some of those things without giving up on all the progress.
0:27:20 Because I do think you can get too nostalgic.
0:27:24 I do think you can start just fantasizing that everything was better in the 90s.
0:27:25 It wasn’t.
0:27:26 I mean, I was there.
0:27:28 There was a lot of things that sucked.
0:27:39 And if we can somehow find a way to combine the advantages and advances we’ve had over the past 20 years with that ease of developer ergonomics, we can win.
0:27:50 No build is a rejection of the part of web development I’ve hated the most in the past 10, 15 years, which is the JavaScript scene.
0:27:53 And I don’t say that as someone who hates JavaScript.
0:27:57 I mean, I often joke that JavaScript is my second favorite programmer language.
0:27:59 It’s a very distant second.
0:28:01 Ruby is by far and away number one.
0:28:02 But I actually like JavaScript.
0:28:04 I don’t think it’s a bad language.
0:28:06 It gets a lot of flack.
0:28:11 People add a string of two plus a one and it gives something nonsense.
0:28:13 And I just go like, yeah, but why would you do that?
0:28:14 Just don’t do that.
0:28:18 The language is actually quite lovely, especially the modern version.
0:28:26 ES6 that really introduced a proper class syntax to it so I could work with JavaScript in many of the same ways that I love working with Ruby.
0:28:28 Made things so much better.
0:28:40 But in the early 2010s until quite recently, all of that advancement happened in preprocessing, happened in built pipelines.
0:28:44 The browsers couldn’t speak a dialect of JavaScript that was pleasant to work with.
0:28:58 So everyone started to precompiling their JavaScript to be able to use more modern ways of programming with a browser that was seen as stuck with an ancient version of JavaScript that no one actually wanted to work with.
0:29:01 And that made sense to me, but it was also deeply unpleasant.
0:29:11 And I remember thinking during that time, the dark ages, as I refer to them with JavaScript, that this cannot be the final destination.
0:29:24 There’s no way that we have managed to turn the Internet into such an unpleasant place to work where I would start working on a project in JavaScript using Webpack and all of these dependencies.
0:29:29 And I would put it down for literally five minutes and I would put it down for literally five minutes and the thing wouldn’t compile anymore.
0:29:40 The amount of churn that the JavaScript community, especially with its frameworks and its tooling, went through in the decade from 2010 to 2020 was absurd.
0:29:54 And you had to be trapped inside of that asylum to not realize what an utterly perverse situation we had landed ourselves in.
0:29:57 Why does everything break all the time?
0:29:59 I mean, the joke wouldn’t be just that the software would break.
0:30:00 That would annoy me personally.
0:30:07 But then I’d go on Hacker News and I’d see some thread on the latest JavaScript release of some framework.
0:30:13 And the thread would be like, someone would ask, well, aren’t we using the thing we just used three months ago?
0:30:15 And people would be like, that thing is so outdated.
0:30:17 That’s so three months ago.
0:30:20 You got to get with the new program.
0:30:23 We’re completely rewriting everything for the oomph-teen time.
0:30:29 And anything you’ve learned in the framework you’ve been spending the last amount of time on, it’s all useless.
0:30:31 You got to throw everything out and you got to start over.
0:30:34 Why aren’t you doing it, stupid idiot?
0:30:38 Is that a kind of mass hysteria that took over the developer community, you think?
0:30:41 Like where you have to keep creating new frameworks and new frameworks?
0:30:44 And are we past that dark age?
0:30:46 I think we’re getting out of it.
0:30:51 And we’re getting out of it because browsers have gotten so much better.
0:30:54 There was a stagnation in browser technology.
0:30:57 Some of it was an overhang all the way back from IE5.
0:31:08 So IE5 essentially put the whole internet development experience into a deep freeze because Microsoft won the browser wars in the mid-2000s.
0:31:13 And then they basically disbanded their browser development team because they’re like, all right, job done.
0:31:15 We don’t need any more innovation on the internet.
0:31:19 Can we just go back to writing Windows forms or something now that we control everything?
0:31:26 And it really wasn’t until obviously Firefox kind of kindled a little bit of something.
0:31:31 Then Chrome got into the scene and Google got serious about moving the web forward.
0:31:36 That you had a kindling of maybe the browser could be better.
0:31:39 Maybe the browser wasn’t frozen in time in 2005.
0:31:45 Maybe the browser could actually evolve like the development platform that it is.
0:31:56 But then what happened was you had a lot of smart people who poured in to the web because the web turned out to be the greatest application development platform of all time.
0:31:58 This was where all the money was being made.
0:32:00 This was where all the billionaires were being minted.
0:32:05 This was where the Facebooks and whatever of the world came to be.
0:32:11 So you had all of this brainpower applied to the problem of how to work with the web.
0:32:24 And there were some very smart people with some, I’m sure, very good ideas who did not have programmer happiness as their motivation number one.
0:32:36 They had other priorities and those priorities allowed them to discount and even rationalize the complexity they were injecting everywhere.
0:32:39 Some of that complexity came from organizational structure.
0:32:44 When you have a company like Facebook, for example, that does depend on the web and want to push it forward,
0:32:50 But have sliced the development role, job, into these tiny little niches.
0:32:56 I’m a front-end glob pipeline configurator.
0:32:57 Oh, yeah.
0:33:00 Well, I’m a front-end whatever engineer.
0:33:03 And suddenly the web developer was no longer one person.
0:33:05 It was 15 different roles.
0:33:08 That in itself injected a ton of complexity.
0:33:16 But I also want to give it the bold case here, which was that some of the complexity was necessary to get to where we are today.
0:33:19 That the complexity was a bridge.
0:33:26 It wasn’t the destination, but we had to cross that bridge to get to where we are today, where browsers are, frankly, incredible.
0:33:33 The JavaScript you can write in a text file and then serve on a web server for a browser to ingest is amazing.
0:33:35 It’s actually a really good experience.
0:33:36 You don’t need any preprocessing.
0:33:41 And you can just write text files, send them to a browser, and you have an incredible development.
0:33:47 And we should also say that it can kind of be broken, at least the HTML, but even the JavaScript could be a little bit broken.
0:33:48 And it kind of still works.
0:33:59 Like maybe it half-ass works, but like just the amount of mess, of smelly code that a browser has to deal with is insane.
0:34:05 This is one of the hardest problems in computing today is to parse the entire internet.
0:34:18 Because thankfully for us as web developers, but perhaps not so much for the browser developers, every web page that has ever been created, minus the brief period with Flash, still runs today.
0:34:25 The web page I did in ninth grade would render on a modern browser today, 30 years later.
0:34:28 That is completely crazy.
0:34:36 When you think about the amount of evolution we’ve had with the web, how much better we’ve made it, how many more standards browsers have adopted.
0:34:46 It’s essentially an Apollo project today to create a new browser, which is why it doesn’t happen very often, which is why even companies like Microsoft had to throw in the towel and say we can’t do it.
0:34:49 Now, I actually don’t think that’s good for the web.
0:34:55 There is the danger of the monoculture if we just get a single browser engine that runs everything, and we are in danger of that.
0:35:01 I love the fact that the Lady Bird project, for example, is trying to make a new browser engine from scratch.
0:35:02 I’ve supported that project.
0:35:04 I would encourage people to look into that.
0:35:08 It’s really a wonderful thing.
0:35:12 It’s staffed by a bunch of people who worked on other browser projects in the past.
0:35:14 Truly independent web browser.
0:35:16 We really need that.
0:35:30 But I can hold that thought in my head at the same time I hold the thought in my head that Google’s Chrome was pivotal to the web surviving as the premier web development platform.
0:35:53 If it had not been for Google and their entire business, depending on a thriving open web, Apple, Microsoft, I think would have been just as fine to see the web go away, to disappear into being something that’s just served native web application or native mobile applications and native desktop applications that they could completely control.
0:35:58 So, I have all sorts of problems with Google, but it’s not Chrome.
0:36:09 Chrome is a complete gift to web developers everywhere, to the web as a development platform, and they deserve an enormous amount of credit, I think, for that.
0:36:31 But even if it’s entangled with their business model and half of Chrome is code that spies on you or informs targeted ads and a bunch of things I’m not a big fan of, I can divorce that from the fact that we need champions in the corner of the web who have trillions of dollars of market cap value riding on the open web.
0:36:36 We’re going to take tangents upon a tangent upon a tangent, so let’s go to Chrome.
0:36:43 I think Chrome positive impact on humanities is immeasurable for reasons that you just described.
0:36:51 On the technology front, the features they present, the competition they created, it spurred on this wonderful flourishing of web technologies.
0:36:58 But anyway, I have to ask you about the recent stuff with the DOJ trying to split up Chrome and Google.
0:37:00 Do you think this is a good idea?
0:37:02 Do you think this does harm?
0:37:03 It’s a disaster.
0:37:13 And I say that as someone who’s been very sympathetic to the antitrust fight, because I do think we have antitrust problems in technology.
0:37:23 But the one place where we don’t have them, by and large, is with browsers, is with the tools we use to access the open web.
0:37:25 First of all, we have Firefox.
0:37:30 Now, Firefox is not doing all that great, and Firefox has been propped up.
0:37:37 By Google for many years to deter from exactly what’s going on with the DOJ, that they were the only game in town.
0:37:39 Apple has Safari.
0:37:42 I have a bunch of problems with Apple, too, but I love Safari.
0:37:52 I love the fact that we have a premier browser running on a premier operating system that people can’t turn the web into just a Chrome experience.
0:37:59 But I also think that the open web needs this trillion-dollar champion, or at least benefits from it.
0:38:02 Maybe it doesn’t need it, but it certainly benefits from it.
0:38:09 And of all the things that are wrong with monopoly formation in technology, Chrome is the last thing.
0:38:16 And this is why I get so frustrated sometimes about the anti or the monopoly fight, that there are real problems.
0:38:23 And we should be focusing on the premier problems first, like the toll booths on our mobile phones.
0:38:25 They’re a far bigger problem.
0:38:26 It’s not the open web.
0:38:27 It’s not the tools that we use to access the open web.
0:38:36 If I don’t want to use Chrome, if my customers of my businesses that run on the Internet don’t want to use Chrome, they don’t have to.
0:38:38 We’re never forced to go through it.
0:38:40 The open Internet is still open.
0:38:47 So I think it’s a real shame that the DOJ has chosen to pursue Google in this way.
0:39:00 I do think there are other things you can nail Google for, and there are ad monopoly, maybe, or the shenanigans they’ve done in controlling both sides of the ad ledger, that they both control the supply and the demand.
0:39:01 There are problems.
0:39:02 Chrome isn’t it.
0:39:05 And you end up making the web much worse.
0:39:15 And this is the thing we always got to remember when we think about legislation, when we think about monopoly fights, is you may not like how things look today.
0:39:19 And you may want to do something about it, but you may also make it worse.
0:39:26 The good intentions behind the GDPR in Europe currently has amounted to what?
0:39:45 Cookie banners that everyone on the Internet hates, that helps no one do anything better, anything more efficient, that saves no privacy in any way, shape, or form, has been a complete boondoggle that has only enriched lawyers and accountants and bureaucrats.
0:39:55 Yeah, you said that the cookie banner is a monument for why Europe is losing, is doing the worst of all the regions in tech.
0:40:01 It’s a monument to good intentions leading straight to hell.
0:40:08 And the Europe is actually world-class in good intentions leading straight to hell.
0:40:13 So hell is the cookie accept button that you have to accept all cookies.
0:40:14 That’s what hell looks like.
0:40:18 Over and over, you don’t actually ever get to the web page.
0:40:25 Just on a human scale, try to imagine how many hours every day are wasted clicking that away.
0:40:32 And how much harm we’ve done to the web as a platform that people enjoy because of them.
0:40:36 The Internet is ugly in part because of cookie banners.
0:40:40 Cookie banners were supposed to save us from advertisement.
0:40:42 And advertisement can make the web ugly.
0:40:44 There’s plenty of examples of that.
0:40:48 But cookie banners made the entire Internet ugly in one fell swoop.
0:40:50 And that’s a complete tragedy.
0:40:55 But what’s even worse, and this is why I call it out as a monument to everything the EU gets wrong,
0:40:57 is that we have known this for a decade.
0:41:03 No one anywhere who’s serious believes that cookie banners does anything good for anyone.
0:41:05 Yet we’ve been unable to get rid of it.
0:41:09 There’s this one piece of legislation that’s now, I think, 10 or 12 years old.
0:41:13 It’s complete failure on every conceivable metric.
0:41:16 Everyone hates it universally, yet we can’t seem to do anything about it.
0:41:29 That’s a bankruptcy declaration for any body of bureaucrats who pretend or pretend to make things better for not just citizens, but people around the world.
0:41:32 This is the thing that really gets me about cookie banners, too.
0:41:34 It’s not just the EU.
0:41:35 It’s the entire world.
0:41:39 You can’t hide from cookie banners anywhere on this planet.
0:41:46 If you go to goddamn Mars on one of Elon’s rockets and you try to access a web page, you’ll still see a cookie banner.
0:41:49 No one in the universe is safe from this nonsense.
0:41:52 Probably the interface on the rocket.
0:41:52 It’ll be even slower.
0:41:57 You’ll have basically 150-second ping time.
0:42:01 So it’ll take you 45 seconds just to get through the cookie banners from Mars.
0:42:07 All right, let’s walk back up the stack of this recursive tangents we’ve been taking.
0:42:14 So Chrome, we should say, at least in my opinion, is not winning unfairly.
0:42:18 It’s winning in the fair way by just being better.
0:42:19 It is.
0:42:31 If I was going to steel man the other side just for a half second, people would say, well, maybe, yes, most people do sort of begrudgingly agree that Chrome is a pretty good browser.
0:42:34 But then they’ll say the reason it got dominance was distribution.
0:42:43 And the reason it got distribution was because Google also controls Android and therefore can make Chrome the default browser on all these phones.
0:42:45 Now, I don’t buy that.
0:43:00 And the reason I don’t buy that is because on Android, you’re actually allowed to ship a different browser that has a browser engine that’s not the same as Chrome, unlike on iOS, where if you want to ship a browser, Chrome, for example, ships for iOS.
0:43:00 But it’s not Chrome.
0:43:03 It’s Safari wrapped in a dress.
0:43:09 And every single alternative browser on iOS have to use the Safari web engine.
0:43:10 That’s not competition.
0:43:12 That’s not what happened on Android.
0:43:15 Again, I think there are some nuances to it.
0:43:21 But if you zoom out and you look at all the problems we have with big tech, Chrome is not it.
0:43:22 Chrome won on merits.
0:43:28 I begrudgingly have switched to Chrome on that realization alone.
0:43:30 As a web developer, I just prefer it.
0:43:32 I like Firefox in many ways.
0:43:33 I like the ethos of it.
0:43:36 But Chrome is a better browser than Firefox, full stop.
0:43:39 And by the way, we’ve never mentioned Edge.
0:43:40 Edge is also a good browser.
0:43:43 Because it’s also Chrome in a dress.
0:43:44 But it never gets the love.
0:43:46 I don’t think I’ve ever used Bing.
0:43:49 And I’m sure Bing is really nice.
0:43:50 Maybe you have.
0:43:52 Because you know what is Bing in a dress?
0:43:52 What?
0:43:53 DuckDuckGo.
0:43:56 Which is actually the search engine that I use.
0:43:59 DuckDuckGo gets its search results from Bing.
0:44:00 Or at least it used to.
0:44:02 If they changed that, that would be news to me.
0:44:08 Well, maybe everything is just a wrap or a dress.
0:44:09 Everything is wearing a dress.
0:44:10 Underneath there’s some other.
0:44:11 There’s some of that.
0:44:11 It’s turtles.
0:44:13 Dresses all the way down.
0:44:13 Okay.
0:44:14 What were we talking about?
0:44:19 We got there from JavaScript and from you learning how to program.
0:44:25 So eventually, the big success story is when you built a bunch of stuff with PHP.
0:44:29 And you were like actually shipping things.
0:44:30 Yes.
0:44:33 And that’s when the Ruby story came.
0:44:38 So your big love affair with programming began there.
0:44:39 So can you take me there?
0:44:40 What is Ruby?
0:44:42 Tell the story of Ruby.
0:44:43 Explain Ruby to me.
0:44:54 PHP was what converted me from just being able to fondle HTML and turn out some web pages to actually being able to produce web applications myself.
0:44:58 So I owe a tremendous gratitude to PHP in that regard.
0:45:02 But I never thought of PHP as a calling.
0:45:06 I never thought I’m a professional programmer who writes PHP.
0:45:08 That’s who I am and that’s what I do.
0:45:16 I thought of PHP as a tool I needed to smack the computer with until it produced web applications I wanted.
0:45:18 It was very much a means to an end.
0:45:21 I didn’t fall in love with PHP.
0:45:26 I’m very grateful that it taught me the basics of programming.
0:45:29 And I’m very grateful that it set the bar for the economics.
0:45:35 But it really wasn’t until Ruby that I started thinking of myself as a programmer.
0:45:47 And the way that came about was that the first time I ever got hired as a professional programmer to write code was actually by Jason Fried, my business partner still.
0:45:55 All the way back in 2001, I had been working on these gaming websites in PHP for essentially 18 months at that point.
0:45:58 No one had been paying me to do code in that regard.
0:46:08 And I connect with Jason Fried over an email sent from Copenhagen, Denmark to Chicago, Illinois, to a person who didn’t know who I was.
0:46:11 I was just offering solicited advice.
0:46:15 Jason had asked a question on the Internet and I had sent him the answer and he was asking in PHP.
0:46:18 And I’d send him the answer to that question.
0:46:23 And we started talking and then we started working, which, by the way, is a miracle of what the Internet can allow.
0:46:31 How can a kid in Copenhagen who’s never met this guy in Chicago connect just over email and start working together?
0:46:35 And by the way, we’re still working together now, 24 years later.
0:46:36 That’s incredible.
0:46:40 But we started working together and we started working together on some client projects.
0:46:42 Jason would do the design.
0:46:43 37 Signals would do design.
0:46:45 I would bring the programming PHP.
0:46:53 And after we worked on, I think, two or three client projects together in PHP, we kept hitting the same problem.
0:46:58 That whenever you work with a client, you start that project off an email.
0:47:00 Oh, yeah, let’s work together.
0:47:01 Here’s what we’re building.
0:47:03 And you start trading more and more emails.
0:47:08 And before a few weeks have passed, you’ve got to add someone to the project.
0:47:10 They don’t have the emails.
0:47:11 They don’t have the context.
0:47:13 You send them, where’s the latest file?
0:47:15 Oh, I’ve uploaded on the FTP.
0:47:18 It’s like final, final V 06 2.0.
0:47:19 Right.
0:47:19 That’s the one to get.
0:47:20 It’s just a mess.
0:47:22 A beautiful mess in some ways.
0:47:25 A mess that still runs the vast majority of projects to this day.
0:47:27 Email is the lowest common denominator.
0:47:29 That’s wonderful.
0:47:33 But we had dropped the ball a couple of times in serious ways with customers.
0:47:35 And we thought, we can do better.
0:47:37 We know how to make web applications.
0:47:42 Can’t we just make a system that’s better than email for managing projects?
0:47:43 It can’t be that hard.
0:47:45 We’ve been doing blogs.
0:47:47 We’ve been doing to-do lists.
0:47:54 Let’s put some of these things together and just make a system where everything that anyone involved in the project needs is on one page.
0:48:00 And it has to be simple enough that I’m not going to run a seminar teaching you how to use the system.
0:48:01 I’m just going to give you the login code.
0:48:02 You’re going to jump into it.
0:48:04 So that’s Basecamp.
0:48:16 And when we started working on Basecamp, I, for the first time in the experience I had with Jason, had the freedom of technology choice.
0:48:19 There was no client telling me, yeah, PHP, that sounds good.
0:48:20 We know PHP.
0:48:21 Can you build it in PHP?
0:48:23 I had free reigns.
0:48:43 And at that time, I’d been reading IEEE magazine and a couple of other magazines back from the early 2000s where Dave Thomas and Martin Fowler had been writing about programming patterns and how to write better code.
0:48:52 And these two guys, in particular, were both using Ruby to explain their concepts because Ruby looked like pseudocode.
0:48:59 Whether you were programming in C or Java or PHP, all three constituencies could understand Ruby because it basically just reads like English.
0:49:04 So these guys were using Ruby to describe their concepts.
0:49:08 And first of all, I would read these articles for just the concepts they were explaining.
0:49:11 And I’d be like, what is this programming language?
0:49:15 I mean, I like the concept you’re explaining, but I also want to see the programming language.
0:49:17 Why haven’t I heard of this?
0:49:19 So I started looking into Ruby.
0:49:26 And I realized at that time, Ruby might not be known by anyone, but it’s actually been around for a long time.
0:49:35 Matz, the Japanese creator of Ruby, had started working on Ruby back in 93, before the Internet was even a thing.
0:49:47 And here I am in 2003, 10 years later, picking up what seems like this hidden gem that’s just laying in obscurity in plain sight.
0:50:02 But Dave Thomas and Martin Fowler, I think, successfully put me and a handful of other people on the trail of a programming language that hadn’t been used much in the West, but could be.
0:50:07 So I picked up Ruby, and I thought, this is very different.
0:50:10 First of all, where are all the semicolons?
0:50:14 I’d been programming in PHP, in ASP.
0:50:16 I’d even done some Pascal.
0:50:17 I’d looked at some C.
0:50:19 There are semicolons everywhere.
0:50:23 And that was the first thing that struck me is, where are the damn semicolons?
0:50:28 And I started thinking, actually, why do we have semicolons in programming?
0:50:35 They’re to tell the interpreter that there’s a new line of instructions, but I don’t need him as a human.
0:50:36 How?
0:50:41 Oh, someone is looking out for the human here, not for the machine.
0:50:43 So that really got me interested.
0:50:46 And then I thought to myself, do you know what?
0:50:48 I know PHP quite well.
0:50:50 I’m not an amazing programmer.
0:50:53 I haven’t been working in programming for all that long.
0:50:56 But maybe I can figure it out.
0:50:58 I’m going to give myself two weeks.
0:51:02 I’m going to write a proof of concept where I talk to a database.
0:51:07 I pull some records, I format them a bit, and I display them on an HTML page.
0:51:09 Can I figure that out in a couple of weeks?
0:51:14 It took about one weekend, and I was completely mesmerized.
0:51:27 I was completely mind-blown because Ruby was made for my brain like a perfect tailored glove by someone I’d never met.
0:51:30 Like, how is this even possible?
0:51:36 We should say maybe, like, paint a picture of the certain qualities that Ruby has, maybe even compared to PHP.
0:51:43 We should also say that there’s a ridiculous thing that I’m used to that I forget about, that there’s dollar signs everywhere.
0:51:46 Yes, there’s line noise.
0:51:47 That’s what I like to call it.
0:51:48 Line noise.
0:51:49 Line noise.
0:51:50 That’s such a beautiful phrase.
0:51:54 Yeah, so there’s all these things that look like programs.
0:51:58 And with Ruby, I mean, there’s some similarities in Python there.
0:52:01 It just looks kind of like natural language.
0:52:02 You can read it normally.
0:52:05 Here’s a while loop that does five iterations.
0:52:10 You can literally type the number five dot.
0:52:13 Now, I’m calling a method under number five, by the way.
0:52:15 That’s one of the beautiful aspects of Ruby.
0:52:19 That primitives, like integers, are also objects.
0:52:25 And you can call five dot times start brackets.
0:52:29 Now you’re iterating over the code in that bracket five times.
0:52:30 That’s it.
0:52:31 Okay, that’s nice.
0:52:33 That’s not just nice.
0:52:34 That’s exceptional.
0:52:48 There’s literally no other programming language that I know of that has managed to boil away the line noise that almost every other programming language would inject into a five-time iteration over a block of code to that extent.
0:52:49 That’s a really nice.
0:52:50 Thank you for giving that example.
0:52:52 That’s a beautiful example.
0:52:53 Wow.
0:52:56 I don’t think I know a programming language that does that.
0:52:56 That’s really nice.
0:52:57 Ruby is full of that.
0:52:59 And there’s…
0:53:00 So let me dive into a couple of examples.
0:53:02 Because I really think it helps paint the picture.
0:53:07 And let me preface this by saying, I actually, I like the ethos of Python.
0:53:11 I think the Ruby and the Python community share a lot of similarities.
0:53:14 They’re both dynamic, interpreted languages.
0:53:21 They’re both focused on immediacy and productivity and ease of use in a bunch of ways.
0:53:23 But then they’re also very different in many other ways.
0:53:26 And one of the ways they’re very different is aesthetically.
0:53:31 Python, to me, I hope I don’t offend people too much.
0:53:31 I’ve said this before.
0:53:33 It’s just, it’s ugly.
0:53:47 And it’s ugly in its base because it’s full of superfluous instructions that are necessary for legacy reasons of when Guido made Python back in 87.
0:53:52 that are still here in 2025 and my brain can’t cope with that.
0:53:53 Let me give you a basic example.
0:54:00 When you make a class in Python, the initializer method, the starting method, is def.
0:54:00 Okay, fair enough.
0:54:01 That’s actually the same as Ruby.
0:54:03 D-E-F, definition of a method.
0:54:06 Then it is underscore.
0:54:08 Not one.
0:54:09 Underscore.
0:54:10 Two.
0:54:11 In it.
0:54:13 Underscore, underscore.
0:54:16 Parenthesis start.
0:54:19 Self, comma, and then the first argument.
0:54:20 Yeah, the whole self thing.
0:54:20 Yeah.
0:54:24 I look at that and go, I’m sorry, I’m out.
0:54:24 I can’t do it.
0:54:30 It’s just, it’s everything about it offends my sensibilities to the core.
0:54:36 Here you have the most important method that all new objects or classes have to implement.
0:54:42 And it is one of the most aesthetically offensive ways of typing initialize that I’ve ever seen anywhere.
0:54:44 And you guys are okay with this?
0:54:46 Yeah, you’re making me, you know what?
0:54:49 You’re like talking about my marriage or something like this.
0:54:52 And I’m not realizing I’ve been in a toxic relationship all along.
0:54:54 Yeah, I just get used to it.
0:54:57 That to me, by the way, was the magic of Ruby.
0:55:01 It opened my eyes to how beautiful programs could be.
0:55:02 I didn’t know.
0:55:04 I’ve been working in PHP.
0:55:05 I’ve been working in PHP.
0:55:12 I didn’t even have the concept that aesthetics, beautiful code, was something we could optimize for.
0:55:13 That’s something we could pursue.
0:55:18 And even more than that, that we could pursue it above other objectives.
0:55:23 That Ruby is as beautiful as it is, it’s not an accident and it’s not easy.
0:55:26 Ruby itself is implemented in C.
0:55:32 It’s very difficult to parse Ruby code because Ruby is written for humans.
0:55:34 And humans are messy creatures.
0:55:37 They like things in just the right way.
0:55:44 I can’t fully explain why the underscore, underscore, init, underscore, underscore make me repulse.
0:55:45 But it does.
0:55:49 And when I look at the Ruby alternative, it’s really instructive.
0:55:56 So it’s def, same part, def, space, initialize, parentheses.
0:55:57 Not even parentheses.
0:56:00 If you don’t need to call it within the arguments, there’s not even a parentheses.
0:56:01 That in itself is actually also a major part.
0:56:09 If the human doesn’t need the additional characters, we’re not just going to put them in because it’d be nicer to parse for the computer.
0:56:11 We’re going to get rid of the semicolons.
0:56:12 We’re going to get rid of the parentheses.
0:56:16 We’re going to get rid of the underscores.
0:56:21 We’re going to get rid of all that ugliness, all the line noise, and boil it down to its pure essentials.
0:56:24 And at the same time, we’re not going to abbreviate.
0:56:29 This is a key difference in the aesthetics between Ruby and Python as well.
0:56:31 Init is short of the type.
0:56:32 It’s only five characters.
0:56:36 Initialize is a lot longer, but it looks a lot better.
0:56:38 And you don’t type it very often.
0:56:40 So you should look at something pretty.
0:56:43 If you don’t have to do it all the time, it’s okay that it’s long.
0:56:50 Those kinds of aesthetic evaluations are rife all over the Ruby language.
0:56:51 But let me give you an even better example.
0:56:54 The if conditional.
0:56:57 That’s the bedrug of all programming languages.
0:56:59 They have the if conditional.
0:57:02 If you take most programming languages, they all have if.
0:57:04 That’s basically the same in almost every language.
0:57:05 Space.
0:57:06 Start parentheses.
0:57:07 We all did that.
0:57:15 And then you have perhaps, let’s say, you’re calling an object called user.
0:57:25 is admin, close parentheses, close parentheses, start brackets, and here’s what we’re going
0:57:27 to do if the user’s an admin, right?
0:57:28 That would be a normal programming language.
0:57:30 Ruby doesn’t do it like that.
0:57:32 Ruby boils almost all of it away.
0:57:33 We start with the if.
0:57:34 Okay, that’s the same.
0:57:41 No parentheses necessary because there’s no ambiguity for the human to distinguish that the next part
0:57:43 is just a single statement.
0:57:51 So you do if space user dot admin question mark.
0:57:53 Yeah.
0:57:58 No open brackets, no parentheses, no nothing.
0:58:00 Next open line.
0:58:00 Here’s your conditional.
0:58:08 That question mark means nothing to the computer, but it means something to the human.
0:58:17 Ruby put in the predicate method style purely as a communication tool between humans.
0:58:23 It’s actually more work for the interpreter to be able to see that this question mark is there.
0:58:25 Why is this question mark in here?
0:58:28 Because it just reads so nicely.
0:58:31 If user admin question mark.
0:58:34 That’s a very human phrase, but it gets better.
0:58:37 You can turn this around.
0:58:42 You can have your statement you want to execute before the conditional.
0:58:46 You can do user dot upgrade.
0:58:53 Let’s say you’re calling an upgrade method on a user space if space user dot admin question mark.
0:58:56 We do the thing if the thing is true.
0:58:59 Instead of saying if the thing is true, do the thing.
0:59:00 But it gets even better.
0:59:04 This is why I love this example with the conditional because you can keep diving into it.
0:59:06 So let’s flip it around.
0:59:15 User dot downgrade if exclamation point not user dot admin, right?
0:59:17 That’d be a typical way of writing it.
0:59:21 Ruby goes, that exclamation point is light and noise.
0:59:24 Why do we have if and then an exclamation point?
0:59:24 That’s ugly.
0:59:32 We could do user dot downgrade unless user admin question mark.
0:59:46 That to me is an encapsulation of the incredible beauty that Ruby affords the programmer through ambiguity that is only to serve the human reader and writer.
0:59:50 All of these statements we’ve just discussed, they’re the same for the computer.
0:59:52 It’ll compile down to the same C code.
0:59:55 They’ll compile down to the same assembly code.
0:59:56 It makes no difference whatsoever.
0:59:59 In fact, it just makes it harder to write an interpreter.
1:00:08 But for the human who gets to choose whether the statement comes before the conditional or the predicate method has, it’s just incredible.
1:00:10 It reads like poetry at some point.
1:00:14 It’s also incredible that, you know, one language designer is creating that.
1:00:17 You know, Guido van Rossum also.
1:00:25 It’s like one person gets to make these extremely difficult decisions because it’s, you have to think about how does that all get parsed.
1:00:38 And you have to think about the thousands, if it’s a popular language, that millions of people that end up using this and what they feel with that question mark on the, for the if statement, what does that feel like?
1:00:49 And that’s what Matt’s thought about because he started his entire mission off a different premise than almost every programming language designer that I’d heard at least articulate their vision.
1:01:09 That his number one goal was the affordances that would allow programmers to articulate code in ways that not just executed correctly, but were a joy to write and were a joy to read.
1:01:16 And that vision is based on a fundamentally different view of humanity.
1:01:22 There’s no greater contrast between Matt’s and James Gosselin, the designer of Java.
1:01:26 I wanted to listen to James talk about the design of Java.
1:01:28 Why was it the way it was?
1:01:30 Why was it so rigid?
1:01:33 And he was very blunt about it, which, by the way, I really appreciate.
1:01:39 And I think Gosselin’s done a tremendous job with Java, but his view of humanity is rather dark.
1:01:45 His view of humanity was programmers, at the average, are stupid creatures.
1:01:55 They cannot be trusted with sophisticated programming languages because they’re going to shoot their foot off or their hand off.
1:02:07 And that would be kind of inconvenient to the regional development office of a mid-tier insurance company writing code that has to last for 20 years.
1:02:16 Now, it’s actually a very Thomas Sowell view of constrained capacity in humans that I’ve come to appreciate much later in life.
1:02:26 But it’s also a very depressing view of programmers that there are just certain programmers who are too dumb to appreciate code poetry.
1:02:29 They’re too ignorant to learn how to write it well.
1:02:34 We need to give them a sandbox where they just won’t hurt themselves too much.
1:02:38 Matt’s went the complete opposite direction.
1:02:40 He believes in humanity.
1:02:46 He believes in the unlimited capacity of programmers to learn and become better.
1:02:53 So much so that he’s willing to put the stranger at his own level.
1:02:57 This is the second part I truly appreciate about Ruby.
1:03:01 Ruby allows you to extend base classes.
1:03:08 You know how we just talked about five dot times is a way to iterate over a statement five times?
1:03:11 That five is obviously a base class.
1:03:12 It’s a number.
1:03:13 Do you know what?
1:03:16 You can add your own methods to that.
1:03:18 I did extensively.
1:03:26 In Rails, we have something called active support, which is essentially my dialect of Ruby for programming web applications.
1:03:28 And I’ll give you one example.
1:03:33 I’ve added a method called days to the number.
1:03:43 So if you do five dot days, you get five days in seconds because seconds is the way we set cash expiration times and other things like that.
1:03:56 So you can say cash expires in five dot days and you’re going to get whatever five times 24 times 60 times 60 is or whatever the math is.
1:04:00 Very humanly readable in a normal programming language.
1:04:07 You would type out the seconds and then you would have a little comment above it saying this represent five days in Ruby.
1:04:09 You get to write five days.
1:04:11 But even better than that, Matt’s didn’t come up with it.
1:04:14 Matt’s didn’t need the five days.
1:04:16 I needed that because I needed to expire caches.
1:04:32 I was allowed by Matt’s to extend his story with my own chapters on equal footing such that a reader of Ruby could not tell the difference between the code Matt’s wrote and the code that I wrote.
1:04:40 He trusted me as a complete stranger from Denmark who had never met to mess with his beautiful story.
1:04:43 That level of trust is essentially unheard of.
1:04:50 I know there are other program languages that allow things with macros and so forth, but none do it in a way like Ruby does it.
1:04:57 None does it with an articulated vision of humanity, a trust in humanity like Matt’s does.
1:05:01 That is the opposite end of the spectrum of Java.
1:05:02 Yeah.
1:05:09 I mean, for my aesthetic sensibilities, just the way you described five dot days, that’s really pleasant to me.
1:05:16 Like I could see myself sitting alone, sleep deprived and just writing that.
1:05:17 It’s just an easy thing.
1:05:19 You can write it in a long way with a comment.
1:05:21 You can, you can write in multiple lines.
1:05:27 You could do, and now with AI, I’m sure it’s going to generate it correctly, but there’s something really pleasant about the simplicity of that.
1:05:29 I’m not sure what that is, but you’re right.
1:05:31 There is a good feeling there.
1:05:41 And I’m sure we’ll talk about happiness from all kinds of philosophical angles, but, you know, that is what happiness is made of.
1:05:44 That little good feeling there.
1:05:50 It’s the good feeling that come out of a concept compressed to its pure essence.
1:05:54 There’s nothing you can take away from that statement that’s superfluous.
1:06:03 But see, I also want to push back a little bit because it’s not, because I also programmed in Pearl a bunch, just to be cool.
1:06:06 So like, it’s not all about compression.
1:06:08 No, you can compress it too far.
1:06:09 Right.
1:06:15 Pearl Golf is a thing where you can turn programs into something that’s unreadable for humans.
1:06:18 Now, the great thing about Pearl was that it came out before Ruby.
1:06:28 Matz was a great student of Wall, was a great student of Pearl, was a great student of Python and Smalltalk and Lisp.
1:06:37 He took inspiration from all of these prior attempts at creating good programming languages and really edited down the very best bits into this.
1:06:40 So he was able to learn from his lessons.
1:06:48 But what I found incredible about Ruby is that here we are, 2025, Ruby has been worked on for over 30 years.
1:06:53 And essentially, the first draft is 90% of what we’re still using.
1:07:01 There was almost a sense of divine inspiration possible in wherever Matz was writing that initial version of Ruby.
1:07:07 That transcended time to such a degree that no one has still even begun to reach it.
1:07:08 This is the other thing I always find fascinating.
1:07:22 I generally believe in the efficient market theory, that if someone comes up with a better mousetrap or better idea, others will eventually copy them to such an extent that perhaps the original mousetrap is no longer even remembered.
1:07:25 No one has been able to copy that essence of Ruby.
1:07:28 They borrowed elements, and that’s totally fine.
1:07:36 But Ruby still stands taller than everyone else on these metrics, on this trust in humanity and programmers.
1:07:42 And we should also say, like, you know, maybe the perfect programming language is that metric.
1:07:46 And then there’s the successful language, and those are often different.
1:07:49 There is something wonderful about the Brendan Eich story of creating JavaScript.
1:07:50 Yes.
1:07:58 There’s something truly beautiful about the way JavaScript took over the world.
1:08:05 I’ve recently got to visit the Amazon jungle, and just one of my favorite things to do is just to watch the ants take over anything, everything.
1:08:08 And it’s just like, it’s a nice distributed system.
1:08:12 It’s a messy thing that doesn’t seem to be order, but it just works.
1:08:14 And the machinery of it.
1:08:15 Worse is better.
1:08:21 I mean, that’s actually the name of a pattern in software development and other ways of how do,
1:08:22 is the pattern of Linux.
1:08:27 Linux was quantifiably worse than, I think it was Minix at the time.
1:08:34 Other ways of it that were more cathedral, less bizarre, and it’s still one.
1:08:39 That there’s something to it that the imperfections can help something go forward.
1:08:45 It’s actually a trick I’ve studied to the degree that I now incorporate it in almost all open source that I do.
1:08:51 I make sure that when I release the first version of any new thing I work on, it’s a little broken.
1:08:56 It’s a little busted in ways that invite people to come in and help me.
1:09:04 Because there’s no easier way to get the collaboration of other programmers than to put something out that they know how to fix and improve.
1:09:05 Yeah, that’s awesome.
1:09:09 But Ruby is somehow, or was at least, a little bit different in that regard.
1:09:10 Not in all regards.
1:09:18 Matt’s got the ethos of the language, the design of language just right, but the first versions of Ruby were terribly slow.
1:09:30 It’s taken, I mean, hundreds of man years to get Ruby to be both this beautiful, yet also highly efficient and really fast.
1:09:36 And we should say that the thing that made you fall in love with this particular programming language is metaprogramming.
1:09:37 Yes.
1:09:42 So that takes all of these elements we’ve just talked about and turned them up to 11.
1:09:44 I’ll explain metaprogramming real simple.
1:09:49 Metaprogramming is essentially a version of the five dot days.
1:09:53 You get to add keywords to the language.
1:09:57 Active record is the part of Rails that communicates with the database.
1:10:05 This is a system where every table in the database is represented by a class.
1:10:12 So if we take the user example again, you do class user descends from active record base.
1:10:15 And then the first line you can write is this.
1:10:19 I want my users to have many posts or have many comments.
1:10:20 Let’s do that.
1:10:22 We’re making some system where users can make comments.
1:10:43 Now you’ve set up a dependency between users and comments that will give you a whole host of access and factory methods for users to be able to own comments, to create comments, to update comments.
1:11:04 When Rails is able to add these elements to how you define a class and then that runs code that adds a bunch of methods to the user class, that’s metaprogramming.
1:11:09 And when metaprogramming is used in this way, we call it domain-specific languages.
1:11:20 You take a generic language like Ruby and you tailor it to a certain domain like describing relationships in a database at a object level.
1:11:31 And this is one of those early examples where you can do user has many comments, belongs, underscore to, space, colon, account.
1:11:36 Now you’ve set up a one-to-one relationship before we had a one-to-many relationship.
1:11:44 Rails is rife with all these kinds of domain-specific languages where at some times it doesn’t even look like Ruby.
1:11:53 You can’t identify Ruby keywords, you can just identify what looks like keywords in its own programming language.
1:11:57 Now, again, I know that Lisp and others also do this stuff.
1:12:04 They just do it with the maximum amount of line noise that can ever be crammed into a programming language.
1:12:11 And Ruby does it at a level where you cannot tell my metaprogramming from Matt’s keywords and with zero line noise.
1:12:17 Yeah, I should say that my first love was Lisp, so there’s a slow tear that you can’t see.
1:12:20 I’ve actually never written any real Lisp myself.
1:12:22 Well, how can you judge it so harshly then?
1:12:30 Because I have two eyes and I can look at code and my aesthetic sensibilities forbid me to even go much further, which is a limitation, I know.
1:12:40 I should actually dive into Lisp because I found that I’ve learned a lot just diving into, maybe I’m insulting Lisp again here, but the past of programming languages.
1:12:51 With Smalltalk, for example, I think Smalltalk is an incredible experiment that also worked, but isn’t suitable for today’s programming environments.
1:12:57 I love that we’re talking about Ruby so much and what beautiful code is, what a beautiful programming language is.
1:13:07 So one of the things that is, I think, implied, maybe you made explicit in your descriptions there is that Ruby is dynamic typing versus strict typing.
1:13:16 And you have been not just saying that it’s a nice thing, but that you will defend dynamic typing to the death.
1:13:19 Like that freedom is a powerful freedom to preserve.
1:13:22 It’s the essence of what makes Ruby Ruby.
1:13:31 This is why I don’t fully understand when people call for Ruby to add static typing, because to me, it’s the bedrock of what this is.
1:13:37 Why would you want to turn one of the most beautiful languages into something far uglier?
1:13:41 This is one of my primary objections to static typing.
1:13:44 It’s not just that it limits you in certain ways.
1:13:45 It makes metaprogramming harder.
1:13:48 I write a bunch of metaprogramming.
1:13:50 I’ve seen what it takes to do metaprogramming in TypeScript.
1:13:57 That was actually one of the things that just really sent me on a tear of getting meta or getting TypeScript out of some of the projects that I’m involved with.
1:14:08 We pulled TypeScript out of Turbo, one of the front-end frameworks that we have, because I tried to write to metaprogramming in TypeScript and I was just infuriated.
1:14:10 I don’t want that experience.
1:14:13 But I also don’t want it from an aesthetic point of view.
1:14:14 I hate repetition.
1:14:21 We’ve just talked about how much I love that Ruby boils all of these expressions down to its essence.
1:14:23 You can’t remove one dot.
1:14:27 You can’t remove one character without losing something.
1:14:30 This moment you go for static typing that you declare, at least.
1:14:37 I know there are ways to do implied typing and so forth, but let’s just take the stereotypical case of the Java example, for example.
1:14:43 Capital U, user, I’m declaring the type of the variable.
1:14:50 Lowercase user, I’m now naming my variable, equals uppercase user or new uppercase user.
1:14:52 I’ve repeated user three times.
1:14:55 I don’t have time for this.
1:14:58 I don’t have sensibilities for this.
1:15:01 I don’t want my Ruby polluted with this.
1:15:05 Now, I understand all the arguments for why people like static typing.
1:15:09 One of the primary arguments is that it makes tooling easier.
1:15:12 It makes it easier to do autocomplete in editors, for example.
1:15:24 It makes it easier to find certain kinds of bugs because maybe you’re calling methods that don’t exist on an object and the editor can actually catch that bug before you even run it.
1:15:26 I don’t care.
1:15:30 First of all, I don’t write code with tools.
1:15:32 I write them with text editors.
1:15:37 I chisel them out of the screen with my bare hands.
1:15:38 I don’t autocomplete.
1:15:40 And this is why I love Ruby so much.
1:15:46 And this is why I continue to be in love with the text editor rather than the IDE.
1:15:48 I don’t want an IDE.
1:15:59 I want my fingers to have to individually type out every element of it because it will force me to stay in the world where Ruby is beautiful.
1:16:03 Because as soon as it gets easy to type a lot of boilerplate, well, guess what?
1:16:04 You’re going to have a lot of boilerplate.
1:16:15 Every single language, basically, that has great tooling support has a much higher tolerance for boilerplate because the thinking is, well, you’re not typing it anyway.
1:16:16 You’re just autocompleting it.
1:16:17 I don’t want that at all.
1:16:24 I want something where the fabric I’m working in is just a text file.
1:16:25 There’s nothing else to it.
1:16:27 So these things play together.
1:16:29 There’s the aesthetic part.
1:16:30 There’s the tooling part.
1:16:32 There’s the metaprogramming part.
1:16:38 There’s the fact that Ruby’s ethos of duck typing, I don’t know if you’ve heard that term before.
1:16:46 It’s essentially not about, can I call this method if a object is of a certain class?
1:16:49 It is, can I call this method if the method responds?
1:16:52 It’s very out of small talk in that regard.
1:17:06 You don’t actually check of whether that class has the method, which allows you to dynamically add methods at runtime and do all sorts of really interesting things that underpin all the beautiful metaprogramming that we do in Ruby.
1:17:08 I don’t want to lose any of that.
1:17:10 And I don’t care for the benefits.
1:17:16 One of the benefits I’ve seen touted over and over again is that it’s much easier to write correct software.
1:17:18 You’re going to have fewer bugs.
1:17:21 You’re going to have less null pointer exceptions.
1:17:23 You’re going to have less all this stuff.
1:17:24 Yeah, I don’t have any of that.
1:17:28 It’s just not something that occurs in my standard mode of operation.
1:17:30 I’m not saying I don’t have bugs.
1:17:30 Of course I do.
1:17:35 But I catch those bugs with unit testing, with integration testing.
1:17:46 Those are the kinds of precautions that will catch logical bugs, things that compile but are wrong, along with the uncompileable stuff.
1:17:49 So I’ve never been drawn into this world.
1:17:52 And part of it is because I work on a certain class of systems.
1:17:53 I fully accept that.
1:18:05 If you’re writing systems that have 5, 10, 50 million lines of code with hundreds, thousands, or tens of thousands of programmers, I fully accept that you need different methods.
1:18:19 What I object to is the idea that what’s right for a code base of 10 million lines of code with 100,000 programmers working on it is also the same thing I should be using in my bedroom to create Basecamp because I’m just a single individual.
1:18:20 That’s complete nonsense.
1:18:29 In the real world, we would know that that makes no sense at all, that you don’t, I don’t know, use your Pagani to go pick up groceries at Costco.
1:18:32 It’s a bad vehicle for that.
1:18:33 It just doesn’t have the space.
1:18:35 You don’t want to muddy the beautiful seats.
1:18:36 You don’t want to do any of those things.
1:18:42 We know that certain things that are very good in certain domains don’t apply to all.
1:18:44 In programming languages, it seems like we forget that.
1:18:48 Now, to be fair, I also had a little bit perhaps of a reputation of forgetting that.
1:19:00 When I first learned Ruby, I was so head over heels in love with this programming language that I almost found it unconceivable that anyone would choose any other programming language at all to write web applications.
1:19:09 And I kind of engaged the evangelism of Ruby on Rails in that spirit as a crusade, as I just need to teach you the gospel.
1:19:17 I just need to show you this conditional code that we just talked about, and you will convert at the point of a sharp argument.
1:19:19 Now, I learned that that’s not the way.
1:19:22 And part of the reason it’s not the way is that programmers think differently.
1:19:25 Our brains are configured differently.
1:19:37 My brain is configured perfectly for Ruby, perfectly for a dynamically duct-typed language that I can chisel code out of a text editor with.
1:19:42 And other people need the security of an IDE.
1:19:48 They want the security of classes that won’t compile unless you call the methods on it.
1:19:50 I have come to accept that.
1:19:52 But most programmers don’t.
1:19:55 They’re still stuck in, essentially, I like static typing.
1:20:01 Therefore, static typing is the only way to create reliable, correct systems.
1:20:10 Which is just such a mind-blowing, to be blunt, idiotic thing to say in the face of evidence, mountains of evidence to the contrary.
1:20:18 This is one of the reasons I’m so in love with Shopify as the flagship application for Ruby on Rails.
1:20:25 Shopify exists at a scale that most programmers will never touch.
1:20:30 On Black Friday, I think Shopify did one million requests per second.
1:20:33 That’s not one million requests of images.
1:20:38 That’s of dynamic requests that are funneling through the pipeline of commerce.
1:20:44 I mean, Shopify runs something like 30% of all e-commerce stores on the damn internet.
1:20:49 A huge portion of all commerce in total runs through Shopify.
1:20:51 And that runs on Ruby on Rails.
1:21:01 So, Ruby on Rails is able to scale up to that level without using static typing in all of what it does.
1:21:06 Now, I know they’ve done certain experiments in certain ways because they are hitting some of the limits that you will hit with dynamic typing.
1:21:14 And some of those limits you hit with dynamic typing are actually, by the way, just limits you hit when you write five million lines of code.
1:21:17 I think the Shopify monolith is about five million lines of code.
1:21:25 At that scale, everything breaks because you’re at the frontier of what humans are capable of doing with programming languages.
1:21:35 The difference in part is that Ruby is such a succinct language that those five million, if they’d been written in, let’s just say, Go or Java, would have been 50 or 25.
1:21:47 Now, that might have alleviated some of the problems that you have when you work on huge systems with many programmers, but it certainly would also have compounded them, trying to understand 25 million lines of code.
1:21:50 So, the thing does scale.
1:21:52 That’s a persistent myth that it doesn’t scale.
1:21:57 Shopify and others, but Shopify, I think, is a great example.
1:22:00 By the way, I love Shopify, and I love Toby.
1:22:02 You got to have Toby on.
1:22:02 Yeah, for sure.
1:22:03 Let’s talk to him this morning.
1:22:03 For sure.
1:22:06 He’s a brilliant β I got to hang out with him in the desert somewhere.
1:22:07 I forget, in Utah.
1:22:09 He’s just a brilliant human.
1:22:15 And Shopify β shopify.com slash Lux has been supporting this podcast for the longest time.
1:22:19 I don’t think actually Toby knows that they sponsor this podcast.
1:22:21 I mean, it’s a big company, right?
1:22:22 It’s a huge company.
1:22:32 I think just under 10,000 employees, market cap of $120 billion, GMV of a quarter of a trillion every quarter.
1:22:33 And he’s involved with the details still.
1:22:35 He is, very much so.
1:22:36 Funny story about Toby.
1:22:42 Toby was on the Rails core team back in the mid-2000s.
1:22:48 Toby himself wrote Active Merchant, which is one of the frameworks for creating shops.
1:22:52 He wrote the liquid templating language that Shopify still uses to this day.
1:22:59 He has a huge list of contributions to the Rails ecosystem, and he’s the CEO of the company.
1:23:05 I think it’s just β it’s very inspiring to me because it’s such at the opposite end of what I like to do.
1:23:09 I like to chisel code with my own hands most of the day.
1:23:17 He runs a company of almost 10,000 people that is literally like world commerce depends on it.
1:23:21 A level of criticality I can’t even begin to understand.
1:23:27 And yet we can see eye to eye on so many of these fundamental questions in computer science and program development.
1:23:31 That is a dynamic range.
1:23:39 To be able to encompass Rails being a great tool for the one developer who’s just starting out with an idea,
1:23:45 who don’t even fully know everything, who is right at the level where PHP would have been a good fit in those late 90s,
1:23:48 because, yeah, I can probably upload something to an FTP server and so on.
1:23:53 Rails does have more complexity than that, but it also has so much longer runway.
1:23:55 The runway goes all the way to goddamn Shopify.
1:24:02 That is about the most convincing argument I can make for sort of dynamic range that we can do a lot of it.
1:24:06 And even having said that, Shopify is the outlier, of course.
1:24:11 I don’t think about Shopify as the primary target when I write Rails.
1:24:13 I think of the single developer.
1:24:14 Actually, I do think about Shopify.
1:24:16 But I don’t think about Shopify now.
1:24:19 I think of Shopify when Toby was writing Snow Devil,
1:24:25 which was the first e-commerce store to sell snowboards that he created that was the pre-Shopify Shopify.
1:24:27 He created it all by himself.
1:24:33 And that was possible because Ruby on Rails isn’t just about beautiful code.
1:24:35 It’s just as much about productivity.
1:24:39 It’s just as much about the impact that an individual programmer is able to have.
1:24:42 That they can build a system where they can keep the whole thing in their head
1:24:49 and be able to move it forward such that you can go from one developer sitting and working on something
1:24:52 and that something is Shopify and turns into what it is today.
1:24:58 When we talk about programming languages and we compare them, we often compare them at a very late stage.
1:25:05 Like what is the better programming language for, let’s say, Twitter in 2009 when it’s already a huge success?
1:25:07 Twitter was started on Ruby on Rails.
1:25:09 They then hit some scaling problems.
1:25:11 It was a big debacle at the time.
1:25:19 They end up then, I think, writing it in some other language, which, by the way, I think is the best advertisement ever for Ruby on Rails
1:25:23 because nothing fucking happened for 10 years after they switched over, right?
1:25:25 Essentially zero innovation.
1:25:29 Some of that was because they were doing a long conversion.
1:25:36 And all of the early success in part came because they had the agility to quickly change and adopt and so forth.
1:25:37 That’s what startups need.
1:25:38 That’s what Shopify needed.
1:25:40 That’s what Twitter needed.
1:25:41 That’s what everyone needs.
1:25:46 And that’s the number one priority for Ruby on Rails, to make sure that we don’t lose that.
1:25:54 Because what happens so often when development tools and programming language are driven by huge companies is that they mirror their org chart.
1:26:03 React and everything else needed to use that is in some ways a reflection of how Meta builds Facebook.
1:26:04 Because of course it is.
1:26:06 Because of course it’s an instruction of that.
1:26:09 I’m not saying React isn’t a great tool and that can’t be used by smaller teams.
1:26:10 Of course it can.
1:26:14 But it’s born in a very different context than something like Ruby on Rails.
1:26:20 Let me say as a small aside because I think we might return to Shopify and celebrate it often.
1:26:23 Just a sort of personal note.
1:26:31 This particular podcast has way more sponsors and sponsors that want to be sponsors than I could possibly ever have.
1:26:36 And it’s really, really important for me to not give a shit.
1:26:39 And to be able to celebrate people.
1:26:40 Like I celebrate people.
1:26:42 I celebrate companies.
1:26:45 And I don’t care that they’re sponsoring.
1:26:46 I really don’t care.
1:26:49 I just want to make that very explicit.
1:26:52 Because we’re going to continue saying positive things about Shopify.
1:26:53 I don’t care.
1:26:54 Stop sponsoring.
1:26:56 It doesn’t really matter to me.
1:26:58 But yeah, I just want to make that explicit.
1:27:01 But to linger on the scaling thing with the Twitter and the Shopify.
1:27:07 Can you just explain to me what Shopify is doing with the JIT?
1:27:12 What did they have to try to do to scale this thing?
1:27:14 Because that’s kind of an incredible story, right?
1:27:15 Yeah.
1:27:23 So one of the great contributions that Shopify has made to the entire Ruby ecosystem, not just Rails, but in particular Rails, is YJIT.
1:27:28 So YJIT is their compiler for Ruby that just makes everything a lot more efficient.
1:27:38 And at Shopify scale, eking out even a 5-10% improvement in Ruby’s overhead and execution time is a huge deal.
1:27:42 Now, Shopify didn’t need YJIT.
1:27:50 Shopify was already running on the initial version of Ruby that was, I think, 10 times slower than what we have today.
1:27:57 If you look back upon the Ruby 1.8.6 that Topi probably started on, just as I started on.
1:28:01 And that was enough to propel Shopify to the scale that it has today.
1:28:08 A lot of the scaling conversation is lost in a failure to distinguish two things.
1:28:15 Scale is kind of one package we talk about when there are really multiple packages inside of it.
1:28:18 One is runtime performance, latency.
1:28:21 How fast can you execute a single request?
1:28:24 Can it happen fast enough that the user will not notice?
1:28:29 If your Rails request takes a second and a half to execute, the user’s going to notice.
1:28:31 Your app is going to feel slow and sluggish.
1:28:37 You have to get that response time down below, let’s say, at least 300 milliseconds.
1:28:40 I like to target 100 milliseconds as my latency.
1:28:42 That’s kind of performance.
1:28:48 How much performance of that kind of latency can you squeeze out of a single CPU core?
1:28:51 That tells you something about what the price of a single request will be.
1:29:05 But then whether you can deal with 1 million requests a second, like Shopify is doing right now, if you have one box that can do 1,000 requests a second, you just need X boxes to get up to a million.
1:29:11 And what you’ll actually find is that when it comes to programming languages, they’re all the same in this way.
1:29:15 They all scale largely, beautifully horizontally.
1:29:16 You just add more boxes.
1:29:22 The hard parts of scaling a Shopify is typically not the program language.
1:29:23 It’s the database.
1:29:34 And that’s actually one of the challenges that Shopify has now is how do you deal with MySQL at the scale that they’re operating at?
1:29:39 When do you need to move to other databases to get worldwide performance?
1:29:40 All of these things.
1:29:43 The questions about scaling rupee are economic questions.
1:29:54 If we’re spending so and so much on application servers, if we can get just 5% more performance out of Ruby, well, we could save 5% of those servers and that could filter down into the budget.
1:29:58 Now, that analysis concludes into basically one thing.
1:30:02 Ruby is a luxury language.
1:30:07 It’s a luxury, the highest luxury, in my opinion.
1:30:13 It is the Kogo Chanel of programming languages, something that not everyone can afford.
1:30:14 And I mean this in the best possible way.
1:30:25 There are some applications on the internet where each request has so little value, you can’t afford to use a luxurious language like Ruby to program it.
1:30:31 You simply have to slum it with a C or a Go or some other low-level language or a Rust.
1:30:33 Talk about line noise there for a hot second.
1:30:35 The thrift store of languages.
1:30:35 Exactly.
1:30:40 Where you need kind of just, you need a very low level to do it.
1:30:44 You can’t afford to use a luxury language to build it with.
1:30:45 That’s not true of Shopify.
1:30:47 It wasn’t true of Basecamp.
1:30:53 Even back in 2004, it’s not been true of 99% of all web applications ever created.
1:30:59 Because the main cost component of 99% of web applications is not CPU cores.
1:31:01 It’s wet cores.
1:31:03 It’s human cores.
1:31:07 It’s human capacity to understand and involve systems.
1:31:09 It’s their personal productivity.
1:31:18 I did a calculation once when someone had for the 400th time said that, oh, if you switch from Ruby to some faster language, you could save a bunch of money.
1:31:30 And I calculated it out that at the time, and I think the last time I did this calculation was almost a decade ago, we were spending about 15% of our operating budget on Ruby application servers.
1:31:42 So, for me to improve my cost profile of the business by 7 percentage points, I’d have to pick something twice as fast.
1:31:43 That’s quite hard.
1:31:50 Versus if Ruby and Ruby on Rails was even 10% more productive than something else, I would move the needle far more.
1:31:54 Because making individual programmers more productive actually matters a lot more.
1:31:56 This is why people are so excited about AI.
1:32:07 This is why they’re freaking out over the fact that a single programmer in Silicon Valley who makes $300,000 a year can now do the work of three or five, at least in theory.
1:32:11 I haven’t actually seen that fully in practice, but let’s just assume the theory is correct.
1:32:13 If not now, then in six months.
1:32:16 That’s a huge deal.
1:32:21 That matters so much more than whether you can squeeze a few more cycles out of the CPU.
1:32:32 When it comes to these kinds of business applications, if you’re making Unreal Engine rendering stuff like Tim Sweeney you had on, yeah, he needs to really sweat all those details.
1:32:34 The Nanite Engine can’t run on Ruby.
1:32:36 It’s never going to.
1:32:37 It was not meant for that.
1:32:37 Fine.
1:32:40 These kinds of business applications absolutely can.
1:32:52 And everything that people are excited about AI for right now, that extra capacity to just do more, that was why we were excited about Ruby back in the early 2000s.
1:33:03 That was because I saw that if we could even squeeze out a 10% improvement of the human programmer, we’d be able to do so much more for so much less.
1:33:10 You could probably argue about this, but I really like working together with AI, collaborating with AI.
1:33:15 And I would argue that the kind of code you want AI to generate is human readable, human interpretable.
1:33:16 Yes.
1:33:22 If it’s generating pearl golf code, it’s just, it’s not a collaboration.
1:33:24 So it has to be speaking the human.
1:33:27 It’s not just you’re writing the prompts in English.
1:33:33 You also want to read the responses in the human interpretable language like Ruby, right?
1:33:35 So that’s actually, it’s beneficial for AI too.
1:33:48 Because you kind of said that for you, the sculptor, the sort of the elitist Coco Chanel sculptor, you want to, on your fancy keyboard, to type every single letter yourself or your own fingers.
1:33:58 But it’s also that the benefit of Ruby also applies when some of that is written by AI and you’re actually doing with your own fingers the editing.
1:33:59 Yes.
1:34:02 Because you can interact with it because it’s human interpretable.
1:34:07 The paradigm I really love with this was something Elon actually said on one of your shows when you guys were talking about Neuralink.
1:34:14 That Neuralink allows the bandwidth between you and the machine to increase.
1:34:18 That language, either spoken or written, is very low bandwidth.
1:34:25 If you are to calculate just how many bits we can exchange as we’re sitting here, it’s very slow.
1:34:38 Ruby has a lot more than just how many bits we can see if we’re sitting here on the screen.
1:34:44 So when you are collaborating with AI, you want really high bandwidth.
1:35:05 You want it to be able to produce programs with you, whether you’re letting it write the code or not, that both of you can actually understand really quickly and that you can compress a grand concept, a grand system into far fewer parts that both of you can understand.
1:35:07 Now, I actually love collaborating with AI, too.
1:35:09 I love chiseling my code.
1:35:12 And the way I use AI is in a separate window.
1:35:14 I don’t let it drive my code.
1:35:15 I’ve tried that.
1:35:19 I’ve tried the cursors and the windsurf, and I don’t enjoy that way of writing.
1:35:27 And one of the reasons I don’t enjoy that way of writing is I can literally feel competence draining out of my fingers.
1:35:33 Like that level of immediacy with the material disappears.
1:35:40 And where I felt this the most was I did this remix of Ubuntu called Omacube when I switched to Linux.
1:35:42 And it’s all written in Bash.
1:35:46 I’d never written any serious amount of code in Bash before.
1:35:51 So I was using AI to collaborate to write a bunch of Bash with me because I needed all this.
1:35:52 I knew what I wanted.
1:35:54 I could express it in Ruby.
1:36:01 But I thought it was an interesting challenge to filter through Bash because what I was doing was setting up a Linux machine.
1:36:03 That’s basically what Bash was designed for.
1:36:04 It’s a great constraint.
1:36:13 But what I found myself doing was asking AI for the same way of expressing a conditional, for example, in Bash over and over again.
1:36:16 That by not typing it, I wasn’t learning it.
1:36:18 I was using it.
1:36:22 I was getting the expression I wanted, but I wasn’t learning it.
1:36:23 And I got a little scared.
1:36:24 I got a little scared.
1:36:26 Is this the end of learning?
1:36:29 Am I no longer learning if I’m not typing?
1:36:34 And the way I, for me, recast that was I don’t want to give up on the AI.
1:36:43 It is such a better experience as a programmer to look up APIs, to get a second opinion on something, to do a draft.
1:36:47 But I have to do the typing myself because you learn with your fingers.
1:36:52 If you’re learning how to play the guitar, you can watch as many YouTube videos as you want.
1:36:53 You’re not going to learn the guitar.
1:36:59 You have to put your fingers on the strings to actually learn the motions.
1:37:05 And I think there is a parallel here to programming where programming has to be learned in part by the actual typing.
1:37:08 I’m just really, this is fascinating.
1:37:12 Listen, part of my brain agrees with you 100%, part doesn’t.
1:37:17 I think AI should be in the loop of learning.
1:37:20 Now, current systems don’t do that.
1:37:27 But I think it’s very possible for Cursor to say, to basically force you to type certain things.
1:37:35 So, like, if you set the mode of learning, I just, I don’t want to be this sort of give up on AI.
1:37:40 I really, I think, I think vibe coding is a skill.
1:37:46 So, for an experienced programmer, it’s too easy to dismiss vibe coding as a thing.
1:37:47 I agree.
1:37:47 I wouldn’t dismiss it.
1:37:58 But I think you need to start building that skill and start to figure out how do you prevent the competency from slipping away from your fingers and brain.
1:38:02 Like, how do you develop that skill in parallel to the other skill?
1:38:03 I don’t know.
1:38:06 I just, I think it’s a fascinating puzzle, though.
1:38:12 I know too many really strong programmers that just kind of avoid AI because it’s currently a little too dumb.
1:38:13 Yes.
1:38:15 It’s a little too slow is actually my main problem.
1:38:18 It’s a little too dumb in some ways, but it’s a little too slow in other ways.
1:38:29 When I use Claude’s code, the terminal version of Claude, which is actually my preferred way of using it, I just, I get too impatient.
1:38:35 It feels like I’m going back to a time where code had to compile and I had to go do something else.
1:38:37 A boil some tea while the code is compiling.
1:38:39 Well, I’ve been working in Ruby for 20 years.
1:38:43 I don’t have compile weight in me anymore.
1:38:45 So there’s that aspect of it.
1:38:49 But I think the more crucial aspect for me is I really care about the competence.
1:38:55 And I’ve seen what happens to even great programmers the moment they put away the keyboard.
1:38:59 Because even before AI, this would happen as soon as people would get promoted.
1:39:07 Most great programmers who work in large businesses stop writing code on a daily basis because they simply have too many meetings to attend to.
1:39:09 They have too many other things to do.
1:39:13 And invariably, they lose touch with programming.
1:39:16 That doesn’t mean they forget everything.
1:39:24 But if you don’t have your fingers in the sauce, the source, you are going to lose touch with it.
1:39:25 There’s just no other way.
1:39:27 I don’t want that because I enjoy it too much.
1:39:29 This is not just about outcomes.
1:39:32 This is what’s crucial to understand.
1:39:38 Programming for programmers who like to code is not just about the programs they get out of it.
1:39:40 That may be the economic value.
1:39:42 It’s not the only human value.
1:39:45 The human value is just as much in the expression.
1:39:55 When someone who sits down on a guitar and plays Stairways to Heaven, there’s a perfect recording of that that will last in eternity.
1:39:57 You can just put it on Spotify.
1:39:58 You don’t actually need to do it.
1:40:01 The joy is to command the guitar yourself.
1:40:06 The joy of a programmer, of me as a programmer, is to type the code myself.
1:40:12 If I promote myself out of programming, I turn myself into a project manager.
1:40:17 A project manager of a murder of AI crows, as I wrote the other day.
1:40:21 I could have become a project manager my whole career.
1:40:26 I could have become a project manager 20 years ago if I didn’t care to write code myself and I just wanted outcomes.
1:40:28 That’s how I got started in programming.
1:40:29 I just wanted outcomes.
1:40:34 Then I fell in love with programming and now I’d rather retire than giving up.
1:40:38 Now, that doesn’t mean you can’t have your cake and eat it too.
1:40:44 I’ve done some vibe coding where I didn’t care that I wasn’t playing myself.
1:40:45 I just wanted to see something.
1:40:47 There was an idea in my head.
1:40:49 I wanted to see something.
1:40:49 That’s fine.
1:40:52 I also use AI all day long.
1:40:59 In fact, I’m already at the point where if you took it away from me, I’d be like, oh, my God, how do we even look things up on the Internet anymore?
1:41:01 Is Stack Overflow still around?
1:41:03 Or I’m still a thing?
1:41:07 Like, how do I even find answers to some of these questions I have all day long?
1:41:08 I don’t want to give up AI.
1:41:13 In fact, I’d say the way I like to use AI, I’m getting smarter every day because of AI.
1:41:19 Because I’m using AI to have it explain things to me, even stupid questions.
1:41:22 I would be a little embarrassed to even enter into Google.
1:41:31 AI is perfectly willing to give me the ELI 5 explanation of some Unix command I should have known already, but I don’t.
1:41:32 I’m sorry.
1:41:33 Can you just explain it to me?
1:41:34 And now I know the thing.
1:41:40 So at the end of the day of me working with AI all day long, I’m a little bit smarter.
1:41:41 Like 5%.
1:41:43 Sorry, not 5%.
1:41:44 Half a percent, maybe.
1:41:46 That compounds over time.
1:41:56 But what I’ve also seen when I worked on the Omaku project and I tried to let AI drive for me, I felt I was maybe half a percent dumber at the end of the day.
1:41:58 Okay, you said a lot of interesting things.
1:42:02 First of all, let’s just start with the very fact that asking dumb questions.
1:42:09 If you go to Stack Overflow and ask a dumb question or read somebody else’s dumb question and the answer to it, there’s a lot of judgment there.
1:42:13 AI, sometimes to an excessive degree, has no judgment.
1:42:16 It usually says, oh, that’s a great question.
1:42:17 To a fault.
1:42:18 Yeah.
1:42:19 Oh, that’s wonderful.
1:42:21 Yeah.
1:42:25 I mean, it’s so conducive to learning.
1:42:27 It’s such a wonderful tool for learning.
1:42:29 And I too would miss it.
1:42:37 And it’s a great, basically, search engine into all kinds of nuances of a particular programming language, especially if you don’t know it that well.
1:42:40 Or like APIs, you can load in documentation.
1:42:41 It’s just so great for learning.
1:42:50 For me personally, it, I mean, on the happiness scale, it makes me more excited to program.
1:42:53 I don’t know what that is exactly.
1:42:58 Part of that is the, I’m really sorry, Stack Overflow is an incredible website.
1:43:00 There is a negativity there.
1:43:00 Yes.
1:43:01 There’s a judgment there.
1:43:09 There’s, it’s just exciting to be a, like a, with a hype man next to me, just like saying, yeah, that’s a great idea.
1:43:11 And I’ll say, no, that’s wrong.
1:43:12 I’ll, I’ll correct the AI.
1:43:16 And, and the AI will say, you’re absolutely right.
1:43:17 How did I not think about that?
1:43:19 Rewrite the code.
1:43:20 I’m like, holy shit.
1:43:27 I’m having, it’s like a buddy that’s like really being positive and is very smart and is challenging me to think.
1:43:32 And even if I never use the code it generates, I’m already a better programmer.
1:43:37 But actually the deeper thing is for some reason, I’m having more fun.
1:43:38 That’s a really, really important thing.
1:43:41 I like to think of it as a pair programmer for exactly that reason.
1:43:51 Pair programming came of vogue in like the 2000s where you’d have two programmers in front of one machine and you’d push the keyboard between you.
1:43:53 One program would be driving.
1:43:54 They’d be typing in.
1:43:59 The other programmer would essentially sit and watch the code, suggest improvements, look something up.
1:44:02 That was a really interesting dynamic.
1:44:03 Now, unfortunately, I’m an introvert.
1:44:07 So I can do that for about five minutes before I want to jump off a bridge.
1:44:10 So it doesn’t work for me as a full-time occupation.
1:44:15 But AI allows me to have all the best of that experience all the time.
1:44:18 Now, I think what’s really interesting what you said about it makes it more fun.
1:44:24 I hadn’t actually thought about that, but what it’s made more fun to me is to be a beginner again.
1:44:29 It made it more fun to learn Bash successfully for the first time.
1:44:39 Now, I had to do the detour where I let it write all the code for me and I realized I wasn’t learning nearly as much as I hoped I would and that I started doing once I typed it out myself.
1:44:49 But it gave me the confidence that, you know what, if I need to do some iOS programming myself, I haven’t done that in probably six years was the last time I dabbled in it.
1:44:51 I never really built anything for real.
1:44:56 I feel highly confident now that I could sit down with AI and I could have something in the App Store by the end of the week.
1:45:01 I would not have that confidence unless I had a pair programming body like AI.
1:45:04 I don’t actually use it very much for Ruby code.
1:45:07 I’m occasionally impressed whenever I try it.
1:45:08 They’re like, oh, it got this one thing right.
1:45:10 That is truly remarkable.
1:45:11 And it’s actually pretty good.
1:45:14 And then I’ll ask it two more questions and I go like, oh, yeah, okay.
1:45:20 If you were my junior programmer, I’d start tapping my fingers and going like, you got to shape up.
1:45:23 Now, the great thing, of course, is we can just wait five minutes.
1:45:29 The entropic CEO seems to think that 90% of all code by the end of the year is going to be written by AI.
1:45:32 I’m more than a little bit skeptical about that.
1:45:41 But I’m open-minded about the prospect that programming potentially will turn into a horse when done manually.
1:45:43 Something we do recreationally.
1:45:46 It’s no longer a mode of transportation to get around LA.
1:45:51 You’re not going to saddle up and go to the grocery store and pick up stuff from Whole Foods in your saddlebags.
1:45:53 That’s just not a thing anymore.
1:45:57 That could be the future for programming, for manual programming.
1:45:58 Entirely possible.
1:46:00 I also don’t care.
1:46:08 Even though we have great renditions of all the best songs, as I said, there are millions of people who love to play the guitar.
1:46:11 It may no longer have as much economic value as it once did.
1:46:14 I think that I’m quite convinced is true.
1:46:16 That we perhaps have seen the peak.
1:46:20 Now, I understand the paradox when the price of something goes down.
1:46:24 Actually, the overall usage goes up and total spend on that activity goes up.
1:46:25 That could also happen.
1:46:26 Maybe.
1:46:35 But what we’re seeing right now is that a lot of the big shops, a lot of big companies are not hiring like they were five years ago.
1:46:38 They’re not anticipating they’re going to need tons more programmers.
1:46:48 Controversially, Toby actually put out a memo inside of Shopify asking everyone who’s considering hiring someone to ask the question, could this be done by AI?
1:46:51 Now, he’s further ahead on this question than I am.
1:46:55 I look at some of the coding trenches and I go like, I’d love to use AI more.
1:46:56 And I see how it’s making us more productive.
1:47:00 But it’s not yet at the level where I just go like, oh, we have this project.
1:47:02 Let me just give it to the AI agent.
1:47:03 And it’s going to go off and do it.
1:47:04 But let’s just be honest.
1:47:10 You’re like a Clint Eastwood type character, cowboy on a horse, seeing cars going around.
1:47:11 You’re like, well.
1:47:12 That’s part of it.
1:47:20 And I think that it is important to have that humility, that what you are good at may no longer be what society values.
1:47:26 This has happened a million times in history that you could have been exceptionally good at saddle making, for example.
1:47:29 That’s something that a lot of people used to care about because everyone rode a horse.
1:47:37 And then suddenly riding a horse became this niche hobby that there are some people care about it, but not nearly as many.
1:47:38 That’s OK.
1:47:44 Now, the other thing of this is I’ve had the good fortune to have been a programmer for nearly 30 years.
1:47:45 That’s a great run.
1:48:02 I try to look at life in this way, that I’ve already been blessed with decades of economically viable, highly valuable ways of translating what I like best in the working world to write Ruby code.
1:48:07 That that was so valuable that I could make millions and millions of dollars doing it.
1:48:10 And if that’s over tomorrow, I shouldn’t look at that with regret.
1:48:12 I should look at it with gratitude.
1:48:20 But you’re also a highly experienced, brilliant and opinionated human being.
1:48:32 So it’s really interesting to get your opinion on the future of the horse because, you know, there’s a lot of young people listening to this who love programming or who are excited by the possibility of building stuff with software.
1:48:37 With Ruby, with Ruby, with Ruby on Rails, that kind of language.
1:48:39 And now the possibility.
1:48:40 But is it a career?
1:48:41 Is it a career?
1:48:52 And how, if indeed a single person can build more and more and more with the help of AI, like how do they learn that skill?
1:48:53 Is this a good skill to learn?
1:49:03 I mean, that to me is the real mystery here because I think it’s still absolutely true that you have to learn how to program from scratch currently.
1:49:03 Yes.
1:49:06 But how do you balance those two skills?
1:49:12 Because I too, as I’m thinking now, there is a scary slipping away of skill that happens.
1:49:20 In a matter of like really minutes on a particular piece of code, it’s just, it’s scary.
1:49:29 Not the way driving, you know, when you have a car drive for you, it doesn’t quite slip away that fast.
1:49:32 So that really scares me.
1:49:35 So when somebody comes up to me and asks me like, how do I learn to program?
1:49:44 I don’t know what the advice is because I think it’s not enough to just use cursor or Copod to generate code.
1:49:45 It’s absolutely not enough.
1:49:46 Not if you want to learn.
1:49:48 Not if you want to become better at it.
1:49:55 If you just become a tap monkey, maybe you’re productive in a second, but then you have to realize, well, can anyone just tap?
1:49:58 If that’s all we’re doing, we’re just sitting around all day long tapping.
1:50:00 Yes, yes, yes, yes, yes.
1:50:01 That’s not a marketable skill.
1:50:10 Now, I always preface this both to myself and when I speak to others about it is rule number one, nobody fucking knows anything.
1:50:13 No one can predict even six months ahead.
1:50:20 Right now, we’re probably at peak AI future hype because we see all the promise because so much of it is real.
1:50:33 And so many people have experienced it themselves, this mind boggling thing that the silicon is thinking in some way that feels eerily reminiscent of humans.
1:50:36 I’d actually say the big thing for me wasn’t even chat GPT.
1:50:37 It wasn’t even clawed.
1:50:38 It was DeepSeek.
1:50:48 Running DeepSeek locally and seeing the think box where it converses with itself about how to formulate the response.
1:50:51 I almost wanted to think, is this a gimmick?
1:50:56 Is it doing this as a performance for my benefit, but that’s not actually how it thinks?
1:50:58 If this is how it actually thinks, okay, I’m a little scared.
1:51:03 This is incredibly human how it thinks in this way.
1:51:05 But where does that go?
1:51:12 So, in 95, one of my favorite movies, one of my favorite B movies came out, The Lawnmower Man.
1:51:13 Great movie.
1:51:15 Incredible movie about virtual reality.
1:51:21 Being an avatar and living in VR, like the story was a mess, but the aesthetics, the world that built up was incredible.
1:51:24 And I thought, we’re five years away.
1:51:27 I’m going to be living in VR now.
1:51:29 I’m just going to be floating around.
1:51:29 I’m going to be an avatar.
1:51:32 This is where most humans can spend most of the day.
1:51:34 That didn’t happen.
1:51:36 We’re 30 years later.
1:51:40 VR is still not here.
1:51:41 It’s here for gaming.
1:51:44 It’s here for some specialized applications.
1:51:47 My oldest loves playing Gorilla Tag.
1:51:48 I don’t know if you’ve tried that.
1:51:50 That’s basically the hottest VR game.
1:51:51 Wonderful.
1:51:52 That’s great.
1:51:56 It’s really hard to predict the future because we just don’t know.
1:52:04 And then when you factor in AI and you have even the smartest people go like, I don’t think we fully understand how this works.
1:52:14 But then on the flip side, you have Moore’s Law that seems to have worked for many, many, many years in decreasing the size of the transistor, for example.
1:52:21 So like, you know, Flash didn’t take over the internet, but Moore’s Law worked.
1:52:23 So we don’t know which one AI is.
1:52:23 Which one it is.
1:52:26 And this is what I find so fascinating, too.
1:52:33 I forget who did this presentation, but someone in the web community did this great presentation on the history of the airplane.
1:52:38 So you go from the Wright Brothers flying in, what, 1903 or something like that.
1:52:42 And 40 years later, you have a jet flight.
1:52:46 Just an unbelievable amount of progress in four decades.
1:52:56 Then in 56, I think it was, the hull design for the Boeing 747, essentially, precursor was designed.
1:52:58 And basically nothing has happened since.
1:53:04 Just minor tweaks and improvements on the flying experience since the 50s.
1:53:16 Somehow, if you were to predict where flying was going to go and you were sitting in 42, and you’d seen, you’d remember the Wright Brothers flying in 03, and you were seeing that jet engines coming.
1:53:20 You’re like, we’re going to fly to the stars in another two decades.
1:53:27 We’re going to invent super mega hypersonic flights that’s going to traverse the Earth in two hours.
1:53:28 And then that didn’t happen.
1:53:29 It tapped out.
1:53:32 This is what’s so hard about predicting the future.
1:53:38 We can be so excited in the moment because we’re drawing a line through early dots on a chart.
1:53:40 And it looks like those early dots are just going up and to the right.
1:53:41 And sometimes it’s just flattened out.
1:53:47 This is also one of those things where we have so much critical infrastructure, for example, that still runs on COBOL.
1:53:59 That about five humans around the world really understand truly, deeply that it’s possible for society to lose a competence it still needs because it’s chasing the future.
1:54:01 COBOL is still with us.
1:54:04 This is one of the things I think about with programming.
1:54:12 Ruby and Rails is at such a level now that in 50 years from now, it’s exceedingly likely that there’s still a ton of Ruby and Rails systems running around.
1:54:16 Now, very hard to predict what that exact world is going to be like.
1:54:27 But yesterday’s weather tells us that if there’s still COBOL code from the 70s operating Social Security today, and we haven’t figured out a clean way to convert that, let alone understand it,
1:54:32 We should certainly be humble about predicting the future.
1:54:42 I don’t think any of the programmers who wrote that COBOL code back in the 70s had any damn idea that in 2025, checks were still being cut off the business logic that they had encoded back then.
1:54:47 But that just brings me to the conclusion on the question for what should a young programmer do?
1:54:49 You’re not going to be able to predict the future.
1:54:51 No one’s going to be able to predict the future.
1:54:54 If you like programming, you should learn programming.
1:54:56 Now, is that going to be a career forever?
1:54:58 I don’t know, but what’s going to be a career forever?
1:54:59 Who knows?
1:55:05 Like a second ago, we thought that it was the blue-collar labor that was going to be extracted first.
1:55:07 It was the robots that were going to take over.
1:55:13 Then Gen. AI comes out, and then all the artists suddenly look like, holy shit, is this going to do all animation now?
1:55:15 It’s going to do all music now?
1:55:16 They get real scared.
1:55:21 And now I see the latest Tesla robot going like, oh, maybe we’re back now to blue-collar being in trouble,
1:55:26 because if it can dance like that, it can probably fix a toilet.
1:55:29 So, no one knows anything.
1:55:36 And you have to then position yourself for the future in such a way that it doesn’t matter.
1:55:43 That you pick a profession or path where if it turns out that you have to retool and reskill,
1:55:45 you’re not going to regret the path you took.
1:55:51 That’s a general life principle for me, how I look at all endeavors I involve myself in,
1:55:55 is I want to be content with all outcomes.
1:56:00 When we start working on a new product at 37 Signals, I set up my mental model for its success.
1:56:02 And I go, do you know what?
1:56:08 If no one wants this, I will have had another opportunity to write beautiful Ruby code,
1:56:13 to explore Greenfield domain, to learn something new, to build a system I want,
1:56:15 even if no one else wants it.
1:56:16 What a blessing.
1:56:18 What a privilege.
1:56:21 If a bunch of people want it, that’s great.
1:56:23 We can pay some salaries.
1:56:24 We can keep the business running.
1:56:27 And if it’s a blowaway success, wonderful.
1:56:28 I get to impact a bunch of people.
1:56:35 I think one of the big open questions to me is how far you can get with vibe coding.
1:56:40 Whether an approach for a young developer to invest most of the time into vibe coding
1:56:42 or into writing code from scratch.
1:56:48 So vibe coding meaning, I’m leaning into the meme a little bit,
1:56:51 but vibe coding meaning you generate code.
1:56:54 You have this idea of a thing you want to create.
1:56:59 You generate the code and then you fix it with both natural language to the prompts and manually.
1:57:02 You learn enough to manually fix it.
1:57:05 So that’s the learning process, how you fix code that’s generated.
1:57:16 Or you write code from scratch and have the LLMs kind of tab, tab, tab, tab, add extra code.
1:57:19 Like which part do you lean on?
1:57:27 I think to be safe, you should find the beauty and the artistry and the skill in both.
1:57:28 Write from scratch.
1:57:32 Like there should be some percent of your time just writing from scratch and some percent vibe coding.
1:57:35 There should be more of the time writing from scratch.
1:57:41 If you are interested in learning how to program, unfortunately, you’re not going to get fit by watching fitness videos.
1:57:45 You’re not going to learn how to play the guitar by watching YouTube guitar videos.
1:57:47 You have to actually play yourself.
1:57:48 You have to do the sit-ups.
1:57:53 Programming, understanding, learning almost anything requires you to do.
1:58:01 Humans are not built to absorb information in a way that transforms into skills by just watching others from afar.
1:58:05 Now, ironically, it seems AI is actually quite good at that, but humans are not.
1:58:10 If you want to learn how to become a competent programmer, you have to program.
1:58:14 It’s really not that difficult to understand.
1:58:15 Now, understand the temptation.
1:58:26 And the temptation is there because vibe coding can produce things, perhaps in this moment, especially in a new domain you’re not familiar with, with tools you don’t know perfectly well that’s better than what you could do.
1:58:30 Or that you would take much longer to get at, but you’re not going to learn anything.
1:58:37 You’re going to learn in this superficial way that feels like learning, but it’s completely empty calories.
1:58:42 And secondly, if you can just vibe code it, you’re not a programmer.
1:58:44 Then anyone could do it, which may be wonderful.
1:58:47 That’s essentially what happened with the Access database.
1:58:48 That’s what happened with Excel.
1:59:00 It took the capacity of accountants to become software developers because the tools became so accessible to them that they could build a model for how the business was going to do next week.
1:59:03 That required a programmer prior to Excel.
1:59:05 Now it didn’t because they could do it themselves.
1:59:16 Vibe coding enables non-programmers to explore their ideas in a way that I find absolutely wonderful, but it doesn’t make you a programmer.
1:59:21 I agree with you, but I want to allow for room for both of us to be wrong.
1:59:26 For example, there could be, vibe coding could actually be a skill.
1:59:33 That if you train it, and by vibe coding, let’s include the step of correction, the iterative correction.
1:59:39 It’s possible if you get really good at that, that you’re outperforming the people that write from scratch.
1:59:51 That you can come up with truly innovative things, especially at this moment in history, while the LLMs are a little bit too dumb to create super novel things and a complete product.
1:59:54 But they’re starting to creep close to that.
2:00:04 So if you’re investing time now into becoming a really good vibe coder, maybe this is the right thing to do if it’s indeed a skill.
2:00:08 We kind of meme about vibe coding just like sitting back and it’s in the name.
2:00:27 But if you treat it seriously, a competitive vibe coder and get good at riding the wave of AI and get good at the skill of editing code versus writing code from scratch, it’s possible that you can actually get farther in the long term.
2:00:34 Maybe editing is a fundamentally different task than writing from scratch, if you take that seriously as a skill that you develop.
2:00:37 To me, that’s an open question.
2:00:50 I just think I personally, and now you’re on another level, but just me, just personally, I’m not as good at editing the code that I didn’t write.
2:00:51 No one is.
2:00:57 No one is of this generation, but maybe that’s a skill.
2:01:02 Maybe if you get on the same page as the AI, because there’s a consistency to the AI.
2:01:08 It’s like, it really is a pair programmer with a consistent style and structure and so on.
2:01:12 Plus, with your own prompting, you can control the kind of code you write.
2:01:14 I mean, it could legitimately be a skill.
2:01:16 That’s the dream of the prompt engineer.
2:01:18 I think it’s a complete pipe dream.
2:01:24 I don’t think editors exist that aren’t good at writing.
2:01:25 I’ve written a number of books.
2:01:27 I’ve had a number of professional editors.
2:01:33 Not all of them wrote their own great books, but all of them were great writers in some regard.
2:01:36 You cannot give someone pointers if you don’t know how to do it.
2:01:46 It’s very difficult for an editor to be able to spot what’s wrong with a problem if they couldn’t make the solution themselves.
2:01:49 Editing, in my opinion, is the reward.
2:01:54 The capacity to be a good editor is the reward you get from being a good doer.
2:01:56 You have to be a doer first.
2:02:07 Now, that’s not the same as saying that vibe coding, prompt engineering, won’t be able to produce fully formed, amazing systems even shortly.
2:02:08 I think that’s entirely possible.
2:02:13 But then there’s no skill left, which maybe is the greatest payoff at all.
2:02:23 Wasn’t that the whole promise of AI anyway, that it was just all natural language, that even my clumsy way of formulating a question could result in a beautiful, succinct answer?
2:02:32 That actually, to me, is a much more appealing vision, that there’s going to be these special prompt engineering wizards who know how to tickle the AI just right to produce what they want.
2:02:44 But the beauty of AI is to think that someone who doesn’t know the first thing about how AI actually works is able to formulate their idea and their aspirations for what they want.
2:02:50 And the AI could somehow take that messy clump of ideas and produce something that someone wants.
2:02:53 That’s actually what programming has always been.
2:03:01 There’s very often been people who didn’t know how to program, who wanted programs, who then hired programmers, who gave them messy descriptions of what they wanted.
2:03:06 And then when the programmers delivered that back, said, oh, no, actually, that’s not what I meant.
2:03:07 I want something else.
2:03:11 AI may be able to provide that cycle.
2:03:16 If that happens to the fullest extent of it, yeah, there’s not going to be as many programmers around, right?
2:03:26 But hopefully, presumably, someone still, at least for the foreseeable future, have to understand whether what the AI is producing actually works or not.
2:03:35 As an interesting case study, maybe a thought experiment, if I wanted to vibe code Basecamp or Hay,
2:03:42 and some of the products you’ve built, like, what would be the bottlenecks?
2:03:44 Where would I fail along the way?
2:03:51 What I’ve seen when I’ve been trying to do this, trying to use vibe coding to build something real, is you actually fail really early.
2:04:00 The vibe coding is able to build a veneer at the current present moment of something that looks like it works, but it’s flawed in all sorts of ways.
2:04:07 There are the obvious ways, the meme ways that it’s leaking all your API keys, it’s storing your password in plain text.
2:04:10 I think that’s ultimately solvable.
2:04:13 Like, it’s going to figure that out, or at least it’s going to get better at that.
2:04:18 But its capacity to get lost in its own labyrinth is very great right now.
2:04:24 You let it code something, and then you want to change something, and it becomes a game of whack-a-mole real quick.
2:04:32 Peter Lovells, who’s been doing this wonderful flight simulator, was talking to that, where at a certain scale, the thing just keeps biting its own tail.
2:04:38 You want to fix something, and it breaks five other things, which I think is actually uniquely human, because that’s how most bad programmers are.
2:04:45 At a certain level of complexity with the domain, they can’t fix one thing without breaking three other things.
2:04:55 So in that way, I’m actually, in some way, it’s almost a positive signal for that the AI is going to figure this out, because it’s on an extremely human trajectory right now.
2:04:59 The kind of mistakes it’s making are the kind of mistakes that junior programmers make all the time.
2:05:06 Can we zoom out and look at the vision, the manifesto, the doctrine of Rails?
2:05:14 What are some of the things that make a programming language, a framework, great, especially for web development?
2:05:15 So we talked about happiness.
2:05:16 Yes.
2:05:18 The underlying objective of Ruby.
2:05:20 What else?
2:05:23 So you’re looking at the nine points I wrote out in, I think, 2012.
2:05:36 And first, before we dive into them, I want to say the reason I wrote it down is that if you want a community to endure, you have to record its values and you have to record its practices.
2:05:43 If you don’t, eventually you’re going to get enough new people come in who have their own ideas of where this thing should go.
2:05:50 And if we don’t have a guiding light helping us to make decisions, we’re going to start flailing.
2:05:51 We’re going to start actually falling apart.
2:05:56 I think this is one of the key reasons that institutions of all kinds start falling apart.
2:05:59 We forget why Chesterton’s fence is there.
2:06:01 We just go like, why is that fence there?
2:06:02 Let’s yank it out.
2:06:03 Oh, it was to keep the wolves out.
2:06:04 Now we’re all dead.
2:06:05 Oops.
2:06:08 So I wanted to write these things down.
2:06:12 And if we just take them quick one by one, you talked about optimizing for programmer happiness.
2:06:15 I put that at number one in homage of Matt’s.
2:06:22 And that’s a lot about accepting that there is occasionally a trade-off between writing beautiful code and other things we want out of systems.
2:06:24 There could be a runtime trade-off.
2:06:26 There can be a performance trade-off.
2:06:27 But we’re going to do it nonetheless.
2:06:36 We’re also going to allow ambiguity in a way that many programmers by default are uncomfortable with.
2:06:44 I give the example actually here of in the interactive Ruby shell where you can play with the language or even interact with your domain model.
2:06:48 You can quit it in two ways, at least, that I’ve found.
2:06:49 You can write exit.
2:06:50 Boom.
2:06:51 You’re out of the program.
2:06:52 You can write quit.
2:06:53 Boom.
2:06:53 You’re out of the program.
2:06:54 They do the same thing.
2:07:00 We just wrote both exit, or the people who built that, wrote both exit and quit because they knew humans were likely to pick one or the other.
2:07:04 Python is the perfect contrast to this.
2:07:09 In the Python interactive protocol, if you write exit, it won’t exit.
2:07:10 It’ll give you a fucking lesson.
2:07:13 It’ll basically tell you to read the fucking manual.
2:07:21 It says, use exit parentheses or control D, i.e. end of file, to exit.
2:07:26 I’m like, one is very human and another is very engineer.
2:07:30 And I mean that, both of them, in the best possible way.
2:07:32 Python is pedantic.
2:07:41 Python’s value from the start stated is that there should be preferably one and only one way to do a certain thing.
2:07:43 Ruby goes the complete opposite.
2:07:52 No, we want the full expression that fits different human brains, such that it seems like the language is guessing just what they want.
2:07:59 And part of that is also you described the principle of least surprise, which is a difficult thing to engineer into a language.
2:08:02 Because you have to kind of, it’s a subjective thing.
2:08:06 Which is why you can’t do it in one way, which is why I use the example of both exit and quit.
2:08:12 The principle of least surprise for some people would be like, oh, exit, that’s how I get out of the prompt.
2:08:13 For other people, it’d be quit.
2:08:15 Why don’t we just do both?
2:08:19 Okay, so what’s the convention over configuration?
2:08:20 That’s a big one.
2:08:21 That’s a big one.
2:08:22 That’s a huge one.
2:08:27 And it was born out of a frustration I had in the early days with especially Java frameworks.
2:08:38 Where when you were setting up a web application framework for Java back in the day, it was not uncommon to literally write hundreds, if not thousands of lines of XML configuration files.
2:08:39 Oh, I need this.
2:08:45 I want the database to use the foreign keys as post underscore ID.
2:08:45 No, no, no.
2:08:49 I want it as post capital I D.
2:08:50 Oh, no, no, no.
2:08:52 You have to do a capital P ID.
2:08:58 There are all these ways where you can configure how foreign relation keys should work in a database.
2:08:59 And none of them matter.
2:09:02 We just need to pick one and then that’s fine.
2:09:06 And if we pick one and we can depend on it, it becomes a convention.
2:09:08 And if it’s a convention, we don’t have to configure it.
2:09:12 And if we don’t have to configure it, you can get started with what you actually care about much quicker.
2:09:19 So convention of a configuration is essentially to take that idea that the system should come preassembled.
2:09:24 I’m not just handing you a box of fucking Legos and asking you to build the Millennium Falcon.
2:09:25 I’m giving you a finished toy.
2:09:26 You can edit.
2:09:27 You can change it.
2:09:28 It’s still built out of Legos.
2:09:30 You can still take some pieces off and put in some other pieces.
2:09:32 But I’m giving you the final product.
2:09:36 And this cuts against the grain of what most programmers love.
2:09:37 They love a box of Legos.
2:09:40 They love to put everything together from scratch.
2:09:44 They love to make all these detailed little decisions that just don’t matter at all.
2:09:48 And I want to elevate that up such that, hey, I’m not trying to take the decisions away from you.
2:09:52 I just want you to focus on decisions that actually matter, that you truly care about.
2:09:57 No one cares about whether it’s post underscore ID or post ID or PID.
2:09:59 Yeah, great defaults.
2:09:59 Yes.
2:10:00 It’s just a wonderful thing.
2:10:02 You have all these aspirations.
2:10:08 They’re going to do some kind of custom, most beautiful Legos castle that nobody’s ever built from these pieces.
2:10:14 But in reality, to be productive in most situations, you just need to build the basic thing.
2:10:18 And then on top of that is where your creativity comes.
2:10:19 Absolutely.
2:10:31 And I think this is one of those part of the doctrine that a lot of programmers who get to use Ruby on Rails begrudgingly will acknowledge it’s a nice thing, even if they don’t really like it.
2:10:39 Like, it’s hard to beat the sort of attraction to building with Legos from scratch out of programmers.
2:10:40 That’s just what we like.
2:10:43 This is why we’re programmers in the first place, because we’d like to put these little pieces together.
2:10:48 But we can direct that instinct towards a more productive end of the stack.
2:10:49 Okay.
2:10:50 What are some of the other ones?
2:10:53 The menu is Amakasa.
2:10:57 It actually comes out of the same principle, that great defaults really matter.
2:11:04 If you look at everything that’s wrong with the JavaScript ecosystem right now, for example, it is that no one is in charge of the menu.
2:11:11 There are a billion different dishes, and you can configure just your tailored, specific configuration of it.
2:11:14 But no one done the work to make sure it all fits together.
2:11:18 So you have all these unique problems in the JavaScript ecosystem, for example.
2:11:23 There’s probably 25 major ways of just doing the controller layer.
2:11:26 And then as many of how to talk to the database.
2:11:32 So you get this permutation of N times N times N of no one is using the same thing.
2:11:35 And if they are using the same thing, they’re only using the same thing for about five minutes.
2:11:38 So we have no retained wisdom.
2:11:40 We build up no durable skills.
2:11:44 Rails goes the complete opposite way of saying, do you know what?
2:11:47 Rails is not just a web framework.
2:11:51 It is a complete attempt at solving the web problem.
2:11:56 It’s a complete attempt at solving everything you need to build a great web application.
2:12:03 And every piece of that puzzle should ideally be in the box, pre-configured, pre-assembled.
2:12:06 If you want to change some of those pieces later, that’s wonderful.
2:12:14 But on day one, you’ll get a full menu designed by a chef who really cared about every piece of the ingredient.
2:12:15 And you’re going to enjoy it.
2:12:22 And that’s, again, one of those things where many programmers think, like, I know better.
2:12:26 And they do in some hyper-local sense of it.
2:12:27 Every programmer knows better.
2:12:29 This is what Ruby is built on.
2:12:32 That every programmer knows better in their specific situation.
2:12:34 Maybe they can do something dangerous.
2:12:36 Maybe they think they know better.
2:12:38 And then they blow their foot off.
2:12:41 And then they truly will know better because they’ve blown their foot off once and won’t do it again.
2:12:44 But the menu is on the cost is that.
2:12:48 So you, in general, see the value in the monolith.
2:12:48 Yes.
2:12:50 The integrated system.
2:12:51 Integrated system.
2:12:53 That someone thought of the whole problem.
2:12:58 This is one of the reasons why I’ve been on a crusade against microservices since the term was coined.
2:13:02 Microservices was born out of essentially a good idea.
2:13:08 What do you do at Netflix scale when you have thousands of engineers working on millions of lines of code?
2:13:11 No one can keep that entire system in their head at one time.
2:13:12 You have to break it down.
2:13:16 Microservices can be a reasonable way to do that when you’re at Netflix scale.
2:13:23 When you apply that pattern to a team of 20 programmers working on a code base of half a million lines of code, you’re an idiot.
2:13:30 You just don’t need to turn method invocations into network calls.
2:13:32 It is the first rule of distributed programming.
2:13:35 Do not distribute your programming.
2:13:37 It makes everything harder.
2:13:43 All the failure conditions you have to consider as a programmer just becomes infinitely harder when there’s a network cable involved.
2:13:48 So I hate the idea of premature decomposition.
2:13:50 And microservices is exactly that.
2:14:00 The monolith says, let’s try to focus on building a whole system that a single human can actually understand and push that paradigm as far as possible.
2:14:05 By compressing all the concepts such that more of it will fit into memory of a single operating human.
2:14:09 And then we can have a system where I can actually understand all of Basecamp.
2:14:14 I can actually understand all of, hey, both of those systems are just over 100,000 lines of code.
2:14:18 I’ve seen people do this at maybe twice, maybe three times that scale and then starts breaking down.
2:14:23 Once you get north of certainly half a million lines of code, no individual human can do it.
2:14:27 And that’s when you get into maybe some degree of microservices can make sense.
2:14:29 Basecamp and hey are both 100,000?
2:14:30 100,000 lines of code.
2:14:31 Wow, that’s small.
2:14:32 It is.
2:14:38 Considering the fact that Basecamp, I think, has something like 420 screens, different ways and configurations.
2:14:40 Do you include the front end in that?
2:14:42 No, that’s the Ruby code.
2:14:46 Well, it’s front end in the sense that some of that Ruby code is beneficial to the front end.
2:14:48 But it’s not JavaScript, for example.
2:14:53 Now, the other thing we might talk about later is we write very little JavaScript, actually, for all of our applications.
2:15:00 Hey, which is a Gmail competitor, Gmail ships, I think, 28 megabytes of uncompressed JavaScript.
2:15:02 If you compress it, I think it’s about 6 megabytes, 28 megabytes.
2:15:04 Think about how many lines of code that is.
2:15:07 When Hey launched, we shipped 40 kilobytes.
2:15:10 It’s trying to solve the same problem.
2:15:19 You can solve the email client problem with either 28 megabytes of uncompressed JavaScript or with 40 kilobytes if you do things differently.
2:15:22 But that comes to the same problem, essentially.
2:15:27 This is why I have fiercely fought splitting front end and back end apart.
2:15:35 That, in my opinion, this was one of the great crimes against web development that we are still atoning for.
2:15:43 That we separated and divided what was and should be a unified problem-solving mechanism.
2:15:46 When you are working both on front end and back end, you understand the whole system.
2:15:52 And you’re not going to get into these camps that decompose and eventually you end up with shit like GraphQL.
2:15:54 Okay.
2:15:58 Let’s fly through the rest of the doctrine.
2:15:59 No one paradigm.
2:16:05 No one paradigm goes to the fact that Ruby is a fiercely object-oriented programming language at its core.
2:16:07 But it’s also a functional programming language.
2:16:14 This five times I told you about, you can essentially do these anonymous function calls.
2:16:19 And you can chain them together very much in the spirit of how true functional programming languages work.
2:16:25 Ruby has even moved closer towards the functional programming end of the scale by making strings immutable.
2:16:33 There are ideas from all different disciplines and all different paradigms of software development that can fit together.
2:16:37 Smalltalk, for example, was only object-oriented.
2:16:38 And that was just it.
2:16:44 Ruby tries to be mainly object-oriented but borrow a little bit of functional programming, a little bit of imperative programming.
2:16:45 We’re able to do all of that.
2:16:47 Rails tries to do the same thing.
2:16:50 We’re not just going to pick one paradigm and run it through everything.
2:16:53 Object orientation is at the center of it.
2:16:56 But it’s okay to invite all these other disciplines in.
2:16:57 It’s okay to be inspired.
2:16:58 It’s okay to remix it.
2:17:04 I actually think one of the main benefits of Rails is that it’s a remix.
2:17:06 I didn’t invent all these ideas.
2:17:08 I didn’t come up with active record.
2:17:11 I didn’t come up with the MVC way of dividing an application.
2:17:17 I took all the great ideas that I had learned and picked up from every different camp and I put it together.
2:17:25 Not because there was going to be just one single overarching theory of everything, but I was going to have a cohesive unit that incorporated the best from everywhere.
2:17:30 Is that idea a bit at tension with the beauty of the monolith system?
2:17:48 I think the monolith can be thought of as quite roomy, quite as a big tent that the monolith needs actually to borrow a little bit of functional programming for the kinds of problems that that excels, that discipline excels at solving and that paradigm excels at solving.
2:17:55 If you also want object orientation as its core, I actually think when I’ve looked at functional programming languages, there’s a lot to love.
2:18:05 And then I see some of the crazy contortions they have to go through when part of the problem they’re solving calls for mutating something.
2:18:11 And you go like, holy shit, this is a great paradigm for 90% of the problem.
2:18:15 And then you’re twisting yourself completely out of shape when you try to solve the last 10.
2:18:18 Ooh, exalt beautiful code is the next one.
2:18:31 We’ve talked about that at length, and here’s a great example that really summarizes the domain-specific language quality of Ruby on Rails, that you can make code actually pleasant to write and read.
2:18:36 Which is really funny to me because, as we talked about, when I started learning programming, it wasn’t even a consideration.
2:18:46 I didn’t even know that that could be part of the premise, that that could be part of the solution, that writing code could feel as good as writing a poem.
2:18:56 Class project, application record belongs to account, has many participants, class name person, validates presence of name.
2:18:58 See, you could read it out.
2:18:59 You didn’t even change anything.
2:19:00 It’s like a haiku or something.
2:19:01 Right.
2:19:02 Isn’t that beautiful?
2:19:03 Yeah, it’s nice.
2:19:05 It’s really nice.
2:19:07 There’s an intuitive nature to it.
2:19:10 Okay, so I have specific questions there.
2:19:15 I mean, active record, just to take that tangent, that has to be your favorite feature.
2:19:16 It’s the crown jewel.
2:19:18 Of Rails.
2:19:19 It really is.
2:19:23 It is the defining characteristic of how to work with Ruby on Rails.
2:19:23 Yeah.
2:19:27 And it’s born in an interesting level of controversy.
2:19:34 Because it actually uses a pattern that had been described by Martin Fowler in the Patterns of Enterprise Application Architecture.
2:19:39 One of the greatest books for anyone working on business systems.
2:19:41 And if you had not read it, you must pick it up immediately.
2:19:44 Patterns of Enterprise Application Architecture.
2:19:45 I think it was published in 2001.
2:19:50 It is one of the very few programming books that I have read many times over.
2:19:51 It’s incredible.
2:19:58 In it, Martin describes a bunch of different patterns of how to build business systems, essentially.
2:20:01 And active record is a little bit of a footnote in there.
2:20:02 The pattern is literally called active record.
2:20:03 You can look it up.
2:20:03 Nice.
2:20:04 It’s called active record.
2:20:07 I wasn’t even creative enough to come up with a name of my own.
2:20:19 But it allows the creation, the marriage of database and object orientation in a way that a lot of programmers find a little off-putting.
2:20:27 They don’t actually want to pollute the beautiful object-oriented nature of that kind of programming with SQL.
2:20:32 There was a rant by Uncle Bob the other day about how SQL is the worst thing ever.
2:20:32 Blah, blah.
2:20:34 Okay, fine.
2:20:35 Whatever.
2:20:35 I don’t care.
2:20:37 This is practical.
2:20:40 We are making crud applications.
2:20:44 You’re taking things out of an HTML form and you’re sticking them into a damn database.
2:20:45 It’s not more complicated than that.
2:20:51 The more abstractions you put in between those two ends of the spectrum, the more you’re just fooling yourself.
2:20:52 This is what we’re doing.
2:20:54 We’re talking to SQL databases.
2:21:06 By the way, quick aside, SQL was one of those things that have endured the onslaught of no SQL databases, structured list data for a better part of a decade, and still reign supreme.
2:21:08 SQL was a good thing to invest your time and learning.
2:21:18 Every program I’m working with the web should know SQL to a fair degree, even if they’re working with an ORM, an object relational mapper, as Active Record.
2:21:19 You still need to understand SQL.
2:21:26 What Active Record does is not so much try to abstract the SQL away behind a different kind of paradigm.
2:21:38 It’s just making it less cumbersome to write, making it more amenable to build domain models on top of other domain models in a way since you don’t have to write every damn SQL statement by hand.
2:21:48 Let’s just say the Active Record is an ORM, which is a layer that makes it intuitive and human interpretable to communicate with a database.
2:21:54 Even simpler than that, it turns tables into classes and rows into objects.
2:21:58 I actually think SQL is very easy to understand, most of it.
2:21:59 You can write some SQL golf, too.
2:22:01 That’s very hard to understand.
2:22:06 But SQL at its base, and much of the criticism against SQL was it was written for human consumption.
2:22:11 It’s actually quite verbose, especially if you’re doing things like inserts over and over again.
2:22:12 It’s quite verbose.
2:22:21 Insert into table, parentheses, enumerate every column you want to insert, values, parentheses, every value that fits with that column.
2:22:26 It gets tedious to write SQL by hand, but it’s actually very humanly readable.
2:22:30 Active Record just takes that tediousness away.
2:22:36 It makes it possible to combine things in a way that a humanly describable language just doesn’t.
2:22:41 It composes things into methods, and you can combine these methods, and you can build structures around them.
2:22:43 So I don’t dislike SQL.
2:22:44 I dislike a lot of things in programming.
2:22:46 I try to get rid of them.
2:22:47 SQL wasn’t really one of them.
2:22:51 It was just a sense of, I don’t want to write the same thing over and over again.
2:22:53 Can we be a little more succinct?
2:23:02 Can we match it just slightly better to the object orientation without trying to hide away the fact that we’re persisting these objects into a database?
2:23:05 That’s where I think a lot of ORMs went wrong.
2:23:13 They tried to live in the pure world of objects, never to consider that those objects had to be consistent into a SQL database.
2:23:17 And then they came up with a convoluted way of translating back and forth.
2:23:19 Active Record says, do you know what?
2:23:20 Just accept it.
2:23:25 This record, this object, is not going to get saved into some NoSQL database.
2:23:26 It’s not going to be saved.
2:23:27 It’s going to be saved into a SQL database.
2:23:30 So it’s just structured the whole thing around that.
2:23:31 It’s going to have attributes.
2:23:34 Those attributes are going to respond to columns in the database.
2:23:36 It’s not more complicated than that.
2:23:37 Stop making it so.
2:23:38 Yeah.
2:23:42 But as I say, so I personally love SQL because I’m an algorithms person.
2:23:44 And so I love optimization.
2:23:57 I love to know how the databases actually work so I can match the SQL queries and the design of the tables such that there is, you know, optimal, squeeze the optimal performance out of the table.
2:23:58 Okay.
2:24:01 Based on the actual way that that table is used.
2:24:07 So, I mean, I think that pushes to the point that, like, there is value in learning and understanding SQL.
2:24:14 I wonder, because I started looking at Active Record and it looks really awesome.
2:24:15 Does that make you lazy?
2:24:20 Not you, but a person that rolls in and starts using Rails.
2:24:25 You can probably get away with never really learning SQL, right?
2:24:28 As long as you want to stay at the entry level of competence.
2:24:41 And this is actually my overarching mission with Rails, is to lower the barrier of entry so far down that someone can start seeing stuff on the browser without basically understanding anything.
2:24:47 They can run Rails’ new blog, run a couple of generators.
2:24:48 They have a whole system.
2:24:49 They don’t understand anything.
2:24:52 But it’s an invitation to learn more.
2:25:00 Where I get fired up, and this ties back to the AI discussion, is when that’s turned into this meme that programmers no longer have to be competent.
2:25:03 They can just, I mean, the AI is going to figure it out.
2:25:04 The generators is going to figure it out.
2:25:06 I don’t need to know SQL.
2:25:08 Active Record is going to abstract it away from me.
2:25:08 No, no, no.
2:25:10 Dude, hold up.
2:25:12 The path here is competence.
2:25:14 I’m trying to teach you things.
2:25:16 I understand I can’t teach you everything in five minutes.
2:25:21 No one who’s ever become good at anything worthwhile could be taught everything in five minutes.
2:25:27 If you want to be a fully well-rounded web application developer, that takes years.
2:25:32 But you can actually become somewhat productive in a few days.
2:25:33 You can have fun in a few days, for sure.
2:25:36 You can have fun in a few minutes, in a few hours.
2:25:38 And over time, I can teach you a little more.
2:25:40 Active Record says, like, yeah, yeah, all right.
2:25:41 Start to here.
2:25:45 And then, like, next week, we’ll do a class on SQL.
2:25:54 And actually, you have this beautiful expression that I love, that a great programming language, like Ruby, has a soft RAM, but the RAM goes to infinity.
2:25:55 That’s exactly right.
2:25:58 So, yeah, it’s super accessible, super easy to get started.
2:25:59 And it never stops.
2:26:00 Yeah.
2:26:01 There’s always more to learn.
2:26:06 This is one of the reasons I’m still having fun programming, that I’m still learning new things.
2:26:07 I can still incorporate new things.
2:26:09 The web is deep enough as a domain.
2:26:11 You’re never going to learn all of it.
2:26:13 Provide sharp knives.
2:26:14 This is a good one.
2:26:21 Because another way of saying this, the opposite way of saying this, the Java way of saying this, do not provide foot guns.
2:26:21 Right?
2:26:23 I don’t want to give you sharp knives.
2:26:24 You’re a child.
2:26:26 You can’t handle a sharp knife.
2:26:27 Here’s a dull butter knife.
2:26:28 Cut your damn steak.
2:26:29 Right?
2:26:31 That’s a very frustrating experience.
2:26:34 You want a sharp knife, even though you might be able to cut yourself.
2:26:38 I trust humans in the same way that mats trust humans.
2:26:40 Maybe you cut off a finger.
2:26:41 All right.
2:26:42 You’re not going to do that again.
2:26:44 Thankfully, it was a virtual finger.
2:26:45 It’s going to grow back out.
2:26:46 Your competence is going to grow.
2:26:50 It’s more fun to work with sharp tools.
2:26:53 And that actually contributes to the ramp that goes to infinity.
2:26:53 Yes.
2:26:54 To the learning.
2:26:57 Value integrated systems.
2:26:58 We kind of hit on that one.
2:27:01 Rails is trying to solve the whole problem of the web.
2:27:02 Not just one little component.
2:27:06 It’s not leaving you a bunch of pieces you have to put together yourself.
2:27:07 Progress over stability.
2:27:08 You know what?
2:27:10 If there’s one that’s dated, it’s probably that one.
2:27:17 At this stage, Rails has been incredibly stable over many, many generations.
2:27:23 The last major release, Rails 8, was basically a no-up upgrade for anyone running Rails 7.
2:27:27 Rails 7 was almost a no-up upgrade for anyone running Rails 6.
2:27:36 I used to think it required more churn to get progress, to stay on the leading edge of new stuff.
2:27:50 And I wrote this before I experienced the indignity of the 2010s in the JavaScript community, where it seemed like stability was not just unvalued, it was actually despised.
2:27:53 That churn in and of itself was a value we should be pursuing.
2:27:58 That if you were still working with the same framework three months later, you were an idiot.
2:28:00 And I saw that and I actually recoiled.
2:28:03 And if I was going to write the doctrine today, I’d write that differently.
2:28:05 I wouldn’t say progress over stability.
2:28:10 Well, maybe it’d be a function of the age of the programming language also.
2:28:14 Maybe, or a deeper understanding of the problem.
2:28:21 I think part of what’s so fascinating about technology is that we have this perception that everything constantly moves so fast.
2:28:22 No, it doesn’t.
2:28:25 Everything moves at a glacial pace.
2:28:37 There is occasionally a paradigm shift, like what’s happening with AI right now, like what happened with the introduction of the iPhone in 2007, like what happened with the internet in 95.
2:28:40 That’s basically the total sum of my career.
2:28:41 Three things changed.
2:28:46 Everything else in between was incremental, small improvements.
2:28:50 You can recognize a Rails application written in 2003.
2:29:00 I know, because the base camp I wrote back then is still operating, making millions of dollars in ARR, servings and customers on the initial version that was launched back then.
2:29:03 And it looks like the Rails code, if I squint a little, that I would write today.
2:29:07 So most things don’t change, even in computing.
2:29:08 And that’s actually a good thing.
2:29:15 We saw with the JavaScript ecosystem, what happens when everyone gets just mad about constant churn, things don’t change that often.
2:29:25 By the way, on that small tangent, you just sort of visibly, verbally changed your mind with the you of 15 years ago.
2:29:25 Yes.
2:29:27 That’s interesting.
2:29:32 Have you noticed yourself changing your mind quite a bit over the years?
2:29:45 I would say, oh, yes, and then also, oh, no, in the sense that there are absolutely fundamental things, both about human nature, about institutions, about programming, about business that I’ve changed my mind on.
2:29:51 And then I’ve also had experiences that are almost even more interesting, where I thought I had changed my mind.
2:29:57 And I tried it a new way, realized why I had the original opinion in the first place, and then gone back to it.
2:29:59 So it happens both ways.
2:30:04 An example of the later part, for example, was managers at 37signals.
2:30:14 For the longest time, I would rail against engineering managers as an unnecessary burden on a small or even medium-sized company.
2:30:17 And at one point, I actually started doubting myself a little bit.
2:30:18 I started thinking, like, you know what?
2:30:26 Maybe all programmers do need a one-on-one therapy session every week with their engineering manager to be a whole individual.
2:30:35 So we tried that for a couple of years where we hired some very good engineering managers who did engineering management the way you’re supposed to do it, the way it’s done all over the place.
2:30:38 And after that, I thought, like, no.
2:30:40 No, I was right.
2:30:41 This was correct.
2:30:42 We should not have had managers.
2:30:47 Not every programmer needs a therapy session with an engineering manager every week.
2:30:50 We don’t need these endlessly scheduled huddles.
2:30:52 We don’t need all these meetings.
2:30:59 We just need to leave people the hell alone to work on problems that they enjoy for long stretches of uninterrupted time.
2:31:01 That is where happiness is found.
2:31:03 That’s where productivity is found.
2:31:06 And if you can get away with it, you absolutely should.
2:31:10 Engineering management is a necessary evil when that breaks down.
2:31:12 What’s the case for managers then?
2:31:18 The case for managers is that if you do have a lot of people, there’s a bunch of work that kind of just crops up.
2:31:22 The one-on-one is one example that programmers need someone to check in with.
2:31:30 There’s another idealized version that someone needs to guide the career of juniors, for example, to give them redirecting feedback and all this other stuff.
2:31:40 And it’s not that in the abstract, I don’t agree with some of those things, but in practice, I’ve found that they often create more problems that they solve.
2:31:48 And a good example here is, can you get feedback from someone who’s not better at your job than you are?
2:31:50 You can get some feedback.
2:31:52 You can get feedback on how you show up at work.
2:31:54 Are you being courteous to others?
2:31:56 Are you being a good communicator?
2:31:59 Okay, yes, but you can’t get feedback on your work, and that’s more important.
2:32:06 It’s more important that you work under and with someone who’s better at your job than you are if you wish to progress in your career.
2:32:20 And every single programmer I’ve ever worked with was far more interested in progressing in their career on that metric, getting better at their craft, than they were in picking up pointers that a middle manager could teach them.
2:32:22 That’s not saying that there isn’t value in it.
2:32:25 It’s not saying there isn’t value in being a better person or a better communicator.
2:32:26 Of course, there is all those things.
2:32:30 But if I have to choose one or the other, I value competence higher.
2:32:36 Like that’s, again, I caveat this a million times because I know what people sometimes hear.
2:32:45 They hear the genius asshole is just fine, and that’s great, and you should excuse all sorts of malicious behavior if someone’s just really good at what they do.
2:32:47 I’m not saying that at all.
2:32:52 What I am saying is that the history of competence is a history of learning from people who are better than you.
2:32:57 And that relationship should take precedence over all else.
2:33:02 And that relationship gets put aside a bit when engineering managers are introduced.
2:33:07 Now, the funny thing is, this conversation ties back to the earlier things we were talking about.
2:33:09 Most engineering managers are actually former programmers.
2:33:11 They at least know programming to some extent.
2:33:18 But what I’ve seen time and again is that they lose their touch, their feel with it very, very quickly.
2:33:28 And turn into pointy-haired bosses very, very quickly who are really good at checking for updates, just seeing where we are on Project A here.
2:33:30 If you need anything or are we ready to deliver to it?
2:33:31 Okay.
2:33:32 Yes.
2:33:33 And also, no.
2:33:34 Just shut up.
2:33:36 Leave me the hell alone.
2:33:38 Let me program, and then I’ll come up for air.
2:33:45 I’ll talk with other programmers who I can spar with, that we can learn something with, I can turn the problems over with, and we can move forward.
2:33:59 If you look back on the history of computer industry, all the great innovation that’s happened, it’s all been done by tiny teams with no engineering managers, just full of highly skilled individuals.
2:34:01 You’ve had John Carmich on here.
2:34:10 I used to look up to id Software so much, not just because I loved Quake, not just because I loved what they were doing, but because he shared a bit about how the company worked.
2:34:12 There were no managers.
2:34:15 Or maybe they had one business guy doing some business stuff, but that was just to get paid.
2:34:21 Everything else was basically just designers and programmers, and there were about eight of them, and they created goddamn Quake 2.
2:34:24 So why do you need all these people again?
2:34:26 Why do you need all these managers again?
2:34:31 I think, again, at a certain scale, it does break down.
2:34:38 It’s hard to just have 100,000 programmers running around wild without any product mommies or daddies telling them what to do.
2:34:39 I understand that.
2:34:42 And then, even as I say that, I also don’t understand it.
2:34:49 Because if you look at something like Gmail, for example, there was like a side project done by Boucher at Google at the time.
2:34:56 So much of the enduring long-term value of even all these huge companies were created by people who didn’t have a goddamn manager.
2:34:58 And that’s not an accident.
2:35:00 That’s a direct cause and effect.
2:35:08 So I’ve turned in some way even more militant over the years against this notion of management, at least for myself and knowing who I am and how I want to work.
2:35:11 Because the other part of this is I don’t want to be a manager.
2:35:17 And maybe this is just me projecting the fact that I’m an introvert who don’t like to talk to people in one-on-one calls every week.
2:35:22 But it also encapsulates how I was able to progress my career.
2:35:29 I did not really go to the next level with Ruby or otherwise until I had a door I could close and no one could bother me for six hours straight.
2:35:36 So in companies, probably one of the reasons is it’s very easy to hire managers.
2:35:42 And managers also delegate responsibility from you.
2:35:46 So if you just have a bunch of programmers running around, you’re kind of responsible.
2:35:48 It’s work.
2:35:54 It’s intellectual work to have to deal with the first principles of every problem that’s going on.
2:35:57 So managers, you can relax.
2:35:58 Oh, I’ll be taken care of.
2:36:04 But they then hire their own managers and it just multiplies and multiplies and multiplies.
2:36:10 I would love it if some of the great companies we have in the United States,
2:36:13 if there was like an extra side branch that we could always run.
2:36:20 Maybe physicists can come up how to split the simulation to where just all the managers are removed.
2:36:28 Also, just in that branch, just the PR and the comms people also, and even the lawyers, just the engineers.
2:36:30 And let’s just see.
2:36:31 And then we merge it back.
2:36:34 I’ve essentially run that branch at 37 Signals for 20 years.
2:36:38 And I’ve experimented with forking back on the other side.
2:36:40 I’ve experimented with having a full-time lawyer on staff.
2:36:42 I’ve experimented with having engineering managers.
2:36:50 And I can tell you, life is much better at 50, 60 people when none of those individuals or none of those roles.
2:36:51 It’s never about the individuals.
2:36:52 It’s about the roles.
2:36:55 None of those roles are in your organization full-time.
2:36:57 Occasionally, you need a manager.
2:37:00 Occasionally, you need a lawyer.
2:37:03 I can play the role of manager occasionally.
2:37:04 Fine.
2:37:06 And then I can set it back down to zero.
2:37:09 It’s almost like a cloud service.
2:37:16 I want a manager service I can call on for seven hours this week, and then I want to take it down to zero for the next three months.
2:37:23 Yeah, I read, I don’t know if this is still the case, that Basecamp is an LLC and doesn’t have a CFO, like a full-time accountant.
2:37:27 So what’s actually funny is these days we do have a head of finance.
2:37:32 We did not for the first 19 years of life, I think.
2:37:39 We got away with basically just having an accountant do our books in the same way you would do a small ice cream shop,
2:37:42 except we would, over time, have done hundreds of millions of dollars in revenue.
2:37:44 The scale seemed quirky.
2:37:50 And at some point, you can also fall in love with your own quirkiness to a degree that isn’t actually healthy.
2:37:52 And I’ve certainly done that over time.
2:37:57 And we should have had someone count the beans a little more diligently, a little earlier.
2:38:04 This was part of a blessing of just being wildly profitable and selling software that can have infinite margins, basically,
2:38:07 that you kind of can get away with a bunch of stuff that you perhaps shouldn’t.
2:38:14 What partially taught me this lesson was when we realized we had not been collecting sales tax.
2:38:17 in different U.S. states where we had nexus.
2:38:23 And it took us about two years and $5 million in settlements and cleanups to get out of that mess.
2:38:26 And after that, I went like, OK, fine, we can hire a finance person.
2:38:26 OK.
2:38:32 And we now have a wonderful finance person, Ron, who actually ended up replacing something else we used to have.
2:38:39 We used to have a full-time data analytics person who would do all sorts of insight mining for why are people signing up for this thing.
2:38:42 We ran that for 10 years and realized, you know what?
2:38:45 If I can have either a data analytics person or an accountant, I’m picking the accountant.
2:38:48 I love this so much on so many levels.
2:38:52 Can we just linger on that advice that you’ve given that small teams are better?
2:38:58 I think that’s really less, less is more.
2:39:00 What did you say before worse is better?
2:39:02 OK, I’m sorry.
2:39:06 Worse is better on adoption with technology a lot of times.
2:39:08 And I think it actually comes out of the same thing.
2:39:15 It comes out of the fact that many of the great breakthroughs are created by not even just tiny teams, but individuals.
2:39:17 Individuals writing something.
2:39:22 And an individual writing something on some parameter, what they do is worse.
2:39:31 Of course, it’s worse when one person has to make something that a huge company have hundreds, if not thousands of developers that they can have work on that problem.
2:39:36 But in so many other parameters, that worseness is the value.
2:39:38 That less is the value.
2:39:43 In Getting Real, which we wrote back in 2006, we talk about this notion of less software.
2:39:50 When we first got started with Basecamp back in 2004, people would ask us all the time, aren’t you petrified of Microsoft?
2:39:52 They have so many more resources.
2:39:54 They have so many more programmers.
2:40:01 What if they take a liking to your little niche here and they show up and they just throw a thousand programmers at the problem?
2:40:09 And my answer, perhaps partly because I was like 24, was first of all, no, no care in the world.
2:40:12 But the real answer was they’re not going to produce the same thing.
2:40:17 You cannot produce the kind of software that Basecamp is with a team of a thousand people.
2:40:21 You will build the kind of software that a thousand people builds.
2:40:24 And that’s not the same thing at all.
2:40:34 So, so much of the main breakthrough in both end-user systems, but also in open-source systems, in fundamental systems, they’re done by individuals or very small teams.
2:40:43 Even all these classical histories of Apple has always been like, well, there’s a big organization, but then you had the team that was actually working on the breakthrough.
2:40:44 It was four people.
2:40:45 It was eight people.
2:40:46 It was never 200.
2:40:51 And the large team seems to slow things down.
2:40:52 Yes.
2:40:53 It’s so fascinating.
2:40:55 And part of it is the manager thing.
2:40:57 Because humans don’t scale.
2:41:01 Communication between humans certainly don’t scale.
2:41:04 You basically get the network cost effect.
2:41:07 Every time you add a new node, it goes up exponentially.
2:41:17 This is perhaps the key thing of why I get to be so fond of having no managers at Basecamp because our default team size is two.
2:41:21 One programmer, one designer, one programmer, one designer, one feature.
2:41:26 When you’re operating at that level of scale, you don’t need sophistication.
2:41:30 You don’t need advanced methodologies.
2:41:33 You don’t need multiple layers of management because you can just do.
2:41:36 The magic of small teams is that they just do.
2:41:39 They don’t have to argue because we don’t have to set direction.
2:41:41 We don’t have to worry about the roadmap.
2:41:45 We can just sit down and make something and then see if it’s good.
2:41:48 When you can get away with just making things, you don’t have to plan.
2:41:58 And if you can get out of planning, you can follow the truth that emerges from the code, from the product, from the thing you’re working on in the moment.
2:42:08 You know far more about what the great next step is when you’re one step behind rather than if you try 18 months in advance to map out all the steps.
2:42:11 How do we get from here to very far away?
2:42:12 You know what?
2:42:17 That’s difficult to imagine in advance because humans are very poor at that.
2:42:19 Maybe AI one day will be much better than us.
2:42:24 But humans can take one foot or put one foot in front of each other.
2:42:25 That’s not that hard.
2:42:29 And that allows you to get away with all that sophistication.
2:42:31 So the process has become much simpler.
2:42:32 You need far fewer people.
2:42:33 It compounds.
2:42:34 You need much less process.
2:42:37 You need to waste less time in meetings.
2:42:45 You can just spend these long, glorious days and weeks of uninterrupted time solving real problems you care about and that are valuable.
2:42:49 And you’re going to find that that’s what the market actually wants.
2:42:54 No one is buying something because there’s a huge company behind it most of the time.
2:42:55 They’re buying something because it’s good.
2:43:02 And the way you get something good is you don’t sit around and have a meal about it.
2:43:03 You try stuff.
2:43:04 You build stuff.
2:43:12 It really is kind of incredible what one person, honestly, one person can do in 100 hours of deep work, of focused work.
2:43:13 Even less.
2:43:14 So I’ll tell you this.
2:43:19 I tracked exactly the number of hours I spend on the first version of Basecamp.
2:43:24 And I was doing this because at the time I was working on a contract basis for Jason.
2:43:28 He was paying me, I was going to say $15 an hour.
2:43:29 That’s what I got paid when we first got started.
2:43:31 I think he had bumped my pay to a glorious 25.
2:43:38 But I was billing him and I know that the invoice for the first version of Basecamp was 400 hours.
2:43:51 That’s what it took for one sole individual in 2004 to create an entire system that has then gone on to gross hundreds of millions of dollars and continues to do extremely well.
2:43:54 One person, just me, setting up everything.
2:43:55 Part of that story is Ruby.
2:43:56 Part of that story is Rails.
2:44:02 But a lot of it is also just me plus Jason plus Ryan plus Matt.
2:44:04 That was the entire company at the time.
2:44:10 And we could create something of sheer sustaining value with such a tiny team.
2:44:12 Because we were a tiny team, not despite of.
2:44:14 Small is not a stepping stone.
2:44:17 This is the other thing that people get into their head.
2:44:26 This is one of the big topics of rework, that it gave entrepreneurs the permission to embrace being a small team, not as a waypoint.
2:44:29 Not as like, I’m trying to become a thousand people.
2:44:31 No, I actually like being a small team.
2:44:33 Small teams are more fun.
2:44:37 If you ask almost anyone, I’m sure Toby would say this too.
2:44:43 Even at his scale, the sheer enjoyment of building something is in the enjoyment of building it with a tiny team.
2:44:48 Now, you can have impact at a different scale when you have a huge company.
2:44:49 I fully recognize that.
2:44:50 And I see the appeal of it.
2:44:54 But in the actual building of things, it’s always small teams.
2:44:54 Always.
2:44:56 How do you protect the small team?
2:44:59 Basecamp has successfully stayed small.
2:45:02 There’s been the dragons you had to fight off.
2:45:05 That like, basically, you make a lot of money.
2:45:08 There’s a temptation to grow.
2:45:10 So how do you not grow?
2:45:12 Don’t take venture capital.
2:45:13 Okay.
2:45:14 That is step one.
2:45:15 Point number one.
2:45:18 First of all, everybody takes venture capital.
2:45:20 So you’re already wet.
2:45:22 I mean, that’s been the answer for the longest time.
2:45:24 Because the problem isn’t just venture capital.
2:45:25 It’s other people’s money.
2:45:30 Once you take other people’s money, completely understandably, they want a return.
2:45:32 And they would prefer to have the largest return possible.
2:45:35 Because it’s not them sitting in the code.
2:45:41 It’s not them getting the daily satisfaction out of building something, chiseling, beautiful code poems out of the editor.
2:45:43 They don’t get that satisfaction.
2:45:46 They get the satisfaction, maybe, of seeing something nice put into the world.
2:45:47 That’s fair.
2:45:49 But they certainly also get a satisfaction of a higher return.
2:45:59 And there is this sense, certainly in venture capital, stated in venture capital, that the whole point of you taking the money is to get to a billion dollars or more.
2:46:04 Now, the path to that usually does go through running established playbooks.
2:46:10 And then when it comes to software, the enterprise sales playbook is that playbook.
2:46:15 If you’re doing B2B software, SaaS, you will try to find product market fit.
2:46:22 And the second you have it, you will abandon your small and medium-sized accounts to chase the big whales with a huge sales force.
2:46:24 And by then, you’re 1,000 people and life sucks.
2:46:29 That said, you, I mean, people are just curious about this.
2:46:32 I’ve gotten a chance to get to know Jeff Bezos.
2:46:37 He invested in Basecamp, non-controlling.
2:46:39 He bought secondaries.
2:46:54 So this was the funny thing is that when investing have these two dual meanings, normally when people think about investing, they think you’re putting in growth capital because you want the business to hire more people, to do more R&Ds, so they can grow bigger.
2:46:56 Bezos didn’t do that, actually.
2:47:07 He bought an ownership stake directly from Jason and I, and 100% of the proceeds of that purchase went into my and Jason’s bank account, personal bank account.
2:47:12 Not a single cent went into the account of the company because we didn’t need the money to grow.
2:47:29 What we needed, or what we certainly enjoyed, was to some extent maybe the vote of confidence, but more so the security of taking a little bit off the table just that we dared turn down the big bucks from venture capitals.
2:47:39 It was essentially a vaccine against wanting to take a larger check from people who then wanted to take the company to something enormous that we didn’t want to go with it.
2:47:52 So Jeff gave Jason and I just enough money that we were comfortable turning all these people down in a way where if it had turned belly up like six months later, we wouldn’t have been kicking ourselves and gone.
2:47:59 We had something here that was worth millions, and now we have nothing, and I have to worry about rent and groceries again.
2:48:01 It is a vote of confidence.
2:48:09 So I wonder from, I’d love to hear Jeff’s side of the story of like why, because he doesn’t need like the money.
2:48:20 So it’s really, I think it probably is just believing in people and wanting to have cool stuff be created in the world and make money off of it, but not like.
2:48:40 100% the motivation for Jeff wasn’t a return because he actually has a team, his private office, that runs these investments, who did the calculus on the investment pitch we gave him, which was so ridiculous that Jason and I were laughing our asses off when we were writing down our metrics.
2:48:46 I was like, no one’s going to pay this, no one is going to give us this multiple of this amount of revenue, and that’s fine.
2:48:54 I mean, we took the call essentially out of kind of an awe that Jeff Bezos even wanted to look at us and like, do you know what?
2:48:55 We don’t want venture capital.
2:49:01 We don’t need other people’s money, but like, let’s just give him a bullshit number that no sane person would actually say yes to.
2:49:03 And then, I mean, we can each go our own way.
2:49:05 And his investment team said like, Jeff, no way.
2:49:08 This makes no economic sense at all.
2:49:10 They’re asking for way too much money with way too little revenue.
2:49:12 And Jeff just went like, I don’t care.
2:49:13 I want to invest in this guy.
2:49:16 Because to him at the time, it was chump change, right?
2:49:18 Like, Jason and I each got a few million dollars.
2:49:27 I mean, whatever, the currency swing between the yen and the dollar that day probably moved 10x that for his network than our investment did.
2:49:36 Jeff seemed genuinely interested in being around interesting people, interesting companies, helping someone go to distance.
2:49:47 And I actually look back on that relationship with some degree of regret because I took that vote of confidence for granted in ways that I’m a little bit ashamed of.
2:49:55 Over the years, I’ve been more critical about some of the things that Amazon had done that I feel now is sort of justified.
2:50:00 So that’s just sort of part of that processing of it.
2:50:04 But on the economic sense, he gave us that confidence.
2:50:05 He gave us the economic confidence.
2:50:17 But then he also gave us the confidence of a CEO running, perhaps at the time, the most important internet business in the U.S., showing up to our calls, which we would have with him like once a year.
2:50:20 And basically just going like, yeah, you guys are doing awesome stuff.
2:50:22 You should just keep doing awesome stuff.
2:50:23 I read your book.
2:50:23 It’s awesome.
2:50:24 You launched this thing.
2:50:25 It’s awesome.
2:50:26 You should just do more of that.
2:50:27 I don’t actually know how to run your business.
2:50:28 You guys know.
2:50:32 So the book was out because I’m just from a fan perspective.
2:50:40 I’m curious about how Jeff Bezos is able to see, because to me, you and Jason are like special humans in the space of tech.
2:50:43 And the fact that Jeff was able to see that, right?
2:50:44 How hard is it to see that?
2:50:46 He certainly saw it very early.
2:50:49 And I think this is something that Jeff does better than almost anyone else.
2:51:00 He spots that opportunity so far in advance of anyone else even open their eyes to it, or certainly is willing to bet on it far early and far harder than anyone else is.
2:51:02 And he’s just right time and again.
2:51:05 I mean, we were not the only investment that he made.
2:51:10 And certainly, Amazon had an extremely long-term vision.
2:51:15 So far longer than I have ever had the gumption to keep.
2:51:17 Like, I think of myself as a long-term thinker.
2:51:21 I’m playing a child’s game compared to the game that Jeff is playing.
2:51:27 Like, when I looked at Amazon’s economics around the dot-com boom and bust, they looked ridiculous.
2:51:29 Like, they were losing so much money.
2:51:31 They were so hated by the market.
2:51:34 They were β no one believed that it was going to turn into what it is.
2:51:38 But Jeff did in a way that that level of conviction, I really aspire to.
2:51:46 And I think that’s one of the main things I’ve taken away from that relationship is that you can just believe in yourself.
2:51:47 To that degree?
2:51:48 Against those odds?
2:51:49 Against those odds?
2:51:50 That’s ridiculous.
2:51:56 He did that at so many times at our level that it’s pathetic if I’m doubting myself.
2:51:58 Yeah.
2:52:05 I think Amazon is one of those companies β I mean, it’s come under a bunch of criticism over the years.
2:52:14 This is something about humans that I don’t appreciate so much that we take for granted the positive that a thing brings real quick.
2:52:16 And then we just start criticizing the thing.
2:52:17 It’s the Wi-Fi and the airplanes.
2:52:19 That’s exactly it.
2:52:30 But I think Amazon β there could be a case made that Amazon is one of the greatest companies in the last hundred years.
2:52:31 Oh, for sure.
2:52:33 I think it’s an easy case to make.
2:52:47 What I also think is that the price you pay to be one of the greatest companies in the last hundred years is a lot of detractors, a lot of pushback, a lot of criticism, that this is actually order restored in the universe.
2:52:52 One of my favorite teachers in all the time I’ve been on the internet is Kathy Sierra.
2:52:59 I don’t know if you know her work, but she was actually for only a few short years before the cruel internet ran her off.
2:53:01 But she wrote a blog called Creating Passionate Users.
2:53:07 And she carved into my brain this notion of balance in the universe.
2:53:16 If you’re creating something of value that a lot of people love, you must create an equal and opposite force of haters.
2:53:21 You cannot have people who love what you do without also having people who hate what you do.
2:53:24 The only escape from that is mediocrity.
2:53:33 If you are so boring and so uninteresting that no one gives a damn whether you exist or not, yeah, you don’t get the haters, but you also don’t get the impact of people who really enjoy your work.
2:53:37 And I think Amazon is that just at the massive scale, right?
2:53:46 They’ve brought so much value and change to technology, to commerce, that they must simply have a black hole size of haters.
2:53:49 Otherwise, the universe is simply going to tip over.
2:53:52 Let me ask you about small teams.
2:53:53 So you mentioned Jason a bunch of times.
2:53:57 Jason Fried, you have been partners for a long, long time.
2:54:04 Perhaps it’s fair to say he’s more on the sort of the design business side and you’re like the tech, the engineering wizard.
2:54:10 How have you guys, over all these years, creating so many amazing products, not murder each other?
2:54:13 It’s a great story of like partnership.
2:54:16 What can you say about collaboration?
2:54:20 What can you say about Jason that you love, that you’ve learned from?
2:54:22 Why does this work?
2:54:30 So first, I’ll say we have tried to murder each other several times over the years, but far less, I think, in the last decade.
2:54:41 In the early days, our product discussions were so fierce that when we were having them in the office and there were other employees around,
2:54:51 some of them were legitimately worried that the company was about to fall apart because the volume coming out of the room would be so high
2:54:57 and sound so acrimonious that they were legitimately worried the whole thing was going to fall apart.
2:55:01 But you know what’s funny is that it never felt like that in the moment.
2:55:07 It always felt like just a peak vigorous search for something better.
2:55:20 And that we were able to stomach that level of adversity on the merits of an idea because it was about the idea.
2:55:25 It wasn’t about the person and it never really got personal.
2:55:26 Not even never really.
2:55:27 It didn’t get personal.
2:55:29 It wasn’t like, Jason, you’re an asshole.
2:55:32 It was like, Jason, you’re an idiot.
2:55:35 And you’re an idiot because you’re looking at this problem the wrong way.
2:55:36 And let me tell you the right way to do it.
2:55:50 As a small tangent, let me say that some people have said, we’ll probably return to this, that you’re sometimes can have flights of temper on the internet and so on.
2:55:53 I never take it that way because it is the same kind of ilk.
2:55:59 Maybe I haven’t seen the right kind of traces of temper, but usually it’s about the idea.
2:56:01 And it’s just excited, passionate human.
2:56:04 That’s exactly what I like to think of it as.
2:56:06 It doesn’t always come across as that.
2:56:14 And I can see why spectators in particular sometimes would see something that looks like I’m going after the man rather than the ball.
2:56:17 And I do think I’ve tried to get better at that.
2:56:27 But in my relationship with Jason, I think it’s worked so well because we have our own distinct areas of competence where we fully trust each other.
2:56:31 Jason trusts me to make the correct technical decisions.
2:56:35 I trust him to make the correct design and product direction decisions.
2:56:41 And then we can overlap and share on the business, on marketing, on writing, on other aspects of it.
2:56:55 So that’s one thing is that if you’re starting a business with someone where you do exactly the same as they do and you’re constantly contesting who’s the more competent person, I think that’s far more difficult and far more volatile.
2:57:03 So if you’re starting a business and you’re both programmers and you both work on the same kind of programming, good luck.
2:57:04 I think that’s hard.
2:57:15 I tried to pick an easier path working with a designer where I knew that at least half of the time I could just delegate to his experience and competence and say, like, you know what?
2:57:16 I may have an opinion.
2:57:21 I have an opinion all the time on design, but I don’t have to win the argument because I trust you.
2:57:32 Now, occasionally we would have overlaps on business or direction where we’d both feel like we had a strong stake in the game and we both had a claim to competence in that area.
2:57:39 But then, for whatever reason, we also both had a long-term vision where I would go, do you know what?
2:57:40 I think we’re wrong here.
2:57:44 But as I learned from Jeff Bezos, by the way, I’m going to disagree and commit.
2:57:54 That was one of those early lessons he gave us that was absolutely crucial and perhaps even instrumental in ensuring that Jason and I have been working together for a quarter of a century.
2:57:57 Disagree and commit is one of the all-time Jeff Bezos greats.
2:58:01 I’m just surprised that Yoko Ono hasn’t come along.
2:58:02 You know what I mean?
2:58:06 Like, there’s so many Yoko’s in this world.
2:58:12 It might have happened, if not in part because we don’t sit on each other’s lap all the time.
2:58:16 Most of our careers, we haven’t even lived in the same city.
2:58:22 Like, I lived in Chicago for a couple of years while we were getting going after I’d moved to the U.S. in 2005.
2:58:26 But then I moved to Malibu, and then I lived in Spain, and then I lived in Copenhagen.
2:58:38 And Jason and I, from the foundation of our relationship, learned how to work together in a remarkably efficient way where we didn’t have to actually talk that much.
2:58:48 On any given week, I’d be surprised if Jason and I spent more than two hours of direct exchange and communication.
2:58:51 Yeah, sometimes it’s the basic human frictions.
2:58:58 Yes, I think if you rub up against another person, that person damn well better be your spouse if it’s too much for too long.
2:58:59 Yeah, but even there.
2:59:00 Even there.
2:59:02 COVID has really touched the relationship.
2:59:03 It’s fascinating to watch.
2:59:04 It has.
2:59:12 And I do think that having some separation, which is kind of counterintuitive, because I think a lot of people think the more collaboration you can have, the better.
2:59:14 The more ideas that can bounce back and forth, the better.
2:59:19 And both Jason and I, for whatever reason, came to the conclusion early on in careers, absolutely not.
2:59:21 That’s complete baloney.
2:59:24 This is why we were huge proponents of remote work.
2:59:32 This is why I enjoy working in my home office where I can close the door and not see another human for like six hours at the time.
2:59:34 I don’t want to bounce ideas off you all the time.
2:59:37 I want to bounce ideas off you occasionally.
2:59:39 And then I want to go off and implement those ideas.
2:59:44 There’s way too much bouncing going on and not enough scoring, not enough dunking.
2:59:50 And I think this is one of the great traps of executive rule.
2:59:59 Once a founder elevates themselves all the way up to an executive, where what they’re doing is just telling other people what to do, that’s the realm they live in 24-7.
3:00:01 They just live in the idea realm.
3:00:04 Oh, I can just tell more people more things what to do, and we can just see it happen.
3:00:07 If you actually have to be part of implementing that, you slow your horse.
3:00:09 You think like, you know what?
3:00:10 I had a good idea last week.
3:00:13 I’m going to save the rest of my good ideas until next month.
3:00:24 And there is a temptation for the managers and for the people in the executive layer to do something, which that something usually means a meeting.
3:00:24 Yes.
3:00:24 Right.
3:00:26 So that’s why you say…
3:00:28 Their job is telling other people what to do.
3:00:28 Yeah.
3:00:30 And the meeting.
3:00:32 So this is one of the big things you’re against.
3:00:33 Meetings are toxic.
3:00:34 Yeah.
3:00:38 And this really, I think, ties into this with Jason Rye.
3:00:44 If I had to count out the total number of meetings we’ve had in 24 years of collaborations,
3:00:51 where we, in person, sat in front of each other and discussed a topic, I probably, it’d be less than, whatever, three months at a fan company.
3:00:54 We just haven’t done that that much.
3:00:55 We haven’t worn it out.
3:01:04 One of these funny metaphors that Trump came up with at one point was a human has like a limited number of steps in their life, right?
3:01:06 Like that’s the longevity argument here.
3:01:08 You can do so much activity and then you run out.
3:01:12 There’s some kernel in that idea that can be applied to a relationship.
3:01:15 There’s some amount of exchange we can have.
3:01:19 There’s some amount of time we can spend together where you can wear it out.
3:01:23 Jason and I were diligent about not wearing each other out.
3:01:29 And I think that is absolutely key to the longevity of the relationship combined with that level of trust.
3:01:33 And then just combining with the level that we really like the work itself.
3:01:38 We don’t just like the brainstorming, the says where we just come up with good ideas.
3:01:39 No, we like to do the ideas.
3:01:43 And we like to be part of that process directly ourselves.
3:01:43 I like to program.
3:01:44 He likes to do design.
3:01:47 We could go off and do our little things for long stretches of time.
3:01:48 Okay.
3:01:50 She’d come together and go like, hey, let’s launch a great product.
3:02:02 This might sound like I’m asking you to do therapy, but I find myself to sometimes want or long for a meeting because I’m lonely.
3:02:09 Like remote work, just sitting by yourself, I don’t know.
3:02:11 It can get really lonely for long stretches of time.
3:02:13 Let me give you a tip.
3:02:16 Get a wife.
3:02:17 Yes.
3:02:18 God damn it.
3:02:19 Get a couple of kids.
3:02:20 All right.
3:02:23 Family really is the great antidote to loneliness.
3:02:26 And I mean that as sincerely as I can possibly say it.
3:02:36 I certainly had exactly that feeling you described early in my career when I was working remotely and I was just like me living in an apartment.
3:02:42 A total stereotype where for the longest time when I first moved to Chicago, all I had on the floor was a mattress.
3:02:45 And then I bought this big TV and I didn’t even mount it.
3:02:47 And then I had a stack of DVDs.
3:02:53 And I was basically, I was working a lot of time and then I would just go home and I’d do that.
3:02:55 And it wasn’t great.
3:02:56 It really wasn’t.
3:02:58 Like I do think that humans need humans.
3:03:03 And if you can’t get them at work, and I actually sort of kind of don’t want them at work.
3:03:05 At least I don’t want them for 40 hours a week.
3:03:06 That’s not what I prefer.
3:03:07 You need something else.
3:03:09 You need other relationships in your life.
3:03:15 And there is no greater depth of relationship if you can find someone that you actually just want to spend a lot of time with.
3:03:16 That’s key to it.
3:03:21 And I think it’s key for both Jason and I that we’ve had families for quite a long time.
3:03:32 And it grounds you to in a way where the sprint of a startup can get traded in for the marathon of an enduring company.
3:03:35 And you get settled in a way.
3:03:37 We talked briefly about sometimes I get fired up.
3:03:41 I mean, a lot of times, maybe even most of the times I get fired up about topics.
3:03:46 But I don’t get fired up in the same way now as I used to when I was 24.
3:03:50 I’m still extremely passionate about ideas and trying to find the right things.
3:04:03 But having a family, meeting my wife, building a life around that has just mellowed everything out in a completely cliche way.
3:04:06 But I think it’s actually key.
3:04:18 I think if we could get more, even younger people not to wait until they were in their late goddamn 30s, early 40s to hitch up with someone, we’d be better off.
3:04:26 And we’d have more stable business relationships as well because folks would get that nurturing human relation somewhere else.
3:04:39 Now, when I say all of that, I also accept that there are plenty of great businesses that’s been built over the years that have not been built remote, that have been built by a gang of hooligans sitting in an office for immense hours of time.
3:04:48 I mean, both John Carmack and Tim Sweeney talked about that in the 90s with their careers, that that was just basically work, sleep, hang out with the guys at the office, right?
3:04:50 Totally fair.
3:04:52 That never appealed to me.
3:04:56 Both Jason and I saw eye to eye on the idea that 40 hours a week.
3:05:13 Dedicated to work was enough that if we were going to go to distance for not just the five to seven years it takes to build a VC case up to an exit, but for potentially 10 years, 20 years or further, we needed to become whole humans.
3:05:27 Because only that whole humanness was going to go to distance, which included building up friendships outside of work, having hobbies, finding a mate, and having a family.
3:05:43 And that entire existence, those legs of the stool, that work is not the only thing in life, is completely related to the fact that we’ve been around for 25 years.
3:05:49 There’s way too much, especially in America, of false trade-offs.
3:05:51 Oh, you want to build a successful business?
3:05:55 Well, you can either have money, enjoyment, family, or health.
3:05:55 Pick one.
3:05:56 What?
3:05:59 Why do we have to give up all of this?
3:06:09 Now, again, I’m not saying there aren’t moments in life where you can sprint, but I am saying if that sprint turns into a decade, you’re going to pay for it.
3:06:15 And you’re going to pay for it in ways I’ve seen time and again seem like a very bad trade.
3:06:18 That even if it works, and by the way, most of the time it does not.
3:06:20 Most of the time startups go bust.
3:06:26 Most of the time people spend five, seven years of something that does not pan out, and they don’t get the payout.
3:06:30 And then they just sit with regret of like, what the fuck happened to my 20s?
3:06:37 Early on, Jason and I basically made the pact that working together was not going to lead to that kind of regret.
3:06:44 That we were going to allow ourselves and each other to build a whole life outside of work.
3:06:53 And the fact that that worked is something I feel is almost like forbidden knowledge.
3:06:59 Certainly in technology circles in the U.S., it’s something that we’ve tried to champion for 20 years and we still get slacked for.
3:07:08 Just two days ago, I had another Twitter beef with someone saying like, oh, well, okay, maybe it worked, but you didn’t turn into Atlassian, so you’re a failure.
3:07:11 Basecamp isn’t Jira, so why are you even bothering?
3:07:28 And it’s such a fascinating winner-takes-all mentality that unless you dominate everyone else in all the ways you’ve lost, when so much of life is far more open to multiple winners.
3:07:36 Where we can end up with a business that have made hundreds of millions of dollars over the years and we’ve kept much of that to do whatever we want.
3:07:54 Certainly, it should be a path for someone to consider choosing rather than the VC unicorn or bust mentality that dominates everything.
3:08:17 I’d love to ask you about this exchange so you can explain to me the whole saga, but just to link on that a little bit, I think there’s a notion that success for a tech founder is like work for a few years, all out, and then exit, sell your company for hundreds of millions of dollars.
3:08:35 That’s success, that’s success, when it seems in reality, when you look at who the people like you, like really smart, creative humans, who they actually are and what happiness entails, it actually entails working your whole life a little bit.
3:08:42 Just like, because you actually love the programming, you love the building, you love the designer, and you don’t want to exit.
3:08:47 And that’s something you’ve talked about really eloquently about.
3:08:55 So, like, you actually want to create a life where you’re always doing the building and doing it in a way that’s not completely taking over your life.
3:08:57 Mojito Island is a mirage.
3:08:58 It always was.
3:09:00 There is no retirement for ambitious people.
3:09:05 There is no just sitting back on the beach and sipping a mojito for what?
3:09:09 For two weeks before you go damn crazy and want to get back into the action?
3:09:15 That’s exactly what happens to most people who have the capacity to build those kinds of exits.
3:09:21 I’ve never seen, I shouldn’t say never, I’ve almost never seen anyone be able to pull that off.
3:09:24 Yet, so many think that that’s why they’re doing it.
3:09:26 That’s why they’re sacrificing everything.
3:09:29 Because once I get to the finish line, I’m golden.
3:09:30 I’ve won.
3:09:31 I can retire.
3:09:31 I can sit back.
3:09:32 I can just relax.
3:09:37 And you find out that that kind of relaxation is actually hell.
3:09:45 It’s hell for creative people to squander their God-given creative juices and capacities.
3:09:54 I was really lucky to read the book Flow by Mihaly Csikszentmihalyi early on.
3:09:55 Nice.
3:09:56 The pronunciations.
3:09:56 Do you know what?
3:10:00 I had to practice that with AI over the last few days because I knew I was going to cite him.
3:10:03 And I’ve butchered his name several times.
3:10:06 So AI taught me how to pronounce that, at least somewhat correctly.
3:10:19 But his main work over his career was essentially the concept of flow that came out of a search for understanding happiness.
3:10:21 Why are some people happy?
3:10:22 When are they happy?
3:10:24 And what he learned was quite illuminating.
3:10:27 He learned that people aren’t happy when they sit on Mojito Island.
3:10:30 They’re not happy when they’re free of all obligations and responsibilities.
3:10:40 No, they’re happy in these moments where they’re reaching and stretching their capacities just beyond what they can currently do.
3:10:44 In those moments of flow, they can forget time and space.
3:10:51 They can sit in front of the keyboard, program a hard problem, think 20 minutes have passed, and suddenly it’s been three hours.
3:10:57 They look back upon those moments with the greatest amount of joy, and that is what peak happiness is.
3:11:07 If you take away the pursuit of those kinds of problems, if you eliminate all the problems from your plate, you’re going to get depressed.
3:11:09 You are not going to have a good time.
3:11:13 Now, there are people who can do that, but they’re not the same kind of people who built these kinds of companies.
3:11:16 So you have to accept the kind of individual you are.
3:11:20 If you are on this path, don’t bullshit yourself.
3:11:26 Don’t bullshit yourself into thinking, I’m just going to sacrifice everything, my health, my family, my hobbies, my friends.
3:11:30 But in 10 years, I’m going to make it all up because in 10 years, I can do it.
3:11:32 It never works out like that.
3:11:34 It doesn’t work out on both ends of it.
3:11:39 It does not work out if you’re successful and you sell your company because you’ll get bored out of your mind up two weeks on retirement.
3:11:45 It doesn’t work out if the company is a failure and you regret the last 10 years spent for nothing.
3:11:50 It doesn’t work out if it all works and you stay in the business because it never gets any easier.
3:11:56 So you’re going to fail on all metrics if you just go, there’s only work and nothing else.
3:11:58 And I didn’t want that.
3:12:00 I wanted the happiness of flow.
3:12:08 I understood that insight was true, but I wanted to do it in a way where I could sustain the journey for 40 or 50 years.
3:12:21 And there’s another interesting caveat that I’ve heard you say is that if you do exit and you sell your company and you want to stay in, you want to do another company, that’s going to usually not be as fulfilling.
3:12:22 Yes.
3:12:24 Because really your first baby, like.
3:12:28 You can’t do it again or most people can’t do it again.
3:12:32 A, because their second idea is not going to be as good as the first one.
3:12:36 It is so rare to capture lightning in the bottle like we have, for example, with Basecamp.
3:12:40 I know this from experience because I’ve been trying to build a lot of other businesses since.
3:12:42 And some of them have been moderate successes, even good successes.
3:12:44 None of them have been Basecamp.
3:12:47 It’s really difficult to do that twice.
3:12:50 But founders are arrogant pricks, including myself.
3:12:54 And we like to think that, you know what, we succeeded in large part because we’re just awesome.
3:12:56 We’re just so much better than everyone else.
3:13:03 And in some ways that’s true some of the time, but you can also be really good at something that matters for a hot moment.
3:13:05 That that door is open.
3:13:06 The door closes.
3:13:08 Now, you’re still good at the thing, but it doesn’t matter.
3:13:09 No one cares.
3:13:11 There’s that part of it.
3:13:18 And then there’s the part of it that going back to experience things for the first time only happens the first time.
3:13:19 You can’t do it again.
3:13:25 I don’t know if I have it in me to go through the bullshit of the early days again.
3:13:28 And I say bullshit in the sense of the most endearing sense.
3:13:29 It’s all great to do it.
3:13:30 I know too much.
3:13:39 This is one of the reasons why whenever I’m asked the questions, if you could tell your younger self something that would really, what would you say to your younger self?
3:13:40 I would fucking not say a thing.
3:13:48 I would not rob my younger self of all the life experiences that I’ve been blessed with due to the ignorance of how the world works.
3:13:53 Building up the wisdom about how the world works is a joy.
3:13:55 And you’ve got to build it one break at a time.
3:13:59 If you just handed all the results, it’s like, oh, should we watch a movie?
3:14:00 Here’s how it ends.
3:14:02 I don’t want to watch the movie now.
3:14:03 You spoiled it.
3:14:07 I don’t want you to spoil my business experience.
3:14:09 I don’t want to spoil any of my ignorance.
3:14:14 The greatest blessing half the time when you’re starting something new is A, you don’t know how hard it’s going to be.
3:14:16 B, you don’t know what you don’t know.
3:14:19 Like the adventure is to pay off.
3:14:22 The responsibility is to pay off.
3:14:29 This is something Jordan Peterson has really taught me to articulate this notion that responsibility is actually key to meaning.
3:14:33 Man’s search for meaning.
3:14:39 Viktor Frankl talks about this as well, that we can endure any hardship if there is a reason why.
3:14:51 Now, he talked about it in truly life-altering, concentration camp ways, but you can also apply it at a smaller scale with less criticality of even just your daily life.
3:14:57 All that hardship in building the original business, that is responsibility you take upon yourself.
3:15:02 The appeal, the reason you take that on you is in part because you don’t know fully what it entails.
3:15:09 If you had known up front, if I had known up front how hard it would be, how much frustration there’d be along the way.
3:15:15 If you just told me that in a narrative before I got started, I would have been like, eh, maybe I should just go get a job.
3:15:18 You said so many smart things there.
3:15:28 Just to pick one, it’s funny that sometimes the advice givers, the wisdom givers, have gone through all the bullshit.
3:15:32 And so there is a degree to which you want to make the mistake.
3:15:43 So I think I would still give the advice of you want to have a stretch of your life where you work too hard, including at a thing that fails.
3:15:49 I don’t think you can learn the lessons why that’s a bad idea in any other way except by doing it.
3:15:52 There is a degree, but of course you don’t.
3:15:53 I think you should stretch.
3:15:55 Should you have to stretch for a decade?
3:15:56 I’m not so sure.
3:15:58 Yeah, the decade thing is 20s is a special time.
3:16:00 It’s a lot to trade.
3:16:01 You don’t get your 20s back.
3:16:03 You don’t get your 30s back.
3:16:04 You don’t get your 40s back.
3:16:10 You really, I would have regretted personally if I hadn’t done the other things I did in my 20s.
3:16:20 If I hadn’t had the fun I had, if I hadn’t had the friends I had, if I hadn’t built up the hobbies that I did, if I hadn’t started driving race cars at an early enough age to actually get really good at it.
3:16:25 If I had just gone all in on business because I would have got the same out in the end.
3:16:39 This is something Derek Sivers really taught me is he has this great essay about how when he went for a bike ride, he could go really hard all out and he could do the ride, I think in whatever, 19 minutes.
3:16:47 Or he could enjoy the ride, go 5% slower, do the ride in 21 minutes and realize there’s only two minutes apart.
3:17:02 Either I go all in all the time, there’s nothing else, I’m completely exhausted at the end, or I travel the same distance and I arrive maybe two minutes later, but I got to enjoy the scenery, listen to the birds, smell the flowers.
3:17:06 That journey is also valuable.
3:17:15 Now, I say that while accepting and celebrating that if you want to be the best at one thing in the world, no, you have to sacrifice everything.
3:17:19 You have to be obsessed with just that thing.
3:17:24 There is no instant of someone who’s the best in the world at something who’s not completely obsessed.
3:17:26 I didn’t need to be the best at anything.
3:17:31 This was a blessing, a rare blessing of humility I had early on is like, you know what?
3:17:33 I am not that smart.
3:17:34 I’m not that good.
3:17:35 I’m not that talented.
3:17:42 I can do interesting things by combining different aspects and elements that I know, but I’m not going to be the best at anything.
3:17:49 And that released me from this singular obsession with just going, I’m going to be the best programmer in the world.
3:17:50 And I know I’m not.
3:17:55 I fucking failed at it twice before I even got how conditionals work.
3:17:57 I’m not smart enough to be the best at anything.
3:17:59 I’m not dedicated enough to do that.
3:18:01 That’s a bit of a blessing.
3:18:14 And I think as a society, we have to straddle both celebrating peak excellence, which we do all the time, and celebrating the peak intensity of mission it takes to become that.
3:18:15 And then also going like, do you know what?
3:18:18 We don’t all need to be Michael Jordan.
3:18:20 There’s only going to be one of those.
3:18:26 Well, we should say that there’s certain pursuits where a singular obsession is required.
3:18:28 Basketball is one of them.
3:18:30 By the way, probably racing.
3:18:32 If you want to be the best at F1 in the world.
3:18:35 If you want to be Senna, you got to be a maniac.
3:18:44 But I would argue that there’s most disciplines, like programming, allows, if you want to be, quote unquote, the best, whatever that means.
3:18:47 I think that’s judged at the end of your life.
3:18:51 And usually, if you look at that path, it’s going to be a nonlinear one.
3:18:55 You’re not going to look like the life of an Olympic athlete who’s singular focus.
3:18:59 There’s going to be some acid there in the 20s.
3:19:03 Or there’s going to be several detours.
3:19:07 With the true greats, there’s going to be detours.
3:19:11 And sometimes they’re not going to be Steve Jobs’ acid type of situation.
3:19:22 They’ll be just different companies you worked for, different careers, or different sort of efforts you allocated your life to.
3:19:23 But it’s going to be nonlinear.
3:19:25 It’s not going to be a singular focus.
3:19:30 The way I think about this sometimes is I want a good bargain on learning.
3:19:39 I can become in the top 5% of whatever I defined as good at something much, much easier.
3:19:45 Perhaps it’s 20 times easier, 100 times easier to get into the top 5% than it is to get into the top 0.1%.
3:19:47 That’s almost impossibly hard to get into that.
3:19:54 But if I’m content just being in the top 5%, I can be in the top 5% on like five things at once.
3:19:56 I can get really good at writing.
3:19:59 I can get decent at driving a race car.
3:20:01 I can become pretty good at programming.
3:20:02 I can run a company.
3:20:03 I can have a family.
3:20:11 I can do a lot of things at the same time that gives me sort of that variety that almost that way is idealized.
3:20:12 Karl Marx has this idea.
3:20:18 I’m going to fish in the morning and hammer in the evening and paint on the weekends, right?
3:20:23 That there’s a sense for me at least where his diagnosis of alienation was true.
3:20:26 That just that tunnel vision, there’s just this one thing.
3:20:32 I’m just going to focus on that gives me a sense of alienation I can’t stomach when I’m really deep on programming.
3:20:36 And sometimes I go deep for weeks, maybe even in a few cases, months.
3:20:40 I have to come up for air and I have to go do something else.
3:20:43 Like, all right, that was programming for this year.
3:20:44 I’ve done my part.
3:20:49 I’m going to go off writing or annoy people on the Internet or drive some race cars or do something else.
3:20:53 And then I can do the programming thing with full intensity again next year.
3:20:57 Speaking of annoying people on the Internet, you got to explain to me this drama.
3:21:04 Okay, so what is this guy that said, imagine losing to Jira, but boasting that you have a couple million dollars per year.
3:21:10 So this had to do with this almost now a meme decision to leave the cloud.
3:21:13 DHH left the cloud.
3:21:19 I think that’s literally a meme, but it’s also a fascinating decision.
3:21:23 Can you talk to the full saga of DHA leaves the cloud?
3:21:23 Yes.
3:21:27 Leaving AWS, saving money.
3:21:29 And I guess the case this person is making now.
3:21:35 Is that we wasted our time optimizing a business that could have been a hundred times bigger if we’d just gone for the moon.
3:21:37 And for the moon includes.
3:21:39 Venture capital.
3:21:39 But also.
3:21:42 Some of the things include not caring about cost.
3:21:47 But also because AGIs are on the corner, you should have been investing into AI, right?
3:21:48 Is this just part of.
3:21:48 Sort of.
3:21:50 I think it’s a bit of a muddy argument.
3:22:05 But if we just take it at its peak ideal, which I actually think is a reasonable point, is that you can get myopically focused on counting pennies when you should be focused on getting pounds.
3:22:05 Right?
3:22:12 That I’ve optimized our spend on infrastructure by getting out of the cloud.
3:22:21 And that took some time and I could have taken that time and spend it on making more features that would attract more customers or spend even more time with AI or done other things.
3:22:23 Opportunity cost is real.
3:22:24 I’m not denying that.
3:22:29 I’m pushing back on the idea that for a company of our size.
3:22:38 Saving two million dollars a year on our infrastructure bill, which is about somewhere between half to two thirds.
3:22:45 Goes directly to the bottom line, which means it’s returned to Jason and I as owners and our employees.
3:22:59 Part of our profit sharing plan is totally worth doing this idea that costs don’t matter is a very Silicon Valley way of thinking that I can understand at the scale of something maybe.
3:23:05 But I also actually think it’s aesthetically unpleasing.
3:23:14 I find an inefficient business as I find an inefficient program full of line noise to just be a splinter in my brain.
3:23:20 I hate looking at an expense report and just seeing disproportionate waste.
3:23:29 And when I was looking at our spend at 37 Signals a while back, a few years back, I saw bills that did not pass my smell test.
3:23:33 I remembered how much we used to spend on infrastructure before the cloud.
3:23:37 And I saw numbers I could not recognize in proportion to what we needed.
3:23:40 The fact that computers had gotten so much faster over time.
3:23:42 Shouldn’t things be getting cheaper?
3:23:46 Why are we spending more and more money servicing more customers?
3:23:52 Yes, but with much faster computers, Moore’s law should be lowering the cost.
3:23:53 And the opposite is happening.
3:23:54 Why is that happening?
3:24:04 And that started a journey of unwinding why the cloud isn’t as great as the deal as people like to think that.
3:24:15 Yeah, can we look at the specifics just for people who don’t know the story and then generalize to what it means about the role of the cloud in the tech business?
3:24:18 So the specifics is you were using AWS S3?
3:24:21 We were using AWS for everything.
3:24:24 Hey.com launched as an entirely cloud app.
3:24:28 It was completely on AWS for compute, for databases, for all of it.
3:24:32 We were using all the systems as they’re best prescribed that we should.
3:24:43 Our total cloud bill for Basecamp, our total spend with AWS was I think $3.2 million or $3.4 million at its peak.
3:24:44 That’s kind of a lot of money.
3:24:46 $3.4 million.
3:24:52 I mean, we have a ton of users and customers, but still, that just struck me as unreasonable.
3:24:59 And the reason why it was so unreasonable was because I had the pitch for the cloud ringing in my ears.
3:25:00 Hey, this is going to be faster.
3:25:02 This is going to be easier.
3:25:04 This is going to be cheaper.
3:25:06 Why are you trying to produce your own power?
3:25:08 Like, do you have your own power plant?
3:25:09 Why would you do that?
3:25:12 Leave the computers to the hyperscalers.
3:25:13 They’re much better at it anyway.
3:25:16 I actually thought that was a compelling pitch.
3:25:19 I bought in on that pitch for several years and thought, do you know what?
3:25:22 I’m done ever owning a server again.
3:25:24 We’re just going to rent our capacity.
3:25:32 And Amazon is going to be able to offer us services much cheaper than we could buy them themselves because they’re going to have these economies of scale.
3:25:39 And I was thinking, Jeff’s word ringing, my competitor’s margin is my opportunity.
3:25:47 That was something he used to drive Amazon.com with, that if he could just make 2% when the other guy was trying to make 4%, he would end up with all the money.
3:25:50 And on volume, he would still win.
3:25:53 So I thought that was the operating ethos for AWS.
3:25:54 It turns out that’s not true at all.
3:25:58 AWS, by the way, operates at almost 40% margin.
3:26:09 So just in that, there’s a clue that competitors are not able to do the competitive thing we like about capitalism, which is to lower costs and so forth.
3:26:14 So the cloud pitch, in my optics, is fundamentally false.
3:26:17 It did not get easier, first of all.
3:26:19 I don’t know if you’ve used AWS recently.
3:26:21 It is hella complicated.
3:26:28 If you think Linux is hard, you’ve never tried to set up IAM rules or access parameters or whatever for AWS.
3:26:29 AWS was always difficult.
3:26:30 It was always complicated.
3:26:31 Well, I think it’s gotten even more difficult.
3:26:32 But yes.
3:26:38 Now, some of that is it’s difficult because it’s very capable and you have a bunch of capacity on tap.
3:26:39 And there are reasons.
3:26:44 I don’t think they’re good enough to justify how complicated the whole jing and majing has become.
3:26:47 But what’s certainly true is that it’s no longer easier.
3:26:52 It’s not easier to use AWS than it is to run your own machines,
3:26:56 which we learned when we pulled out of the cloud and didn’t hire a single extra person.
3:27:01 Even though we operate all our own hardware, the team stayed exactly the same.
3:27:02 So you have this three-way pitch, right?
3:27:04 It’s going to be easier.
3:27:06 It’s going to be cheaper.
3:27:07 It certainly wasn’t cheaper.
3:27:12 We’ve just proved that by cutting our spend on infrastructure by half to two-thirds.
3:27:14 And it’s going to be faster.
3:27:15 The last bit was true.
3:27:20 But way too many people overestimated the value of that speed.
3:27:26 If you need 1,000 computers online in the next 15 minutes, nothing beats the cloud.
3:27:28 How would you even procure that?
3:27:32 If we just need another 20 servers, it’s going to take a week or two
3:27:37 to get boxes shipped on pallets, delivered to a data center and unwrapped and racked
3:27:38 and all that stuff, right?
3:27:40 But how often do we need to do that?
3:27:45 And how often do we need to do that if buying those servers is way, way cheaper?
3:27:48 So should we get vastly more compute for the same amount of money?
3:27:52 Could we just buy more servers and not even care about the fact that we’re not
3:27:55 hyper-optimized on the compute utility?
3:27:59 That we don’t have to use things like automatic scaling to figure things out
3:28:01 because we have to reduce costs?
3:28:01 Yes, we can.
3:28:08 So we went through this journey over a realization in early 2023
3:28:13 when I had finally had enough with our bills.
3:28:14 I wanted to get rid of them.
3:28:15 I wanted to spend less money.
3:28:17 I wanted to keep more of the money ourselves.
3:28:22 And in just over six months, we moved seven major applications out of the cloud
3:28:27 in terms of compute, caching, databases that works onto our own servers,
3:28:32 a glorious, beautiful new fleet bought from the king of,
3:28:38 servers, Michael Dell, who really, by the way, is another icon of my, I saw he just celebrated
3:28:39 41 years in business.
3:28:41 41 years.
3:28:46 This man has been selling awesome servers that we’ve been using for our entire existence.
3:28:51 But anyway, these pallets arrive in a couple of weeks and we rack them up and get everything
3:28:51 going.
3:28:54 And we were out, at least with the compute part.
3:29:01 We then had a long multi-year commitment to S3 because the only way to get decent pricing
3:29:07 in the cloud, by the way, is not to buy on a day-to-day basis, not to rent on a day-to-day basis,
3:29:10 but to bind yourself up to multi-year contracts.
3:29:13 With compute, it’s often a year.
3:29:14 That was in our case.
3:29:16 And with storage, it was four years.
3:29:22 We signed a four-year contract to store our petabytes of customer files in the cloud to
3:29:24 be able to get something just halfway decent affordable.
3:29:31 So all of these projects came together to the sense that we’re now saving literally millions
3:29:34 of dollars projected about 10 million over five years.
3:29:35 It’s always hard.
3:29:37 How do you do the accounting exactly?
3:29:39 And TOC, this, that, and the other thing.
3:29:40 But it’s millions of dollars.
3:29:42 But it’s not just that.
3:29:49 It’s also the fact that getting out of the cloud meant returning to more of an original idea
3:29:50 of the internet.
3:29:55 That the internet was not designed such that three computers should run everything.
3:30:00 It was a distributed network such that the individual nodes could disappear and the whole
3:30:01 thing would still carry on.
3:30:06 DARPA designed this such that the Russians could take out Washington and they could still
3:30:07 fight back from New York.
3:30:12 That the entire communication infrastructure wouldn’t disappear because there was no hub
3:30:13 and spoke.
3:30:13 It was a network.
3:30:17 I always found that an immensely beautiful vision.
3:30:22 That you could have this glorious internet and no single node was in control of everything.
3:30:29 And we’ve returned to much more of a single node controlling everything idea with these hyperscalers.
3:30:36 When US East 1, the main and original region for AWS, goes offline, which has happened more
3:30:40 than a few times over the years, seemingly a third of the internet is offline.
3:30:44 That in itself is just an insult to DARPA’s design.
3:30:48 It doesn’t detract from the fact that what AWS built was marvelous.
3:30:56 I think the cloud has moved so many things so far forward, especially around virtualization, automation, setup.
3:31:10 It’s all those giant leaps forward for system administration that’s allowing us now to be able to run things on-prem in a way that smells and feels much like the cloud, just at half the cost or less.
3:31:15 And with the autonomy and the satisfaction of owning hardware.
3:31:20 I don’t know what the last time you looked at like an actual server and took it apart and looked inside of.
3:31:21 These things are gorgeous.
3:31:34 I mean, I posted a couple of pictures of our racks out in the data center and people always go crazy for them because we’ve gotten so abstracted from what the underlying metal looks like in this cloud age that most people have no idea.
3:31:38 They have no idea how powerful a modern CPU is.
3:31:44 They have no idea how much RAM you can fit into a 1U rack.
3:31:54 Progress in computing has been really exciting, especially, I’d say, in the last four to five years after TSMC, with Apple’s help, really pushed the envelope.
3:31:59 I mean, we kind of sat still there for a while while Intel was spinning their wheels going nowhere.
3:32:03 And then TSMC, with Apple propelling them, really moved things forward.
3:32:05 And now servers are exciting again.
3:32:12 Like you’re getting jumps year over year in the 15, 20 percent rather than the single digit we were stuck with for a while.
3:32:23 And that all means that owning your own hardware is a more feasible proposition than it’s ever been, that you need fewer machines to run ever more, and that more people should do it.
3:32:34 Because as much as I love Jeff and Amazon, like he doesn’t need another, whatever, 40 percent margin on all the tech stuff that I buy to run our business.
3:32:52 And this is just something I’ve been focused on, both because of the ideology around honoring DARPA’s original design, the practicality of running our own hardware, seeing how fast we can push things with the latest machines, and then saving the money.
3:32:59 That has all been so enjoyable to do, but also so counterintuitive for a lot of people.
3:33:05 Because it seemed, I think, for a lot of people in the industry, that like we’d all decided that we were done buying computers.
3:33:12 That that was something we would just delegate to AWS and Azure and Google Cloud, that we didn’t have to own these things anymore.
3:33:18 So I think there’s a little bit of whiplash for some people that, oh, I thought we agreed, we were done with that.
3:33:22 And then along come us and say, ah, do you know what, maybe you should have a computer.
3:33:25 Is there some pain points to running your own servers?
3:33:26 Oh, plenty.
3:33:28 There’s pain points to operating computers of all kind.
3:33:32 Have you tried just like using a personal computer these days?
3:33:37 Half the time when my kids or my wife have a problem, I go like, have you tried turning it just off and on again?
3:33:40 Computers are inherently painful to humans.
3:33:44 Owning your own computer, though, kind of makes some of that pain worth it.
3:33:53 There’s a responsibility that comes with actually owning the hardware that, to me, at least, make the burden of operating that hardware seem slightly more enjoyable.
3:33:58 Now, there are things you have to learn, certainly at our scale, too.
3:34:01 I mean, we’re not just buying a single computer and plugging it into an Ethernet.
3:34:04 We have to have racks and racks of them, and you’ve got to set it up with network cabling.
3:34:06 And there is some specialized expertise in that.
3:34:11 But it’s not like that expertise is like building nuclear rockets.
3:34:14 It’s not like it’s not widely distributed.
3:34:19 Literally, the entire Internet was built on people knowing how to plug in a computer to the Internet, right?
3:34:21 Oh, Ethernet cable goes here.
3:34:22 Power cable goes here.
3:34:23 Let’s boot up Linux.
3:34:30 That’s how everyone put anything online until 10, 12 years ago when the cloud sort of took over.
3:34:32 So, the expertise is there and can be rediscovered.
3:34:35 You, too, can learn how to operate a Linux computer.
3:34:41 Yeah, and it’s, you know, when you get a bunch of them, there’s a bunch of flashing LEDs, and it’s just so exciting.
3:34:42 Oh, they’re beautiful.
3:34:42 Calming.
3:34:43 Amazing.
3:34:45 Computers are really fun.
3:34:48 This is actually something I’ve gotten into even deeper after we moved out of the cloud.
3:34:56 Now, my next kind of tingle is that if you can move out of the cloud, can you also move out of the data center?
3:35:12 Personal servers have gotten really scarily quick and efficient, and personal Internet connections rival what we connected data centers with just a decade or two ago.
3:35:25 So, there’s a whole community around this concept of home lapping, which is essentially installing server hardware in your own apartment, connecting it to the Internet, and exposing that directly to the Internet.
3:35:35 That harks back to those glorious days of the 90s when people building for the Internet would host the actual website on their actual computer in the closet.
3:35:38 And I’m pretty fired up about that.
3:35:39 I’m doing a bunch of experiments.
3:35:41 I’ve ordered a bunch of home servers from my own apartment.
3:35:46 I marvel at the fact that I can get a 5 gigabit fiber connection now.
3:36:03 I think, do you know what, 5 gigabit, that could have taken Basecamp to multiple millions of MRR in the way that back then I ran the whole business on a single box with 2004 technology and probably 100 megabit cable.
3:36:13 The capacity we have access to, the capacity we have access to, both in terms of compute and connectivity, is something that people haven’t readjusted to.
3:36:16 And this happens sometimes in technology where progress sneaks up on you.
3:36:18 This happened with SSDs.
3:36:19 I love that, by the way.
3:36:30 We designed so much of our technology and storage approach and database design around spinning metal disks that had certain seek rate properties.
3:36:33 And then we went to NVMe and SSDs.
3:36:40 And it took quite a while for people to realize that the systems have to be built fundamentally different now.
3:36:50 That the difference between memory and disk was now far smaller when you weren’t spinning these metal plates around with a little head that had to read off them.
3:36:53 You were essentially just dealing with another type of memory.
3:37:00 I think we’re a little bit in that same phase when it comes to the capacity of new businesses to be launched literally out of your damn bedroom.
3:37:05 So you can get pretty far with a large user base with home labbing.
3:37:06 Absolutely.
3:37:07 That’s exciting.
3:37:08 That’s like the old school.
3:37:10 That’s really exciting.
3:37:16 It’s bringing back the startup in the garage in the literal physical sense of the word.
3:37:19 Now, some of that is, do we need to?
3:37:23 You can get relatively cheap cloud capacity if you don’t need very much.
3:37:24 Hell yes, we need to.
3:37:31 I mean, the feeling of doing that by yourself, of seeing LED lights in your own home.
3:37:33 I mean, there’s nothing like that.
3:37:37 There’s just an aesthetic to it that I am completely in love with and I want to try to push on.
3:37:39 Now, is that going to be the same thing as getting out of the cloud?
3:37:40 I’m not sure.
3:37:42 Our exit out of the cloud was not the exit out of the data center.
3:37:49 We basically just bought hardware, shipped it to a professionally managed data center that we didn’t even actually touch.
3:37:58 This is the other misconception people have about moving out of the cloud, that we have a bunch of people who are constantly driving to a data center somewhere to rack new boxes and change dead RAM.
3:38:01 That’s not how things happen in the modern world at all.
3:38:07 We have a company called Summit, previously Deft, that is what we call white gloves.
3:38:09 They just, they work in the data center.
3:38:16 When we need something like, hey, Deft, can you go down and swap the dead SSD in box number six?
3:38:17 They do it.
3:38:21 And what we see is akin to what someone working with the cloud would see.
3:38:23 You see IP addresses coming online.
3:38:24 You see drives coming online.
3:38:30 It’s not that different, but it is a whole heck of a lot cheaper when you are operating at our scale.
3:38:31 And of course it is.
3:38:38 Of course it’s cheaper to own things if you need those things for years rather than it is to rent it.
3:38:44 In no other domain would we confuse those two things that it’s cheaper to own for the long duration than it is to rent.
3:38:49 There is some gray area like, I’ve gotten a chance to interact with the XAI team a bunch.
3:38:54 I’m probably going back out there in Memphis to do a big podcast associated with the Grok release.
3:39:08 And those folks, in order to achieve the speed of building up the cluster and to solve some of the novel aspects that have to do with the GPU, with the training, they have to be a little bit more hands-on.
3:39:09 It’s a little less white glove.
3:39:11 Oh, and I love that, right?
3:39:17 They’re dealing with a frontier problem and they’re dealing with it not by renting a bunch of GPUs at a huge markup from their main competitor.
3:39:19 They’re going like, no, screw that.
3:39:23 We’re going to put 100,000 GPUs in our own tents, right?
3:39:25 And build it in absolute record time.
3:39:35 So I think if anything, this is testament to the idea that owning hardware can give you an advantage both at the small scale, at the medium scale, and at the pioneer levels of computing.
3:39:42 By the way, speaking of teams, those are XAI, Tesla, or large companies.
3:39:47 But all those folks, I don’t know what it is about.
3:39:54 You said Jeff is really good at finding good people, at seeing strength in people.
3:39:56 Like Elon is also extremely good.
3:39:57 I don’t know what that is.
3:40:04 Actually, I’ve never actually seen, maybe you could speak to that, he’s good at finding greatness.
3:40:06 I don’t think he’s finding as much as he’s attracting.
3:40:13 He’s attracting the talent because of the audaciousness of his goals and his mission.
3:40:15 The clarity by which he states it.
3:40:19 He doesn’t have to go scour the earth to find the best people.
3:40:30 The best people come to him because he is, talking about Elon here, one of the singular most invigorating figures in both the same order of the universe here, haters and lovers, right?
3:40:39 Like he’s having such an impact at such a scale that, of course, he’s got to have literally millions of people think he’s the worst person in the world.
3:40:42 And he’s also going to have millions of people thinking he’s the greatest gift to humanity.
3:40:45 Depending on the day, I’m somewhere in between.
3:40:50 But I’m more on the greatest gift to humanity end of the scale than I’m on the others end of the scale.
3:41:04 And I think that really inspires people in a way that we’ve almost forgotten that that level of audacity is so rare that when we see it, we don’t fully know how to analyze it.
3:41:07 We think of Elon as finding great talent, and I’m sure he’s also good at that.
3:41:13 But I also think that this beacon of the mission, we’re going to fucking Mars.
3:41:18 We’re going to transform transportation into using electricity.
3:41:21 We’re going to cover the earth in internet.
3:41:28 It’s so grand that there are days where I wake up and go like, what the fuck am I doing with these to-do lists?
3:41:32 Like, Jesus, should I go sign up for something like that?
3:41:41 That sounds invigorating in a sense I can only imagine like a Viking back in 1050 going like, should we go to Normandy?
3:41:43 You may die along the way.
3:41:46 But oh boy, does that sound like a journey and an adventure?
3:41:47 There’s a few components.
3:41:53 There’s one definitely this bigger than life mission and really believing it.
3:41:56 You know, every other sentence is about Mars, like really believing it.
3:42:00 It doesn’t really matter what, like anybody else, the criticism, anything.
3:42:04 There’s a very singular, focused, big mission.
3:42:13 But I think it also has to do with a bunch of the other components, like being able to hire well once the people, once the beacon attracts.
3:42:20 And I’ve just seen people that don’t necessarily on paper have a resume with a track record.
3:42:26 I’ve seen really, who now turned out to be like legendary people.
3:42:35 He basically like tosses them the ball of leadership, sees something in them and says like, you go and gives them the ownership and they run with it.
3:42:38 And that happens at every scale, that there’s a real meritocracy.
3:42:52 And like there’s something, there’s just like, you can see the flourishing of human intellect in these meetings, in these group getting together, where they’re like, the energy is palpable.
3:43:10 It’s like exciting for me to just be around that because I don’t, there’s not many companies I’ve seen that in because when a company becomes successful and larger, it somehow suffocates that energy that I guess you see in startups at the early stages.
3:43:16 But like, it’s cool to see it at a large company that’s actually able to achieve scale.
3:43:22 I think part of the secret there is that Elon actually knows things.
3:43:27 And when you know things, you can evaluate the quality of work products.
3:43:34 And when you can evaluate the quality of work products, you can very quickly tell who’s full of shit and who will actually take you to Mars.
3:43:38 And you can fire the people who’s full of shit and you can bet on the people who’ll get us to Mars.
3:43:47 That capacity to directly evaluate the competency of individuals is actually a little bit rare.
3:43:52 It’s not widely distributed amongst managers, hiring managers.
3:44:01 It’s not something you can easily delegate to people who are not very skilled at the work itself.
3:44:04 And Elon obviously knows a lot about a lot.
3:44:07 And he can smell who knows stuff for real.
3:44:19 And this is, at our tiny scale, something I’ve tried to do in the same order, where when we hire programmers, for example, it’s going to be interesting now with AI as a new challenge.
3:44:29 But up until this point, the main pivot point for getting hired was not your resume, was not the schooling you’ve had, was not your grades, was not your pedigree.
3:44:33 It was how well you did on two things.
3:44:38 A, your cover letter, because I can only work with people remotely if they’re good writers.
3:44:45 So if you can’t pen a proper cover letter and can’t bother to put in the effort to write it specifically for us, you’re out.
3:44:52 Two, you have to be able to program really well to the degree that I can look at your code and go like, yeah, I want to work with that person.
3:44:59 Not only I want to work with that person, I want to work on that person’s code when I have to see it again in five years to fix some damn bug.
3:45:05 So we’re going to give you a programming test that simulates the way we work for real.
3:45:06 And we’re going to see how you do.
3:45:12 And I’ve been surprised time and again where I thought for sure this candidate is a shoo-in.
3:45:13 They sound just right.
3:45:15 The CV is just right.
3:45:17 And then you see the code getting churned in.
3:45:18 I’m like, no way.
3:45:21 No way are we hiring this person.
3:45:23 And the other way has been true as well.
3:45:27 I’ve gone like, I don’t know about this guy or this woman.
3:45:29 I don’t know.
3:45:30 And then they turn in their code stuff.
3:45:34 And I’m like, holy shit, can that person be on my team tomorrow, preferably?
3:45:39 The capacity to evaluate a work product is a superpower when it comes to hiring.
3:45:46 There’s a step that I’ve seen Elon do really well, which is be able to show up and say, this can be done simpler.
3:45:47 Yes.
3:45:49 But he knows what he’s talking about.
3:45:57 And then the engineer, because Elon knows enough, the engineer’s first reaction, you can kind of tell.
3:46:02 It’s almost like rolling your eyes if your parent tells you something.
3:46:02 Yes.
3:46:06 This is not, no, we’ve, I’ve been working on this for a month.
3:46:07 You don’t know.
3:46:12 But then when you have that conversation a little more, you realize, no, it can be done simpler.
3:46:13 Find the way.
3:46:27 So there’s a good, when two engineers are talking, one might not have perfect information, but if, if, if the senior engineer has like good instinct, that’s like been battle earned.
3:46:33 Then you can say simplify, then you can say simplify, and it actually will result in simplification.
3:46:49 And I think this is the hallmark of the true greats, that they not only have the insight into what’s required to do the work, but they also have the transcendent vision to go beyond what the engineer would do, the programmer would do.
3:46:57 I think if we’re looking at these rarities, obviously the myth of Steve Jobs was also this.
3:47:16 Even though perhaps he was less technical than Elon is in many ways, he had the same capacity to show up to a product team and really challenge them to look harder for the simplification or for making things greater in a way that would garner disbelief from the people who are supposed to do it.
3:47:17 Like this guy is full of shit.
3:47:18 Like this is crazy.
3:47:18 We can never.
3:47:20 And then two months later it is.
3:47:25 So there is something of this where you need, you need the vision.
3:47:35 You need it anchored by the reality of knowing enough about what’s possible, knowing enough about physics, knowing enough about software that you’re not just building bullshit.
3:47:39 There are plenty of people who can tell a group of engineers, no, just do it faster.
3:47:40 Like that’s not a skill.
3:47:55 It’s got to be anchored in something real, but it’s also going to be anchored in, it’s a tired word, but a passion for the outcome to a degree where you get personally insulted if a bad job is done.
3:47:58 This is what I’ve been writing about lately with Apple.
3:48:16 They’ve lost that asshole who would show up and tell engineers that what they did was not good enough in ways that would actually perhaps make them feel a little small in the moment, but would spark that zest to really fix it.
3:48:27 Now they have a logistics person who’s very good at sourcing components and lining up production Gantt charts, but you’re not getting that magic.
3:48:37 Now, what’s interesting with that whole scenario was I actually thought how well Tim Cook ran things and has run things at Apple for so long that maybe we were wrong.
3:48:43 Maybe we were wrong about the criticality of Steve Jobs to the whole mission.
3:48:45 Maybe you could get away with not having it.
3:48:48 I think the bill was just going to come later.
3:48:59 And now it has Apple is failing in all these ways that someone who would blow up Steve’s ghost and really exalt him would say, like, see, this is what’s happening now.
3:49:12 So the other thing here, too, of course, is it’s impossible to divorce like your perception of what’s a critical component of the system and the messy reality of a million different moving parts in the reality of life.
3:49:17 And you should be skeptical about your own analysis and your own thesis at all time.
3:49:23 Since you mentioned Apple, have to ask somebody on the Internet submitted the question.
3:49:27 Does DHH still hate Apple?
3:49:29 I believe the question is.
3:49:37 So there was a time when Basecamp went to war with Apple over the 30 percent.
3:49:40 What’s, can you tell the saga of that battle?
3:49:41 Yes.
3:49:58 But first, I’ll tell you how I fell in love with Apple, which was all the way back in also early 2000s when Microsoft was dominating the industry in a way we now see Apple and Google dominate mobile phones.
3:50:01 Microsoft was just everything when it came to personal computers.
3:50:04 And I really did not like the Microsoft of the 90s.
3:50:18 The Microsoft of the 90s was the cutoff, the air supply to Netscape kind of characters, was the Bill Gates sitting defiant in an interview with the DOJ asking about what the definition of what is.
3:50:22 And just overall unpleasant, I think.
3:50:25 You can have respect for what was achieved, but I certainly didn’t like it.
3:50:33 And as we’ve talked about, I came begrudgingly to the PC after Commodore fell apart and I couldn’t continue to use the Amiga.
3:50:39 So I already had a bit of a bone to pick with PCs just over the fact that I love my Amiga so much.
3:50:48 But then in the early 2000s, Apple emerged as a credible alternative because they bet the new generation of Macs on Unix underpinnings.
3:50:52 And that allowed me to escape from Microsoft.
3:50:56 And suddenly I became one of the biggest boosters of Apple.
3:51:01 I was in my graduating class at the Copenhagen Business School.
3:51:06 I started with the first white iBook, first person using Mac.
3:51:19 And by the time we were done and graduating, I had basically converted half the class to using Apple computers because I would evangelize them so hard and demonstrate them and do all the things that a super fan would do.
3:51:22 And I continued that work over many years.
3:51:33 Jason and I actually in, I think, 2004, 2005, did an ad for Apple that they posted on the developer side where we were all about, like, Apple is so integral to everything that we do.
3:51:35 And we look up to them and we are inspired by them.
3:51:40 And that love relationship actually continued for a very long time.
3:51:45 I basically just became a Mac person for 20 years.
3:51:48 I didn’t even care about looking at PCs.
3:51:56 It seemed irrelevant to me, whatever Microsoft was doing, which felt like such a relief because in the 90s, I felt like I couldn’t escape Microsoft.
3:51:58 And suddenly I had found my escape.
3:52:00 And now I was with Apple and it was glorious.
3:52:02 And they shared so many of my sensibilities and my aesthetics.
3:52:04 And they kept pushing the envelope.
3:52:07 And there was so much to be proud of, so much to look up to.
3:52:15 And then that sort of started to change with the iPhone, which is weird because the iPhone is what made modern Apple.
3:52:29 It’s what I lined up in 2007 together with Jason for five hours to stand in the line to buy a first-generation product where Apple staff would clap at you when you walked out of the store.
3:52:30 I don’t know if you remember that.
3:52:32 It was a whole ceremony.
3:52:38 And it was part of that myth and mystique and awe of Apple.
3:52:41 So I just, I wasn’t in the market for other computers.
3:52:43 I wasn’t in the market for other computer ideas.
3:52:46 I thought perhaps I’d be with the Mac until the end of days.
3:53:06 But as Apple discovered the goldmine it is to operate a toll booth where you don’t have to innovate, where you don’t actually even have to make anything, where you can just take 30% of other people’s business, there was a rot that crept in to the foundation of Apple.
3:53:10 And that started all the way back from the initial launch of the App Store.
3:53:18 But I don’t think we saw at the time, I didn’t see at the time, just how critical the mobile phone would become to computing in general.
3:53:21 I thought when the iPhone came out that like, oh, it’s like a mobile phone.
3:53:24 I’ve had a mobile phone since the early 90s.
3:53:25 Well, it wasn’t a mobile phone.
3:53:26 It was a mobile computer.
3:53:33 And even more than that, it was the most important computer or it would become the most important computer for most people around the world.
3:53:39 Which meant that if you like to make software and wanted to sell it to people, you had to go through that computer.
3:53:51 And if going through that computer meant going through Apple’s toll booth and not just having to ask them permission, which in and of itself was just an indignity.
3:53:55 When you’re used to the internet, you don’t have to ask anyone permission about anything.
3:54:00 You buy a domain and you launch a business and if customers show up, boom, you’re a success.
3:54:02 And if they don’t, well, you’re a failure.
3:54:07 Now, suddenly, before you could even launch, you’d have to ask Apple for permission.
3:54:09 That always sat wrong with me.
3:54:20 But it wasn’t until we launched Hey in 2001 that I saw the full extent of the rot that has snug into Apple’s Apple.
3:54:29 For people who don’t know and will talk about it, Hey is this amazing email sort of attempt to solve the email problem.
3:54:30 Yes.
3:54:38 I like to pitch it as what Gmail would have been with 20 years of lessons applied in a way where they could actually ship.
3:54:41 Gmail was incredible when it launched in 2004.
3:54:47 And it still is a great product, but it’s also trapped in its initial success.
3:54:50 You can’t redesign Gmail today.
3:54:51 It just has way too many users.
3:54:56 So if you want fresh thinking on email, I wanted fresh thinking on email.
3:54:58 I needed to build my own email system.
3:54:59 And not just my own email client.
3:55:01 That’s what a lot of people have done over the years.
3:55:02 They build a client for Gmail.
3:55:08 But you’re severely constrained if you don’t control the email server as well.
3:55:12 If you really want to move the ball forward with email, you have to control both the server and the client.
3:55:15 And that was the audacious mission we set out to do with Hey.
3:55:18 And that was what’s funny.
3:55:21 I thought our main obstacle here would be Gmail.
3:55:24 It’s the 800-pound gorilla in the email space.
3:55:29 Something like 70% of all email in the U.S. is sent through Gmail.
3:55:32 I think their world rates are probably in that neighborhood as well.
3:55:35 They’re just absolutely huge.
3:55:50 And trying to attack an enormous established competitor like that, who’s so actually still loved by plenty of people, and is free, seems like a suicide mission.
3:55:57 And it was only a mission we signed up for because we had grown ambitious enough after making Basecamp for 20 years that we thought we could tackle that problem.
3:56:00 So I thought, hey, this is dumb.
3:56:05 I would not advise anyone to go head-to-head with Gmail.
3:56:07 That seems like a suicide mission.
3:56:10 We’re going to try anyway because, you know what, if we fail, it’s going to be fine.
3:56:15 We’re just going to build a better email experience for me and Jason and the people at the company and our cat.
3:56:18 And that will be okay because we can afford to do so.
3:56:28 But when we got ready to launch, after spending two years building this product, millions of dollars in investment to it, we obviously needed mobile apps.
3:56:34 You’re not going to be a serious contender with email if you’re not on a mobile phone, and you need to be there with a native client.
3:56:37 So we had built a great native client for both iOS and for Android.
3:56:47 And as we were getting ready to launch, we submitted both of them to the app stores, got both of them approved on, I think, Friday afternoon for the iOS app.
3:56:50 And we then went live on Monday.
3:56:51 And we were so excited.
3:56:54 Hey, world, we’ve been working on this new thing.
3:56:56 I’d love for you to check it out.
3:57:00 And of course, as with anything, when you launch a new product, there are some bugs.
3:57:05 So we quickly found a few in the iOS client and submitted a new build to Apple.
3:57:06 Hey, here’s our bug fixes.
3:57:07 Can you please update?
3:57:10 And that’s when all the hell broke loose.
3:57:16 Not only were they not going to approve our update, they said, oh, wait a minute.
3:57:20 We gave you permission to be in the app store, but I’m sorry, that was a mistake.
3:57:28 We see that you’re not using our in-app payment system, which means that we don’t get 30% of your business.
3:57:31 You will have to rectify that or you can’t be in the app store.
3:57:35 And first I thought like, well, it got approved already.
3:57:37 We’re running on the same model.
3:57:40 We’ve run Basecamp on in the app store for a decade.
3:57:45 If you’re not signing up through the app and we’re signing up our own customers on our own website,
3:57:49 and they’re just going to the app store to download their companion app, we’re going to be fine.
3:57:51 That was the truth, right?
3:57:57 That was why I never got so fired up about the app store, even as Apple started tightening the screws, was like my business was okay.
3:57:59 Now, suddenly my business wasn’t okay.
3:58:09 Apple was willing to destroy hay if we did not agree to give them 30% of all the signups that came through the iOS app.
3:58:12 And it wasn’t just about the 30%.
3:58:18 It was also about splitting and not longer having a direct relationship with our customers.
3:58:22 When you sell an app in the app store, you’re not selling an app to a customer.
3:58:28 You’re selling an app to inventory at Apple, and then Apple sells an app to that customer.
3:58:31 That customer has a purchasing relationship with Apple.
3:58:36 So if you want to give discounts or refunds or whatever, it’s complete hell.
3:58:41 If you want to easily support multi-platform, that’s complete hell.
3:58:49 If someone signs up for hay on their iPhone and they want to switch to Android, but that billing relationship, it’s tied to Apple, it’s complete hell.
3:58:53 For a million reasons, I did not want to hand my business over to Apple.
3:58:56 I did not want to hand 30% of our revenue over to Apple.
3:59:01 So we decided to do something that seemingly Apple had never heard before.
3:59:06 We said, no, we’re not going to add the in-app payment.
3:59:09 I don’t care if you’re threatening us.
3:59:10 This is not fair.
3:59:11 This is not reasonable.
3:59:15 Please approve.
3:59:16 And of course they didn’t.
3:59:17 And it escalated.
3:59:21 And after a couple of days, we realized, you know what?
3:59:22 This isn’t a mistake.
3:59:23 This isn’t going away.
3:59:27 We’re going to be dead if they go through with this.
3:59:30 If we’re not going to yield and give them the 30%,
3:59:32 they’re going to kick us off.
3:59:40 Unless we make such a racket, such noise, that they will regret it.
3:59:42 And that’s exactly what then happened.
3:59:47 We were blessed by the fact that we launched Hay one week before the WWDC,
3:59:51 their worldwide developer conference, where Apple loves to get up on stage
3:59:55 and harp on how much they do for developers, how much they love them,
3:59:58 and why you should bill for their new devices, and so on and so forth.
4:00:02 And then we also just happened to have a platform on the internet,
4:00:07 which is very convenient when you need to go to war with a $3 trillion company.
4:00:10 So I started kicking and screaming.
4:00:10 Oh, boy.
4:00:15 And essentially turning it up to 11 in terms of the fight
4:00:20 and going public with our denial to be in the app store.
4:00:24 And that turned into a prolonged two-week battle with Apple
4:00:28 that essentially ended in the best possible outcome we could have gotten
4:00:31 as David fighting Goliath, which was a bit of a truce.
4:00:34 We wouldn’t hand 30% over to Apple.
4:00:37 They wouldn’t kick us out of the app store.
4:00:44 But we had to build some bullshit dummy account such that the app did something when you downloaded it.
4:00:49 That was a rule that Phil Schiller seemingly made up on the fly when pressed for the fifth time
4:00:54 by the media about why we couldn’t be in the app store when a million other companion apps could.
4:00:58 But we just happened to be able to create so much pain and noise for Apple
4:01:03 that it was easier for them to just let us be than to keep on fighting.
4:01:09 What do you think about Tim Sweeney’s victory with Epic over Apple?
4:01:12 I think it is incredible.
4:01:19 And the entire developer ecosystem, not just on iOS, but on Android as well,
4:01:24 owe Epic, Tim Sweeney, and Mark Rain an enormous debt of gratitude
4:01:32 for taking on the only battle that has ever inflicted a serious wound on Apple
4:01:35 in this entire sordid campaign of monopoly enforcement,
4:01:38 and that is Epic’s fight versus them.
4:01:46 Tim recently revealed that it has cost well over $100 million in legal fees
4:01:48 to carry on this battle against Apple.
4:01:53 We, for a hot moment, considered suing Apple when they were threatening to kick us out.
4:01:56 We shopped the case around with a few law firms.
4:02:00 And perhaps, of course, they would tell us, you have a good case.
4:02:02 I mean, they’re trying to sell a product here.
4:02:05 But they would also tell us it’s going to cost a minimum of $10 million,
4:02:10 and it’s going to take five to seven years through all the appeals.
4:02:14 Now, we now learned the actual price tag was 10 times higher, right?
4:02:15 Epic spent over $100 million.
4:02:20 It would have destroyed us to take on Apple in the legal realm.
4:02:22 Only a company like Epic could do it.
4:02:32 And only a company run by founders like Tim, like Mark, could risk the business in the way that they did.
4:02:37 The audacity they had to provoke the fight in the first place, which I thought was just incredible.
4:02:40 And to stick with it for the long term.
4:02:45 No board would have signed off on this lawsuit to a professional CEO.
4:02:47 No freaking way.
4:02:55 So the fact that they’ve been able to beat Apple in also the most hilarious way possible, I think it’s just incredible.
4:03:01 Because remember, their first victory in the case was actually not much of a victory.
4:03:04 There were about 11 counts in the trial.
4:03:07 Apple basically won 10 of them.
4:03:19 And the judge awarded Epic this one little win that Apple couldn’t tell them not to link out to the Internet to be able to do the payment processing.
4:03:21 So they won this one little thing.
4:03:37 And Apple, instead of just taking the 10 out of 11 wins and going, fine, you can have your little links, but all these other rules stay in place, decided to essentially commit criminal contempt of court, as they’ve now been referred to for prosecution.
4:03:57 And angered the judge to such a degree that the rule of law in the U.S. now is that you can launch an app in the App Store and you don’t have to use in-app payment, but you can have a direct billing relationship with a customer if you just link out to the open Internet when you take the credit card and then hop back into the app.
4:04:00 And we owe all of that to Tim and Mark.
4:04:02 We owe all of that to Epic.
4:04:20 We’re going to launch new apps any minute now, I hope, actually, and next week, that take advantage of this, that revamp the Hey app such that people who download the Hey app off the Apple App Store can sign up in the app and can then use the web to put in their credit card so we don’t have to pay 30%.
4:04:28 We have a direct billing relationship and such that they can take that subscription to Android, to PCs, whatever, without any hassle.
4:04:31 And we have Tim and Mark to thank for it.
4:04:46 Yeah, Tim, I mean, like you said, founders, but also specific kind of founders, because I think maybe you can educate me on this, but Tim is somebody who maintains to this day sort of the unreasonableness of principles.
4:04:48 That’s what I love.
4:04:52 I think sometimes maybe even with founders, you can get worn down.
4:04:53 It’s a large company.
4:04:53 Yes.
4:05:00 There’s a lot of smart, quote-unquote, people around you, lawyers, and just whispering in your ear over time, and you’re like, well, just be a reason.
4:05:02 We’ll be in a, you know, this is a different thing.
4:05:11 To be the sort of maintain, I mean, Steve Jobs did this, maintain, still are the asshole.
4:05:12 Yes.
4:05:17 Who says, no, this whole company, I’ll sink this whole fucking company over this.
4:05:23 That’s the exact language, basically, I used in our original campaign.
4:05:27 I will burn this business down before I hand over 30% of it to Apple.
4:05:37 And that sort of indignation, that actual rage, is something I try to be a little careful about tapping into, because it is a little bit of a volatile compound.
4:05:39 Because, I mean, I have a bunch of employees.
4:05:41 We have a bunch of customers.
4:05:51 It would be pretty sad if the journey of 37 signals after 25 years would come to an end because Apple would burn us down, or I would burn the business down over this fight with Apple.
4:05:56 But I think you also need that level of conviction to be able to even drive day-to-day decisions.
4:06:02 One of the other Apple examples, and I know I’m racking on Apple a little bit here, and I don’t actually hate them.
4:06:03 I really don’t.
4:06:13 I am tremendously disappointed at the squandered relationship that did not need to be sold away for so little.
4:06:17 Now, I understand that the App Store toll booth is actually pretty big business.
4:06:19 It’s multiple billions.
4:06:26 But Apple is a trillion-dollar company, and I think in the lens of history, this is going to come off as a tremendous mistake.
4:06:28 And I think it’s already coming off as a tremendous mistake.
4:06:35 The flop that was the Vision Pro was partly because Apple had pissed off every other developer.
4:06:43 No one was eager to come build the kind of experiences for their new hardware that would perhaps have made it a success.
4:06:53 So when you’re on top and you have all the cards, you can dilute yourself into thinking that you can dictate all terms at all times and there are no long-term consequences.
4:07:00 Apple is learning, finally, the fact that there are long-term consequences and that developers actually are important to Apple’s business.
4:07:03 And the relationship is not entirely one-sided.
4:07:06 We don’t owe our existence to Apple and Apple alone.
4:07:08 We’ve built our own customer bases.
4:07:11 Apple has been beneficial to the industry.
4:07:13 I’m glad the iPhone exists.
4:07:15 Dada, dada.
4:07:19 It’s not that it doesn’t go both ways, but Apple wants it only one way.
4:07:22 And I think that is a mistake.
4:07:25 And it’s a mistake that was avoidable.
4:07:28 And A, that’s disappointing.
4:07:29 Certainly disappointing for me.
4:07:32 I’ve literally spent 20 years evangelizing this shit, right?
4:07:40 I’ve spent so much money buying Apple hardware, excusing a bunch of things they’ve done over the years.
4:07:43 And then for what?
4:07:50 For the fact that you wanted 30% of something that I created in the most unreasonable way possible?
4:07:52 Couldn’t we have found a better way to do this?
4:07:55 I think they’re going to get forced to do a better way.
4:08:03 But did you also have to go through the indignity of having a criminal contempt charge against you, getting referred to prosecution?
4:08:05 It just seems so beneath Apple.
4:08:17 But it also seems so in line with what happens to huge companies who are run by, quote-unquote, professional managers rather than founders and unreasonable people.
4:08:22 Well, we should probably also say that the thing you love about Apple, the great spirit of Apple,
4:08:24 Apple, I think, still persists.
4:08:31 And there’s a case to be made that this 30% of things is a slice, a particular slice of a company, not a defining aspect of the company.
4:08:38 And that Apple is still on top in the hardware that it makes and a lot of things that it makes.
4:08:49 There could be just a hiccup in a long story of a great company that does a lot of awesome stuff for humanity.
4:08:51 So, like, Apple is a truly special company.
4:08:52 We mentioned Amazon.
4:08:55 There is no company like Apple.
4:08:56 I agree.
4:08:59 This is why the disappointment is all greater.
4:09:08 Because we had such high aspirations and expectations to Apple that they were the shining city on the hill.
4:09:12 And they were guiding the industry in a million positive ways.
4:09:29 I think, as we talked about earlier, hardware is exciting again in large part because Apple bought PA Semi and pursued a against all odds mission to get ARM up to the level it is today.
4:09:31 And we have these incredible M chips now because of it.
4:09:39 And the design sensibilities that Apple bring to the table are unparalleled.
4:09:44 No one has taste, certainly at the hardware level, like Apple does.
4:09:48 Even at the software level, I’d say there’s a lot of taste left in Apple.
4:09:50 But there’s also some real sour taste now.
4:09:54 So they have to wash that off first, I think, before they find their wear back.
4:09:57 But Apple’s been in a morose before.
4:10:03 I mean, Wozniak and Steve Jobs started this thing in the garage, has great success with the Apple II.
4:10:09 He hands the company over to a sugar drink salesman who tanks the company into the 90s.
4:10:25 He doesn’t learn the lesson, spends the next 20 years building up this amazing company, then hands the company over again to a logistics person who presumably had more redeeming qualities than the first guy who put in charge,
4:10:28 but still ends up leading the company astray.
4:10:31 Now, this is the norm.
4:10:34 The norm is the great companies don’t last forever.
4:10:39 In the long arc of history, almost no company lasts forever.
4:10:51 There are very few companies around that was here 100 years ago, even fewer 200 years ago, and virtually nothing that are 1,000 years old outside of a handful of Japanese swords makers or something like that.
4:10:58 So you can get diluted into thinking that something is forever when you’re in the moment and they seem so large.
4:11:04 Apple could absolutely stumble, and I think they have more reason to stumble now than ever.
4:11:07 They’re behind on AI, terribly behind.
4:11:11 Their software quality is faltering in a bunch of ways.
4:11:26 The competition is catching up on the hardware game, in part because TSMC is not an Apple subsidiary, but a foundry that services AMD and NVIDIA and others who are now able to use the same kind of advanced processes.
4:11:36 This is something I learned after not looking at PC hardware for the longest time, that holy smokes, AMD actually makes CPUs that are just as fast, if not faster than Apple’s.
4:11:42 They’re not quite as efficient yet because ARM has some fundamental efficiencies over x86, but they’re still pretty good.
4:11:45 So Apple should have reason to worry.
4:11:55 Apple shareholders should have reason to be concerned, not just about all these stumbles, but also by the fact that Apple is run by old people.
4:12:00 Apple’s board has an average age of, I think, 75.
4:12:03 Their entire executive team is above 60.
4:12:07 Now, that sounds horribly ageist.
4:12:10 And in some ways, it a little bit is.
4:12:12 In the same way, I’m ageist against myself.
4:12:14 Like, I’m 45 now.
4:12:21 And I sort of kind of have to force myself to really get into AI because it is such a paradigm shift.
4:12:26 And a lot of people, when they reach a certain age, are just happy to stay with what they know.
4:12:28 They don’t want to go back to being a beginner.
4:12:30 They don’t want to go back to having to relearn everything.
4:12:34 And I think, like, this is a little hard for me at 45.
4:12:36 How the hell do you do that at 75?
4:12:39 I have to come back to it.
4:12:40 You mentioned it earlier.
4:12:42 You’re a parent.
4:12:47 Can you speak to the impact that becoming a father has had on your life?
4:12:53 I think what’s funny about fatherhood is that, for me, I wasn’t even sure it’s something I wanted.
4:13:05 It took meeting the right woman and letting her convince me that this was the right idea before we even got started.
4:13:13 I didn’t have starting my own family on the list of priorities in my late 20s or even early 30s.
4:13:22 It was really the impetus of meeting my wife, Jamie, and her telling me, this is what I want.
4:13:24 I want to have a family.
4:13:25 I want to get married.
4:13:26 I want to have kids.
4:13:28 I want to have three.
4:13:33 And me going for a second, like, whoa, whoa, whoa.
4:13:35 And then, eh.
4:13:37 All right.
4:13:38 Let’s do it.
4:13:46 And I think that’s the kind of happy accident where some parts of my life have been very driven,
4:13:52 where I knew exactly what I wanted and how to push forward to it and what the payoff was going to be.
4:14:03 But when it comes to having a family, that always felt like a very fuzzy, abstract idea that, sure, someday, maybe.
4:14:09 And then it became very concrete because I met a woman who knew what she wanted.
4:14:25 And looking back on it now, it almost seems crazy, like there’s this fork in the road of reality where if that hadn’t happened and I had been sitting here now,
4:14:39 not being a father, not having a father, not having a family, the level of regret, knowing what I know now about the joys of having that family would have been existential.
4:14:44 That would have been, I don’t know if they would have been devastating.
4:14:50 I think men have a little bit of a longer window to pursue these things than women do.
4:14:53 There are just certain biological facts.
4:15:08 things that ending up with the family I have now, ending up with my three boys have been just a transformative experience in the sense that here’s something that turned out to be the most important thing.
4:15:15 And it was an open secret, not even an open secret, it was an open truth through all of history.
4:15:20 You listen to anyone who’s ever had children, they will all say my children are the most important to me.
4:15:25 Yet somehow that wisdom couldn’t sink in until you were in the situation yourself.
4:15:27 I find those truths fascinating.
4:15:35 When you can’t actually relay them with words, I can tell you, hey, Lex, what are you doing?
4:15:39 Get a wife, make some kids, get a move on it.
4:15:40 And these are just words.
4:15:44 They’re not communicating the gravity of what it actually feels to go through the experience.
4:15:48 And you can’t really learn it without going through it.
4:15:51 Now, of course, you can be influenced and whatever.
4:15:56 We can all help contribute and little sparks and little seeds can grow in your mind about it.
4:15:57 But it still has to happen.
4:16:08 And now that I am in this situation and just the sheer joy on a daily basis where you think your level of…
4:16:11 Life satisfaction is on a scale of 1 to 10.
4:16:22 And then the satisfaction of seeing your children understand something, accomplish something, learn something, do something, just be.
4:16:24 Just goes like, oh, my God.
4:16:26 The scale doesn’t go from 1 to 10.
4:16:27 It goes from 1 to 100.
4:16:32 And I’ve been playing down here in the 1 to 10 range all this time.
4:16:35 And there’s a 1 to 100.
4:16:43 That has been humbling in a way that is impactful in and of itself.
4:16:50 This whole idea that I thought I had a fair understanding of the boundaries of life in my early 30s.
4:16:51 Like, what is this about?
4:16:54 I mean, I’ve been on this earth long enough now here to know something.
4:16:56 And he goes, I don’t know.
4:16:57 I did not know.
4:17:01 I did not know that the scale was much, much broader.
4:17:16 And I’ve often talked about the joys of having kids and just seeing your own DNA, which is remarkable to me because literally that’s been the pursuit of humans since the dawn of time.
4:17:27 I am here today because, whatever, 30,000 years ago, some Neanderthal had the same realization that I should procreate and I should continue my bloodline.
4:17:30 And that all amounts to me sitting here now.
4:17:37 But it didn’t become a practical reality to me before meeting the right woman.
4:17:48 And I think that that’s sometimes not part of the conversation enough, that there’s something broken at the moment about how people pair up in the Western world.
4:18:04 And it’s at the source of why we’re not having enough children, because there’s not enough couples, there’s not enough marriage, there’s not a lot of these, there’s not enough of all these traditional values that even 50, 60, 70 years ago was just taken for granted.
4:18:11 We’re in this grand experiment of what happens if we just remove a bunch of institutions.
4:18:17 What happens if we no longer value marriage as something to aspire to?
4:18:27 What happens if parenthood is now seen in some camps as almost something like weird or against your own self-expression?
4:18:33 It’s a grand experiment that I’m kind of curious how it turns out.
4:18:37 I’d prefer to watch it as a movie, like the Children of Men, of like, that was a good show.
4:18:53 I kind of wish that was reality, but we’re seeing that reality play out while I’m sitting here in a very traditional two-parent loving household with three children and going, this is now at the top.
4:18:55 I’ve done a lot of things in my life.
4:19:00 I’ve built software, I’ve built companies, I’ve raced cars, I’ve done all sorts of things.
4:19:05 And I would trade all of it in a heartbeat for my kids.
4:19:15 That’s just a really fascinating human experience, that the depth of that bond is something you can’t appreciate before you have it.
4:19:25 But I also think there is a role to play to talk it up, because we’re being bombarded constantly with reasons.
4:19:26 Why not to?
4:19:28 Oh, it’s too expensive.
4:19:32 Well, you could get divorced and then you might lose half.
4:19:40 There’s all these voices constantly articulating the case against marriage, the case against having children.
4:19:58 That those of us who’ve chosen to do the traditional thing, to get married and to have children, have an obligation to kind of talk it up a little bit, which would have seemed ridiculous again 50 years ago that you’d have to talk up something so fundamental as that.
4:20:06 But I have become kind of obligated in that sense to do just that, to talk it up, to say, do you know what?
4:20:08 You can look at everything that I’ve done.
4:20:19 And if you like some of those parts, realize that to me, in this situation, the kids, the family, the wife is more important than all of it.
4:20:22 And it sounds like a cliche because you’ve heard it a thousand times before.
4:20:28 And by becoming a cliche, maybe you start believing it’s not true, that it’s just something people say.
4:20:31 But it is reality.
4:20:39 I know almost no parents that I have personal relationships with that don’t consider their children to be the most important thing in their life.
4:20:41 So there’s a lot of interesting things you said.
4:21:01 So one, it does seem to be, I know a lot of parents, perhaps more interestingly, I know a lot of super successful people who are parents who really love their kids and who say that the kids even help them to be more successful.
4:21:22 Now, the interesting thing, speaking to what you’re saying, is it does seem for us humans, it’s easier to articulate the negatives because they’re sort of concrete, pragmatic, you know, it costs more, it takes some time, you know, they can be crying all over the place, they’re, you know, tiny narcissists running around or whatever.
4:21:23 Which is all true.
4:21:25 Yeah, pooping everywhere, that kind of stuff.
4:21:39 But to articulate the thing you were speaking to, there’s this little creature that you love more than anything you’ve ever loved in your life, it’s hard to convert that into words, you have to really experience it.
4:21:54 But I believe it, and I want to experience that, but I believe, because just from a scientific method, have seen a lot of people who are not, honestly, not very capable of love, fall completely in love with their kids.
4:21:55 Yes.
4:22:01 Like, you know, very sort of, let’s just call it what it is, engineers that are very, like, beep, boop, bop.
4:22:02 Yes.
4:22:04 They just fall in love.
4:22:15 And it’s like, all right, people who, just like you said, they don’t really want, they don’t really care or don’t really think about having kids, that kind of stuff, once they do, it changes everything.
4:22:18 So, you know, but it’s hard to convert into words.
4:22:26 One of the reasons I think it’s also difficult is, I mean, I like kids, not that I actively dislike them.
4:22:31 But when I was around other people’s kids, I didn’t have an emotional reaction.
4:22:33 Some women have, right?
4:22:37 They see a baby and they go, oh, I never had any emotion of that.
4:22:39 I mean, I could appreciate, I’m glad for you that you have children.
4:22:41 It did not provoke anything in me.
4:22:48 The emotions that are provoked in me when I look at my own children, this doesn’t exist in the same universe.
4:22:55 So, you don’t have something, you don’t have a complete parallel, or at least a lot of men, or at least me, I didn’t have sort of a framework to put it into.
4:22:57 What would it be like to have my own child?
4:23:03 And then you experience that you just, it’s like the, and it happens so quickly, too.
4:23:04 This is what I found fascinating.
4:23:16 It happens before that little human is even able to return any words to you, that the love you develop to an infant happens quite quickly.
4:23:18 Not necessarily immediately.
4:23:19 I don’t know.
4:23:21 Different people have different experiences.
4:23:23 But it took me a little bit.
4:23:27 But then once it hit, it just hit like kick of a horse.
4:23:36 I love that it’s also just such a universal experience that you can be the most successful person in the world.
4:23:37 You can be the poorest person in the world.
4:23:38 You can be somewhere in the middle.
4:23:47 And we share this experience that being a parent, for most of them, turns out to be the most important thing in their life.
4:23:53 But, you know, it is really nice to do that kind of experience with the right partner.
4:23:58 But I think because I’m such an empath, the cost of having the wrong partner is high for me.
4:24:07 But then I also, like, realized, man, I have a friend of mine who’s divorced happily, and he still loves the shit out of his kids.
4:24:08 And it’s still beautiful.
4:24:11 It’s a mess, but there’s still, all of that love is still there.
4:24:14 And it’s, you know, you just have to make it work.
4:24:18 It’s just that, I don’t know, that kind of, like, divorce would destroy me.
4:24:20 You should listen to The School of Life.
4:24:24 He has this great bit on YouTube.
4:24:26 You will marry the wrong person.
4:24:34 If you accept up front that you will marry the wrong person, that every potential person you can marry is going to be the wrong person in some dimension.
4:24:36 They’re going to annoy you.
4:24:40 They’re going to be not what you hoped in certain dimensions.
4:24:49 The romantic ideal that everything is just perfect all the time is not very conducive to the reality of hitching up and making babies.
4:25:06 Because I think, as you just accounted, even when it turns to shit, I find that most of the people I personally know, where things have fallen apart and have turned to shit, never in a million years would they go, like, I regret it.
4:25:12 I would rather my children did not exist because a relationship turned sour.
4:25:14 I mean, I think you should try very hard.
4:25:20 And I think this is also one of those things where we didn’t fully understand those fences.
4:25:27 And when we pulled them up and celebrated how easy it is to get divorced, for example, that that wasn’t going to have some negative consequences.
4:25:29 I’m not saying you shouldn’t have divorces.
4:25:32 I’m not saying return to times past.
4:25:47 I’m saying, though, that civilization over thousands of years developed certain technologies for ensuring the continuation of its own institutions and its own life that perhaps we didn’t fully appreciate.
4:25:56 I mean, again, this is something Jordan Peterson and others are far more articulate to speak about and that I’ve learned a lot to just analyze my own situation.
4:26:07 Why is it that this incredible burden it is to be responsible for someone else’s life that you brought into this world is also the most rewarding part of existence?
4:26:09 That’s just curious.
4:26:21 Before I heard Peterson articulate the value of taking on the greatest burden you know how to carry, I always thought about burdens as a negative things.
4:26:23 Why would I want the burden of a child?
4:26:25 I might screw it up.
4:26:26 I might be a bad parent.
4:26:28 They might have bad outcomes.
4:26:29 All this stuff, right?
4:26:36 All the reasons why you shouldn’t and so few voices articulating why you should.
4:26:43 Yeah, but I should also add on top of that thing you mentioned currently, perhaps in the West, the matchmaking process.
4:26:44 It’s broken.
4:26:46 It’s broken and technology made it worse.
4:26:47 It’s fascinating.
4:26:50 This whole thing that that hasn’t been solved.
4:26:59 So hiring great teams, that’s probably been solved the best out of matchmaking, finding great people to hire.
4:26:59 Right.
4:27:02 Second, finding great friends.
4:27:05 That’s like, that’s also hasn’t been solved.
4:27:06 And it’s breaking down.
4:27:07 It’s breaking down.
4:27:09 And third is matchmaking for like relationships.
4:27:11 That’s like the worst.
4:27:13 And in fact, technology made it even worse.
4:27:14 Yes.
4:27:14 It’s fascinating.
4:27:15 It is.
4:27:22 It’s a great example, again, of how all the greatest intentions still led us straight to hell.
4:27:34 I really enjoy Louise Perry’s analysis of the sexual revolution not being an unqualified good, which was something I hadn’t thought about at all before she articulated it.
4:27:42 That, of course, women should be able to have freedom until termination and abortions and all of these things.
4:27:46 And Louise Perry is not arguing against that either, of course.
4:27:54 But there are second order effects that we don’t appreciate at the time and we may not have ready-made solutions for.
4:27:55 And that’s just interesting.
4:28:01 You make life better in a million different ways and somehow we end up more miserable.
4:28:02 Why is that?
4:28:08 Why is it that humans find meaning in hardship?
4:28:17 And I think some of that is that it’s a difficult question to answer through science.
4:28:28 And again, Peterson articulates well this idea that you have to find some of it through art, some of it through authors, some of it through different…
4:28:35 I was just about to say modes of knowing before I stop myself because that sounds like woo bullshit.
4:28:38 But there are different ways to…
4:28:48 Acquire those deep lessons that sort of paper is not going to tell you.
4:28:54 I mean, this is really the point also applies to religion, for example.
4:29:00 If you remove from society the softer religion, you better have a good replacement.
4:29:05 And we’ve had a bunch of bad replacements, especially over the last few decades.
4:29:10 Religion is one of those things I’ve struggled with a lot because I’m not religious.
4:29:26 Having an operating system like that brings, not just at the individual level, but rather at a societal level.
4:29:29 And it’s not clear at all what the answer is.
4:29:33 I think we’ve tried a lot of dead ends when it came to replacements.
4:29:44 And people have been filling that void in a million different ways that seem worse than all the religions, despite their faults in a myriad of ways, have been able to deliver.
4:29:44 Yeah.
4:29:48 Religion is like the cobalt code.
4:29:49 It’s just…
4:29:49 Yes.
4:29:55 It’s the institutions where we don’t fully understand the rules and why they’re there and what’s going to happen if we remove them.
4:30:00 Some of them, seems obvious to me, are just bullshit of the time.
4:30:06 Oh, you shouldn’t eat whatever shellfish because in that region of the world there was something, something, something.
4:30:06 Okay, fine.
4:30:13 But there’s a bunch of other things that are pivotal to keeping society functioning for the long term.
4:30:15 And we don’t fully understand which is which.
4:30:19 What’s the bullshit and what’s the load-bearing pillars of society?
4:30:24 Can you speak to the hit on productivity that kids have?
4:30:29 Did they increase their productivity, decrease it, or is that even the wrong question to ask?
4:30:37 I think it’s one of the reasons why ambitious people are often afraid of having children because they think I have so much more to do and I barely have enough time now.
4:30:45 How would I possibly be able to accomplish the things I want to accomplish if I add another human into the mix?
4:30:53 Now, A, we’ve always worked 40 hours a week, not 80 or 100 or 120.
4:30:54 I think that’s very beneficial.
4:31:01 B, kids don’t exist in this vacuum of just them alone being entered into your life.
4:31:03 Hopefully, there’s a partner.
4:31:18 And in my life, I’m married to a wonderful woman who decided to stop working her corporate job when we got together and have been able to carry a huge part of that responsibility.
4:31:38 And I think that’s exactly how it often gets presented, especially from a feminist perspective, that caring for your own children is some sort of unpaid labor that has to be compensated for in some specific way beyond the compensation of what?
4:31:43 Bringing life into this world, raising wonderful humans?
4:31:54 There’s something screwy about that analysis that I actually think the modern trad movement is a reply against.
4:31:56 Whether they have all the answers, I’m certainly not sure of either.
4:32:12 But there’s something that’s just not right in the analysis that children are a burden and that if a woman chooses to stay at home with the kids, that that’s some sort of failure mode of feminist ambition.
4:32:15 I think that’s actually a complete dead end.
4:32:18 Now, depends on different people, different circumstances.
4:32:33 I can just speak to my life, being married to a wonderful woman who have decided to be home with the kids, at least at their early age, and taking on a lot of those responsibilities.
4:32:45 Now, it doesn’t mean there isn’t plenty of ways that I have to be part of that and have to chip in, but it’s allowed me to continue to work the 40 hours a week that I’ve always worked.
4:32:48 But it’s made the 40 hours more strict.
4:32:57 I have a schedule where I wake up, whatever, 6.30, and we have to get out of the door a little before 8.
4:33:15 I usually have to play at least one or two rounds of Fortnite with my youngest, sometimes middle child, then take the kids to school, get in, start work at, I don’t know, 8.30, 9.00, then work until 5.30, sometimes 6.00, but then it’s dinner.
4:33:22 And I have to be there for that, and then I have to read to the kids, and by the time that’s done, I don’t want to go back to work.
4:33:30 So my work time really is 9.00 to 5.00, 9.00 to 6.00, depending of whatever is going on.
4:33:45 Sometimes there’s emergencies, and you have to attend to them, but it’s made it more structured, and I found some benefit in that, and I found some productivity in that, that I can’t goof around quite as much, that the day will end at around 5.36.
4:33:50 That’s just, if I didn’t accomplish what I wanted to do today, if I get to that time, it’s done.
4:33:51 I’m over.
4:34:00 I have to try again tomorrow, whereas before having a family and before having kids, I could just, like, not do it and just make it up in the evening.
4:34:06 So in that way, it’s made me more structured, but it hasn’t really changed my volume of work all that much.
4:34:10 I still work about the same amount of hours, and that’s, by the way, enough.
4:34:18 This is one of the key points we make in It Doesn’t Have to be Crazy at Work, the latest book we wrote, is that there’s enough time.
4:34:22 40 hours a week is actually a ton if you don’t piss it away.
4:34:24 Most people do piss it away.
4:34:25 They piss it away in meetings.
4:34:41 They piss it away on just stuff that doesn’t matter when even three hours, four hours of concentrated, uninterrupted time every day would move to goals they truly care about way down the field.
4:34:47 I think kids do make you more productive in that way for people who need it, especially people like me.
4:34:49 They create their urgency.
4:35:05 Like, if you have to be done by five, it’s maybe a counterintuitive notion, but for people like me who like to work, you can really fill the day with fluff of work.
4:35:15 And if you have to be done by five, you’re going to have to do the deep work and get it done, like really focused, singular work.
4:35:15 Yes.
4:35:18 And then you just kind of cut off all the bullshit.
4:35:23 It keeps you honest because you can squander one day, you can squander two days.
4:35:27 But if I squander a whole week, I feel terrible.
4:35:39 Now, that’s just some drive I have in me where I feel content and full of meaning if I actually do stuff that matters, if I can look back upon the week and go like, that was a nice week.
4:35:40 Really, we moved forward.
4:35:42 Maybe we didn’t get done, but we moved forward and everything got better.
4:35:45 And I think kids really help just.
4:35:47 Time box things in that way.
4:35:58 And a lot of people need that because I find just so much of the celebration of overwork to be so tiresome.
4:36:02 Oh, I work 60 hours or 80 hours, 100 hours a week.
4:36:04 And just like, first of all, no, you don’t.
4:36:06 No, you don’t.
4:36:12 Like those 80 hours are full of all sorts of fluff that you label work, but that I would laugh at.
4:36:18 And that most people laugh at that you would laugh at if you actually did the analysis of where’s that time going.
4:36:26 Most of the important stuff that have to be done is done in these uninterrupted chunks of two hours here or four hours there or five hours there.
4:36:29 The hard part is making sure you get them in the whole piece.
4:36:33 So don’t give me don’t give me that.
4:36:33 There’s time enough.
4:36:40 And also, what’s so important that it ranks above continuing your lineage?
4:36:53 I think there’s just some ancient honor in the fact that, again, this DNA that’s sitting on this chair traveled 30,000 years to get here.
4:36:56 And you’re going to squander all that away just so you can send a few more emails?
4:37:04 There is something that’s also hard to convert into words of just the kind of fun you can have just playing with your kids.
4:37:10 I don’t know what that, on the surface, it’s like I could have that kind of fun just playing video games by myself.
4:37:13 But no, it’s like there’s something magical about it, right?
4:37:20 I have a thousand hours logged in Fortnite since 19, I think.
4:37:22 All of it with my kids.
4:37:24 I’d never be playing Fortnite.
4:37:26 Well, I don’t know if I never would be.
4:37:29 I wouldn’t be playing a thousand hours of Fortnite if it wasn’t for my kids.
4:37:34 The enjoyment for me is to do something with them that I also happen to enjoy.
4:37:36 I really love Fortnite.
4:37:38 It’s a phenomenal game.
4:37:40 I don’t have to force myself to play that with them.
4:37:43 I often ask, like, hey, do you want to play Fortnite?
4:37:47 But still, it’s an activity that I get to share with them.
4:37:48 It’s a passion that I get to share with them.
4:37:51 I’ve started doing go-karting with my oldest.
4:37:55 I’ve been driving race cars for a long time, and now they’re getting into go-karting.
4:38:01 And just being at the go-kart track, seeing them go around, seeing them get faster, seeing them learn that skill.
4:38:06 You just go look at, like, what else would I be doing with my life?
4:38:14 At my age, 45, I’m standing here truly enjoying life I brought into this world.
4:38:19 What else is it that was so important at this stage that I would otherwise be spending my time on?
4:38:20 All right.
4:38:27 Like you mentioned, you like to race cars, and you do it at a world-class competitive level, which is incredible.
4:38:29 So how did you get into it?
4:38:31 What attracts you to racing?
4:38:32 What do you love about it?
4:38:37 The funny thing about getting into racing is I did not get my driver’s license until I was 25.
4:38:47 I grew up in Copenhagen, Denmark, where the tax on cars is basically over 200%.
4:38:54 So you pay for three cars, and you get one, and I didn’t even have the money for one car, let alone three.
4:38:57 So I could not afford a car growing up.
4:38:58 We did not have a car growing up.
4:39:07 But Copenhagen is a nice city to be able to get around on a bike, or with a bus, or as I did for a long period of time, on rollerblades.
4:39:15 But when I was 25, I realized I wanted to spend more time in the U.S.
4:39:16 I wasn’t sure yet that I was going to move there.
4:39:18 That turned out later to be true.
4:39:22 But I knew that if I wanted to spend time in the U.S., I needed to have a driver’s license.
4:39:26 I was not going to get around very well if I didn’t know how to drive a car.
4:39:30 So I got a driver’s license at 25, then ended up moving to the U.S. later that year.
4:39:36 And I’d always been into video games, racing video games.
4:39:44 Metropolitan Street Racer under Dreamcast was one of those games that really sucked me into…
4:39:52 It was the precursor to Project Gotham, which was the precursor to essentially Forza Horizon, I think.
4:39:53 Oh, okay.
4:39:54 I think that’s how the lineage goes.
4:39:56 Just a great game.
4:40:00 I actually just fired it up on an emulator a few weeks ago.
4:40:07 And it still sort of kind of holds up because it has enough real car dynamics that it smells a little bit like driving a real car.
4:40:10 It’s not just like an arcade racer like Sega Rally or something like that.
4:40:12 But I’d always been into that.
4:40:16 Then I got my driver’s license at 25 and moved to the U.S.
4:40:26 And then two years later, a friend that I’d met in Chicago took me to the Chicago Audubon Country Club, which is this great track about 45 minutes from Chicago.
4:40:49 And I sat in a race car and I drove a race car and I had the same kind of pseudo religious experience I did as when I started working on Ruby, where I did maybe 20 laps in this basically a Mazda race car from I think like the 90s or something.
4:40:57 Like a pretty cheap race car, but a real race car, single seater, manual gearbox, but exposed slick wheels, all the stuff.
4:41:02 And after having had that experience, first of all, it was just the most amazing thing ever.
4:41:07 Like the physical sensation of driving a race car is really unique.
4:41:14 And I think if you’re driving a car fast, you have maybe a 2% taste of it.
4:41:27 The exposure to the elements that you get in a single seat race car, especially one like that where your head is actually out in the elements, you can see the individual wheels and your sensation of speed is just so much higher.
4:41:29 It’s at a completely different level.
4:41:30 So can you actually speak to that?
4:41:38 So even at that, even at that Mazda, so you can feel what, can you feel like the track reverberating?
4:41:39 You feel the grip?
4:41:47 Not only can you see the bumps because you’re literally looking straight at the wheels, you can feel all the bumps because you’re running a slick tire.
4:41:48 It’s a really stiff setup.
4:41:53 It’s nothing like taking a fast street car out on a racetrack and try to driving a little bit around.
4:41:55 So can you feel like the slipping?
4:41:56 You can feel the traction.
4:42:06 That’s a huge part of the satisfaction of driving a race car is driving it at the edge of adhesion, as we call it, where the car is actually sliding a little bit.
4:42:10 A couple of percent slip angle is the fastest way to drive a race car.
4:42:11 You don’t want to slide too much.
4:42:12 That looks great.
4:42:13 Lots of smoke, but it’s not fast.
4:42:28 How you want to drive it is just at the limit of adhesion where you’re rotating the car as much as your tires can manage and then slightly more than that and playing at it, keeping it just at that level.
4:42:35 Because when you’re at the level of or at the limit of adhesion, you’re essentially just a tiny movement away from spinning out.
4:42:37 I mean, it doesn’t take much.
4:42:38 Then the car starts rotating.
4:42:42 Once it starts rotating, you lose grip and you’re going for the wall.
4:42:49 That balance of danger and skill is what’s so intoxicating.
4:42:56 And it’s so much better than racing video games, too, because the criticality is taking up two notches.
4:43:01 I often think about people who really like gambling, where I think, like, aren’t you just playing poker?
4:43:04 And, like, no, the point is not poker.
4:43:07 Poker may be part of it, but the point is that I could lose my house, right?
4:43:13 Like, that’s the addiction that some people get to gambling, that there’s something real on the line.
4:43:16 When you’re in a race car, there’s something very real on the line.
4:43:24 If you get it wrong, at the very least, you’re going to spin out and probably hit a wall, and it’s going to be expensive.
4:43:28 At the very worst, you’re not getting out alive.
4:43:35 And even if modern race cars have gotten way safer than they used to be, there is that element of danger that’s real.
4:43:40 That there are people who still get seriously hurt or even killed in a race car.
4:43:56 It’s mercifully rare compared to what it used to be when those maniacs in the 60s would do Formula One and whatever, 13% of the grid wouldn’t make it to the end of the year because they’d just die in a fiery, flaming fireball.
4:44:04 But there’s still some of it there, and I think that sense that there’s something on the line really contributes to it.
4:44:04 But it’s not more than that.
4:44:06 There’s just a physical sensation.
4:44:08 There’s activation of all your forces.
4:44:09 There’s the flow.
4:44:14 And I think that really cements, like, why I got addicted.
4:44:18 Because I always, I love that flow I got out of programming.
4:44:21 But getting flow out of programming is a very inconsistent process.
4:44:27 I can’t just sit down in front of a keyboard and go like, all right, let’s get the flow going.
4:44:29 It doesn’t happen like that.
4:44:30 The problem has to be just right.
4:44:32 It has to meet my skills in just the right moment.
4:44:33 It’s a bit of a lottery.
4:44:36 In a race car, it’s not a lottery at all.
4:44:43 You sit down in that car, you turn the ignition, you go out on track, and I get flow virtually guaranteed.
4:44:52 Because you need, or I need, at least 100% of my brain processing power to be able to go at the speed I go without crashing.
4:44:59 So, there’s no time to think about dinner tonight or the meeting next week or product launch.
4:45:04 It just, it’s completely zen in actually the literal sense of the word.
4:45:07 I think of someone who’s really good at meditation.
4:45:09 That’s probably kind of state they get into.
4:45:11 It’s just clear you’re in the now.
4:45:14 There’s nothing but you and the next corner.
4:45:17 That’s a really addictive experience.
4:45:19 So, after I’ve had that, I couldn’t get enough.
4:45:21 I just, I kept going to the track.
4:45:25 Every opportunity I got, every single weekend for about four years, I would go to the track.
4:45:34 And by the end of that time, I’d finally worked up enough skill and enough success with the company that I could afford to go, quote unquote, real racing.
4:45:43 So, I started doing that, I started driving these Porsches, and then as soon as I got into that, as soon as I got into, quote unquote, real competition, I was like, I wonder how far you can take this.
4:45:49 And it didn’t take that long before I decided, you know what, I could take this all the way.
4:45:57 My great hero in racing is Tom Christensen, fellow Dane, the Mr. Le Mans, as they call him.
4:46:04 The greatest endurance race in the world, the 24 hours of Le Mans, has been won more times than any other by Tom Christensen.
4:46:06 He won the race nine times.
4:46:11 So, Tom just really turned me on to Le Mans.
4:46:15 I’ve been watching Le Mans since, I think, the 80s.
4:46:17 I have my earliest memories of watching that on TV.
4:46:20 The race has been going since, I think, the 20s.
4:46:22 But in the 80s, I got kind of into it.
4:46:32 And then in the late 90s, early 2000s, when Tom started winning, I, like pretty much every other Dane, started watching the race almost religiously.
4:46:33 So I thought, you know what, I want to get to Le Mans.
4:46:43 And this is the magic thing about racing, that if I get into basketball, like I can’t set a realistic expectation that I’m going to play in the NBA, that I’m going to go to the finals.
4:46:46 Or I get into tennis and I’m going to play at Wimbledon.
4:46:47 That just doesn’t happen.
4:46:52 But racing is special in this way because it requires a fair amount of money to keep these cars running.
4:46:53 It’s really expensive.
4:46:55 It’s like having a small startup.
4:46:59 You need to fly a bunch of people around the world and buy expensive equipment and so forth.
4:47:00 So you need a bunch of capital.
4:47:06 And I had some through the success of the company so I could do it, which meant that I could get to Le Mans.
4:47:07 So I set that as my goal.
4:47:08 I want to get to Le Mans.
4:47:13 And I started racing in real competition in 2009.
4:47:18 And three years later in 2012, I was at the grid of Le Mans for the first time.
4:47:22 We should say, so Le Mans, 24-hour race, endurance.
4:47:25 I mean, this is insane.
4:47:27 There are three drivers, mind you.
4:47:30 So it’s not like one guy just driving for 20 hours, 24 hours straight.
4:47:35 But still, it’s a pretty tough race, both physically and mentally, especially mentally.
4:47:43 When you’ve been up for 24-plus hours, you’re not quite as sharp as when you first wake up.
4:47:45 And this is funny about Le Mans, too.
4:47:47 It starts at around 4 o’clock in the afternoon.
4:47:50 So you’ve already been up for half a day by the time the race starts.
4:47:52 And then there’s 24 hours to go before you’re done.
4:47:59 And you’ll be in the car for anywhere from usually an hour and a half to a maximum of four hours.
4:48:02 The regulations say four out of six is the max you can do.
4:48:05 I’ve spent perhaps two and a half hours in a single stint at Le Mans.
4:48:07 It’s pretty taxing.
4:48:11 You’re going 200 miles an hour into some of these turns.
4:48:15 And there’s another 60 cars on track.
4:48:25 Whenever I’m in my normal category, which is the LMP2 category, I have GT cars, which are more like a Ferrari and a Porsche that I have to overtake.
4:48:29 And then I have these hyper cars, which is the top class that are overtaking me.
4:48:30 So you’ve got a lot going on.
4:48:34 And you’ve got to stay sharp for two and a half hours straight to do that.
4:48:40 That is just a guaranteed way to get incredible flow for long, long stretches of time.
4:48:42 That’s why you get addicted to it.
4:48:43 That’s why I got addicted to it.
4:48:47 You’ve got to talk me through this video, this video of you in these LMP2s.
4:48:48 This is such a cool.
4:48:49 This is so cool.
4:48:53 This was probably my favorite battle of my career.
4:48:53 Sure.
4:48:57 And Hallmark Hansen has beat past and fight.
4:48:57 Yeah.
4:49:02 So this is me driving against Nico Miller at the Shanghai International Circuit.
4:49:03 You’re on the outside.
4:49:06 I’m on the outside in the blue and white.
4:49:11 And we go a whole track around with basically a piece of paper between a seat down this back straight.
4:49:17 I get so close to him because I want to force him over on the other side of the track such that he can’t just box me in.
4:49:21 And we’ve been fighting already at this point for basically 40 minutes straight.
4:49:25 I’ve been managing to keep this professional driver behind me for 40 minutes.
4:49:29 And he finally passes me, but we just keep the battle on for the whole time.
4:49:35 And it really just shows both these kinds of cars, the Le Mans prototypes we don’t actually ever touch.
4:49:41 We get within about an inch and keep going around the Shanghai Circuit too.
4:49:43 How did you get so good?
4:49:45 Like what?
4:49:47 I mean, that’s a fascinating story, right?
4:49:49 That you are able to get so good.
4:49:55 I’m pretty good for the kind of driver I am, which is called the gentleman driver, which means I’m not a professional driver.
4:50:05 And like many good gentleman drivers, when we’re at our really best, we can be quite competitive with even professional drivers who have been doing this their whole life.
4:50:10 The difference between us and the professionals is the professionals can do it every time or more or less every time.
4:50:12 So I can’t be this good all the time.
4:50:16 When everything is just right, I can be competitive with professional drivers.
4:50:19 But that’s not how you win championships.
4:50:21 That’s not how you get paid by factories to drive.
4:50:23 You’ve got to be good every time you go out.
4:50:24 So that’s a huge difference.
4:50:27 But some of it was also just, I really put my mind to it.
4:50:35 By the time I realized race cars is what I want to do as my serious hobby, I put in thousands of hours.
4:50:37 Have you crashed?
4:50:38 What’s the worst crash?
4:50:40 I’ve had a lot of crashes.
4:50:45 But thankfully, nug on wood, I haven’t had any crashes where I’ve gotten really seriously hurt.
4:50:47 Have you like wrecked the car?
4:50:48 Oh, yes.
4:50:48 Oh, yes.
4:50:50 I’ve wrecked many a car.
4:50:51 So what does that feel like?
4:50:52 Just you wreck a car?
4:50:53 Like, how do you get?
4:50:58 It feels like total shit if you’re in a real race and other people depend on you.
4:51:03 It’s not even so much the car, although it’s also sometimes that these cars are expensive to repair and that sucks.
4:51:07 And it feels so wasteful in a way when you crash some of these cars.
4:51:13 But the sense that you’re letting a team down, endurance racing is a team sport.
4:51:16 Not only do you have your mechanics, you usually have co-drivers.
4:51:18 So when I crash, I just feel like, damn it.
4:51:20 I could have avoided this.
4:51:23 Yeah, but also, you could have died.
4:51:24 Do you know what’s funny?
4:51:26 I never think about that.
4:51:27 I don’t think you can.
4:51:33 Because I think the moment you start thinking about being able to die, you can’t do it.
4:51:34 You can’t go fast.
4:51:44 Well, I’m sure, not to go all Carl Jung and Freud here, but I’m sure that’s always present in the back of your mind somewhere.
4:51:46 You’re not just bringing it to the surface.
4:51:50 It is in the sense that it’s part of the appeal.
4:51:55 It’s part of the sense that there’s something on the line, that this isn’t just virtual.
4:51:57 I can’t just hit reset, restart, reboot.
4:52:05 If I crash this car, we’re going to be out, or we’re going to be disadvantaged, or it’s going to get destroyed, or I might get hurt.
4:52:08 I’ve gotten lightly hurt a few times.
4:52:13 I actually had the year we won 24 hours of Le Mans in our class.
4:52:19 I’ve been training in this Formula 3.5 car.
4:52:20 It’s a really fast car.
4:52:24 It’s a really nice exercise to do, but it’s also, it doesn’t have power steering.
4:52:34 So some of these race cars, especially the open seaters, they don’t have power steering, which means that the steering wheel is basically directly connected to the front wheels.
4:52:41 So if you crash one of those cars and the front wheels suddenly turn, you’re really going to hurt your hands if you don’t get your hands off the wheel.
4:52:48 I hadn’t raced enough of those cars to know that I had to get, or to have the instinct, to have developed the instinct that I had to get my hands off the wheel.
4:52:49 So I didn’t.
4:52:51 And I really hurt my hand.
4:52:55 And this was just, I think, a month before the 24 hours of Le Mans.
4:52:57 So I thought, oh, man, I’m going to have to miss it this year.
4:52:59 I had like, not a cast.
4:53:00 It was just seriously sprained.
4:53:06 And then somehow, miraculously, like a week before the event, I was like, oh, yeah, actually, it’s okay now.
4:53:07 So got to do it.
4:53:15 And that would have been grave regret if I would have seen my team go on to win the race, and I would have to sit on the sidelines.
4:53:23 But I really have been quite fortunate in the sense that most of my crashes have just been expensive or sporting inconvenient.
4:53:26 They’ve never been something where I got seriously hurt.
4:53:28 But I’ve seen plenty of people who have.
4:53:36 In fact, my co-driver this year, and for several years, Petro Fittipaldi, drove a race car at Spa.
4:53:40 Spa is one of the great racetracks of all time.
4:53:45 And it has this iconic corner called Arouge, which is probably the most famous corner in all of motorsports.
4:53:49 It has a great compression before you climb uphill.
4:53:52 It’s an extremely fast, very difficult corner.
4:53:58 And just as he does the compression, his car basically sets out, and he loses his power steering.
4:54:05 And he drives straight into the wall and breaks both his legs and basically face the prospect that maybe his career was over.
4:54:11 I’ve had other teammates and people I know have serious injuries that’s really hurt them.
4:54:16 And yet, what’s funny is, you say, you’d think that would sink in.
4:54:28 The year before we won in 2014, that same car had a Danish driver in it at Le Mans, at the race I was driving, who died.
4:54:35 He lost control of the car when there was a bit of rain on the track.
4:54:42 And the track went, unfortunately, designed in such a poor way that there was a very big tree right behind the railing.
4:54:56 And he hit that tree at full speed, pulled 90 Gs, and was dead on the spot, which was just such an extremely awful experience to go through.
4:55:01 I finished second that year, which should have been cause for a bunch of celebration.
4:55:12 But it was just tainted by the fact that not only did a driver die, a fellow Dane died, a guy I knew died.
4:55:16 That was pretty tough.
4:55:27 So throw that into the pile of the things that have to be considered as the weather conditions, like you mentioned, of the track, whether it’s dry or wet.
4:55:29 It’s a huge part of it.
4:55:34 Even just last year at Le Mans, it was raining, and I was out.
4:55:48 And I hadn’t made a serious mistake at the 24th of Le Mans since I did the first race in 2012, where I put it in the sand trap with like four hours to go.
4:55:56 And we lost a couple of laps getting pulled out, but it didn’t actually change anything for our result because that was just how the field was spread out.
4:55:59 I’d made minor mistakes over the years, but nothing that really set us out.
4:56:12 And at the race last year, when it was raining, I first clobbered a Ford Mustang when I made an overambitious pass on a damp part of the track and couldn’t stop in time.
4:56:22 And then felt absolutely awful as I sat in the gravel pit for two laps and knew that our race was over, a race where we were highly competitive.
4:56:27 You’re not blessed with a competitive car, a competitive team, and competitive setup every year.
4:56:28 I know how rare that is.
4:56:37 So to know that we had had a chance that year and I sort of squandered it felt really bad, but that got compounded.
4:56:44 I got back on track, barely made it another stint, and then put it in the gravel trap again when it started raining on the entrance into Porsche.
4:56:50 So this is part of why racing is so addicting too, because the highs are very, very high.
4:56:55 When you win a race like the 24 hours of Le Mans, it feels just incredible.
4:56:56 There’s so much emotion.
4:57:00 But if you fuck it up, the lows are very, very low.
4:57:03 What are the things you’re paying attention to when you’re driving?
4:57:06 What are the parameters?
4:57:07 What are you loading in?
4:57:12 Are you feeling the grip?
4:57:19 Are you basically increasing the speed and seeing what, like, a constant feedback system effect it has on the grip?
4:57:23 Are you trying to manage that and try to find that optimal slip angle?
4:57:27 Are you looking around using your eyes?
4:57:29 Are you smelling things?
4:57:30 Are you listening?
4:57:31 Are you feeling the wind?
4:57:35 Are you, oh, are you looking at the field too?
4:57:38 Like, how did you not hit that guy at all?
4:57:40 You get close within inches, right?
4:57:41 So you have to pay attention to that too.
4:57:46 It’s really interesting about that specific battle where we’re literally a few inches apart.
4:57:58 I can’t fully explain it, but humans can develop an incredible sense of space where I can’t see the edge of the back of my car, but I can know exactly where it is.
4:58:12 I can have a mental model in my head that gives me the exact dimensions of this car so that I can run within a few inches of a competitor car or within a few inches of the wall and not hit either when things go well.
4:58:18 The car is about two meters wide and it’s quite long, five meters, and you can’t see everything.
4:58:20 The mirrors are actually kind of shit.
4:58:22 There’s no rear view mirror in these cars.
4:58:23 You can’t see out the back.
4:58:30 You can only see through your two side mirrors, but you form this intuitive mental model when you get good enough at this.
4:58:35 But what I actually pay attention to most is I run a program.
4:58:42 What I try to do when I go to a racetrack is I try to load up the best program I know how for every single corner.
4:58:43 What’s my brake point?
4:58:45 What’s my acceleration point?
4:58:48 What’s my brake trailing curve?
4:58:54 And I try to pick up that program in part just by finding it myself and how fast I can go.
4:59:00 But even more so than that, by copying my professional competitors or not competitors, co-drivers.
4:59:07 So I usually always race with a pro and modern race cars produce an absolute enormous amount of data.
4:59:10 And you can analyze all that data after each outing.
4:59:18 You can see an exact trace of how much you push the brake pedal, how much you did in terms of steering inputs, when you got on the gas.
4:59:24 You can see every millisecond you’re losing is evident in those charts.
4:59:28 So what I try to do is I try to look at the chart and then I try to load that in.
4:59:30 And like, that’s what I got to do.
4:59:36 Oh, in this corner 17, I actually I have to be 10 bar lighter on the brake.
4:59:39 So I try to load that program in and then I try to repeat it.
4:59:41 Now, then there are all the things that changes.
4:59:43 Your tires change quite a lot.
4:59:48 These tires are made to only last 40 minutes in many cases.
4:59:55 Sometimes at Le Mans, we can go longer, but at some racetracks, they last as little as 40 minutes before they really fall off.
4:59:57 So you got to manage that, that the grip is constantly changing.
5:00:01 So your program have to suddenly fit those changing circumstances.
5:00:08 And then in endurance racing, you’re constantly interacting with other cars because you’re passing slower classes or you’re getting passed by a faster class.
5:00:10 So that’s part of the equation.
5:00:14 And then you’re trying to dance the car around the limit of adhesion.
5:00:17 So you got all those factors playing at the same time.
5:00:21 But above all else for me is to try to become a robot.
5:00:33 Like, how can I repeat this set of steps exactly as I’m supposed to for two and a half hours straight without making 100 milliseconds worth of mistakes?
5:00:33 Yeah.
5:00:35 Low latency algorithm.
5:00:37 That’s really a huge part of it, actually.
5:00:45 Your latency is enormously important in terms of being able to catch when the car starts slipping.
5:00:53 You get this sensation in your body that the G-forces are a little off, the slip angle is a little off, and then you have to counter-steer.
5:00:57 And obviously, the best race car drivers just feel like an intuition.
5:00:58 I have some intuition.
5:00:59 I don’t have all of it.
5:01:02 So I do occasionally spin my car.
5:01:03 But that’s the challenge.
5:01:09 From everything you’ve studied and understand, what does it take to achieve mastery in racing?
5:01:13 Like, what does it take to become the best race car driver in the world?
5:01:15 Obsession is part of it.
5:01:23 When I read and hear about Senna and the other greats, they were just singularly focused.
5:01:28 Max Verstappen is the current champion of the world, and he is the same kind.
5:01:31 Max has been fascinating to watch.
5:01:36 I mean, he’s a phenomenal race car driver, but he also literally does nothing else.
5:01:39 When he’s not at the racetrack, he’s driving sim racing.
5:01:43 Like, he’s literally in video games doing more racing.
5:01:45 When he’s not doing all the racing, he’s already doing.
5:01:51 Is there a specific skill they have that, like, stands out to you as supernatural through all that obsession?
5:01:58 Like, whatβis it a bunch of factors, or are they actually able to, like you said, develop a sense?
5:02:01 Is it that they’re able to get to the very edge of the slip?
5:02:06 They’re able to develop very fine-tuned sensibilities for when the car is sliding.
5:02:13 They can feel just these tiny moments or movements in the chassis that transports up, usually through their ass.
5:02:22 That’s why you call it like a butt meter, that goes up and you feel like the car is loose, or you feel like you’re just about to lock up.
5:02:25 You can really hone that tuning.
5:02:28 Then the other thing is, you have to have really good reaction time.
5:02:37 And when you look at great Formula One drivers, they can generally have a reaction time of just under 200 milliseconds, which is awesome.
5:02:41 And even 10 milliseconds difference makes a huge difference.
5:02:47 You’ll see it when the Formula One grid, for example, they do a standing start, and you see the five red lights come on.
5:02:52 And when the last light goes out, they’re supposed to release the clutch and get going.
5:02:56 And they can time this, so you can see exactly who has the reaction time.
5:03:03 And even being off by 20 milliseconds can make the difference of whether you’re in front or behind at the first corner.
5:03:08 How much of winning is also just the strategy of jostling for position?
5:03:11 There’s some of that, and some of it is also just nerve.
5:03:12 Who wants it more?
5:03:16 That’s exactly when that sense of danger comes in.
5:03:24 There’s a great quote from Fernando Alonso when he was driving at Suzuka against Schumacher, I think.
5:03:27 They’re coming up to this incredibly fast corner.
5:03:29 It’s very dangerous.
5:03:37 And Alonso basically accounts, I was going to make the pass because I knew he had a wife and kids at home.
5:03:38 That’s so gangster.
5:03:40 Just absolutely ruthless, right?
5:03:41 Yeah, wow.
5:03:43 That I knew he valued life more than I did.
5:03:46 So there’s a bit of poker sometimes in that.
5:03:48 Who’s going to yield?
5:03:51 There’s a bit of chicken race in that regard.
5:03:53 And sometimes it doesn’t work.
5:03:55 No one yields and you both crash.
5:03:57 But very often, one person will blink first.
5:03:59 Can the pass be both on the inside and the outside?
5:04:05 You can pass wherever you want, as long as you have just a slight part of the car on the racetrack.
5:04:09 And then you just improvise and take risks.
5:04:11 What a sport.
5:04:15 And then Senna, of course, is like the legendary risk taker.
5:04:16 Yes.
5:04:22 And even before him, by the time, I mean, he died in the 90s.
5:04:29 But by the time we got to the 90s, racing was already a lot safer than it was when Niki Lauda raced in the 60s.
5:04:32 That level of danger is no longer there.
5:04:34 There’s still just a remnant of it.
5:04:37 And it is still dangerous, but nothing like that.
5:04:39 And it’s a little hard to compare through the ages.
5:04:41 Like, who’s the greatest driver of all time?
5:04:44 I think there’s a fair argument that Senna is.
5:04:46 But we don’t have the data.
5:04:47 We don’t know who he was up against.
5:04:50 Like, how would he fare if we pitted him against Max Verstappen today?
5:04:55 I do think sometimes that you can have a bit of a nostalgia for the all-time greats.
5:04:59 But the world moves forward and new records are being set all the time.
5:05:01 And the professionalism keeps improving.
5:05:08 Sometimes to the detriment of the sport, I think there’s a lot of professional drivers who are not only just very good at driving,
5:05:10 but are very good at being corporate spokespeople.
5:05:11 And it used to be quite different.
5:05:17 There used to be more characters in racing that had a bit more personality that they were allowed to shine
5:05:21 because there weren’t a billion sponsorships on the line that they were afraid to lose.
5:05:22 Ridiculous question.
5:05:23 What’s the greatest car ever made?
5:05:26 Or maybe, uh, what’s the funnest one to drive?
5:05:30 The greatest car for me of all time is the Pagani Sonda.
5:05:32 Okay, I’m looking this up.
5:05:33 Pagani Sonda.
5:05:40 So the Pagani Sonda was made by this wonderful Argentinian called Horacio Pagani.
5:05:42 My God, that’s a beautiful car, wow.
5:05:43 It’s a gorgeous car.
5:05:44 You can look up mine.
5:05:46 It’s the Pagani Sonda HH.
5:05:47 Yep.
5:06:01 So that’s, um, a car I had made in 2010 after we visited the factory in Marna and by sheer
5:06:07 accident ended up with this car, but it became my favorite car in the world.
5:06:15 Basically when I watched an episode of Top Gear, I think in 2005 where one of the presenters
5:06:20 were driving the Pagani Sonda F around and I just thought that’s the most beautiful car
5:06:20 in the world.
5:06:24 It is the most incredibly sounding car in the world.
5:06:29 If I one day have the option, this is what I want.
5:06:32 And then I had the option in 2010.
5:06:33 I’ve had the car ever since.
5:06:35 I’m never, ever going to sell it.
5:06:39 It’s truly a masterpiece that stood the test of time.
5:06:44 There’s some great cars from history that are recognized as being great in their time.
5:06:45 This car is still great.
5:06:47 Have you taken it on the racetrack?
5:06:48 I have.
5:06:49 It’s terrible at that.
5:06:51 Well, I don’t want to say it’s terrible at that.
5:06:52 That’s not what it’s designed for.
5:06:54 It’s designed for the road.
5:06:56 And that’s why it’s great.
5:07:01 There are a lot of fast cars that are straddling their race car for the road.
5:07:03 You don’t actually want a race car for the world.
5:07:05 A race car for the world is a pain in the ass.
5:07:06 It’s way too stiff.
5:07:07 It’s way too loud.
5:07:08 It’s way too uncomfortable.
5:07:10 You can’t actually take it on a road trip.
5:07:13 So this actually feels good driving normal roads?
5:07:13 Oh, totally.
5:07:15 And you, of course, always go to speed limit.
5:07:16 Always.
5:07:21 This is why I love having this car in Spain because they’re a little more relaxed.
5:07:24 Not entirely relaxed, but more relaxed than they are in a lot of places.
5:07:30 In Denmark, I kid you not, if you are on the highway and you go more than twice the speed limit,
5:07:33 they confiscate your car and keep it.
5:07:35 You’re not getting it back.
5:07:36 They don’t even care if it’s your car or not.
5:07:40 Like, if you were boring my car and you went twice the speed limit, it’s gone.
5:07:43 So they don’t do that in Spain.
5:07:49 I mean, in most places, except for the German Autobahn, they get pissy if you go twice the speed limit.
5:07:54 For all sorts of fair reasons, I’m not advocating that you should be going much more than that.
5:07:58 But there are certain special roads where you can’t open things up and no one’s in harm’s way.
5:08:00 And that’s an incredible sensation.
5:08:03 And I do think that some of those speed limits actually are kind of silly.
5:08:05 And I’m not just saying that in a vacuum.
5:08:08 In Germany, they have the glorious Autobahn.
5:08:12 And on the Autobahn, there is no speed limit in a bunch of segments.
5:08:19 And they’re so committed to their speed limitless Autobahn, which is, by the way, very weird of Germans.
5:08:20 They usually love rules.
5:08:22 They usually are very precise about it.
5:08:24 And then they have this glorious thing called the Autobahn.
5:08:33 There was a great case a couple of years ago where a guy took out a Bugatti Chiron, went 400 kilometers an hour on the Autobahn.
5:08:35 And he filmed it and put it on YouTube.
5:08:42 And a case was brought against him because even though they don’t have a speed limit, they do have rules that you can’t drive recklessly.
5:08:43 And he won the case.
5:08:44 He wasn’t driving recklessly.
5:08:47 He was just going very, very fast.
5:08:49 I’ve done the Autobahn a couple of times.
5:08:53 My wife and I went on a road trip in Europe in 2009.
5:08:58 And I got the Lamborghini Chiara we were driving up to 200 miles an hour.
5:09:03 And I’d driven 200 miles an hour or close to it on a racetrack before.
5:09:04 That feels like one thing.
5:09:08 Driving on a public road, 200 miles an hour feels really, really fast.
5:09:09 Scary?
5:09:11 Actually, a little scary, yes.
5:09:15 Because you constantly think, like, on a racetrack, you know the road.
5:09:16 You know the surface.
5:09:18 You can walk the track most of the time.
5:09:18 You can know if there’s a dip.
5:09:21 On a public road, you can’t know if there’s suddenly a pothole.
5:09:25 Presumably, there’s not going to be a pothole on the German Autobahn.
5:09:26 But it does feel a little scary.
5:09:28 But also exhilarating.
5:09:32 Speed is just intrinsically really fun.
5:09:35 I don’t know anyone I’ve taken out in a fast car.
5:09:36 Well, actually, I do know a few people.
5:09:39 Most people I take out in a fast car, they grin.
5:09:43 It’s a human reaction to grin when you go really fast.
5:09:46 Do you know what the fastest you’ve ever gone?
5:09:47 I was probably at Le Mans.
5:09:53 I think when the LMP2s were at their maximum power and had 600 horsepower and really sticky tires,
5:09:58 we were going 340 kilometers an hour, which is just over 200 miles an hour.
5:09:59 A bit over 200 miles an hour.
5:10:02 That does feel fast.
5:10:08 And it’s really interesting with speed is that the difference between going, let’s say, 150 and 160
5:10:13 doesn’t feel that much, actually, those 10 miles an hour.
5:10:18 But the difference between going 190 and 200 feels crazy faster,
5:10:23 which as a percentage change is actually less than going from 150 to 160.
5:10:31 But there’s some sense of exponentiality once you get up to those limits, where it’s just on a complete different level.
5:10:35 Yeah, because to me, like 110, 120 feels fast.
5:10:37 200.
5:10:39 That’s crazy.
5:10:40 It really is crazy.
5:10:49 I got to ask you about the details of your programming setup, the IDE, all that kind of stuff.
5:10:54 Let’s paint the picture of the perfect programming setup.
5:10:57 Do you have a programming setup that you enjoy?
5:10:58 Are you very flexible?
5:10:59 Like how many monitors?
5:11:01 What kind of keyboard?
5:11:03 What kind of chair?
5:11:05 What kind of desk?
5:11:10 It’s funny because if you’d asked me, let’s see, a year and a half ago,
5:11:15 I would have given you the same answer as I would have given anyone for basically 20 years.
5:11:17 I want a Mac.
5:11:21 I like the Magic Keyboard.
5:11:25 I like the single monitor.
5:11:31 Apple makes an awesome 6K 32-inch XDR screen that I still haven’t found anyone who’d beaten,
5:11:34 that I still use, even though I switched away from Apple computers,
5:11:37 I still use their monitor because it’s just fantastic.
5:11:40 But I’ve always been a single screen kind of guy.
5:11:43 I do like a big screen, but I don’t want multiple screens.
5:11:47 I’ve never found that that really works with my perception.
5:11:49 I want to be able to just focus on a single thing.
5:11:51 I don’t want all of it all over the place.
5:11:56 And I’ve always used multiple virtual desktops and being able to switch back and forth between those things.
5:12:00 But the setup I have today is Linux.
5:12:07 I switched to a little over a year ago after I finally got fed up with Apple enough that I couldn’t do that anymore.
5:12:17 And then I use this low-profile mechanical keyboard called the LowFree Flow 84,
5:12:23 which is just the most glorious-sounding keyboard I’ve ever heard.
5:12:28 I know there are a lot of connoisseurs of mechanical keyboards that will probably contest me on this.
5:12:32 This is too thocky or too clicky or too clacky or whatever.
5:12:41 But for me, the LowFree Flow 84 is just a delight that I did not even know existed, which is so funny.
5:12:43 Because, I mean, I’ve been programming for a long time.
5:12:46 Mechanical keyboards have been a thing for a long time.
5:12:50 And the keyboard, when you look at it like this, it just kind of, it looks plain.
5:12:56 It doesn’t look extravagant, but the tactile sensation you get out of pushing those keys,
5:13:02 the talky sound that you hear when the keys hit the board, it’s just sublime.
5:13:12 And I’m kicking myself that I was in this Mac bubble for so long that I wasn’t even in the market to find this.
5:13:22 I didn’t, I knew mechanical keyboards existed, but to be blunt, I thought it was a bit of a nerd thing that only real nerds that were much more nerdy than me would ever care about.
5:13:26 And then I got out of the Apple bubble and suddenly I had to find everything again.
5:13:27 I had to find a new mouse.
5:13:28 I had to find a new keyboard.
5:13:29 I had to find everything.
5:13:32 And I thought like, all right, let me give mechanical keyboards a try.
5:13:34 And I gave quite a few of them a try.
5:13:37 The Keychron is one of the big brands in that.
5:13:38 I didn’t like that at all.
5:13:45 I tried a bunch of other keyboards and then I finally found this keyboard and I just went like angels of singing.
5:13:46 Where have you been my whole life?
5:13:50 We spent as programmers so much of our time interacting with those keys.
5:13:53 It really kind of matters in a way I didn’t fully appreciate.
5:13:57 I used to defend the Apple Magic keyboard.
5:13:58 Like, it’s great.
5:13:59 It’s actually a great keyboard.
5:14:04 And I think for what it is, this ultra low profile, ultra low travel is actually a really nice keyboard.
5:14:09 But once you’ve tried a longer travel mechanical keyboard, there’s no going back.
5:14:18 You do have to remember in many ways, both on the software side and the hardware side, that you do spend a lot of hours behind the computer.
5:14:19 It’s worth investing in.
5:14:24 And also worth exploring until you find the thing where the angels start singing or whatever.
5:14:25 That’s exactly right.
5:14:30 And I actually do regret that a little bit, especially with this damn keyboard.
5:14:34 I could have been listening to these beautiful docky keys for years and years.
5:14:42 But sometimes you have to get really pissed off before you open your eyes and see that something else exists.
5:14:43 I feel the same way about Linux.
5:14:49 So I’ve been using Linux on the server since late 90s, probably.
5:14:51 We ran servers on Linux back then.
5:14:55 I never seriously considered it as a desktop option.
5:14:58 I never ran Linux before directly myself.
5:14:59 I always thought, you know what?
5:15:01 I just I want to focus on programming.
5:15:05 I don’t have time for all these configuration files and all this setup bullshit and whatnot.
5:15:07 And Apple is close enough.
5:15:09 It’s built on Unix underpinnings.
5:15:11 Why do I need to bother with Linux?
5:15:24 And again, it was one of those things I needed to try new things and try something else to realize that there is other things other than Apple.
5:15:25 And again, it’s not because I hate Apple.
5:15:27 I think they still make good computers.
5:15:30 I think a lot of the software is still also pretty okay.
5:15:35 But I have come to realize that as a web developer, Linux is just better.
5:15:36 Linux is just better.
5:15:39 It’s closer to what I deploy on.
5:15:41 The tooling is actually phenomenal.
5:15:52 And if you spend a bit of time setting it up, you can record a reproducible environment that I’ve now done with this Omocube concept or project that I’ve done.
5:15:56 That I can set up a new Linux machine in less than 30 minutes.
5:15:57 And it’s perfect.
5:15:58 It’s not pretty good.
5:16:00 It’s not like I still need to spend two hours on.
5:16:05 It’s perfect because you can code all aspects of the development environment into this.
5:16:06 And I didn’t know.
5:16:11 I didn’t even know, to be fair, that Linux could look as good as it can.
5:16:19 If you look at a stock Ubuntu or Fedora boot, I mean, not that it’s ugly, but I’d pick the Mac in the day of the week.
5:16:22 You look at Omocube.
5:16:25 I mean, I’m biased here, of course, because I built it with my own sensibilities.
5:16:27 But I look at that and go like, this is better.
5:16:29 This is beautiful.
5:16:34 And then you look at some of those true Linux rising setups where people go nuts with everything.
5:16:39 And you go, oh, yeah, I remember when computers used to be fun in this way.
5:16:45 When there was this individuality and this setup and it wasn’t just all bland, the sameness.
5:16:50 And I think that’s the flip side sometimes of something like Apple where they have really strong opinions.
5:16:52 And they have really good opinions.
5:16:53 They have very good taste.
5:16:54 And it looks very nice.
5:16:56 And it also looks totally the same.
5:16:59 And Linux has far more variety and far more texture and flavor.
5:17:02 Sometimes also annoyances and bugs and whatever.
5:17:05 But I run Linux now.
5:17:08 It’s Ubuntu-based with the Omocube stuff on top.
5:17:09 The low-free keyboard.
5:17:14 I use a Logitech, what’s it called?
5:17:18 The MS3 mouse, which I love how it feels in my hand.
5:17:19 I don’t love how it looks.
5:17:23 I actually was a magic mouse stan for the longest time.
5:17:28 I thought it was genius that Apple integrated the trackpad into a mouse.
5:17:29 And I used that.
5:17:35 And I always thought it was ridiculous that people would slag it just because you had to charge it by flipping it over.
5:17:39 Because the battery would last for three months and then you’d charge it for half an hour.
5:17:43 I thought, like, that’s a perfect compatibility with my sensibilities.
5:17:46 I don’t mind giving up a little inconvenience if something is beautiful.
5:17:47 And that magic mouse is beautiful.
5:17:50 But it wasn’t going to work on Linux, so I found something else.
5:17:55 The MS3 is nice, but I sometimes do wish, like, the magic mouse is pretty good.
5:18:01 Yeah, Linux is really great for customizing everything, for tiling, for macros, for all of that.
5:18:04 I also do the same in Windows with AutoHotKey.
5:18:08 We just customize the whole thing to your preferences.
5:18:12 If you’re a developer, you should learn how to control your environment with the keyboard.
5:18:16 It’s just, it’s faster, it’s more fluid.
5:18:29 I think one of those silly things I’ve come to truly appreciate about my Omacoupe setup is that I can, in whatever time it takes to refresh the screen, probably five milliseconds, switch from one virtual desktop to another.
5:18:33 Even on Windows, you can’t get it that smooth.
5:18:35 You can get close, you can’t get it that smooth.
5:18:47 On macOS, for whatever reason, Apple insists on having this infuriating animation when you switch between virtual desktops, which makes it just that you don’t want to.
5:18:51 You don’t want to run full-screen apps because it’s too cumbersome to switch between the virtual desktops.
5:18:58 The kind of immediacy that you can get from a wonderful Linux setup in that regard is just next level.
5:19:06 Yeah, and it seems like a subtle thing, but, you know, difference in milliseconds and latency between switching the virtual desktops, for example.
5:19:08 I don’t know, it changes.
5:19:10 It changes how you use the computer.
5:19:11 It really does.
5:19:12 Similar thing with VR, right?
5:19:17 If there’s some kind of latency or, like, it just completely takes you out of it.
5:19:24 And it’s funny, I actually had to watch, I think it was the Primogen on YouTube, when he was showing off his setup.
5:19:27 And I was seeing how quickly he was switching between those virtual desktops.
5:19:32 And I’d always been using virtual desktops, but I didn’t like switching too much because just of that latency.
5:19:34 And it’s like, oh, you can do that on Linux?
5:19:35 Oh, that’s pretty cool.
5:19:40 So I run that, and then my editor of choice now is NeoVim.
5:19:40 Oh, good.
5:19:41 All right.
5:19:42 Well, we’re out of time.
5:19:47 All right, you did, for many, many years, you used, what is it, TextMate?
5:19:48 Yes, TextMate.
5:19:51 That was actually, that was the main blocker of moving away from Apple.
5:19:54 Everything else I thought, you know what, I can swing it.
5:19:59 But TextMate was, and is, a wonderful editor.
5:20:02 One, I helped birth into this world.
5:20:10 The programmer, Alan Uggle, is a good friend of mine, all the way back from those, the party days when we were lugging our computers around.
5:20:13 And he was a big Mac guy.
5:20:16 And in 2005, he was writing this editor.
5:20:25 And I helped him with the project management of kind of keeping him on track, keeping him focused on getting something released because I really wanted it for myself.
5:20:28 And I thought this was the last editor.
5:20:29 I thought I was never going to switch.
5:20:34 Forgive me for not knowing, but how featureful is this editor?
5:20:35 Is this?
5:20:42 It’s quite featureful, but it’s a GUI-driven editor in some regards.
5:20:51 It was really early on with ways of recording macros and having sort of sophisticated syntax highlighting.
5:20:55 And it did a bunch of firsts, and it was just a really pleasant editing experience.
5:20:59 I think these days, a lot of people would just use VS Code.
5:21:03 VS Codes exist in the same universe as TextMate in some ways.
5:21:08 And actually, I think it’s compatible with the original TextMate bundles, the original TextMate format.
5:21:11 So it really trailed a path there.
5:21:13 But it also just didn’t evolve.
5:21:16 Now, a lot of people saw a huge problem with that.
5:21:18 They were like, oh, it needs to have more features.
5:21:19 It needs to have all these things.
5:21:26 I was like, I’m happy with this text editor that hasn’t changed at all, basically, when Alan stopped working on it for a decade or more.
5:21:27 I don’t need anything else.
5:21:30 Because as our original discussion went, I don’t want an IDE.
5:21:35 I don’t want the editor to write code for me.
5:21:36 I want a text editor.
5:21:39 I want to interact with characters directly.
5:21:46 And NeoVim allows me to do that in some ways that are even better than TextMate.
5:21:46 And I love TextMate.
5:22:01 But VI, as you know, once you learn the commands, and it sounds, I sometimes feel like VI fans overplay how difficult it is to learn because it makes them perhaps seem kind of more awesome that they were able to do it.
5:22:02 It’s not that difficult.
5:22:11 And it doesn’t take that long, in my opinion, to learn just enough combo moves to get that high of, holy shit, I could not do this in any other.
5:22:13 How long did it take you?
5:22:14 And by the way, I don’t know.
5:22:15 I’m still, I haven’t yet.
5:22:23 I know intellectually, but just like with kids, I haven’t, I haven’t gone in all the way and I haven’t used them.
5:22:25 You have a treat in mind.
5:22:35 Well, I switched in about, I had three days, when I switched here about a year ago, I had three days of cursing where I thought it was absolutely terrible and that was never going to happen.
5:22:40 And I had three days of annoyance and already the next week, I was like, this is sweet.
5:22:41 I’m not going anywhere.
5:22:42 Oh, wow.
5:22:46 But I also had a bit of a head start about 20 years ago in the early 2000s.
5:22:51 I tried Vim for like a summer and it didn’t stick.
5:22:54 I didn’t, for whatever reason, love it at the time.
5:22:55 But NeoVim is really good.
5:23:00 The key to NeoVim is to realize that you don’t have to build the whole damn editor yourself.
5:23:06 There’s a lot of NeoVim stans who are like, here’s how to write the config from scratch over 17 episodes.
5:23:07 That’s going to take you three weeks.
5:23:09 I don’t care that much.
5:23:11 I love a great editor.
5:23:13 I love to tailor it a little bit, but not that much.
5:23:18 So you have to pair NeoVim with this thing called LazyVim.
5:23:28 LazyVim.org is a distribution for NeoVim that takes all the drudgery out of getting an amazing editor experience right out of the box.
5:23:30 Ridiculous question.
5:23:32 We talked about a bunch of programming languages.
5:23:35 You told us how much you love JavaScript.
5:23:37 It’s your second favorite programming language.
5:23:41 Would TypeScript be the third then?
5:23:43 TypeScript wouldn’t even be in this universe.
5:23:47 I hate TypeScript as much as I like JavaScript.
5:23:49 So what you hate?
5:23:51 Oh, man.
5:23:53 I’m not smart enough to understand the math of that.
5:23:53 Okay.
5:24:05 Before I ask about other programming languages, if you can encapsulate your hatred of TypeScript into something that could be human interpretable, what would be the reasoning?
5:24:11 The JavaScript smells a lot like Ruby when it comes to some aspects of its metaprogramming.
5:24:19 And TypeScript just complicates that to an infuriating degree when you’re trying to write that kind of code.
5:24:27 And even when you’re trying to write the normal kind of code, none of the benefits that accrue to people who like it, like autocompletion, is something I care about.
5:24:30 I don’t care about autocompletion because I’m not using an IDE.
5:24:36 I understand that that is part of what separates it and why I don’t see the benefits.
5:24:37 I only see the costs.
5:24:39 I see the extra typing.
5:24:47 I see the type gymnastics that you sometimes have to do and where a bunch of people give up and just do any instead, right?
5:24:51 Like that they don’t actually use the type system because it’s just too frustrating to use.
5:25:01 So I’ve ever only felt the frustration of TypeScript and the obfuscation of TypeScript in the code that gave me no payoff.
5:25:03 Again, I understand that there is a payoff.
5:25:05 I don’t want the payoff.
5:25:20 So for my situation, I’m not willing to make the trade and I’m not willing to take a language that underneath is as dynamic of a language as Ruby is and then turn it into this pretend statically typed language.
5:25:23 I find that just intellectually insulting.
5:25:26 Do you think it will and do you think it should die, TypeScript?
5:25:29 I don’t want to take something away from people who enjoy it.
5:25:32 So if you like TypeScript, all the most part of you.
5:25:38 If you’re using TypeScript because you think that’s what a professional program is supposed to do, here’s my permission.
5:25:39 You don’t have to use TypeScript.
5:25:46 There’s something deeply enjoyable about a brilliant programmer such as yourself.
5:25:48 DHH talking shit.
5:25:51 It’s just it’s like one of my favorite things in life.
5:25:56 What are the top three programming languages everyone should learn if you’re talking to a beginner?
5:25:59 I would 100% start with Ruby.
5:26:08 It is magic for beginners in terms of just understanding the core concepts of conditionals and loops and whatever because it makes it so easy.
5:26:22 Even if you’re just making a shell program that’s outputting to the terminal, getting Hello World running in Ruby is basically puts, P-U-T-S, space, start quotes, Hello World, end quotes, you’re done.
5:26:26 There’s nothing to wrap it into.
5:26:33 There are other languages that does that, especially in the Perl or Python would be rather similar, but Go would not.
5:26:34 Java would not.
5:26:38 There’s a lot of other languages that have a lot more ceremony and boilerplate.
5:26:39 Ruby has none of it.
5:26:41 So it’s a wonderful starting language.
5:26:52 There’s a book called Learn to Program by Pine that uses Ruby essentially to just teach basic programming principles that I’ve seen heavily recommended.
5:26:53 So that’s a great language.
5:26:55 How quickly would you go to Rails?
5:26:56 It depends on what you want to do.
5:26:59 If you want to build web applications, go to Rails right away.
5:27:08 Learn Ruby along with Rails because I think what really helps power through learning programming is to build programs that you want, right?
5:27:12 If you’re just learning it in the abstract, it’s difficult to motivate yourself to actually do it well.
5:27:14 Some people learn languages just for the fun of them.
5:27:16 Most people do not.
5:27:18 Most people learn it because they have a mission.
5:27:20 They want to build a program.
5:27:21 They want to become a programmer.
5:27:23 So you’ve got to use it for something real.
5:27:28 And I actually find that it’s easier to learn programming that way too because it drives your learning process.
5:27:30 You can’t just learn the whole thing up front.
5:27:36 You can’t just sit down and read the language specification and then go like, ooh, like Neo.
5:27:37 Now I know Kung Fu.
5:27:38 Now I know Ruby.
5:27:39 It doesn’t download that way.
5:27:43 You actually have to type it out in Anchor on a real program.
5:27:45 Yeah, yeah, for sure.
5:27:46 So I would start there.
5:27:52 But then number two, I probably would be JavaScript because JavaScript just is the language you need to know
5:27:54 if you want to work with the web.
5:27:57 And the web is the greatest application platform of all time.
5:28:02 If you’re making business software, collaboration software, all this kind of stuff.
5:28:07 If you’re making video games, you should probably go off and learn C++ or C or something else like that.
5:28:11 But if you’re in the realm of web applications, you’ve got to learn JavaScript.
5:28:14 Regardless of what else you learn, you’ve got to learn JavaScript.
5:28:24 So if you’re learning Ruby, what does Ruby not have in terms of programming concepts that you would need other languages for?
5:28:32 I don’t know if there’s any concepts missing, but it doesn’t have the speed or the low-level access of memory manipulation
5:28:36 that you would need to build a 3D gaming engine, for example.
5:28:37 No one’s going to build that in Ruby.
5:28:43 You can build quite low-level stuff when it comes to web technologies in Ruby.
5:28:48 But at some point, you’re going to hit the limit, and you should use something else.
5:28:50 I’m not someone who prescribed just Ruby for everything.
5:28:57 Once you reach the level of abstraction that’s involved with web applications, Ruby is superb.
5:29:03 But if you’re writing, for example, an HTTP proxy, Go is great for that.
5:29:09 We’ve written quite a few HTTP proxies lately at the company for various reasons, including our cloud exit and so forth.
5:29:13 And Kevin, one of the programs I’m working with, he writes all of that in Go.
5:29:18 Go just have the primitives and it has the pace and the speed to do that really well.
5:29:21 I highly recommend it.
5:29:24 If you’re writing an HTTP general proxy, do it in Go.
5:29:25 Great language for that.
5:29:27 Don’t write your business logic in Go.
5:29:29 I know people do, but I don’t see the point in that.
5:29:31 So what would you say there are three?
5:29:34 So GoRuby, plus Rails, JavaScript.
5:29:38 Yeah, if you’re interested in working with the web, I’d probably pick those three.
5:29:40 Go, Ruby, and JavaScript.
5:29:42 Go, Ruby, and JavaScript.
5:29:42 Okay.
5:29:43 Functional languages?
5:29:44 Someone’s talking about OCaml.
5:29:47 They are always going to show up.
5:29:56 It must be some kind of OCaml industrial complex or something like this, but they always say mention OCaml.
5:30:01 I love that there are people who love functional languages to that degree.
5:30:03 Those people are not me.
5:30:03 I don’t care at all.
5:30:11 I care about functional principles when they help me in these isolated cases where that’s just better than everything else.
5:30:14 But at heart, I’m an object-oriented guy.
5:30:16 That’s just how I think about programs.
5:30:17 That’s how I like to think about programs.
5:30:22 That’s how I carve up a big problem space into a domain language.
5:30:25 Objects are my jam.
5:30:26 Yeah, me too.
5:30:35 So I programmed in Lisp a bunch for AI applications for basic Othello chess engines, that kind of stuff.
5:30:40 And I did try OCaml just to force myself to program just a very basic game of life.
5:30:41 Yeah.
5:30:41 A little simulation.
5:30:44 It’s much…
5:30:47 You know, Lisp is just parentheses everywhere.
5:30:49 It’s actually not readable at all.
5:30:52 That’s the problem I’ve had with Lisp.
5:30:55 OCaml is very intuitive, very readable.
5:30:55 That’s nice.
5:30:58 I really should pick up a language like that at some point.
5:31:05 I’ve been programming long enough that it’s a little embarrassing that I haven’t actually done anything real in anger in a fully functionally programmed language.
5:31:07 Yeah, but I have to figure out…
5:31:09 I’m sure there’s an answer to this.
5:31:14 What can I do that will be useful for me that I actually want to build?
5:31:16 That’s my problem.
5:31:18 That a functional language is better suited for.
5:31:19 That’s right.
5:31:21 Because I really want to experience the language properly.
5:31:22 That’s right.
5:31:23 Yeah, because I’m still…
5:31:24 Yeah, I’m very…
5:31:26 At this point, I’m very object-oriented, brained.
5:31:27 Yes.
5:31:29 And that’s my problem, too.
5:31:29 I just…
5:31:34 I don’t care as much about these low-level problems in computer science.
5:31:35 I care about the high level.
5:31:37 I care about writing software.
5:31:44 I care about the abstraction layer that really floats well with web applications and business logic.
5:31:51 And I’ve come to accept that about myself, even though, as we talked about when I was a kid, I really wanted to become a games programmer.
5:31:57 And then I saw what it took to write a collision detection engine, and I go like, yeah, that’s not me at all.
5:32:02 I’m never going to be into vector matrix manipulation or any of that stuff.
5:32:09 It’s way too much math, and I’m more of a writing person than I am of a math person.
5:32:18 I mean, just in the way you were speaking today, you have like a poetic, literary approach to programming.
5:32:19 Yes.
5:32:19 Yeah.
5:32:20 That’s interesting.
5:32:21 That’s exactly right.
5:32:27 So I did actually a keynote at RailsConf 10 years ago where I called myself a software writer.
5:32:29 I mean, I’m not the first person to say that.
5:32:32 Software writer has been in the vernacular for a long time.
5:32:40 But the modern identity that most programmers adopt when they’re trying to be serious is software engineer.
5:32:41 And I reject that label.
5:32:43 I’m not an engineer.
5:32:45 Occasionally, I dabble in some engineering.
5:32:48 But the vast majority of the time, I’m a software writer.
5:32:54 I write software for human consumption and for my own delight.
5:33:04 I can get away with that because I’m working in a high-level language like Ruby, working on collaboration software and to-do lists and all the other stuff.
5:33:12 Again, if I was trying to apply my talent to writing 3D game engines, no, that’s not the right mindset.
5:33:14 That’s not the right identity.
5:33:19 But I find that the software engineering identity flattens things a little bit.
5:33:24 I’d like to think that we have software writers and software mathematicians, for example.
5:33:31 And then those are actually richer ways of describing the abstraction level that you’re working at than engineer.
5:33:42 Yeah, and I think if AI becomes more and more successful, I think we’ll need software writer skill more and more.
5:33:47 Because it feels like that’s the realm of which, because it’s not writer.
5:33:50 You’re going to have to do the software.
5:33:53 You’re going to have to be a computer person.
5:33:56 But there’s a more, I don’t know.
5:33:59 I just don’t want to romanticize it, but it’s more poetic.
5:34:00 It’s more literary.
5:34:03 It’s more feels like writing a good blog post.
5:34:07 I actually wish that AI had a bit higher standards for writing.
5:34:13 I find the fact that it accepts my slobby, incomplete sentences a little offensive.
5:34:20 I wish there was like a strict mode for AI where it would snap my fingers if it was just feeding it keywords.
5:34:25 I’m like, speak proper, do pronunciation, do punctuation.
5:34:27 Because I love that.
5:34:38 I love crafting a just right sentence that hasn’t been boiled down that it has no meat on it, has no character in it.
5:34:39 It’s succinct.
5:34:41 It’s not overly flowery.
5:34:47 It’s just that writing phase, to me, is just addictive.
5:34:53 And I find that when programming is the best, it’s almost equivalent exactly to that.
5:34:55 You also have to solve a problem.
5:34:56 You’re not just communicating a solution.
5:34:58 You have to actually figure out what are you trying to say.
5:35:01 But even writing has that.
5:35:06 Half the time when I start writing a blog post, I don’t know exactly which arguments I’m going to use.
5:35:08 They develop as part of the writing process.
5:35:11 And that’s how writing software happens, too.
5:35:14 You know roughly the kind of problem you’re trying to solve.
5:35:17 You don’t know exactly how you’re going to solve it.
5:35:19 And as you start typing, the solution emerges.
5:35:24 And actually, as far as I understand, you and Jason are working on a new book.
5:35:27 It’s in the early days of that kind of topic.
5:35:32 I think he tweeted that it’s going to be titled something like,
5:35:36 we don’t know what we’re doing up front or something like that kind of topic.
5:35:37 And you figure out along the way.
5:35:39 That’s a big part of it.
5:35:44 Trying to give more people the permission to trust their own instincts and their own gut.
5:35:53 And realizing that developing that supercomputer in your stomach is actually the work of a career.
5:36:05 And that you should not discard those feelings in preference to over, or not even complicated, to analytics, to intellectualism.
5:36:11 Very often, when we look at the big decisions we’ve had to make, they’ve come from the gut.
5:36:15 Where you cannot fully articulate, like, why do I think this is the right thing?
5:36:18 Well, because I’ve been in this business for 20 years, and I’ve seen a bunch of things.
5:36:22 I’ve talked to a bunch of people, and that is percolating into this being the right answer.
5:36:30 A lot of people are very skeptical about that in business or unable to trust it because it feels like they can’t rationalize.
5:36:31 Why are we doing something?
5:36:32 Well, because I feel like it, damn it.
5:36:41 That’s a great privilege of being a bootstrapped independent founder who don’t owe their business to someone else and doesn’t have to produce a return.
5:36:50 Because I feel like a lot of the bullshit really creeps in when you’re trying to rationalize to other people why you do the things you do and why you take the decisions that you do.
5:36:55 If you don’t have anyone to answer to, you are free to follow your gut.
5:37:00 And that’s a hell of enjoyable way to work.
5:37:04 And it’s also, very often, the correct way to work.
5:37:05 Your gut knows a lot.
5:37:09 Like, you can’t articulate it, but it’s spot on more times than not.
5:37:12 Yeah, having to make a plan can be a paralyzing thing.
5:37:15 I’ve often, I mean, I suppose there’s different kinds of brains.
5:37:19 First of all, I can’t wait to read that book if it materializes.
5:37:29 I often feel like in the more interesting things I do in my life, I really don’t know what I’m doing up front.
5:37:36 And I think there’s a lot of people around me that care for me, that really want me to know what I’m doing.
5:37:37 They’re like, what’s the plan?
5:37:39 What’s the, why are you doing this crazy thing?
5:37:43 And if I had to wait until I have a plan, I’m not going to do it.
5:37:47 People, they have different brains on this kind of stuff.
5:37:51 Some people really are planners and it maybe energizes them.
5:38:01 But I think most creative pursuits, most really interesting, most novel pursuits are like, you kind of have to just take the leap and then just figure out as you go.
5:38:08 My favorite essay in Rework is the last one and it’s entitled, Inspiration is Perishable.
5:38:17 And I think that captures a lot of it, that if you take the time to do a detailed plan, you may very well have lost the inspiration by the time you’re done.
5:38:27 If you follow the inspiration in that moment and trust your gut, trust your own competence that you will figure it out, you’re going to get so much more back.
5:38:33 You’re going to go on the adventure you otherwise wouldn’t have, whether that’s just a business decision or a life decision.
5:38:36 You have to seize that inspiration.
5:38:45 There’s a great set of children’s books written by this Japanese author about chasing an idea and trying to get a hold of it.
5:38:56 And it’s beautifully illustrated as an idea, as something that’s floating around, as something you have to catch and latch onto, that I really feel captures this notion that inspiration is perishable.
5:39:02 It’ll disappear if you just put it back on the shelf and say like, well, I got to be diligent about this.
5:39:03 I got to line up a plan.
5:39:07 You may run out and then there’s no steam to keep going.
5:39:11 I have to ask you about open source.
5:39:16 What does it take to run a successful open source project?
5:39:21 You’ve spoken about that it’s a misconception that open source is democratic.
5:39:23 It’s actually meritocratic.
5:39:26 That’s a beautiful way to put it.
5:39:31 So there’s often is a kind of a benevolent dictator at top.
5:39:32 Often.
5:39:34 So can you just speak to that?
5:39:40 Having run successful open source projects yourself and being a benevolent dictator yourself?
5:39:45 Which is going to be a bit of a biased piece of evidence here.
5:39:48 But why monarchy is best?
5:39:52 You should definitely have dictators and they should control everything, especially when the dictator is me.
5:40:02 Now, well, I think I learned very early on that a quick way to burn out in open source is to treat it as a business.
5:40:11 As though you’re users or customers, as though they have claims of legitimacy on your time and your attention and your direction.
5:40:15 Because I faced this almost immediately with Ruby on Rails.
5:40:21 As soon as it was released, there were a million people who had all sorts of opinions about where I ought to take it.
5:40:24 And not just opinions, but actually demands.
5:40:29 Unless you implement an Oracle database adapter, this is always going to be a toy.
5:40:41 It was actually more or less that exact demand that prompted me to have a slide at one of the early Rails conferences that just said, fuck you.
5:40:42 Yeah, I saw that.
5:40:44 I’m not going to do what you tell me to.
5:40:47 I’m here as a bringer of gift.
5:40:53 I am sharing code that I wrote on my own time, on my own volition.
5:40:56 And you don’t have to say thank you.
5:40:57 I mean, be nice if you did.
5:41:00 You can take the code and do whatever you want with it.
5:41:02 You can contribute back if you want.
5:41:06 But you can’t tell me what to do or where to go or how to act.
5:41:08 I’m not a vendor.
5:41:19 This is a fundamental misconception that users of open source occasionally step into because they’re used to buying software from companies who really care about their business.
5:41:22 I care about people using my software.
5:41:23 I think it’s great.
5:41:26 But we don’t have a transactional relationship.
5:41:31 I don’t get something back when you tell me what to do except grief.
5:41:34 And I don’t want it so you can keep it.
5:41:40 So my open source philosophy from the start has been I got to do this primarily for me.
5:41:44 I love when other people find use in my open source.
5:41:45 It’s not my primary motivation.
5:41:48 I’m not primarily doing it for other people.
5:41:50 I’m primarily doing it for me and my own objectives.
5:41:58 Because as Adam Smith said, it’s not for the benevolence of the butcher that we expect our daily meat.
5:42:01 It’s for his self-interest.
5:42:12 And I actually find that to be a beautiful thought, that our comments increase in value when we all pursue our self-interest, certainly in the realm of open source.
5:42:20 This is also why I reject this notion that open source is in some sort of crisis, that there’s a funding crisis, that we have to spend more.
5:42:21 No, we don’t.
5:42:22 Open source has never been doing better.
5:42:27 Open source has never controlled more domains in software than it has right now.
5:42:29 There is no crisis.
5:42:38 There’s a misconception from some people making open source and from a lot of people using open source that open source is primarily like commercial software.
5:42:45 Something you buy and something where you can then make demands as a customer and that the customer is always right.
5:42:47 Customer is not always right.
5:42:50 Not even in business, but certainly not in open source.
5:42:54 In open source, the customer, as it is, is a receiver of gifts.
5:42:57 We are having a gift exchange.
5:42:59 I show up and give you my code.
5:43:01 If you like it, you can use it.
5:43:08 And if you have some code that fits in with where I’m going with this, I would love to get those gifts back.
5:43:10 And we can keep trading like that.
5:43:11 I give you more gifts.
5:43:16 Together, we pool all the gifts such that someone’s showing up brand new.
5:43:18 Just get a mountain of gifts.
5:43:26 This is the magic thing of open source is it increases the total sum value of what’s in the comments when we all pursue our own self-interest.
5:43:28 So I’m building things for Rails that I need.
5:43:29 And you know what?
5:43:31 You want me to do that.
5:43:36 You do not want me to build things that I don’t need on behalf of other people because I’ll do a crap job.
5:43:43 I build much better software when I can evaluate the quality of that software by my own use.
5:43:46 I need this feature.
5:43:48 I’m going to build a good version of that feature.
5:43:50 And I’m going to build just enough just for me.
5:43:51 So I’m not going to bloat it.
5:43:54 I’m not trying to attract a customer here.
5:43:55 I’m not trying to see some angle.
5:43:58 I’m just building what I need.
5:44:09 And if you go into open source with that mentality that you’re building for you and everything else is a bonus, I think you have all the ingredients to go to distance.
5:44:15 I think the people who burn out in open source is when they go in thinking, I’m making all these gifts.
5:44:18 I don’t really need them myself, but I’m like hoping someone else does.
5:44:20 And maybe they’ll also give me some money.
5:44:22 That’s a losing proposition.
5:44:23 It never basically works.
5:44:26 If you want money for your software, you should just sell it.
5:44:32 We have a perfectly fine model of commercial software that people can make that kind and then they can sell it.
5:44:36 But I find a lot of confusion.
5:44:38 Let’s just call it that politely.
5:44:41 In open source contributors who want to have their cake needed to.
5:44:44 They like the mode of working with open source.
5:44:47 They maybe even like the status that comes from open source.
5:44:50 But they also would like to earn a living from making that open source.
5:45:02 And therefore they occasionally end up with the kind of grievances that someone who feels underappreciated or at work will develop when others aren’t doing enough to recognize their great gifts.
5:45:04 And then they might walk away.
5:45:13 I wish I had one of the, I wish I had more insight into their mind state of the individual people that are running these projects.
5:45:19 Like if they’re feeling sad or they need more money or they’re like, it’s just such a dark box.
5:45:20 It can be.
5:45:27 I mean, of course there’s some communication, but I just, I just sadly see too often they just kind of walk away.
5:45:27 Right.
5:45:31 And I think that’s actually also part of the beauty of open source.
5:45:35 You are not obligated to do this code forever.
5:45:38 You’re obligated to do this for as long as you want to do it.
5:45:40 That’s basically your own obligation.
5:45:41 But there is, I know.
5:45:42 Okay.
5:45:44 So you might criticize this and push back.
5:45:48 You did write a blog post on forever until the end of the internet with to that list.
5:45:53 There is a beautiful aspect and you found a good balance there.
5:45:56 But I don’t know.
5:45:59 You’re bringing so much joy to people with this thing you created.
5:46:04 It’s not an obligation, but there’s a real beauty to taking care of this thing you’ve created.
5:46:05 There is.
5:46:06 And not forgetting.
5:46:11 I think we, I think what the open source creator is not seeing enough.
5:46:17 I mean, there’s like, how many lives you’re making better.
5:46:20 There’s certain pieces of software that I just quietly use a lot.
5:46:21 Yes.
5:46:24 And like, they bring my life joy.
5:46:26 And I wish I could communicate that well.
5:46:29 There’s ways to donate, but it’s inefficient.
5:46:31 It’s usually hard to donate.
5:46:32 It is.
5:46:36 There’s some ways for some people that made it easier.
5:46:38 GitHub donations is one way of doing it.
5:46:41 I donate to a few people, even though I don’t love the paradigm.
5:46:44 I also accept that we can have multiple paradigms.
5:46:49 I accept that I can do open source for one set of motivations and other people can do open source for other motivations.
5:46:52 We don’t all have to do it the same way.
5:46:59 But I do want to counter the misconception that open source is somehow in a crisis, unless we all start paying for open source.
5:47:00 That model already exists.
5:47:02 It’s commercial software.
5:47:03 It works very well.
5:47:06 And plenty of great companies have been built off the back of it.
5:47:08 And the expectations are very clear.
5:47:11 I pay you this amount and I get this software.
5:47:15 Open source, once you start mixing money into it, gets real muddy real fast.
5:47:19 And a lot of it is just from those misaligned expectations.
5:47:30 That if you feel like you’re starving artists as an open source developer, and you are owed X amount of money because your software is popular, you’re delusional.
5:47:32 And you need to knock that off.
5:47:37 Just get back on track where you realize that you’re putting gifts into the world.
5:47:41 And if you get something back in terms of monetary compensation, okay, that’s a bonus.
5:47:46 But if you need that money back in terms of monetary compensation, you should just charge for software.
5:47:50 Or go work for a software company that will employ you to do open source.
5:47:50 There’s tons of that.
5:47:56 That is probably actually the primary mode that open source software is being developed in the world today.
5:48:01 Commercial companies making open source that they need themselves and then contributing it back.
5:48:05 So I’m glad you brought up, sort of like drew some hard lines here.
5:48:06 It’s a good moment to bring up.
5:48:15 What I think is the, maybe one of the greatest open source projects ever, WordPress.
5:48:27 And you spoke up in October 24 about some of the stuff that’s been going on with WordPress’s founder, Matt Mullenweg.
5:48:39 In a blog post, open source royalty and mad kings is a really good blog post on sort of just the idea of benevolent dictators for life, this model for open source projects.
5:48:49 And then the basic implication was that Matt, as the BDFL of WordPress, has lost his way a bit with his battle with WP Engine.
5:48:54 So I should also say that I really love WordPress.
5:48:55 It brings me joy.
5:48:59 I think it’s a really, it’s a beacon of what open source could be.
5:49:03 I think it’s made the internet better.
5:49:07 A lot, a lot of people to create wonderful websites.
5:49:17 And I also think, now you might disagree with this, but from everything I’ve seen, WP Engine just gives me bad vibes.
5:49:22 I think they’re not a good, the good guy in this.
5:49:23 I don’t like it.
5:49:25 I understand the frustration.
5:49:29 I understand all of it, but I don’t think that excuses the behavior.
5:49:41 There is a bit of, see, this kind of counter to a little bit what you said, which is, when you have an open source project of that size, there is a bit of a, like when you’re the king.
5:49:48 That, for a project of a kingdom that large, there’s a bit of responsibility.
5:50:07 Anyway, could you speak to your, maybe to your empathy of Matt and to your criticism and what, and maybe paint a path of how he and WordPress can be winning again.
5:50:14 First, I’ll echo what you said about what a wonderful thing it is that WordPress exists.
5:50:22 There are not many projects in the open source world or in the world at large that has had as big of an impact on the internet as WordPress has.
5:50:26 He deserves a ton of accolades for that work.
5:50:30 So that was my engagement, essentially, my premise.
5:50:31 Do you know what?
5:50:39 I had tremendous respect for what Matt has built with WordPress, what that entire ecosystem has built around itself.
5:50:40 It’s a true marvel.
5:50:47 But there’s some principles that are larger than my personal sympathies to the characters involved.
5:50:48 I agree.
5:50:55 The Silver Lake private equity company that’s involved with WP Engine is not my natural ally.
5:51:03 I’m not the natural ally of private equity doing some game with WP Engine.
5:51:07 That’s not my interest in the case.
5:51:11 My interest is essentially a set of principles.
5:51:26 And the principles are, if you release something as open source, people are free to use it as they see fit, and they are free to donate code or resources or money back to the community as they see fit.
5:51:48 You may disagree about whether they’ve done enough, whether they should do more, but you can’t show up after you’ve given the gift of free software to the world and then say, now that you’ve used that gift, you actually owe me a huge lot of your business because you got too successful using the thing I gave you for free.
5:51:50 You don’t get to take a gift back.
5:51:53 That’s why we have open source licenses.
5:51:58 They stipulate exactly what the obligations are on both sides of the equation.
5:52:03 The users of open source don’t get to demand what the makers of open source do and how they act.
5:52:12 And the makers of open source don’t get to suddenly show up with a ransom note to the users and say, actually, you owe me for all sorts of use.
5:52:17 And I’m 100% allergic to that kind of interaction.
5:52:30 And I think Matt, unfortunately, for whatever reason, got so wrapped up in what he was owed that he failed to realize what he was destroying.
5:52:34 WordPress and automatic already makes a ton of money.
5:52:36 This is part of the wonder of WordPress.
5:52:40 This is a project that generates hundreds of millions of dollars.
5:52:44 And Matt didn’t feel like he was getting enough of that.
5:52:47 That’s not a good argument, bro.
5:52:58 You can’t just violate the spirit and the letter of these open source licenses and just start showing up with demand letters, even to characters that are not particularly sympathetic.
5:53:03 This goes to the root of my interpretation of open source in general.
5:53:13 The GPL is a particular license that actually demands code from people who use it under certain circumstances.
5:53:15 I’ve never liked the GPL.
5:53:18 I don’t want your shitty code if you don’t want to give it to me.
5:53:20 What am I going to do with that?
5:53:22 Some code dump that you’ve…
5:53:26 I’m not on board with that part of Stallman’s vision at all.
5:53:28 I love the MIT license.
5:53:30 To me, that is the perfect license.
5:53:32 It is mercifully short.
5:53:35 I think it’s two paragraphs, three paragraphs.
5:53:36 Really short.
5:53:39 And it basically says, here’s some software.
5:53:41 It comes with no warranty.
5:53:43 You can’t sue me.
5:53:44 You can’t demand anything.
5:53:46 But you can do whatever the hell you want with it.
5:53:48 Have a nice life.
5:53:52 That’s a perfect open source interaction, in my opinion.
5:53:55 And that license needs to be upheld.
5:53:57 These licenses in general, even the GPL,
5:53:59 even if I don’t like it,
5:54:01 we have to abide by them.
5:54:03 Because if we just set aside those licenses,
5:54:04 when we, in a moment’s notice,
5:54:06 feel like something slightly unfair,
5:54:08 we’ve lost everything.
5:54:10 We’ve lost the entire framework
5:54:12 that allowed open source to prosper
5:54:13 and allowed open source to
5:54:16 become such an integral part of commerce, too.
5:54:18 I mean, back when open source was initially
5:54:20 finding its feet,
5:54:23 it was at war with commercial software.
5:54:25 Stallman is at war with commercial software
5:54:26 and always has been.
5:54:29 Bill Gates was in return at war
5:54:31 with open source for the longest time.
5:54:34 The open source licensees and the clarity
5:54:37 that they provide allowed us to end that war.
5:54:39 Today, commercial software
5:54:41 and open source software can peacefully coexist.
5:54:43 I make commercial software,
5:54:44 I sell Basecamp,
5:54:44 I sell Hay,
5:54:47 and then I also make a bunch of open source software
5:54:48 that I give away for free as gifts.
5:54:51 That can’t happen
5:54:53 if we start violating these contracts.
5:54:56 No commercial company is going to go,
5:54:57 let me base my next project
5:54:59 off this piece of open source
5:55:00 if I’m also running the liability
5:55:02 that some mad maker
5:55:03 is going to show up
5:55:05 seven years in
5:55:07 and demand I give them $50 million.
5:55:10 That’s not an environment
5:55:12 conducive to commerce,
5:55:13 collaboration,
5:55:14 or anything else.
5:55:15 And it’s just basically wrong.
5:55:17 I think there’s one analysis
5:55:17 that’s all about
5:55:20 kind of the practical outcomes of this,
5:55:20 which I think are bad.
5:55:21 There’s also some,
5:55:23 an argument that’s simply
5:55:24 about ethics.
5:55:26 This is not right.
5:55:28 You can’t just show up afterwards
5:55:29 and demand something.
5:55:30 This is not too dissimilar,
5:55:31 in my opinion,
5:55:32 to the whole Apple thing
5:55:33 we talked about earlier.
5:55:34 Apple just showing up
5:55:35 and feeling like
5:55:36 they’re entitled
5:55:37 to 30% of everyone’s business.
5:55:38 No.
5:55:41 That’s not right.
5:55:42 That’s not fair.
5:55:45 So I think Matt,
5:55:45 unfortunately,
5:55:47 kind of
5:55:49 steered himself blind
5:55:51 on the indignity
5:55:52 he thought
5:55:53 was being perpetrated
5:55:53 against him
5:55:54 because there was
5:55:56 all this money being made
5:55:56 by VP Engine
5:55:58 making a good product
5:55:59 and not giving
5:56:00 quite enough back
5:56:01 in Matt’s opinion.
5:56:04 Tough, tough cookie.
5:56:05 I think there,
5:56:06 maybe I’m reading
5:56:07 too much into it,
5:56:08 but there might be
5:56:09 some personal stuff too,
5:56:09 which they weren’t
5:56:11 not only not giving enough,
5:56:12 but probably
5:56:14 implicitly promising
5:56:15 that they will give
5:56:18 and then taking advantage
5:56:19 of him in that way
5:56:20 in his mind.
5:56:21 Just like
5:56:22 interpersonal interaction.
5:56:23 Sure.
5:56:24 and then you get
5:56:26 interpersonally frustrated.
5:56:27 I get that.
5:56:27 You forget
5:56:28 the bigger picture
5:56:29 ethics of it.
5:56:29 It’s like
5:56:30 when a guy
5:56:31 keeps saying,
5:56:33 promising he’ll do something.
5:56:33 Sure.
5:56:35 And then you realize
5:56:36 you wake up one day
5:56:37 like a year or two later,
5:56:38 wait a minute,
5:56:40 I was being lied to
5:56:41 this whole time.
5:56:42 And that,
5:56:43 I don’t even know
5:56:43 if it’s about money.
5:56:45 I’d get mad too.
5:56:46 It’s totally fine
5:56:47 to get mad
5:56:48 when people disappoint you.
5:56:49 That’s not justification
5:56:52 for upending decades
5:56:53 of open source
5:56:55 licensees
5:56:57 and the essential
5:56:58 de facto case law
5:56:59 we’ve established around it.
5:57:01 This is why I chose
5:57:02 to even weigh in on this
5:57:04 because I like WordPress.
5:57:05 I don’t use WordPress.
5:57:06 I’m not a part
5:57:06 of that community.
5:57:07 I don’t actually have
5:57:10 a dog in this fight.
5:57:10 I’m biased,
5:57:11 if anything,
5:57:12 towards Matt
5:57:13 just as a fellow
5:57:14 BDFL.
5:57:16 I would like to see him
5:57:17 do well with this,
5:57:17 but I also think
5:57:18 there’s some principles
5:57:19 at stake here
5:57:21 that ring much louder.
5:57:22 I don’t want Rails
5:57:25 to suddenly be tainted
5:57:26 by the fact
5:57:26 that it’s open source
5:57:28 and whether companies
5:57:28 can rely on it
5:57:30 and build businesses on it
5:57:30 because wait,
5:57:31 maybe one day
5:57:32 I’m going to turn Matt
5:57:33 and I’m going to turn Matt King
5:57:34 and I’m going to show up
5:57:35 with a demand ransom letter.
5:57:37 No, screw that.
5:57:39 We have way more
5:57:40 to protect here.
5:57:41 There’s way more at stake
5:57:43 than your personal beef
5:57:44 with someone
5:57:46 or your perceived grievance
5:57:47 over what you’re owed.
5:57:48 What would you recommend
5:57:48 and what do you think
5:57:49 you should do,
5:57:50 can do,
5:57:51 to walk it back
5:57:52 to heal?
5:57:56 Decide.
5:57:59 This is the curious thing.
5:57:59 He could decide
5:58:01 to give this up.
5:58:01 That’s very,
5:58:02 very difficult
5:58:03 for driven,
5:58:04 ambitious people to do,
5:58:06 to accept that they’re wrong
5:58:07 and to give up
5:58:08 and lay down their sword.
5:58:10 So I had a hope
5:58:11 earlier on in this
5:58:12 that that was possible.
5:58:14 I haven’t seen any evidence
5:58:16 that Matt is interested in that
5:58:18 and I find that deeply regretful,
5:58:20 but that’s his prerogative.
5:58:21 I continue to speak out
5:58:23 when he’s violating
5:58:24 the spirit and ethics
5:58:25 of open source,
5:58:27 but I wish he would just
5:58:29 accept that this was
5:58:30 a really bad idea.
5:58:31 He just,
5:58:32 he made a bad bet
5:58:32 and I thought,
5:58:34 I think he thought
5:58:35 he’d just get away with it,
5:58:37 that they’d just pay up
5:58:39 and that he could put pressure.
5:58:40 I mean,
5:58:41 I know that temptation.
5:58:43 When you sit as the head
5:58:44 of a very important project,
5:58:46 you know
5:58:47 that that comes
5:58:48 with a great degree
5:58:49 of power
5:58:50 and you really need
5:58:52 a great degree
5:58:52 of discipline
5:58:54 to rein that in
5:58:55 and not exercise
5:58:56 that power
5:58:57 at every step
5:58:58 where you feel aggrieved.
5:58:59 I’ve felt aggrieved
5:59:00 a million times over
5:59:02 in the 20 plus years
5:59:03 of Ruby and Rails.
5:59:05 I’ve really tried
5:59:06 very hard
5:59:07 not to let those
5:59:08 sometimes petty,
5:59:09 sometimes substantial
5:59:11 grievances over time
5:59:13 seep in
5:59:14 to the foundation
5:59:15 of the ecosystem
5:59:18 and risk ruining everything.
5:59:19 As the king
5:59:20 of the Rails kingdom,
5:59:21 has the power
5:59:21 gotten to your head
5:59:22 over the years?
5:59:23 I’m sure it has.
5:59:24 I mean,
5:59:25 who wouldn’t?
5:59:26 Do you pace around
5:59:27 in your chamber?
5:59:29 I do.
5:59:30 Occasionally.
5:59:33 And I do marvel
5:59:34 at both
5:59:34 what’s been built,
5:59:35 what’s been possible.
5:59:37 Over a million applications
5:59:37 have been made
5:59:38 with Ruby on Rails
5:59:39 by one estimate
5:59:39 that I’ve seen.
5:59:41 Businesses like Shopify
5:59:42 and GitHub
5:59:44 and a million others
5:59:45 have been built
5:59:46 on top of something
5:59:47 that I started.
5:59:48 That’s very gratifying.
5:59:50 But
5:59:52 you really have to be careful
5:59:53 not to smell
5:59:54 your own exhaust too much.
5:59:55 And you have to be
5:59:56 just as careful
5:59:57 not to listen
5:59:58 too much
5:59:58 to the haters
6:00:00 and not
6:00:01 to listen
6:00:01 too much
6:00:02 to the super fans
6:00:02 either.
6:00:03 That
6:00:04 you assess
6:00:05 the
6:00:06 value
6:00:07 and
6:00:08 the
6:00:09 sort of principles
6:00:10 of what you’re
6:00:11 working towards
6:00:12 on its own merits.
6:00:14 On your own scoreboard.
6:00:15 I try to
6:00:17 block that out
6:00:18 and then just go
6:00:19 well
6:00:20 I’m working on Rails
6:00:22 because I love to write Ruby.
6:00:23 I love to
6:00:25 use Ruby
6:00:26 to make web applications.
6:00:27 That’s my North Star
6:00:29 and I’ll continue to do that
6:00:30 and I’ll continue to share
6:00:32 all of the open source GIFs
6:00:33 that I
6:00:35 uncover along the ways.
6:00:37 And that’s it.
6:00:38 That’s enough too.
6:00:39 I don’t have to get
6:00:39 all of it
6:00:40 out of it.
6:00:42 This is sometimes
6:00:44 just as with the guy
6:00:44 who thought
6:00:45 I’d given up
6:00:46 on being Jira
6:00:47 or something
6:00:48 instead of doing Basecamp.
6:00:49 There are people
6:00:50 over the years
6:00:50 who’ve asked like
6:00:52 why didn’t you charge
6:00:52 for Rails?
6:00:52 Like
6:00:53 don’t you know
6:00:54 how much money
6:00:54 have been made
6:00:55 off Rails?
6:00:56 If we just look
6:00:56 at something like
6:00:57 Shopify
6:00:58 it’s worth
6:00:59 billions of dollars.
6:01:00 I’m not a billionaire
6:01:02 and so freaking what?
6:01:04 I got more than enough.
6:01:05 I got plenty
6:01:05 of my share.
6:01:07 I will say though
6:01:08 I’m also
6:01:11 introspective enough
6:01:12 to realize
6:01:12 that if it hadn’t
6:01:13 panned out as well
6:01:14 as it did for me
6:01:15 on my own business
6:01:16 maybe I would have
6:01:17 been more tempted.
6:01:18 Maybe
6:01:19 if you see other people
6:01:20 build huge successful
6:01:22 companies off the back
6:01:22 of your work
6:01:23 and you really
6:01:24 don’t have a
6:01:26 pot to piss in
6:01:27 you might
6:01:28 be tempted
6:01:29 to get a little
6:01:30 upset about that.
6:01:31 I’ve seen that
6:01:32 in the Rails world
6:01:32 as well
6:01:33 where there are people
6:01:34 who contributed
6:01:35 substantial bodies
6:01:36 of work
6:01:37 and then got
6:01:38 really miffed
6:01:39 when they didn’t
6:01:40 feel like they
6:01:41 got enough back.
6:01:42 I was fortunate enough
6:01:43 that the business
6:01:44 that Jason and I
6:01:45 built with Ruby on Rails
6:01:46 was as successful
6:01:46 as it was
6:01:47 and I made the money
6:01:48 I needed to make
6:01:49 that I didn’t need
6:01:50 to chase
6:01:51 the rest of it.
6:01:53 But we should also
6:01:54 just make explicit
6:01:56 that many people
6:01:57 in your position
6:01:58 chase
6:02:01 the money.
6:02:02 It’s not that
6:02:03 difficult to chase.
6:02:04 Basically you
6:02:05 turned away money.
6:02:06 you made a lot
6:02:06 of decisions
6:02:07 that just
6:02:08 turn away money.
6:02:09 Maybe.
6:02:10 I also think of
6:02:13 this example
6:02:13 with Matt.
6:02:14 He probably thought
6:02:15 there was easy money
6:02:16 for the taking
6:02:17 and it wasn’t
6:02:17 so easy was it?
6:02:18 It looked like
6:02:20 low-hanging dollar bills
6:02:21 and they turned out
6:02:22 to be some really
6:02:22 sour grapes.
6:02:23 It turned out
6:02:24 he turned
6:02:26 he probably destroyed
6:02:27 vast sums
6:02:28 of money
6:02:29 by undermining
6:02:29 the whole
6:02:30 WordPress
6:02:31 trust
6:02:32 and the ecosystem
6:02:33 and putting
6:02:34 question marks
6:02:35 in the heads
6:02:36 of folks
6:02:36 who would
6:02:37 choose to use
6:02:37 WordPress
6:02:38 or something else
6:02:38 going forward.
6:02:41 So I often think
6:02:41 when people think
6:02:42 like oh you left
6:02:43 money on the table
6:02:44 first of all
6:02:44 so what?
6:02:45 I don’t have to
6:02:45 have all the money
6:02:46 but second of all
6:02:47 maybe the money
6:02:48 wasn’t on the table
6:02:48 at all.
6:02:49 and maybe the cost
6:02:51 even if you got
6:02:51 the money
6:02:52 maybe the cost
6:02:53 in other ways
6:02:54 like we’ve talked
6:02:55 about
6:02:56 would outweigh
6:02:56 all the money
6:02:57 that you could
6:02:57 have possibly
6:02:58 gotten
6:02:59 meaning like
6:03:00 I think you said
6:03:01 that the thing
6:03:01 that makes you
6:03:02 happy
6:03:04 is flow
6:03:05 and tranquility
6:03:06 those two things
6:03:07 beautifully
6:03:08 really beautifully
6:03:08 put
6:03:10 and you know
6:03:12 gaining money
6:03:12 might
6:03:13 assign to you
6:03:14 responsibility
6:03:14 of running
6:03:15 a larger thing
6:03:17 that takes away
6:03:19 the flow
6:03:20 that you gain
6:03:20 from being
6:03:22 from fundamentally
6:03:23 for you
6:03:24 what flow means
6:03:24 is programming
6:03:26 and then tranquility
6:03:27 is like
6:03:28 I think you also
6:03:29 have a beautiful
6:03:30 post of like
6:03:31 nirvana
6:03:32 is an empty schedule.
6:03:34 When I look at
6:03:35 an upcoming week
6:03:36 and I see that
6:03:37 I have no scheduled
6:03:37 meetings at all
6:03:38 which is quite common
6:03:39 or maybe I just have
6:03:40 one thing
6:03:40 for one hour
6:03:41 on one day
6:03:43 I think to myself
6:03:43 do you know what
6:03:45 this could very easily
6:03:45 have been very different
6:03:46 we could have been
6:03:47 running a company
6:03:48 of hundreds of people
6:03:49 or thousands of people
6:03:50 and my entire calendar
6:03:51 would have been
6:03:52 packed solid
6:03:54 with little Tetris blocks
6:03:55 of other people’s
6:03:56 demands
6:03:57 on my attention
6:03:57 and time
6:03:58 and I would have
6:03:59 been miserable
6:03:59 as fuck
6:04:01 and I look at that
6:04:02 and go like
6:04:04 what more
6:04:04 can I
6:04:06 ask for
6:04:07 which is a
6:04:08 really nice
6:04:08 state of being
6:04:09 I’d actually say
6:04:10 I didn’t have
6:04:11 this always
6:04:12 I did have
6:04:14 early on in my career
6:04:14 some sense of
6:04:16 I need a little
6:04:16 more
6:04:17 a little more
6:04:17 security
6:04:19 and I
6:04:20 remember this
6:04:21 really interesting
6:04:21 study
6:04:22 where a bunch
6:04:23 of researchers
6:04:24 asked people
6:04:25 who had made
6:04:25 certain amounts
6:04:26 of money
6:04:26 how much money
6:04:27 would it take
6:04:28 for you to feel
6:04:29 secure
6:04:30 they’d ask people
6:04:31 who had a million
6:04:32 dollars net worth
6:04:32 how much money
6:04:32 do you need
6:04:34 probably need
6:04:34 two million
6:04:35 two million
6:04:36 then it’d be good
6:04:37 then they ask
6:04:38 people with a net worth
6:04:38 of five million
6:04:39 how much do you need
6:04:40 ten
6:04:41 I need ten
6:04:42 ask people
6:04:43 with ten million
6:04:43 what do you need
6:04:44 twenty
6:04:45 every single time
6:04:46 people would need
6:04:47 double of what they did
6:04:48 I did that
6:04:48 for a couple
6:04:49 of doublings
6:04:50 until I realized
6:04:50 you know what
6:04:51 this is silly
6:04:52 I am already
6:04:53 where I wished
6:04:54 I would be
6:04:55 and a million times
6:04:55 over
6:04:56 so
6:04:58 what less
6:04:58 is there
6:04:59 to pursue
6:04:59 now
6:05:00 that doesn’t
6:05:00 mean that
6:05:01 if more money
6:05:02 is coming my way
6:05:03 I’m gonna say
6:05:03 no to it
6:05:04 of course not
6:05:04 but
6:05:05 it does mean
6:05:06 that I’m free
6:05:07 to set other
6:05:08 things higher
6:05:09 and I also do
6:05:10 think you realize
6:05:11 as Jim Carrey
6:05:12 would say
6:05:13 I wish everyone
6:05:14 would get all
6:05:14 the money
6:05:15 that they wished
6:05:15 for and they’d
6:05:16 realize it
6:05:16 wasn’t the answer
6:05:17 that money
6:05:18 solves a whole
6:05:19 host of
6:05:20 problems
6:05:22 and anxieties
6:05:22 and then it
6:05:23 creates a bunch
6:05:23 of new ones
6:05:24 and then it
6:05:25 also doesn’t
6:05:27 touch a huge
6:05:28 swath of the
6:05:29 human experience
6:05:29 at all
6:05:30 the world
6:05:30 is full
6:05:31 of miserable
6:05:33 anxious
6:05:34 hurt
6:05:34 rich people
6:05:36 it’s also
6:05:37 full of
6:05:37 miserable
6:05:38 anxious
6:05:38 poor
6:05:38 people
6:05:39 and I’d
6:05:39 rather be
6:05:39 a miserable
6:05:40 anxious
6:05:40 rich
6:05:41 person
6:05:41 than a poor
6:05:41 person
6:05:42 but it isn’t
6:05:43 this magic wand
6:05:44 that make
6:05:44 everything go
6:05:45 away
6:05:45 and that’s
6:05:46 again one
6:05:46 of those
6:05:48 insights
6:05:49 just like
6:05:50 having children
6:05:50 that you
6:05:51 cannot communicate
6:05:51 in words
6:05:52 I’ve never
6:05:52 been able
6:05:53 to persuade
6:05:54 a person
6:05:55 who’s not
6:05:55 wealthy
6:05:56 that wealth
6:05:56 wasn’t going
6:05:57 to solve
6:05:57 all their
6:05:58 problems
6:05:59 one quote
6:05:59 you’ve returned
6:06:00 to often
6:06:00 that I enjoy
6:06:01 a lot
6:06:01 is the
6:06:02 Coco Chanel
6:06:03 of the
6:06:04 best things
6:06:05 in life
6:06:05 are free
6:06:08 and the
6:06:08 second best
6:06:08 things are
6:06:09 very very
6:06:09 expensive
6:06:11 and I guess
6:06:11 the task
6:06:13 is to
6:06:15 focus on
6:06:17 surrounding
6:06:17 yourself with
6:06:17 the best
6:06:18 things in
6:06:18 life like
6:06:19 family and
6:06:20 all of this
6:06:20 and not
6:06:21 caring about
6:06:21 the other
6:06:22 stuff
6:06:22 I would
6:06:23 even say
6:06:23 you can
6:06:24 care about
6:06:24 the other
6:06:24 stuff
6:06:25 just know
6:06:26 the order
6:06:27 of priority
6:06:28 if you
6:06:28 are blessed
6:06:29 with
6:06:31 a partner
6:06:32 that you
6:06:32 love
6:06:33 some
6:06:33 children
6:06:34 that you
6:06:35 adore
6:06:35 you’ve
6:06:36 already
6:06:37 won the
6:06:37 greatest
6:06:38 prize
6:06:38 that
6:06:39 most
6:06:40 humans
6:06:41 are able
6:06:41 to achieve
6:06:43 most humans
6:06:43 in this
6:06:44 world
6:06:44 if they
6:06:45 are of
6:06:46 marital age
6:06:46 and they
6:06:47 have children
6:06:48 if you
6:06:48 ask them
6:06:48 what’s the
6:06:49 most important
6:06:49 thing
6:06:49 they would
6:06:50 all say
6:06:50 that
6:06:51 they would
6:06:51 all say
6:06:51 that
6:06:52 no matter
6:06:52 whether
6:06:52 they’re
6:06:52 rich
6:06:53 or
6:06:53 poor
6:06:54 it’s
6:06:55 easy
6:06:55 to lose
6:06:55 sight of
6:06:55 that
6:06:56 when you’re
6:06:56 chasing
6:06:57 the
6:06:57 second
6:06:58 best
6:06:58 things
6:06:58 because
6:06:58 you know
6:06:59 what
6:06:59 they’re also
6:06:59 very nice
6:07:01 I really
6:07:02 like that
6:07:02 Pagani
6:07:03 Sonda
6:07:03 it was a
6:07:04 very expensive
6:07:05 car and I
6:07:05 would have
6:07:06 no chance
6:07:07 of acquiring
6:07:07 it if I
6:07:08 hadn’t become
6:07:08 rather
6:07:10 successful
6:07:11 in business
6:07:12 so I don’t
6:07:12 want to dismiss
6:07:13 it either
6:07:14 it’s great
6:07:14 fun
6:07:15 to have
6:07:16 money
6:07:17 it’s just
6:07:19 not as
6:07:20 fun for
6:07:21 quite as
6:07:22 long or as
6:07:22 deep
6:07:23 as you
6:07:23 think it
6:07:24 is
6:07:24 and these
6:07:25 other
6:07:25 things
6:07:26 having
6:07:27 an
6:07:27 occupation
6:07:28 and a
6:07:28 pursuit
6:07:28 that you
6:07:29 enjoy
6:07:29 being able
6:07:30 to carry
6:07:31 burdens
6:07:32 with
6:07:33 a stiff
6:07:34 upper lip
6:07:35 and with
6:07:36 again
6:07:36 a sense
6:07:37 of meaning
6:07:39 is incredible
6:07:40 to have
6:07:41 family
6:07:41 to have
6:07:42 friends
6:07:43 to have
6:07:43 hobbies
6:07:43 to have
6:07:44 all these
6:07:44 things that
6:07:45 are actually
6:07:45 available
6:07:47 to most
6:07:48 people around
6:07:49 the world
6:07:50 that’s
6:07:50 winning
6:07:51 and it
6:07:52 doesn’t mean
6:07:52 you have
6:07:52 to
6:07:53 discount
6:07:53 your
6:07:54 ambitions
6:07:54 it doesn’t
6:07:55 mean you
6:07:55 can’t reach
6:07:56 for more
6:07:57 but
6:07:58 it does
6:07:59 mean it’s
6:07:59 pretty dumb
6:08:00 if you
6:08:01 don’t realize
6:08:01 that
6:08:03 it’s not
6:08:04 going to
6:08:05 complete you
6:08:05 in some
6:08:07 hocus pocus
6:08:07 woo sense
6:08:09 to make
6:08:09 more
6:08:10 it really
6:08:11 isn’t
6:08:12 what gives
6:08:13 you hope
6:08:14 about the
6:08:14 future
6:08:15 of this
6:08:16 whole thing
6:08:16 we have
6:08:16 going on
6:08:17 here
6:08:17 human
6:08:18 civilization
6:08:20 I
6:08:21 find it
6:08:22 easier to
6:08:23 be
6:08:23 optimistic
6:08:25 than
6:08:26 pessimistic
6:08:26 because
6:08:27 I don’t
6:08:27 know either
6:08:28 way
6:08:28 so if
6:08:29 I get
6:08:29 to choose
6:08:30 why not
6:08:31 just choose
6:08:31 to believe
6:08:32 it’s going
6:08:32 to pan
6:08:32 out
6:08:33 yeah
6:08:34 like
6:08:35 we suffer
6:08:35 more in
6:08:36 our imagination
6:08:37 than we do
6:08:37 in reality
6:08:38 that’s one of
6:08:38 the quotes
6:08:39 out of
6:08:39 stoicism
6:08:41 and I
6:08:42 also think
6:08:43 we have
6:08:43 a tendency
6:08:44 a lot
6:08:44 of humans
6:08:45 have a
6:08:45 tendency
6:08:46 to be
6:08:47 pessimistic
6:08:48 in advance
6:08:49 for things
6:08:49 they don’t
6:08:49 know how
6:08:50 it’s going
6:08:50 to pan
6:08:50 out
6:08:52 climate
6:08:52 change
6:08:52 for example
6:08:53 is making
6:08:53 a lot
6:08:54 of people
6:08:55 very anxious
6:08:55 and very
6:08:56 pessimistic
6:08:56 about the
6:08:56 future
6:08:57 you know
6:08:58 nothing
6:08:59 40 years
6:08:59 ago we
6:09:00 thought the
6:09:00 problem was
6:09:01 that the
6:09:01 planet
6:09:01 was going
6:09:01 to be
6:09:02 too cool
6:09:03 I happen
6:09:03 to believe
6:09:04 that it’s
6:09:04 probably
6:09:05 correct
6:09:05 that the
6:09:05 planet
6:09:06 is
6:09:06 getting
6:09:07 too hot
6:09:07 and that
6:09:08 CO2
6:09:08 has something
6:09:09 to do
6:09:09 with it
6:09:10 whether we
6:09:10 have the
6:09:11 right measures
6:09:12 to fix
6:09:13 it in time
6:09:13 if that’s
6:09:13 even
6:09:14 possible
6:09:15 or not
6:09:16 is
6:09:16 completely
6:09:17 up in
6:09:17 the air
6:09:18 and we
6:09:18 don’t
6:09:18 know
6:09:19 if you
6:09:19 convince
6:09:19 yourself
6:09:20 with
6:09:20 such
6:09:21 certainty
6:09:21 that the
6:09:21 world
6:09:22 is going
6:09:22 to turn
6:09:22 to shit
6:09:23 it is
6:09:24 right up
6:09:24 here
6:09:25 in your
6:09:25 head
6:09:26 today
6:09:27 climate
6:09:27 change
6:09:28 might wipe
6:09:29 out this
6:09:29 entire
6:09:29 species
6:09:31 in 200
6:09:31 years
6:09:33 it’s not
6:09:33 next year
6:09:35 it’s not
6:09:35 10 years
6:09:36 from now
6:09:37 your life
6:09:37 might become
6:09:38 more unpleasant
6:09:38 and there
6:09:38 might be
6:09:39 more negative
6:09:39 effects
6:09:40 and so on
6:09:40 yes okay
6:09:42 but then deal
6:09:42 with that
6:09:43 hardship
6:09:43 when it
6:09:43 arrives
6:09:44 don’t
6:09:45 take that
6:09:46 in advance
6:09:46 how are you
6:09:47 helping earth
6:09:48 by just
6:09:49 walking around
6:09:50 being
6:09:51 depressed
6:09:53 I think
6:09:54 our whole
6:09:54 conversation
6:09:55 today is also
6:09:56 an indication
6:09:56 it’s just
6:09:57 two humans
6:09:57 talking
6:09:59 there’s billions
6:09:59 of us
6:10:00 and there is
6:10:01 something about us
6:10:02 that wants to
6:10:03 solve problems
6:10:04 and build cool
6:10:05 stuff
6:10:06 and so we’re
6:10:06 gonna build
6:10:07 our way
6:10:07 out of
6:10:08 whatever
6:10:08 shit
6:10:08 we’ll get
6:10:09 ourselves
6:10:09 into
6:10:10 this is
6:10:10 what humans
6:10:11 do
6:10:11 we’ll create
6:10:12 problems
6:10:13 for ourselves
6:10:14 and come
6:10:14 out
6:10:15 figure out
6:10:15 how to
6:10:16 build rocket
6:10:16 ships
6:10:19 to get out
6:10:19 of those
6:10:19 problems
6:10:20 and sometimes
6:10:20 the rocket
6:10:21 ships create
6:10:22 other problems
6:10:22 like nuclear
6:10:23 warheads
6:10:24 and then we’ll
6:10:25 I’m sure
6:10:27 I hope
6:10:28 figure out ways
6:10:29 how to avoid
6:10:29 those problems
6:10:30 and then there’ll
6:10:30 be nanobots
6:10:31 and then
6:10:32 the aliens
6:10:33 will come
6:10:33 and there’ll
6:10:33 be a massive
6:10:34 war between
6:10:35 the nanobots
6:10:35 and the aliens
6:10:36 and that will
6:10:38 bring all of us
6:10:38 humans together
6:10:41 the funny thing
6:10:42 just to pick up
6:10:42 one of the points
6:10:43 you mentioned
6:10:44 the atom bomb
6:10:45 for example
6:10:46 when that was
6:10:46 first invented
6:10:47 a lot of people
6:10:48 thought we have
6:10:49 essentially ended
6:10:49 life on earth
6:10:50 right
6:10:52 or maybe we
6:10:53 prevented
6:10:54 world war 3
6:10:54 from happening
6:10:56 in the past
6:10:56 80 years
6:10:57 because
6:10:58 assured
6:10:59 mutual
6:11:00 annihilation
6:11:00 kept
6:11:02 the superpowers
6:11:02 from attacking
6:11:03 each other
6:11:03 at least
6:11:04 head on
6:11:05 and kept
6:11:05 their
6:11:06 fighting
6:11:07 to proxy
6:11:07 wars
6:11:08 you know what
6:11:09 proxy wars
6:11:09 are not great
6:11:10 but they’re
6:11:11 probably better
6:11:11 than world war
6:11:12 three with
6:11:13 nuclear weapons
6:11:14 so it’s
6:11:15 quite difficult
6:11:16 in the moment
6:11:17 to tell what’s
6:11:17 actually benefit
6:11:18 and what’s
6:11:19 not
6:11:20 and I think
6:11:21 we should be
6:11:21 a bit more
6:11:21 humble
6:11:22 I’ve certainly
6:11:23 become more
6:11:23 humble over
6:11:24 time of
6:11:26 thinking I know
6:11:27 which way it’s
6:11:27 going to turn
6:11:28 I think the
6:11:29 pandemic was a
6:11:30 huge moment
6:11:30 for a lot
6:11:31 of people
6:11:31 where there
6:11:32 was so much
6:11:33 certainty
6:11:34 about whether
6:11:35 this intervention
6:11:36 worked or that
6:11:37 intervention didn’t
6:11:38 work and
6:11:39 most people
6:11:40 were wrong
6:11:42 certainly a lot
6:11:43 of very smart
6:11:43 people very
6:11:45 qualified people
6:11:46 got that just
6:11:47 utterly and
6:11:49 catastrophizingly
6:11:50 wrong
6:11:51 so just a little
6:11:52 intellectual humility
6:11:53 I think back upon
6:11:54 that and go like
6:11:54 you know what
6:11:55 I’m not a
6:11:56 PhD in
6:11:57 virology
6:12:00 and I don’t
6:12:01 claim that like
6:12:02 I somehow saw
6:12:02 how it always
6:12:03 going to play
6:12:03 out but the
6:12:04 people who were
6:12:04 really experts
6:12:05 and that they
6:12:05 got a bunch
6:12:06 of it wrong
6:12:07 nobody knows
6:12:08 anything I
6:12:08 keep reminding
6:12:09 myself of that
6:12:10 every day no
6:12:11 one knows
6:12:11 anything we
6:12:12 can’t predict
6:12:14 the economy a
6:12:15 month out we
6:12:16 can’t predict
6:12:16 world affairs
6:12:17 the world is
6:12:17 just too
6:12:18 complicated
6:12:19 yeah I
6:12:19 when I
6:12:20 watched the
6:12:20 Netflix
6:12:21 documentary
6:12:22 Chimp Empire
6:12:23 and how
6:12:24 you know
6:12:24 there’s a
6:12:25 hierarchy of
6:12:25 chimps
6:12:27 all of that
6:12:28 looks eerily
6:12:30 similar to us
6:12:30 humans we’re
6:12:32 recent descendants
6:12:33 so these
6:12:34 experts
6:12:35 some of the
6:12:36 chimps are
6:12:37 got a PhD
6:12:39 others don’t
6:12:40 others are
6:12:40 really muscular
6:12:41 others are
6:12:42 the beta male
6:12:43 kind they’re
6:12:44 sucking up to
6:12:44 the alpha
6:12:45 there’s a lot
6:12:45 of interesting
6:12:46 dynamics going
6:12:47 on that really
6:12:48 maps cleanly to
6:12:49 the geopolitics of
6:12:49 the day
6:12:50 they don’t have
6:12:51 nuclear weapons
6:12:51 but the
6:12:52 nature of
6:12:53 their behavior
6:12:53 is similar
6:12:53 to ours
6:12:54 so I
6:12:56 think I
6:12:56 think we
6:12:57 barely know
6:12:57 what’s going
6:12:58 on but I
6:12:59 do think
6:13:00 there’s like a
6:13:04 basic will
6:13:05 to cooperate
6:13:07 the basic
6:13:08 compassion that
6:13:08 underlies or
6:13:10 just the
6:13:11 human spirit
6:13:12 that’s there
6:13:13 and maybe that
6:13:14 is just me
6:13:15 being optimistic
6:13:16 but if that
6:13:17 is indeed
6:13:17 there then
6:13:17 we’re going
6:13:18 to be okay
6:13:19 the capacity
6:13:19 is certainly
6:13:20 there whether
6:13:21 we choose that
6:13:21 capacity or
6:13:22 not
6:13:23 who knows
6:13:23 and in
6:13:23 what
6:13:24 situation
6:13:24 I think
6:13:25 accepting that
6:13:26 we all have
6:13:26 the capacity
6:13:27 for both
6:13:27 ways
6:13:28 for both
6:13:29 incredible
6:13:29 generosity
6:13:32 and kindness
6:13:32 and also
6:13:33 cruelty
6:13:34 I think
6:13:35 Jung with
6:13:36 this whole
6:13:37 theory of
6:13:37 the shadow
6:13:38 was really
6:13:38 spot on
6:13:39 that we
6:13:40 all have
6:13:41 that capacity
6:13:42 in us
6:13:42 and accepting
6:13:44 that it’s
6:13:45 our job
6:13:45 to attempt
6:13:46 to cultivate
6:13:47 the better
6:13:47 parts
6:13:47 of our
6:13:48 human
6:13:48 nature
6:13:50 is
6:13:51 weighed
6:13:52 against
6:13:52 our
6:13:53 propensity
6:13:53 to
6:13:54 sometimes
6:13:54 be
6:13:54 the
6:13:54 worst
6:13:55 of
6:13:55 ourselves
6:13:57 I’m excited
6:13:57 to find out
6:13:58 what’s going to happen
6:13:59 it’s so awesome
6:14:00 to be human
6:14:01 I don’t want to die
6:14:01 I kind of want to be
6:14:02 alive for a while
6:14:03 to see all the
6:14:04 cool shit we do
6:14:06 and one of the
6:14:06 cool things I want
6:14:07 to see is
6:14:08 all the software
6:14:09 you create
6:14:10 and all the
6:14:10 things you tweet
6:14:12 all the trouble
6:14:12 you get
6:14:13 yourself into
6:14:14 on Twitter
6:14:15 David
6:14:16 I’m a huge fan
6:14:17 like I said
6:14:18 thank you for
6:14:18 everything you’ve
6:14:19 done for the
6:14:19 world
6:14:21 for the millions
6:14:21 of developers
6:14:22 you’ve inspired
6:14:24 and one of
6:14:24 whom is me
6:14:25 and thank you
6:14:26 for this awesome
6:14:27 conversation brother
6:14:27 thanks so much
6:14:28 for having me
6:14:30 thanks for listening
6:14:30 to this conversation
6:14:31 with DHH
6:14:32 to support
6:14:33 this podcast
6:14:33 please check out
6:14:34 our sponsors
6:14:35 in the description
6:14:36 and consider
6:14:37 subscribing to
6:14:37 this channel
6:14:38 and now
6:14:39 let me leave you
6:14:40 with some words
6:14:41 from Rework
6:14:42 by DHH
6:14:43 and Jason Fried
6:14:45 what you do
6:14:46 is what matters
6:14:47 not what you
6:14:49 think or say
6:14:50 or plan
6:14:52 thank you for
6:14:52 listening
6:14:53 and hope to see
6:14:54 you next time
6:15:02 and hope to see
6:15:02 you next time
6:15:03 and hope to see
6:15:03 you next time
6:15:04 and hope to see
6:15:04 you next time
6:15:06 and hope to see
6:15:06 you next time
6:15:07 and hope to see
6:15:07 you next time
6:15:08 and hope to see
6:15:09 you next time
6:15:09 and hope to see
6:15:10 you next time
David Heinemeier Hansson (aka DHH) is a legendary programmer, creator of Ruby on Rails, co-owner & CTO of 37signals that created Basecamp, HEY, & ONCE, and is a NYT-best-selling author (with Jason Fried) of 4 books: REWORK, REMOTE, Getting Real, and It Doesn’t Have To Be Crazy At Work. He is also a race car driver, including a class-winning performance at the 24 hour Le Mans race.
Thank you for listening β€ Check out our sponsors: https://lexfridman.com/sponsors/ep474-sc
See below for timestamps, transcript, and to give feedback, submit questions, contact Lex, etc.
Transcript:
https://lexfridman.com/dhh-david-heinemeier-hansson-transcript
CONTACT LEX:
Feedback – give feedback to Lex: https://lexfridman.com/survey
AMA – submit questions, videos or call-in: https://lexfridman.com/ama
Hiring – join our team: https://lexfridman.com/hiring
Other – other ways to get in touch: https://lexfridman.com/contact
EPISODE LINKS:
DHH’s X: https://x.com/dhh
DHH’s Website: https://dhh.dk/
Ruby on Rails: https://rubyonrails.org/
37signals: https://37signals.com/
DHH’s books:
Rework: https://amzn.to/44rSKob
Remote: https://amzn.to/44GFJ91
It Doesn’t Have to Be Crazy at Work: https://amzn.to/46bzuwx
Getting Real: https://amzn.to/4kzoMDg
SPONSORS:
To support this podcast, check out our sponsors & get discounts:
UPLIFT Desk: Standing desks and office ergonomics.
Go to https://upliftdesk.com/lex
Lindy: No-code AI agent builder.
Go to https://go.lindy.ai/lex
LMNT: Zero-sugar electrolyte drink mix.
Go to https://drinkLMNT.com/lex
Shopify: Sell stuff online.
Go to https://shopify.com/lex
NetSuite: Business management software.
Go to http://netsuite.com/lex
OUTLINE:
(00:00) – Introduction
(00:58) – Sponsors, Comments, and Reflections
(08:48) – Programming – early days
(26:13) – JavaScript
(36:32) – Google Chrome and DOJ
(44:19) – Ruby programming language
(51:30) – Beautiful code
(1:09:31) – Metaprogramming
(1:12:52) – Dynamic typing
(1:20:10) – Scaling
(1:33:03) – Future of programming
(1:50:34) – Future of AI
(1:56:29) – Vibe coding
(2:05:01) – Rails manifesto: Principles of a great programming language
(2:29:27) – Why managers are useless
(2:38:48) – Small teams
(2:44:55) – Jeff Bezos
(3:00:13) – Why meetings are toxic
(3:07:58) – Case against retirement
(3:15:15) – Hard work
(3:20:53) – Why we left the cloud
(3:24:04) – AWS
(3:33:22) – Owning your own servers
(3:39:35) – Elon Musk
(3:49:17) – Apple
(4:01:03) – Tim Sweeney
(4:12:37) – Fatherhood
(4:38:19) – Racing
(5:05:23) – Cars
(5:10:41) – Programming setup
(5:25:51) – Programming language for beginners
(5:39:09) – Open source
(5:48:01) – WordPress drama
(5:59:18) – Money and happiness
(6:08:11) – Hope
Leave a Reply