Transcript [00:00] - There are decades where nothing happens and weeks where decades happen. [00:05] And we have seen decades of progress [00:09] happen in the last nine months. If you're not recognizing the [00:14] gravity of the moment, that's the delusion. That's the [00:18] psychosis. Who would not get delirious if suddenly a genie [00:22] pops out of the bottle and says, "You can have whatever you want. [00:26] Every feature you've ever dreamed of in an operating [00:30] system, I can deliver them to you, [00:32] most of them in five minutes, a few in 20, and if we really go hog wild, it's [00:36] gonna take me two hours." I want the fastest car breaking the speed [00:40] limits. I want the diver watch that can go down the Mariana [00:44] Trench. I want the operating system that can install in less than [00:48] 60 seconds. One of the things I always loved about race cars was when I [00:51] would stumble out of the car absolutely smashed and barely able to [00:55] hold my head up, and I'd lay down on the garage floor and just think, [00:59] "Holy fuck, I'm alive." The Overton window does not open [01:03] itself. It opens one nudge at a time by people risking a little. [01:09] A little reputation, a little pushback, a little criticism, or maybe sometimes a [01:13] lot of reputation or a lot of criticism or a lot of pushback. Creating [01:17] life with another human that you love [01:21] is literally the peak experience of being on the planet. [01:28] - The following is a conversation with David Heinemeier Hansson, also [01:32] known as DHH, creator of Ruby on Rails, CTO of 37signals, creator of the new Omarchy [01:40] Linux operating system, best-selling author, race car driver, [01:44] and one of the most outspoken and prolific programmers [01:48] in the world. For the past 20-plus years, for him, [01:51] programming meant meticulously handcrafting beautiful Ruby [01:55] code. But recently, since late 2025, DHH has embraced the AI revolution and has [02:03] openly transformed himself into, once again, one of the [02:07] most outspoken and prolific agentic engineers, even [02:11] though he hates that term. So let's say [02:15] practitioners of whatever programming is becoming where AI is [02:19] doing most of the actual programming and the human steers the ship [02:23] with high-level design, vision, and taste. Yes, it's [02:27] true. DHH is at times controversial, but he's [02:31] always fearless, brilliant, and fun to talk to. This was, [02:35] once again, an intense, eye-opening, and wild [02:38] rollercoaster ride of a conversation. This is a Lex Fridman [02:42] podcast. To support it, please check out our sponsors in the description [02:46] where you can also find links to contact me, ask questions, give [02:50] feedback, and so on. And now, dear friends, here's DHH. [02:56] 13 months ago, we sat down right here to talk about programming, [03:00] and then everything changed. At that time, you were [03:04] a bit skeptical about the role of AI in the process of [03:08] programming, and then we went through this rapid evolution [03:12] of agentic engineering. So, simple question to start: How has your view on AI's [03:20] role in programming changed? Are you excited? Are you terrified? Are you [03:24] on an emotional rollercoaster ride? [03:26] - I am incredibly excited. [03:29] - You've been talking about fun a lot. [03:31] - There is none of the existential threat. That doesn't exist for me as an emotional [03:38] component. It is only there as an intellectual component, and the [03:41] emotional component for me is 100% pure, unadulterated joy- [03:47] ... and optimism and amazement that we've made [03:51] computers do this. And I find it so interesting that we talked [03:55] just 13 months ago because [03:59] it's like we talked in different universes, different eras. [04:03] I love this quote. I think it's Lenin. There are [04:06] decades where nothing happens and weeks where decades happen. [04:11] And we have seen decades of progress happen in the last nine months. [04:18] I mean, imagine you're there when the Wright brothers take flight. [04:21] Yesterday, the New York Times would write, "It's gonna be 10,000 years before we fly," [04:26] and then the day after, we're up in the skies, and just a [04:30] few years after that, there were cross-Atlantic planes. The [04:33] whole world has completely changed. What a blessing to be [04:37] there in that moment. If you zoom out and look at all of human history, how many [04:41] humans got to live within the same epoch that they were born in? They never saw that [04:49] complete change of the world and of society. And to have [04:55] been blessed with two of those [04:58] feels just such a privilege. I got to see the internet- [05:02] ... from pre-internet to post-internet, and then now pre-AI, post-AI. [05:09] What an amazing run. How fortunate. [05:12] - Yeah, but the thing is, this feels like a thing that [05:16] happened faster than anything else in human history. [05:18] - Correct. [05:18] - So I would say somewhere around December, maybe late November- [05:22] - November 24. [05:24] - This is... [05:26] - That's the exact moment. [05:26] - You know, when they talk about when one nation invades another in a world [05:30] war or something like this, it-- this is how we talk about AI changing everything. [05:34] Yeah, the... And it really just sh- shifted for many [05:38] great developers. It shifted to where AI is doing some, [05:43] basic autocomplete, maybe writing 5, 10, 15, 20% of code to writing 80% of code. [05:49] - Or 100. [05:50] - Or 100, yeah, especially if it's not a public-facing product. [05:54] - To me, that's why even when I look [05:58] back upon our conversation a year ago, I don't actually have different [06:02] opinions. I have the same opinions. A year ago, I did [06:06] not like the mode of AI we were offered. It was the autocomplete mode, [06:10] or it was the AI chatbot mode. Now, the chatbot [06:14] I actually liked, as we talked about. Great tutor right from the get-go, great [06:18] way of looking things up on the internet, [06:21] not what was gonna replace me chiseling code. But- ... then we get the agents. [06:28] And the agents start out being curiosities [06:32] for about five minutes, and then they get amazing, and then they get, [06:38] "Oh my God, is this AGI?" And all of that happened since last year, [06:45] even just within the last nine months. We have [06:48] basically these few phases here. We have AI in the [06:53] pre-agentic era. I was excited about that, but it [06:56] was not fundamentally rewriting the rules of the game for me. It was [07:01] not completely changing how I worked. I was still chiseling [07:04] code, I just had a little helper, a little sidekick- [07:08] ... who could bounce ideas off, and I could look up this [07:13] information online and so forth in a more efficient way. It was just a more efficient way to do what I was [07:17] already doing, and it didn't change the emotional connection I had to the [07:21] computer. Then we get to November 24th, 2025. Opus 4.5, to [07:29] me, was the dividing line, where suddenly... I didn't even [07:33] try it on the 24th. I think I tried it on the 26th. I give it a couple of tasks, [07:40] and I realize that the quality of the output is uncannily close to [07:47] what I would've written. And I remember just leaning back and thinking, [07:54] "What just happened?" "How did we go from this autocomplete mess that [07:59] I was talking to you about in the summer to this just a [08:03] few short months later? How did we get both the increase in [08:06] intelligence and then also the increase in [08:10] usability?" This agent harness question where [08:15] I don't know if Opus 4.5 was that much smarter than Opus 4, which [08:19] is what we had in the summer, but its ability to [08:23] instrument your computer, to use tools, to check its own work, [08:27] to apply its intelligence in such a way that you could [08:31] get real meaningful work out of it, was completely different. And I think this is [08:38] then the big change that happens for almost anyone who paid attention and started playing with [08:41] it over the Christmas break. This is what I heard- [08:44] ... from Shopify and other places with lots of employees who [08:49] suddenly had a breather, suddenly had a couple of weeks to lean back and just look at what [08:53] was going on, gave it a try, and had the same [08:58] mind-blowing experience that these agents were of [09:01] a different genre than what we had before. And then what we get to is, [09:08] I'm already excited at this point. Like, by December, I'm [09:12] already revisiting sort of all my priors- [09:15] ... and going like, "Wow, if it can do this, can it also do that?" [09:18] "Oh, yeah, it can." And again, Opus 4.5 now looks like a retarded model. [09:26] And this is the magic of this progress, is you think you've reached something... [09:32] I remember thinking at the moment, [09:35] "If this is the last model we get, I'll be set. I'll be happy." [09:39] I could live with Opus 4.5 for the next 20 years- [09:42] ... and you would hear no complaints from me because it was just so incredibly [09:48] amazing to see an agent do all this work in the way that I wanted it [09:52] done. Because it was not just about it being able to solve a [09:55] task, it was also that I could look at its [09:59] path there and go, "Yep. Yep. Maybe not there, [10:03] but almost," and it would give you two notes. You'll get to where I wanted [10:07] to go in the way I wanted to go there. You could produce code I [10:11] wanted to merge. You could produce code that actually looked [10:15] beautiful if it was written in Ruby. Rust, different question. But [10:21] this ability for the agents to truly become an extension of how I wanted to [10:28] work was very novel. But then we wait just until early spring, and [10:35] suddenly we get sub-agents. We get harnesses that [10:39] can subdivide the task, and something that would take [10:43] Opus quite a while suddenly took a fifth of [10:47] the time, a tenth of the time, because it could get chopped up and [10:50] suddenly you got eight sub-agents working for you. [10:54] But both of those two first phases of the agentic age, [10:59] to me, still felt like I had to drive. I could tell it what [11:03] I wanted, where to look for it, and steer it a little bit [11:07] when it went off, and then we'll get there, and I would go much faster. [11:11] But I had to be in the driver's seat. I had to tell it what I wanted, and I [11:15] had to be the reviewer, the auditor of what was coming out. And then [11:21] finally now, this summer, with Opus 5, Fable, and Sol, GPT Sol, and [11:29] to a lesser extent, some of the open weight models, we've [11:33] arrived at a new era where I'm not telling it where we're [11:37] going. I'm telling it the problem I have. I'm telling it the fuzzy, [11:41] vague idea I have. It tells me where we're going. [11:47] It tells me which path to take, and I will still look at it [11:50] because I'm a curious person and I like computers and I like the outcome of it, [11:55] but I really kinda don't have to. I've become optional in the part that [12:01] produces the code that picks the route. Remember when early GPS systems came out? [12:09] They were amazing compared to looking at a map, but you still wanted to pay [12:12] attention. Is it gonna drive you in the harbor? I remember these newspaper [12:16] articles. "Ah, GPS, they're terrible because people don't pay attention, they drive in the [12:20] harbor." When was the last time GPS drove anyone in the harbor? Like, that just doesn't happen [12:24] anymore. In fact, the cars now just drive themselves, right? And this is where [12:28] we've arrived at now, that I can trust. [12:33] For the domain I'm working in right now, I can trust it, [12:36] and feel completely confident that it's gonna have my [12:40] back. It's not gonna do something stupid, and if it does something stupid, it's gonna be [12:44] able to recover. [12:45] - Mm-hmm. We should mention that there's all kinds of domains that- [12:48] - Correct [12:48] - ... programmers operate in. There's... [12:51] I actually don't know, but I think the most common [12:55] domain in development is, like, web dev CRUD. You have a database. [13:00] You have a user-facing interface, and it does something back and forth, [13:04] and it could be internal to just one person, to multiple people, [13:08] to a small number of people, or to the world. And I think for that, [13:13] it's-- I mean, you could really get to the 100% of [13:17] code written by AI and really if you're a good [13:21] programmer and you have a good intuition about what's happening behind the scenes, [13:25] you can legitimately not look at the code, at least that's, that's [13:29] been my experience. I don't know how much, [13:33] prior experience with programming you need to have to kinda [13:36] know that things are working correctly behind the scenes, like intuitively [13:40] by observing the ripple effects, the symptoms of the system. But I [13:46] think for that domain, it's close to 100%, and then there's domains like you're [13:52] also operating in, which is writing a Linux distribution. There, maybe there's [13:56] more because you're obsessed with speed and all that kind of [14:00] stuff. There, maybe you need to look at the code a little bit more. Then there's maybe safety [14:04] critical systems all the way down to operating a nuclear power [14:08] plant or a self-driving car. Maybe you need to look at the code more carefully. [14:12] - Yes, but that said, AI is insanely capable at both finding- ... and fixing [14:19] security vulnerabilities. This was the whole blowup about Fable. This model was [14:23] so capable of finding holes that a [14:27] an attacker could exploit that it was simply not safe to release. [14:30] So the irony here is that when you look at that field, it [14:34] seems like we've reached levels of intelligence that [14:39] virtually no human can match because [14:43] many of these security holes are about stringing combo moves together. [14:47] You find one little [14:49] vulnerability here that by itself might not be the worst thing in the world, but then you [14:53] combine it with four others, and suddenly you have RCE, remote command execution. [15:00] Humans who are able to do that are very rare. They [15:04] usually work inside state-sponsored organizations or other clandestine operations. [15:11] They're not just out and about finding things. [15:14] So they've gotten so good at that. The Linux distribution [15:18] is why I've gotten 100% AI pilled. Because I've been working on Omarchy for the last [15:26] three months, this version that just dropped a few days ago called Quatro. [15:31] And almost right from the beginning I'm working on that version, [15:35] the agent acceleration neared 100%, and in the last [15:39] two months it has been 100%. I have not written- [15:42] - Really? [15:43] - ... any of the code that's shipped in Quatro by hand. I've reviewed the shape [15:51] of all of it. [15:52] I've reviewed the individual lines of anything that's critical in the model [15:56] layer of the system, and I've not looked at a bunch of the UI code. [16:02] I have not looked at a bunch of the auxiliary code, and [16:06] I've not written any of the new functionality entirely by hand. But then [16:13] the web part, actually evolving Basecamp and Hey, our [16:17] professional products that have lots of users and are relatively large code [16:21] bases, have proven surprisingly tricky [16:25] to fully accelerate with agents. We just released [16:29] Basecamp 5 not too long ago. That was the first [16:32] product at 37signals that was really agent accelerated. [16:36] Because we were in this final sprint phase from around [16:40] February. By then, agents were already good. [16:44] And we had this early surge of, "It's solved. We can just have the [16:49] designers do the programming. They know what features they want. They know what shape [16:53] they want it to take. Let's just-- Let them vibe." And we let them vibe. [16:59] And we ended up with a lot of PRs that individually perhaps could have been [17:05] justified for a hot moment, taken all together, [17:09] destroyed the architecture of the system. [17:10] And we actually had to clean up manually, mop it up by [17:14] hand, by human hand, to get back to an architecture that [17:17] felt cohesive and coherent. So we still [17:21] have a bit of that-- that was February, by the way. Things are quite different now. [17:25] - Well, hold on a second. What's the lesson from that? Is one of the lessons from that that you have to be [17:29] a programmer at this stage to be able to vibe code? [17:33] - To be able to vibe code on existing substantial [17:38] - I see. [17:38] - ... code bases, even if they're crud, if you wanna [17:41] retain the element of architecture that got that system to where it was. [17:45] Now, that's also a point where I've stressed many [17:49] times that when people accuse vibe coders of [17:53] being slob generators, I go right back at them and say, "Have you [17:57] looked at the average programmer's output?" That is some [18:01] other slob too. If you've looked at behind the scenes of many [18:05] great companies and what their code bases look like after there's [18:08] been 3,000 humans through them, they're awful. Absolutely awful. [18:14] - Can you tell me the intuition you have? [18:17] I seem to just, stepping back and observing the different apps that we all rely [18:21] on, I don't know, Adobe Photoshop, all this kind of stuff. There seems to be the [18:24] progress on development there has not accelerated. [18:29] So why is it, what lessons can you draw from Basecamp, like [18:32] well-established, huge user base? [18:35] Why aren't we seeing, like, super rapid increase in, like, [18:39] new updates, features, all this kind of stuff in these well-established apps? [18:44] - Multiple reasons. I'll start with the first one that's the most critical. As [18:48] soon as you're having human teams work together on [18:51] something, the bottleneck is rarely [18:55] implementation. It's human bandwidth and communication. [18:59] When you have a product manager and a couple of designers and a VP above them and a [19:06] CTO above them, and everyone wants to be part [19:10] of the shaping process because we're all justifying why we're here, [19:14] that's where all the productivity goes to die. The revelation I've had working on [19:22] Omarchy the last three months is that to get that magical 10X, [19:30] 100X, in a few rare cases, 1000X productivity boost, you have [19:37] to interact with the agents directly, and you cannot intermediate that [19:44] bandwidth with another human because it's simply too slow. [19:49] And on the one hand, that's a bit of a bummer. I mean, I like [19:53] humans, and it's great to work together. But it also means we need to temper [19:57] our expectations with what these agents can do if [20:01] it's humans driving it, and you have three layers of approval and all the [20:05] other machinery of a large corporation. The implementation part is only a small [20:13] segment of it. The other thing I'd say is that most organizations don't know what [20:20] they want. They don't know how to make it better. They're not [20:24] bottlenecked on implementation. They're bottlenecked on [20:28] ideas. They're bottlenecked on vision. They're bottlenecked on [20:32] taste. And if you don't have those element [20:36] in excess of your implementational capacity, [20:40] it doesn't help. So you can make a lot of shitty ideas come true, then what? [20:44] Are you gonna ship that? [20:46] That sounds like, I don't know, something coming out of Microsoft. That's not what we're trying to [20:50] replicate here. That process is not actually... Because we already had [20:54] this. If you step back for a moment and think of [20:58] the towering organizations we have who have had tens of [21:03] thousands of programmers at their disposal. [21:06] I mean, I'm picking on Microsoft here. I love Microsoft some of the time, but I'll pick on [21:10] them in this case because they have had endless resources, endless [21:14] programming capacity for decades, right? This is what's [21:20] showing us that just being able to write a lot of code does not [21:23] produce great compelling software. Now, the other thing is [21:29] we've had this capacity for about six months. That's not very long in human [21:37] life cycle capacity of internalizing what's going on. [21:40] And I think it's actually funny that the critique of AI is, [21:45] why isn't it going faster? [21:47] What are you talking about? We've not had any other form of progress that has moved as fast [21:51] as AI, and you're impatient because in the last three months we haven't [21:54] rewritten the whole world and made it a utopia of software goodness? [21:59] - You're basically saying everybody should be switching to Linux now. One of the arguments is, [22:03] like, we can rewrite all the software that's not available in Linux in Linux. [22:06] Linux has been the love of my life for many years, but one of the reasons I'm still attached to Windows and [22:10] now, uh, Mac is because of video editing, Premiere. [22:15] - We're gonna fix that. But- [22:17] - So the question is, who's gonna build Premiere [22:20] and Photoshop for Linux? And it feels like one person can now. [22:27] - 100% one person can. [22:28] - And so, and I'm allowed to be impatient. In fact, me or anyone else, [22:35] impatience is the first step of doing it yourself, right? Like- [22:40] - Correct. [22:40] - ... and there's a community of tens of thousands of people that use Adobe [22:44] Premiere or DaVinci, all these non-linear video editors, that [22:48] know the frustrations. Everybody shares them. You can look at Reddit. You can look at [22:52] the forums. Everybody knows it. Uh, I don't know what it is. It may be the [22:55] management. It may be the meetings. All the things you've always discussed is the, [23:00] The bureaucracy that's inside companies that's slowing [23:04] everything down in the development of features. But it feels like [23:08] there-- if you just let some of the developers loose with a bunch of agents, [23:12] you can fix all that. But again, based on everything you're saying, [23:16] maybe the way to do that is to start over from scratch, maybe through open [23:21] source, or somebody launches a new company that within [23:25] large companies now it's hard to, [23:29] to really accelerate into the agentic era by letting developers just build. [23:33] - This is the classic innovator's dilemma. These companies have gotten so good, [23:39] so established at the old way, and therefore their entire [23:43] structure, management layers, processes are tuned for a time that no longer exists. [23:52] But you can't pivot that. These are super tankers. It [23:57] just doesn't happen. This is why [24:00] we're finally getting this upset in the technology industry. [24:04] For a while, I was very upset about the duopoly [24:08] between Apple and Google on mobile, because it felt like mobile was the most [24:12] important computing platform that we had, and I could not see [24:16] a path to unseat either Google or Apple [24:20] sitting on top of that, controlling everything, taking their toll booth money. [24:26] But the game has changed. This is no longer the most important [24:30] platform. Mobile phones are important, but there's also a lot of [24:34] other form factors coming, whether it's glasses or it's [24:38] earpieces or whatever else have you. [24:41] It's all in play now, but the computing platforms [24:44] themselves are in play for the first time in [24:48] probably 40 years, if you look at the desktop. Linux has been around since '91. [24:54] It's not taken off or taken over on the desktop. It's taken [24:58] over everything else. All the devices you have on your desk, your [25:02] fridge, your toaster, everything runs Linux, [25:05] except for your computer. Now, funnily enough, your Android is actually Linux, but [25:12] wrapped so sufficiently that you can't really recognize [25:15] it. But now there's an opening, and the opening [25:19] is exactly as you say it. If there's a piece of software you [25:23] depended on that bound you to Windows, it is completely within reach for [25:30] you personally to start rewriting it. And maybe you won't get to [25:34] 100% coverage, but this is the old joke about Microsoft Office. [25:38] "I only use 5%." Yeah, well, we all use a different 5%. [25:42] Well, what if we all just build our own 5%? [25:45] What if I just took the functionality that I need and just did [25:49] that? That is a completely different challenge and [25:53] one agents are incredibly capable of doing right now, [25:57] today, and I've done it a lot of times over. So one of the [26:01] amazing things I've found with the latest agent engaged is I have [26:04] become a polyglot programmer, something I was absolutely not before. I was a Ruby [26:13] programmer-- ... first and foremost, and then I dabbled a little bit in Bash-- [26:17] ... when I had to. And in the last two months, I've [26:20] written C++. I've written three applications that have [26:24] shipped in Omarchy Quattro. I wrote a [26:29] writing app. I was using this app called Typora, which is a very nice app- [26:32] - Great, great app [26:33] - ... which in itself is based on another app called iA Writer, which was my real [26:37] love on the Mac- ... for a clean, simple Markdown [26:42] writing environment. That's where I write all my essays. [26:45] And then I moved to Linux, and I couldn't get iA Writer, [26:48] so I moved over to this other tool called Typora. It was a piece of [26:51] shareware, and it had a lot of features I just didn't need. And about [26:58] six weeks, seven weeks ago, I thought, "Do you know what? I only need 5% of Typora," [27:02] which is already a basic app. [27:04] I literally told the agent to get going, that I wanted it written in [27:07] C++ and Qt, because that would fit well with the [27:11] aesthetic of what I was building with Quattro. [27:14] And in, I think, about 20 minutes, it had the first version. I [27:18] started using it, and it wasn't quite right. Within two days, [27:22] I'd given up Typora, and I wrote and have written [27:26] all of my essays since that moment in Omawrite. [27:30] - Can I ask for your advice and your vision about something? So what I find [27:34] with agents, you can actually write something like a replacement for [27:37] Typora that is perfectly customized to you, to your needs- [27:42] - Correct with just one user in mind. And then there's a version of that that is- [27:50] starts with one user in mind but expands to a larger audience. So I've actually [27:53] written a large number of software just for me, and I find it [27:58] easier to do and better to get my situation done. For [28:01] example, I have a video editor I've written, which is very easy to do just for me. [28:06] - I've never, unlike you, built something that's used by a large number of [28:10] people, and I find that a bit scary and intimidating. So, [28:14] like, at this, with this agentic age, how do you take a step [28:18] to actually build something that solves your problem, which I think is a [28:22] beautiful way to build, [28:24] but also expand it to actually useful for other people? Like, is there [28:28] advice you can give, and do you also see the problem of how [28:32] easy it is to just build a tool for yourself? [28:35] - Yes, but it is simpler than you think. By the time you're done [28:39] building the tool for yourself, you simply tell your agent to put it on GitHub. [28:43] You don't even have to do anything else. It will figure out how to put that repo on [28:47] GitHub. It'll write a nice README. It'll start using GitHub releases so [28:51] that you can track things. It'll actually be a better software [28:55] maintainer than you could ever be- [28:57] ... because it is far more patient, it is far more diligent in [29:00] doing the drudgery of managing open source software than you are. [29:05] And you can simply get on with the joy [29:09] of using the software that you built and evolving it as you see fit. Now, [29:13] this gets into the big argument we've been having in open source for a while. Is [29:18] AI contributions good or bad for the maintainer? [29:23] There's a lot of maintainers right now who are quite [29:26] upset about the fact that they're suddenly [29:30] getting a huge influx of pull requests, of [29:34] contributions from people who may not be the best programmers or programmers at all- [29:41] ... towards their software. I look at that argument and go, "Are you kidding me?" [29:47] Here is a vein of free contributions that you can take or don't take, [29:57] but you're complaining about the fact that they're there? It sounds straight [30:01] out of- My steak is too juicy and my lobster too [30:04] buttery. What are you complaining about? [30:07] This is the most amazing thing. This is what we proclamated for so [30:11] long was going to be the magic of open source, that we could [30:15] all contribute to it, but it was, of course, never true. There was only a small [30:19] subset of people who contribute to open source, and that was the very highly skilled [30:22] wizards. So this is a bit of a reformation moment. We had this [30:26] disintermediation between us and the computer, and it was this [30:31] class of clerics and priests called programmers, [30:35] and suddenly they're being disintermediated here by was [30:39] it the 95 theses by Luther in 1500s, [30:43] nailing them to the door? And one of those was very clearly about [30:47] the intermediation, that you should have direct access to the higher intelligence. [30:51] - Mm-hmm. But don't you need the wizards to keep a high bar of excellence in the code [30:55] base? [30:56] - 100% you do, which is also something that's always been true about open [31:00] source, which is the second argument that really grinds me. I've been [31:03] running open source projects for 25 years. I have literally looked [31:07] at the output of thousands, if not tens of thousands of [31:11] programmers. I feel like I have the statistical basis to [31:15] assert that most programmers, they suck. [31:21] And I don't mean that in the way it sounds. [31:24] That was why I paused for a hot second here. I mean, they suck in the sense [31:28] that they don't write the code I want to have written. They don't [31:32] prepare their bug reports with all the relevant [31:35] information. They don't detail their pull requests with the [31:39] why. They don't bother to fill in [31:42] needed code comments. They don't double-check their work. They don't [31:46] write unit tests. They don't do all of these things it takes to create [31:50] good software. But do you know who'll do all that stuff? Agents, [31:54] if you tell them to. They're very diligent at following your instructions, [31:58] most of the time, sometimes to a fault. But it actually means that if you take [32:02] the median programmer and their pull requests towards [32:06] an average open source project, [32:09] they're already getting outclassed by agents. I would [32:12] rather get an agent-written pull request to one of my [32:16] projects than I'd get one written by a human, and it's not just [32:20] because the quality's better. It's also because [32:24] I feel a lot less bad if I just reject it. You didn't even [32:28] write it, so I can simply look at what your agent wrote on your behalf and [32:31] go, "Eh, don't want it." [32:36] That's always been true in open source, and in fact, I think this is one of the problems with [32:40] open source maintainers. They have way too much ball of neuroticism and anxiety that [32:48] requires them to look upon any contribution as an obligation on their part to do [32:56] everything to get that to land in the code base. That's not [33:00] true at all. You can simply say, "No," or even better, you can say, "No, thank you." [33:05] And if you get into the mode of realizing that your project [33:10] is allowed to exist and evolve according to your [33:13] vision, according to your roadmap, it becomes so much [33:17] easier in the agentic age to decline the contributions you don't [33:21] want because you don't even inconvenience or hurt [33:25] the feelings of a human. It's just a clanker, and the clanker won't [33:29] mind. In fact, the producers of clankers, the [33:33] labs, love when you spend tokens in vain. They get paid just the same. [33:39] So, in my opinion, this is the absolute best [33:42] time to ever have been an open source software maintainer. [33:46] Not only do we get this wealth of glorious pull requests made by [33:53] agents with all the boxes ticked, we also get to tap into a [33:57] creativity of people who did not have access to contribute to a project before. [34:02] I've been running the Omarchy project now for a little over a year, [34:07] and in the last three months working on Quattro, I have merged over 1,000 pull [34:11] requests. Quite a lot of those pull requests were written by people who were [34:16] not classical programmers, or were programmers in other domains, not [34:21] Linux operating system or distribution development. [34:25] They were able to contribute their good ideas because of agents, and I got [34:29] to cherry-pick the very best of that- ... because it was there. Otherwise, those [34:36] ideas would just have lived inside their heads. Again, [34:40] Is- that is not the purpose of open source, that we tap into the collective [34:43] intelligence and creativity of the whole goddamn planet, [34:48] and we channel that towards a commons [34:51] where we all benefit from the combined efforts of everyone. [34:56] Now, there's currently, I think, about 400 unmerged pull requests on Omarchy, [35:01] about double what it was a week ago. So the acceleration is [35:05] real, but so are the tools. [35:08] I'm not reviewing every pull request anymore. I haven't been reviewing them for [35:12] quite some time now. I have the agents- ... review them for me- [35:17] ... and then they will give me a summary about whether something is ready for the [35:20] decision, the human decision. Should we merge or should we not merge? [35:25] I don't need to look at all the pull requests that are either wrong, duplicated, [35:30] bad. An agent can sort that chaff away from me. I just get to look at the pearls- [35:36] ... the good ideas that are ready to go, the bug [35:39] fixes that the agent has validated in a VM on my behalf. [35:44] All the drudgery of replicating and managing open source [35:47] projects is evaporating at lightning speed, and we are left with the, [35:55] with the golden juicy parts, the bone marrow of software development- [35:59] ... deciding what should this thing do and where should it go. [36:03] - Do you think the good ideas, ultimately the kernel of the good ideas [36:06] originated in the human mind, so the individual contributors [36:11] Like, can it be done by agents, or is the PR ultimately requires a human idea? [36:18] Like how to improve Omarchy, [36:21] all those incoming... Or can it all just be a pool of agents? [36:24] - That was the mode and the way I was thinking about agents [36:28] in the first agentic age from November 24 to February 28. [36:35] I thought all the ideas would originate with the humans. They would tell [36:39] their agents what to build, and off they went. [36:43] I don't think that's true anymore at all. I have seen things you people wouldn't [36:47] believe, ideas coming out of models so great that it makes me humble- [36:54] ... as a person who otherwise prides himself on having good ideas. [36:59] The agents are incredibly capable of creative thought, [37:04] and folks who are still stuck in the analysis that agents are parrots- [37:11] ... just regurgitating the ideas that are [37:15] already there are delusional about the progress that's been made in [37:19] the last six to nine months. [37:21] - So some people listening to you right now will say DHH is suffering from the old case [37:25] of AI psychosis. Can you steel man the case that you are in fact experiencing in [37:33] a state of delusion, like One Flew Over the Cuckoo's Nest, and can you argue against it? [37:37] - I'm in a state of delirium. That's what the state I'm in. [37:41] Because I have been working with computers for 40 years, [37:47] and I've never seen the things that I've seen in just the last two months. [37:54] A whole career, a whole life dedicating to the love of computers as my main [38:02] focus for the working hours and then some, [38:05] suddenly completely upended, suddenly completely rewritten. Of course I'm delirious. [38:11] Who looking at this reality is not? If you are not delirious or at the very least [38:19] very excited... Actually, I guess that's not even true. If you're not recognizing [38:23] the gravity of the moment, that's the delusion. That's the [38:28] psychosis. The psychosis is believing that the world is barely different. We [38:32] just have some electronic parrots reciting things to us. Now, in my opinion, the [38:39] reason this argument is actually brought up is because people are not able to see [38:43] the fruits of the progress. That goes to your point earlier. [38:47] Where is the amazing software? Why isn't American GDP running at 12% year over year? [38:55] First of all, give it a minute. It hasn't even been a year, goddammit. [39:01] But second of all, I feel on my own account, I have actually brought the pudding. [39:08] Omarchy Quattro launched on Friday. It's been [39:11] downloaded by tens of thousands of people. And they like it. They like it a lot. [39:17] - We should mention that going to Perplexity here, Omarchy is a highly [39:21] opinionated Arch Linux-based desktop distribution centered on the Hyprland [39:25] Wayland tiling compositor. It was created by David [39:28] Heinemeier Hansson, DHH, as a polished [39:32] developer workstation set up with a cohesive visual [39:35] style and many everyday tools already configured. [39:39] - Let me put it. Omarchy is a beautiful, modern, and opinionated Linux system. [39:45] It's an alternative operating system to macOS and Windows, [39:49] and it's freaking amazing. [39:50] - And the Quattro thing is you're pushing towards the age of agents. [39:54] - That's right. That's the latest version that we just dropped out, which is also funny. [39:58] The Omarchy project is only a year old and a [40:02] little bit. I started it last summer in between sessions at the 24 Hours of Le Mans- [40:08] ... where I had watched one too many YouTube videos on [40:12] Linux Rising and got bitten by that bug. Started working [40:16] on this second iteration of my [40:19] attempt at creating a better Linux operating system. The first iteration we talked about [40:23] last time was called Omakub, was built on top of an existing system called [40:27] Ubuntu, and it was fine. But the ambition I was able to pour into the new [40:33] version, Omarchy, because I started seven layers deeper down the [40:37] stack, was completely different, but it was still done in a pre-agentic [40:41] world. I wrote all those batch scripts by hand in the beginning, [40:47] and then I got to see the midway point where things changed over. [40:52] I did a couple of versions of Omarchy that had partial agent [40:56] acceleration, and then three months ago, [40:59] it was full throttle, 100%, everything is written by agents but steered by me. [41:04] And that just ended up being [41:07] a very different experience and a very different operating system [41:11] because I was suddenly granted a limitless ceiling on my ambition. [41:17] I could look at any feature in Windows, on Mac, on other Linux systems and say, "I [41:25] want that," and the agents would deliver. So everything I wanted was suddenly [41:31] within reach, which meant that I got a little delirious. [41:36] Who would not get delirious if suddenly a genie pops out of the bottle [41:40] and says, "You can have whatever you want. Every feature [41:44] you've ever dreamed of in an operating system- [41:47] ... I can deliver them to you, most of them in five minutes, a few in [41:51] 20, and if we really go hog wild, it's gonna take me two hours." [41:54] - Mm-hmm. Have you seen Requiem for a Dream, the movie? So the, [41:58] There's a drug-like effect here. [42:00] I find it personally-- We'll talk about many levels of this, but it is overwhelming [42:07] how much power is placed in our hands so suddenly, [42:11] and it's very hard to know, it's like with "The Hobbit" or something, what to do [42:15] with it, and I find myself truly overwhelmed with the multitasking, [42:20] On the verge of almost burnt out. Super excited about so many things, but ultimately [42:28] looking back, you want to focus on one thing and really ship [42:31] - I don't have that sense. I don't have the sense of overwhelm. I don't have the [42:35] sense of dread. I don't have the sense of distortion because I have a mission. [42:42] I'm going somewhere, and therefore, I can channel all this new power towards- [42:48] - Yeah, it's wonderful [42:48] - ... a singular goal and outcome, creating the perfect [42:51] computer. And therefore, all my investigations with AI are focused towards [42:59] that end. Now, I also have a day job. [43:02] And we also use agents there, and that's also targeted towards sort of [43:06] specific outcomes. But with the Omarchy experience, I got to tap in [43:14] straight in the back of my head and increase [43:18] the bandwidth between ideas arriving in my [43:21] brain and software emerging on the screen. It was like going from dial-up- [43:28] ... to fiber. I think on your podcast, Elon talked about the actual human bandwidth- [43:35] ... that Neuralink and other projects are trying to accelerate. [43:39] Like, the bandwidth we're communicating over right now is quite low because [43:46] we're limited by our cognition. We're limited by the rate of [43:50] speech. You're not limited by those things when you're working with a [43:53] swarm of agents. Now, let me caveat this by saying, [44:00] if I'd heard myself talk like this- [44:03] ... nine months ago, I would probably have used the label AI, [44:07] AI psychosis. I think it would be fitting because [44:11] nine months ago when people were talking like this, they weren't shipping, [44:15] and I think that's the ultimate difference, that there were people who saw this [44:19] early. I was not actually that early. As we've talked about, I [44:22] was rather skeptical, and I was using AI in certain ways, but I was not [44:26] the first person who downloaded Claude Code. I think Boris released that in end of [44:30] February. I don't think I installed Claude Code until [44:34] September. So there was about six months there where pioneers [44:39] saw these glimmers of what the future was gonna look like. It wasn't there [44:43] yet because the intelligence wasn't there. The harnesses weren't there, but they could [44:46] see the glimmers. I couldn't. Tobi, Tobi Lütke, the CEO of [44:50] Shopify and now my partner in crime on this [44:54] Omarchy project in part, he's gotten pilled with Omarchy as well. [44:58] He saw these things very early, and he tried to tell me, [45:03] and I wasn't seeing it. I was not seeing what he was seeing. [45:07] - You were a hater. [45:08] - Yes. I was still on Earth. And he was... He had already boarded the rocket and was [45:15] heading towards space. I remember actually reading his [45:19] memo to the company, the AI memo, and thinking, "Ah, seems a little much." [45:24] Like, you're making a big deal out of something that I cannot yet [45:29] feel is a tangible thing. [45:32] Because where's the output of this? I try using it. It writes code I don't like. [45:36] It wants to interrupt me all the time. Where are you getting this from? Uh, [45:41] so I get it. I totally get it. If you've not seen what [45:47] the current quality of intelligence can produce, [45:51] of course you're gonna look at someone and go like, "They sound a little nutty," because [45:55] all your experience up until this point would tell you that they are nutty. Because [45:59] if you look at the history of computer programming, for the last 40, [46:03] 50 years, people have been promising that [46:07] regular people could write code just by talking. We're gonna have fourth [46:10] generation languages. Lisp was once upon a time [46:14] presented, Smalltalk was presented as these environments that would [46:18] let regular people write their own applications, and none of it came [46:22] true in the sense beyond, like, Microsoft [46:26] Access databases or Excel spreadsheets. That, those are end [46:30] user programming environments, but it's nothing like what we're able to do now. [46:33] And then, I mean, I'm not even talking about end user. I'm talking as me, [46:37] someone who's been programming for 25 years, seeing [46:41] the output and the acceleration and the quality and then shipping it, [46:45] and I think that's what's gonna change the entire conversation [46:49] quite quickly. The few laggards who are still on the fence [46:52] about whether this is actually useful, who are still trapped in a meme [46:56] from early '25 about mechanical parrots, [47:00] they're simply going to be overwhelmed by the evidence that's about to [47:04] flood over them. [47:05] - So I hope to see, [47:08] projects like Omarchy, several of them that, like, really show agent first. [47:15] - It's coming. All of it is coming. [47:17] - In the spaces, in the silly spaces that I already mentioned, like video editing, all [47:21] these kinds of apps that are like Typora- [47:24] - Yes. [47:24] - ... this kind of stuff. [47:26] - It's gonna come, and I've already seen the early inklings of this. [47:30] One of the really neat features about Omarchy is that it has [47:36] a far more robust plugin system that allows you to extend your [47:40] operating system and rewrite it really in terms of its [47:44] user interface and its panel and its features [47:47] by creating your own plugins that can be cloned off of tools we ship in the box. For [47:55] example, say you want a different calendar. Omarchy ships with a calendar. You [47:58] click the little clock. It pops up a calendar, and it doesn't [48:03] have iCal support, for example. It doesn't consume your appointments. [48:07] There's about 17 implementations of that already, and in [48:11] three days, we had 330 plugins on the Omarchy plugin marketplace. I have [48:18] never seen growth like that with any project [48:22] I've ever been involved in. I've never seen participation that broadly. [48:26] I've never seen that many people be able to create software that's [48:30] meaningful for them- Also be usable for others so quickly. All of [48:36] it is driven by the fact that Omarchy ships a set of [48:40] skills that tells any agent you bring to it how to [48:43] create extensions to the operating system, and [48:47] therefore affording you the vision of the true malleable... [48:53] I was about to say agentic. I hate that fucking word. [48:56] And the reason in part I hate that word is, first of all, it's become marketing [49:00] slob speak- ... at this point. Like, it's just slapped onto everything. [49:04] I wish we had a different word that just meant AI doing stuff. [49:08] - Vibe coding feels wrong, too. [49:09] - It does, because vibe coding to me smells exactly like script [49:13] kiddies did in the early 2000s. [49:15] People applying PHP scripts they just downloaded offline they don't [49:19] understand anything of. [49:21] And while, I mean, that's true in the sense that much of the vibe coding, [49:25] including my own vibe coded projects, and as I just mentioned, I have several. [49:29] I've written things in C++. I've written things in Rust. [49:33] Rust. I hate Rust with a passion. Rust to me [49:39] is like pouring acid in my eyes when I have to look at the code. [49:42] - Wait, wait, wait, wait. Why do, why do you hate Rust? [49:43] - It is, in my opinion, the ugliest programming language- ... that has been invented- [49:47] ... in probably the last 40 years. [49:49] - So it's the opposite of Rails and Ruby. [49:50] - It's the opposite. But- [49:53] - You've written it [49:53] - ... I've written applications in Rust because the output [49:57] of Rust is actually amazing. The memory safety, the fact that it's a system [50:01] language, the fact that it's highly efficient and so forth is [50:05] incredible. So Rust, to me, can both be [50:09] the most repugnant programming language ever devised for [50:13] human consumption and a wonderful platform for agentic engineering. [50:19] These two truths can coexist easily in my head. [50:24] - Do you think that there can be a point at which we can just call agentic engineering [50:28] programming? Can we just change what programming [50:31] means? 'Cause who's actually going to be programming the old-school way [50:35] in a few months? [50:36] - I don't think we should reuse the term because for me, programming [50:40] implies an understanding of certain primitives, [50:45] loops, conditions, variables. All the constructs of programming languages [50:52] are what constitutes programming itself, not the creation of programs. [50:55] Because you could say in the pre-agentic era, well, your [50:59] CEO is programming. He's hiring a bunch of programmers, he's telling them what to do, and [51:03] out comes software that he can sell. [51:05] Eh, I don't think most people would call that CEO a programmer, and I don't think we should call [51:09] the vibe coder a programmer either. And vibe [51:13] coding, if we define it here, is you tell an agent to build software for [51:17] you. You do not look at the implementation. That, to me, is what separates vibe [51:20] coding from programming or, let's say, agent-accelerated development. [51:26] - But don't you think, so to push back a little bit, [51:29] don't you think a programmer, old-school programmer, you, doing [51:33] agentic engineering is a different kind of agentic engineering than [51:37] a non-programmer doing agentic engineering? What I mean is, if you know [51:42] what a for loop is, if you know what function programming is, if you know some of the [51:46] basic good principles of software engineering, the way you do [51:50] natural language-based agentic engineering will be different and more [51:53] systematic, and this, the scale and the [51:57] variety of things you can actually build is much bigger than a vibe coder. [52:02] - I'm just gonna extend the pro case here a little bit just for the sake of the argument. [52:05] - Right. [52:07] - I actually think for a while it was to my deficit to know as [52:14] much as I know about programming because I [52:18] was instructing the agents to do things as I [52:22] prescribed them to do, and they were very good at that. And in the [52:25] first agentic moment, let's not call it an era, it was something [52:29] that lasted three months. Moment. In the first agentic moment, that felt [52:35] very productive. I could get more productivity out of telling the agents what to [52:39] do in the way I would've done it, and I used all of my [52:42] experience as a programmer to do just that. [52:47] Then I was a little late on the next moment, and the next moment allowed me, allowed [52:54] anyone, to describe outcomes- ... to describe problems to the agents [53:00] and get better solutions than if you had a programmer prescribe the path. [53:05] - See, okay, so we're having fun arguing here. Well [53:09] so are you suggesting that there's problems for which [53:12] programmers are worse than non-programmers at agentic engineering? [53:16] - 100%. And the reason I say that, let's define it here. [53:20] The reason I say that is there's a lot of programmers who are not [53:24] very good product managers. Software [53:28] is product management. What should it do? Who should it do it [53:32] for? How should it do it? How should it look? What are our priorities? What [53:36] do we start with first? What does version one include? All of those skills [53:42] are not easily or equally distributed across all programmers. [53:46] And in the agentic era where you are letting [53:50] an agent, an AI, do the implementation, these are the skills you [53:54] need. And I happen to sit in both camps, and this is why I love this [53:58] moment. I still get to live a little bit in the old world where I look at the full [54:02] implementation because there are domains and areas where I feel [54:06] that still brings value, and then I also live in the future. [54:10] And as I said, when I created Omawrite, I've not looked at a [54:14] single line of that C++. I actually made it a point to [54:18] myself that I was gonna treat it as an experiment. This is 100% a black box. [54:22] I will treat it as though I was any other user who had [54:26] opinions about how their digital typewriter should work, and [54:29] therefore felt like it was a fair experiment as [54:33] if a writer of any other sort who had [54:36] opinions about how software should be done and how it should work. As you mentioned, [54:40] video editors who know exactly where they don't like what Adobe [54:44] Premiere's doing and how it could be better, but don't have the capacities to [54:48] improve it- ... how that could be. [54:50] - The pushback, though, I think what programmers do well, good programmers do [54:54] well, is systematic design, like think in terms of systems- [54:59] - Correct [54:59] - ... and rigor. [55:00] - Yes. [55:00] - And I think still, and probably for a long time to come, [55:04] even natural language-based control of agentic systems will [55:08] require a certain kind of rigor. Not overly [55:11] structured rigor, but really explain very [55:15] specifically the goals of the system, how to [55:19] do the verification, what kind of security testing. You wanna do all [55:23] those kinds of things. Although then to push back on that, the [55:27] system will... should be smart longer term. [55:28] - I would've said the same thing six months ago. [55:30] - Yeah, so this has changed. [55:30] - And I think the same thing would've been true six months ago. What I have found since, [55:35] especially even just the last few weeks of the [55:39] agentically accelerated development of Mach-E, is that [55:43] more often than not, I have the humility to recognize that the agent knows best. [55:49] - You can legitimately say, "Make sure it's secure." [55:52] - Correct. And it would know more about what that entails. Now, you're laughing- [55:59] - What a crazy world [55:59] - ... but it's true. And in fact- [56:01] - Oh my God [56:02] - ... a good parallel to this is the AGENTS MD/CLAUDE MD files. There was a hot moment [56:09] where it was all the rage about micro- optimizing that. Oh, you tell your agent this- [56:14] ... you tell your agent that, and you ended up with this huge file of instructions [56:18] for your agent. One of the things that Boris, working on [56:23] Claude Code, shared in an interview recently about Opus 5 was [56:27] that the system prompt that they ship for Opus 5, and [56:30] presumably also Fable, shrunk by 80% [56:35] because the agent not only needed far less human [56:38] instruction, it was actually being damaged [56:43] by overly prescriptive humans. And any programmer [56:47] who's had a pointy-haired boss knows exactly what that is like. [56:51] When the boss walks into the room, doesn't know anything, [56:55] starts telling you how to program, how to code. What do you [56:59] do? You sulk. You write shittier code if [57:03] you're mandated to do things that are against your better judgment. [57:06] Why would an agent not be the same? [57:08] - Actually, to push back against myself, I do find the actual skill I'm currently [57:11] developing, which I along those lines is probably what everybody's trying to [57:15] develop, is not to overspecify things, is to get out of the system's way. [57:20] - Of course. [57:20] - Is to specify enough to provide a kinda high-level vision and guidance. [57:25] - It's even better because you don't even need that. The [57:28] fundamental insight of modern software development came from the agile [57:32] software development movement. In the late '90s, early 2000s, a group of [57:38] smart, honest, and brave people came together and said, "The way we've been trying to [57:42] do software development for the last 40 to 50 years has [57:46] not worked, will not work. We've been trying to [57:49] specify upfront what software should look like. We thought [57:53] that we could ask humans what they wanted, write it all [57:57] down, apply our systems thinking and our rigor to a [58:01] spec sheet, hand that spec sheet over to a group of programmers [58:05] who would then implement just that, and everyone would be happy." Well, guess what? [58:09] No one was happy. Because no one knows what they want until they [58:12] receive it. You don't know what a program should do until you [58:16] play with it. So in the agentic age, you should [58:19] resist the temptation to be overly specific upfront. Be as [58:23] vague as you can to manifest something, then interact with the something. [58:29] The way you arrive at good software is you write a little bit of software, [58:33] and then you try to use it. It is in the process of using software that you [58:37] discover what you really want. [58:38] It's where you discover what's important and what's not important. And [58:43] agents are incredible at allowing you to [58:46] bumble into this experience of realizing what you want because [58:50] you don't know what you want. [58:51] - Mm-hmm. And I've actually done something similar to what you suggested, which is [58:55] implement different designs and totally different implementations, and then [59:01] I create HTML pages for myself, PHP pages, where I vote on [59:05] what I like more and so on. [59:06] And it does this iterative thing, and it's very nice and fun. The interaction with [59:10] the agentic system, if you create a nice interface for yourself, it can be super fun, [59:14] and you're focusing on the design part and the most fun parts of the design part. [59:18] - Correct. And this is what humans are really good at. [59:20] - Yeah, taste. [59:21] - Differential evaluation. You give me three [59:24] options, I pick one of them. Now, humans actually fall off a cliff if [59:28] you give them 22 options. That's the paradox of choice. But you give them three options, [59:32] they very quickly within a split second will tell you what they like. [59:36] There are all these ways that exploit the fact that [59:40] humans will make these snap judgments that are actually pre-intellectual, [59:44] right? Like, they're coming from the gut, and then they arrive up in [59:48] the, in the brain, and the brain tries to rationalize why the [59:51] gut said what it said. And if you're [59:57] willing to let go of some of that intellectual pre-processing [60:00] rationalization and simply let your gut drive, the agentic age is a revelation. [60:06] - So this is a fascinating thing to ask you because you have sort of [60:10] famously for a long time talked about, like, detailed chiseling of beautiful [60:17] Rails Ruby code, and now you have switched [60:21] in a matter of months to not doing that. So, like, what is [60:24] your current setup look like? 'Cause you're, I assume, are still [60:28] looking for the beauty, for the chiseling, for the crafting, but you're just [60:32] crafting in a different medium. [60:35] - And at different levels of abstraction. When I'm working in Ruby code, and we have a lot [60:39] of Ruby code because it's in our entire business, and I'm asking agents to make changes [60:43] to that code, I still sweat the details. [60:48] What I'm coming to realize is that the economic payoff [60:54] of that sweat is diminishing rapidly. The reason [60:59] why I, for 25 years, was sweating every line of [61:03] code so judiciously was because I knew the payoff of keeping an architecture [61:10] coherent and malleable was software that could change and evolve- [61:16] quickly with a small team, and not exorbitant cost, [61:20] and not introducing a bunch of bugs when you change one thing over the other. That was [61:25] the driving economic argument for why you should write [61:28] beautiful code, 'cause beautiful code is easier to understand, it is simpler, it [61:32] is more malleable. That was premised on humans doing the modifications. [61:40] I think it is an open question to which degree this still matters. Now, [61:46] it does matter, and the reason I say that, at least for the moment, is that [61:50] tokens are still scarce. At this moment in time, we are all token limited. [61:58] Well, not all, but anyone who doesn't have endless budgets are token [62:02] limited. So therefore, there is great payoff [62:06] to writing systems that agents have an easier time dealing with [62:10] and evolving without having to relearn the entire context. Just like humans, [62:14] if they can make iterations and changes to the code base [62:18] without wrecking the architecture, they can make the next [62:22] change just as cheaply as the last one. And this is the [62:25] classic ball of mud where you end up with a system that's a ball of mud- [62:31] ... because it's just put together in a way where nothing is [62:35] connected and it's just a real mess, right? I've seen that with agents, and I've seen [62:39] it in our own code bases where, again, the first PR is, like, [62:43] mediocre of quality, and then if you add another PR on top of that, and then five more [62:47] down the line, it's not very good, right? So there's still a payoff to that, [62:51] but that payoff is premised on our current moment. I am now able [62:55] to... And this is, by the way, where the AI psychosis really comes in, when you [62:59] try to extrapolate what nine months from now it's gonna look like. [63:02] What two years from now it's gonna look like. But as an intellectual experiment, [63:07] I think the first computer I used was a Commodore 64. [63:10] - Me too. Cool. [63:11] - It had one megahertz CPU and 64K of memory. [63:16] Everyone who wrote software for that machine internalized [63:20] certain constraints. Well, all the constraints. That machine was [63:24] nothing but constraints. If you put that programmer in a [63:27] time machine and teleported him or her to [63:31] 2026 and gave them a modern computer today and [63:35] said, "Now write me a piece of software," they'd be lost for a little bit [63:38] because all their techniques and all their [63:42] heuristics would simply be wrong. Or not wrong, because efficient software [63:46] is still beautiful. They would be out of date with the value that they could create. [63:51] The amount of optimization you have to apply for a one megahertz computer [63:55] to produce a video game is just very different from what you have to apply today. [63:59] - Just imagine that guy that was programming back then on a Commodore. Just re- [64:03] remember all those, [64:05] like what programming felt like and what it meant, highly constrained resources- [64:10] ... how slow everything is. [64:11] - Beautiful in many ways. Beautiful. [64:12] - It's chiseling. But- [64:15] - It- [64:15] - ... imagine that person coming now. [64:17] - It's romantic too, though. Let's also imagine that. This is one of the things, whenever [64:21] we bemoan modern car culture, for example, right? And then we think like, [64:27] "Oh, wasn't it better when we all had the horse-drawn carriages and so on?" No, it wasn't. [64:31] Do you know what New York smelled like when we used horses for transportation? [64:35] It was an open sewer. They just shat everywhere. [64:38] - Yeah, but have you played Red Dead Redemption? You know how cool those cowboys were- [64:42] - That is the way- [64:42] - ... on the horse? [64:43] - ... to experience the nostalgic past, when you don't get the all [64:47] the furry impulses and senses. [64:50] - So basically programming, old school programming by hand is [64:53] kinda like the cowboy culture that we romanticize and make movies about. [64:57] - It's already happening, the romanticization of handwritten code. [65:01] And I have some of it because it was a very romantic [65:05] era. I'm grateful to have been alive for 20 years of [65:12] economically valuable handwritten code. That was a, that was a good time. [65:16] - Where handwritten beautiful code was also valuable. [65:20] - Correct. Because handwritten beautiful code exists [65:24] as much today as it did yesterday. There are people who [65:27] willfully write new video games for the Commodore 64, [65:32] or for the second Mega Drive, or for other vintage consoles. In [65:36] fact, one of my favorite video games of late is [65:40] ModRetro's. Do you know Palmer Luckey's- [65:43] ... side geschäft, which is recreating old consoles. So he's recreated the Game Boy. [65:49] - Nice. [65:51] - It's amazing. Look it up. It's really cool. But what's even [65:55] cooler than the fact that he recreated this hardware and the original [65:58] chunkiness, but brought it up to date with sort of modern [66:02] screens and so on, now they just put out the Nintendo 64 too. Incredible. [66:06] Super cool. Wild attention to detail, input lag, and all the other things. [66:12] But what's also very cool, that one, I have to wave. That one [66:16] right there, and hover over it, 'cause then you get to see what I'm talking about. [66:19] That is the Chromatic- ... Tetris re-implementation. [66:23] - Wow. [66:23] - I played a lot of Tetris on the original Game Boy. [66:26] Probably one of my top three favorite games of all time. [66:30] And they rewrote it with one change. If you hit up, the brick slams. [66:39] And that speeds up the game by about 400%. [66:43] It is an incredible game, and it's a new Game Boy game. [66:47] I think the Game Boy came out in- '89 or '88. It's a very [66:51] old machine. The fact that there's still people writing new old [66:55] games is awesome, and the reason they do it in part, now here [66:59] they're doing it because they want Tetris, but there are people who do it just for the love of the constraints, [67:03] for the love of the romantic notion of writing that. Just [67:07] like there are people still riding around on horses, not to get [67:11] places fast, but because they like the mode of [67:15] transportation where it's a literal biological [67:19] being below you propelling you forward. [67:21] - And also, we should say that that beautiful code is great training [67:25] data. So in some sense, the beauty that we've built over a few decades- [67:30] - Yes [67:30] - ... continues. [67:31] - We gave birth to this moment. What a privilege, and I feel that very [67:39] personally because I... Almost all of the code I've ever written is public [67:42] code. The vast majority of my career has been dedicated to writing open source code, [67:47] and therefore, some of that code, some of those beautiful lines [67:51] are in the training set. And in fact, I've [67:55] heard people do this when they write Ruby code. They ask the agent, "Write [67:59] it like DHH would." [68:01] And they're pleased with the result, and that does warm my heart a little bit, that [68:05] I helped give birth to this moment in my tiny little small part. And anyone else [68:09] who contributed open source code or any code at all that the agents have had access to [68:13] over the last, well, entire time [68:16] programming has been around as a discipline, is now part of [68:20] these new agent overlords. [68:22] - So you don't have a little bit of sadness that writing beautiful [68:26] code by hand is now less and less useful? [68:29] - Am I sad that if I had to get a job tomorrow, [68:33] it's unlikely that I could apply my skills in such a way that I would be [68:36] paid to write these manual lines of code? No. [68:42] I did it for 25 years. Like, I wanna see something new here, [68:45] especially if we're all gonna live forever, which I hope we don't. Maybe we'll get to that. [68:49] But, like, I've done that. That's enough. That's fine. I don't feel any more [68:53] nostalgic about that than I do about the fact that I don't have to [68:57] spend my time in the field with a hoe or at the assembly line. [69:01] - Well, hold on a second. You are one of the best programmers [69:05] in the world at writing handcrafted beautiful code, appreciators [69:09] of beauty with great taste. [69:11] - Correct. [69:11] - That has been replaced. [69:13] - I say humbly. [69:14] - Yeah. That has been replaced. Like, you had now... [69:18] You're just fast evolving, and you're able to... One of your [69:22] really great qualities is you're able to change your mind and evolve very [69:26] quickly. But, like, you had to kill that other person. [69:30] - I am grateful for every moment that brought me to where I am right now, and [69:34] therefore, I have also tried, and maybe this did take some practice. I [69:39] will concede that. Maybe I wasn't always like this, but [69:44] stoic philosophy, amor fati, loving your fate, [69:48] is an incredibly liberating way to live. And [69:53] you could attack that and say, "Well, that's a point of privilege." [69:57] True, but also I had the same directional point [70:01] when I didn't have all this, quote unquote, "privilege." [70:05] So I think there's a way to live and interact with the world [70:09] where you accept the things you can change and the things you cannot change [70:13] and fall in love with all of it. [70:15] Fall in love with the fact that the world today has jumped [70:19] two decades forward into technology industry from where it was last year. [70:24] - So can we talk about the general anxiety that programmers feel, [70:28] going through the same transformation? They've maybe gone to university [70:36] majored in computer science, dreamed of being programmers and building stuff, [70:40] high salary, and now everything's changing, and there's deep [70:44] anxiety about, "What do I do when... with my life?" Can you [70:47] empathize with that, and what the hell are they supposed to do? [70:51] - Hugely. Because just because I have this disposition, I'm [70:55] keenly aware that that's not evenly distributed, that [70:59] not everyone sits with this position and this optimism for the future. [71:03] But I do think I wanna separate things a little bit. [71:08] I think you're gonna have a hard time coping with the new [71:11] reality if the only thing you loved about programming was the mechanical bits of [71:19] putting the right logical constructs together to produce something other people [71:25] told you to produce. Because that mechanical process is under threat. [71:33] If you are, as you just mentioned, excited about building things, [71:38] I don't think you're under threat at all. In fact, I think there's a great argument [71:42] for us needing far more builders than what we have now, and if you look at [71:49] the employment stats, it's fuzzy. [71:53] It's not clear what's gonna happen at all. Some stats actually show an [71:56] increase in openings because [72:00] the advent of AI is so dramatically lowering the price of [72:04] programs that people want a lot more programs. This is the classic, [72:09] the Jevons paradox, that says when the price of something goes down, there's gonna be more [72:13] demand for it. And this is the example of the ATMs too. When the ATM [72:18] originally came, a lot of bank tellers were very [72:22] afraid for their job because suddenly there was a machine that could dispense money from [72:26] people's account. Well, what the ATMs did was lower the [72:30] price of a branch, and suddenly banks could afford to open a lot [72:34] more branches, and we ended up with more bank tellers than we did before. Now, none of this [72:38] is guaranteed. There are also moments where things do change. The [72:42] vast majority of people worked in the fields up until [72:46] the late 1800s, and then suddenly we got mechanized- [72:51] harvesting tools, and we did not need human labor with a hoe and [72:55] an ox out there. We had mechanical tools to do that for us. [73:00] In that moment, are there people who were threatened that their [73:04] job and their livelihood was at stake? Yes. Was that a reasonable thing to [73:08] feel threatened about? Yes. The Luddites smashing the weaving machines- [73:13] ... in England had the same thing. And I think maybe that's the better parallel [73:17] than people working the fields because these were actually highly skilled professionals [73:21] doing a job that they liked on [73:24] rather favorable conditions, not slaving outside in the sun all day. [73:28] But where we live now, would we still like for clothing to be this [73:34] heavily constrained resource? Like, what if this T-shirt was [73:38] $400? I mean, okay, then I'd have [73:42] two. Well, my wardrobe probably looks like I have two. But [73:46] I think the general progress of mankind depends on productivity [73:54] improvements. And what are productivity improvements? This is very important because in the abstract, [73:58] I think everyone says, "Yay, productivity. That's good." [74:02] What did you think, this was all just vibes? No. Productivity means fewer [74:06] people to do the same number or the same job. Now, [74:10] the amount of job you want done may increase, and therefore you get more people, [74:14] but it also may not. There may be pockets [74:17] where a company just needs a certain set of [74:21] fixed tasks done, and suddenly they can do them with a 10th the number [74:25] of people. This, by the way, could... is tragic [74:29] and difficult in the moment for the individual being laid off. It's also amazing [74:33] for the economy at large. Suddenly you've freed up these resources who can [74:37] now go do more productive things. This is how the whole [74:40] economy evolves and improves and how we get growth, [74:44] and growth is good. I think this is the other thing to make a [74:48] strong defense for, that growth in [74:51] general is a good thing. We do not want to wind the [74:55] clock back to 1920 or 1950. We should [74:59] be excited about the fact that we've discovered new [75:02] technology that allows us to do vastly more. And [75:08] while some of the tasks that may be taken over by AI were tasks [75:11] that humans were excited to do, and they're just no longer economically [75:15] viable, a lot of the tasks were just drudgery. This is certainly true [75:19] of my programming. There were moments of programming [75:23] I thought were amazing. These were the moments that produced that state of [75:27] flow we talked about last time, and they were ecstatic. How often did they [75:34] happen out of the course of a year? If you took your average [75:37] programmer, how much time out of 2,000 hours at [75:41] the job did that person spend in a flow state? [75:47] 100? 200? 25? I think all those answers could be plausible for someone. [75:54] And taking that drudgery, handing it over to [75:58] machines, that is the history of civilization. [76:03] - Yeah, I mean, the hours spent debugging. So programming has so many painful, [76:09] painful hours in it. And now they're gone. For the... I mean, for the most part, [76:14] it's just fun. [76:16] - A lot of it is gone in a lot of domains, and the rest of it may be gone very soon. [76:20] So that's where some of the romanticism also comes in [76:24] ... because pain in the moment [76:27] is difficult. It's hard. It's annoying. Pain in the rear [76:31] view mirror is accomplishment, proud, [76:35] learning, steps forward, all the things, right? So we [76:39] encompass all of this as part of the human experience, that we hate [76:43] pain in the moment, but we cherish it when [76:46] it's five minutes past and we don't remember the hardship. We [76:50] just remember the progress. [76:51] - So certainly at the societal level, at the macroeconomic [76:55] level, growth is exciting. But the individual level, there's going to be a lot of [76:59] anxiety potentially a lot of suffering. So by way of [77:03] advice, if you're like a young DHH or young developer [77:07] programmer now, what would you advise they do? [77:11] - Don't try to anticipate anything. You will literally go crazy. [77:15] Because even the smartest brains in the business [77:18] cannot anticipate what two model hops from here is [77:22] going to look like. It's an absolute waste of time, and you [77:26] will develop an AI psychosis trying to deduce what two [77:30] years from now is gonna look like. Focus on right now, and right now is the most [77:34] incredible time to be into computers. [77:38] You can make them do the most amazing things if you lean in. If you [77:45] maybe for a hot moment force yourself to learn where the state of the art is, [77:52] I double dog dare you not to get excited about what's possible. [77:57] - And would you recommend building publicly? [77:59] - I think it's optional actually to build publicly. I think it's [78:03] nice to do because then you get to be part of a community, and there's some [78:07] camaraderie in open source. Not some camaraderie. There's an [78:11] enormous amount of camaraderie. Open source is an [78:14] incredible source of community and camaraderie, [78:18] and it's also a great way to stem some of that [78:22] personal existential dread. If you're amongst other humans, you can [78:26] get infected with good forms of mind viruses, [78:29] exciting forms of mind viruses, the ones that tell you that it's all gonna be okay, [78:34] and the future looks bright, and if we [78:38] build a bunch of things together, we can do things none of us ever [78:41] dreamed we could do. I was just talking to Ryan Hughes, who's been [78:45] my main partner on Omarchy almost since day one, [78:49] and we were literally talking about yesterday how when [78:53] We started on this journey together. Our ambitions were very [78:56] modest. We're just like, "Can we get this distro to not crash at [79:00] 3:00 AM because of an Arch package that just got pushed out [79:04] outside of our control? That would be amazing. Then it'd be great." Now [79:08] we're leaning back and thinking, "How can we take over the world? [79:12] How can we make Omarchy go to Mars? How can we do everything we've ever dreamed of?" [79:21] And that level of ambition inflation is partly [79:25] because things have gotten better with agents, but hugely also because we've [79:28] surrounded ourselves with others excited about the same journey. [79:33] And if you're just sitting in your little isolated cave [79:38] worrying about the future, yeah, you're gonna go a little nuts. [79:42] I think if we learned anything during COVID is [79:46] that people will go nuts sitting in their little cave [79:49] inside by themselves worrying about what's gonna happen. That is [79:53] indistinguishable from depression, ruminating endlessly about things you can't [80:00] control. I'm sorry to channel some Jensen Huang here, but that's just loser talk. [80:07] You don't have to be a loser. You can choose to lean in and- [80:13] ... win. And win is very broadly defined as learning [80:17] more, making more, contributing more, being part of more. [80:23] And at the end of the day, what are your choices? You don't have a choice, mate. [80:29] The future's coming whether you like it or not, so you might as well choose to be [80:32] excited about it. [80:34] - But I mean, we should emphasize the fact that planning is nearly [80:37] impossible with AI. I mean, most of us plan our life a [80:41] little bit. When we're younger, you have, like, hopes and dreams. There's a [80:44] reason you go to college. There's a plan underlying that. [80:47] - I agree with that. [80:48] - But there- [80:48] - I'll concede that. [80:49] - ... it is kinda- [80:50] - This is different. [80:51] - ... nuts that it's impossible to really plan. Because, like, you really don't know, [80:58] if there will even be a Claude Code, a Codex, and Cursor [81:03] six months from now. Maybe it'll be you'll be talking to WhatsApp. Maybe [81:07] it'll be all open call type. Maybe it'll just all be voice. [81:10] Maybe Omarchy will take over the world and it'll be voice. Maybe there won't be operating systems [81:14] anymore. You'll just... There'll be this glowing orb that just you just talk [81:18] to because if natural language is enough to accomplish [81:22] all tasks in life, like, what is life about? Like, what are the major [81:26] tasks you need to accomplish in life? If you can just do that with voice, and [81:30] it writes all the programs for you, and all is systematized, and what, [81:34] what are the jobs needed then? Maybe it's more about the service [81:38] industry. Maybe there won't be programmers, like agentic engineers at all. And so [81:44] yes, your advice is wise to focus on the moment, but that doesn't mean [81:48] that it's just a crazy rollercoaster ride, 'cause we don't know [81:52] what this December or what this January will look like. [81:55] - We don't know, and therefore, we should choose to have faith that it's [81:59] gonna pan out. That is my best advice [82:04] towards fighting anxiety, is that you have a choice, to a large degree, [82:11] of how to lean. [82:13] Do you wanna lean into PDoom? PDoom is gonna happen whether you lean into it or not. [82:21] You don't have control. [82:22] - But there's also actual daily schedule of how much learning are you doing, how much [82:26] building are you doing, how much uh, diversification you're doing. [82:31] And for example, I traveled across rural China recently, and I did [82:35] it quite deliberately because you're talking to people in China, in, [82:41] in rural anywhere, where time moves much slower, where there's no discussions [82:46] about agentic engineering. And the ti- and [82:50] I started by going on the, on the Great Wall of China. [82:54] That's timeless. That spans centuries. And, you know, there [82:58] was, like, this kind of tension of FOMO, like maybe I'm missing out on something. [83:02] But then I very deliberately wanted to find the [83:06] timelessness of human existence, really plug into the fact that, [83:10] okay, it always feels like everything's changing uh, [83:14] throughout human history but, you know, the universals are still true, [83:18] of what matters in life. And I just wanted to make su- keep connected to that. [83:22] - You're not gonna miss anything. This is the part that actually [83:26] grinded my gears in the early phases of this [83:30] transition. Everyone was so up in arms that if you [83:34] didn't... It's loops now. Oh, no, no, we're done with loops. It's graphs [83:37] now. Oh, no, no, we're done with that. It's, it harnesses this, right? They're, they're constantly [83:41] churning through the frontier, which in one way is actually [83:45] very exciting. This is what happens when a new field opens up. It's like a [83:49] new portal, and it's all spilling out. That's exciting. But it [83:53] also means that if I had just been backpacking for the last year, [83:58] hadn't touched a computer, [84:00] hadn't witnessed this agentic moment, and I just showed up [84:04] yesterday, do you know what? I would've been caught up in two weeks. [84:08] There's not any accumulation, which is in some ways a [84:12] great relief. If you missed the past year, you can catch [84:16] up to the frontier in two weeks. [84:19] If you're a programmer who was out hiking the Himalayas for a year and [84:23] you come back, you can catch up in two weeks. And this is actually the great [84:27] credit to the progress we're experiencing. We have so [84:31] many experiments running simultaneously right now that are [84:34] constantly and ruthlessly sorting what works, what [84:38] doesn't work. You don't have to remember or even be part of that [84:42] entire journey. You can just show up for the results. [84:45] - But the key step there, when you come back from the backpacking journey, [84:49] is to be willing to become a totally new, different human because- [84:55] Things are changing so fast. [84:56] - That's right. [84:56] - I mean, literally, if you left for the backpacking journey- ... in October last [85:00] year and came back in April or May- [85:04] - You might as well have been in the cryo chamber for 100 years [85:06] - ... it's like, "What, what do you mean? We're not programming anymore?" This, it's a it's a [85:10] huge transformation. [85:12] - It's startling, and I actually... I mean, [85:14] I'm putting some of this on slightly for effect. I also [85:18] recognize that it's okay to grieve for a hot moment. [85:22] That's not my disposition. It's not how I do it, but I accept that that's a [85:29] time-tested mechanism for coping with [85:34] a sense of loss. And it's okay to have a sense of loss that the world [85:38] that you knew and maybe you were very fond of is no longer the same. [85:43] - I maybe I should say out loud and explicitly that I do have that, the Native [85:47] American with a tear rolling down my... Like, there's a sadness. [85:51] It's a goodbye. It's a goodbye to the old world of programming. [85:55] - That's, it's so fascinating to me. [85:56] - I've spent so many years- [85:58] - But it all amounted to this moment. That is, to me, what makes the [86:02] entire journey so meaningful. [86:05] AI did not arrive from the sky. It was not alien technology that [86:08] had blasted through the universe and suddenly showed up on our shores. [86:13] AI has been around for as long as computer science has been around. [86:17] In the '50s, they thought the problem was gonna be cracked in about a [86:21] decade, the smartest people at the time. It took a little longer, [86:25] but the reason it took a little longer was in part because we took [86:29] some blind turns on the road to AI and neural [86:33] networks and thought that there were other symbolic representations that were [86:36] gonna carry the day, and they didn't. And that probably set us back [86:40] about 15 years. So some of it was also we had to, [86:44] Go through the gaming revolution, 3D games. If we had [86:47] not had Quake, if we had not had Duke Nukem, if we had not had [86:51] Unreal Tournament, we'd never have gotten AI because we would never have gotten the GPUs, [86:55] and therefore we would never have been able to get AI in the shape it is now. So [87:01] everything we did up until this moment was required to get there. [87:05] You were part of that. Holy... What a blessing. [87:09] What a blessing to have contributed in your small part, either by [87:13] training or by playing video games. Literally, you could just choose to [87:17] think of it that way. All those times you spent in, [87:21] for my case, in the '90s just playing video games, they were- [87:23] - You were contributing. [87:24] - Yeah, I was contributing to the AI revolution right there and then moment. [87:27] - To the progress of human civilization. No, for sure. Civilization [87:30] progresses with the death of the old and the birth of the new, and it [87:34] continues in this way, but it's still the grieving process is a part of it, I think. [87:39] - Take a moment. It's okay. Take a... And also, you don't even [87:43] have to accept that it's all dead. Like, if you are still very attached to the hand [87:50] chiseling, which if you'd asked me a year ago, I would have predicted that I [87:55] would've been more attached. I'm surprised- [87:58] - I'm kinda surprised [87:59] - ... a little that I've not been more attached. But the reason I've not been more attached, [88:03] I think, is that I found something more fun. [88:07] And if it hadn't been like that, if AI had [88:11] just replaced the thing I loved and gave me something I hated, I'd [88:15] probably be a little bitter. [88:16] - I mean, this really feels... It's hilarious and awesome to watch and inspiring to watch. [88:19] It's like Picasso all of a sudden like, getting access to [88:26] to image generation and getting super excited and switching in a [88:30] matter of months. That's literally what happened. So, like, it's an artist that appreciated beautiful [88:34] code, and all of a sudden you're talking about having fun- [88:37] - I think Picasso is actually a good parallel because if you look at his early [88:42] work where he learned his craft, it was painting [88:46] realistic paintings, right? Like, he was training to [88:50] be a master of the old ways of depicting reality the best way we knew how, [88:56] and then along comes all these other forms of expression. Cubism comes along. [89:01] And all these forms of abstract expression, he's [89:05] not decrying that he's not doing Renaissance [89:09] paintings anymore, that he's not just painting the perfect depiction of an [89:13] apple. He's reimagining the apple to be a freaking square, [89:18] and he's getting excited about that. And I feel that [89:22] transition, that we've gone from this one mode of [89:26] expression, and we've suddenly opened the gates where [89:31] the, like, the color spectrum is so much wider. I'm seeing more. And it's [89:37] perhaps because the way I became a programmer. I did not become [89:41] a programmer because a deep love of if statements. [89:46] I became a programmer because I wanted programs. [89:49] I wanted things to exist that did not exist. And at first, [89:53] I had to learn how to program to make that happen. [89:56] Then I happened to fall in love with programming as a craft, and then I spent two [90:00] decades really diving deep on that. But now I'm back. I'm back to having an idea and [90:08] being impatient beyond belief to see it exist in the world, [90:13] and AI has just shrunk that down to almost nothing. So it's an acceleration [90:20] of a rediscovery. [90:23] Now, I understand that that's not true for everyone. There are plenty of [90:27] programmers who just loved programming right from the beginning, and they were attracted [90:31] to the logical constructs and so forth. I mean, I've been there for two decades, so I get [90:35] it. But I also think that you're able to discover new sides of yourself- [90:41] ... if you let it in. Again, I keep coming back to this [90:46] almost regret minimization framework, to borrow Jeff Bezos's terms here. [90:52] Are you gonna look at yourself two years from now and think, "Oh, I spent [90:56] my time well being pissy about the present, [91:00] about the fact that my industry changed"? Or [91:04] Would I two years from now look back upon this moment and be proud [91:08] of myself for leaning in, for maybe having a moment of [91:12] grief? Again, there's room for all of it. And then going, "I'm gonna [91:16] learn how the world spins now, and I'm gonna make not just the best of it, I'm [91:20] gonna make more of it." [91:22] - I mean, it is true, a lot of programmers, a lot of friends of mine, [91:26] me, obviously you, are having fun. [91:30] - I have had more fun with computers in the last three months than at any time [91:37] previously. [91:38] - Quick bathroom break, and then I gotta ask you about [91:42] how you actually interact with the systems now. [91:45] - Yes. [91:46] - I gotta ask you about how has your programming setup changed? So keyboard, [91:54] voice, what's the IDE? [91:57] - It's crazy to think about now, but yeah, I used TextMate for almost 20 years. [92:02] I used TextMate starting in [92:05] 2005, I think. I helped get the first version out, and then I just [92:09] wasn't interested. I wasn't in the market for an alternative. And [92:13] it wasn't until the switch to Linux that I was forced out of my habitat. And [92:21] now with the switch to, [92:24] what are we calling it? Agentic engineering? Oh, I fucking hate that term. We gotta [92:28] come up with something that sounds as plain as programming, but [92:32] encapsulates the fact that it's with agents. But- [92:35] - I still think it should be called programming at this point. [92:36] - ... All right, let's just call it programming. [92:38] Programming with agents requires a different tool set. It really does. [92:42] And the main change here is that [92:47] you're going from single thread programming in your head to parallel processing. [92:53] When I was writing code, chiseling it by hand in TextMate or even Neovim, [92:59] Not that long ago, I would just focus on one problem at the time, and [93:03] I would methodically work my way through it, and that was actually the portal to flow. [93:07] The portal to flow was deep, [93:10] immersion into a single problem, see it through to the end. [93:15] That's not how it works with agents, in part because the [93:18] agents are at once both too fast and too slow. They don't give you an immediate [93:25] reply on something that you asked them to do that's the [93:30] same as typing on a keyboard. So you have to let the agent cook- [93:34] ... for a bit, and therefore you realize, well, [93:39] if I just sit around waiting for them, first of all, that doesn't feel productive. [93:43] Even if the agent, just one of them, can be highly productive, it does not feel productive. [93:47] It does not feel good. It feels actually like you're a little bit useless. [93:50] And maybe I had a moment, [93:52] when the first agentic moment was there and we, I was running mostly [93:56] one agent at a time where I felt like, "I don't know about this." [94:00] But you can solve a lot of hard problems by simply [94:04] throwing more resources at it. This is the whole scaling law of [94:08] AI of itself, right? That if you parallelize these [94:12] things and you're not running one agent, but you're running a handful, [94:15] you can feel like you're in a flow state because you're constantly doing [94:22] programming work in the sense that you're making decisions, and you're helping either [94:26] unblock an agent because it has a question about which direction to take, or [94:30] you're ready for a new task. And to do that, you need a different [94:34] setup. I started first doing it in tmux and just [94:38] having separate panes and having separate splits. Basically, [94:42] a terminal with tabs is a good way to think about it. You open a bunch of tabs. I think [94:46] most humans know exactly how that works. They don't work in just one tab. [94:50] - So still sticking to the terminal, CLI. [94:53] - Absolutely. [94:53] - So you're not using Claude Code app or the- [94:56] - No. [94:56] - ... Codex app or the- [94:57] - I love the fact that this agent revolution was kicked [95:01] off in the terminal because I was already a huge fan of TUIs, terminal [95:05] user interfaces, and the terminal in general. That feels like a, [95:10] a really nice place to be. It's a beautiful place to be. The modern terminal [95:14] is just a good-looking place to work. So I like that. And then [95:22] this fact of having multiple agents, especially once it's not [95:26] just multiple agents running on your own machine, but you start running multiple [95:29] machines. Now tmux alone is not enough to [95:35] keep track of it, and that's why as of late I've switched to this thing [95:39] called Herdr. And Herdr is essentially tmux plus agent [95:44] notifications. So whenever your agent is done and needs something for you, it goes [95:48] ding, a little bell telling you it's ready for its human, [95:54] uh... Is it master or servant? I'm not quite sure always. [95:58] But it is ready for a decision, and it also keeps track of [96:02] these is it in working mode or not. So I have this Herdr set up. I have [96:06] multiple Herdr setups actually running on individual machines. [96:10] I went on this crazy phase just about a month ago [96:14] realizing that doing this work on a single machine is [96:18] not fast enough. It's like I've discovered multi-core programming, but I only have two [96:22] cores. I'm like, "What if I had 16 cores? What if I had 32 cores? What if I had [96:26] 64 cores?" So I instantly went out and I bought these amazing [96:31] KVMs called GL.iNet Comets. [96:35] And what they do is it's this little box. You plug in HDMI, you [96:39] plug in USB and connect it to the computer. It's like a [96:43] KVM. So a KVM is a remote way of controlling a computer, but [96:47] what's special about this is just how easy it was. You connect this thing in, [96:52] you go to a webpage, log in once, set one [96:55] password. Now this thing can hop on your tailnet. [96:59] This has been the other revolution of the last year for me, is discovering [97:06] these WireGuard networks. Uh, Tailscale [97:10] is essentially turning all the computers you have into a local [97:14] network wherever you are. [97:16] Like right now on my phone, I have direct access to all the [97:19] computers in my Malibu office. I also have [97:23] access to all my computers in my Copenhagen office. [97:26] And I can treat them as though I sat right next to them without having to [97:30] punch holes in a firewall or set up complicated VPNs. [97:34] And what this does is it just decreases the friction it [97:38] takes to get new compute online. [97:41] So as soon as I discovered this, I looked at my closet, and I realized I had a bunch [97:46] of mini PCs from prior experiments, and I just said, "What if I just connected all of [97:50] them?" And I just connected four of the computers- [97:53] ... in a closet. They all had their little Comet, and [97:57] suddenly I could run agents on more computers at the same time, [98:01] and I could control them all with Herdr. [98:04] And it did get to a point where I maxed out my own processing power. [98:09] That I think at about... What do we want to put it? About four to five machines [98:15] running, I don't know, three agents. I have about 16 threads. That's what I can run. [98:21] And the faster the agents run, of course, the fewer threads I can run, but at the current pace, I can run [98:25] about 16 threads- [98:26] - Mm-hmm, at full acceleration. [98:29] And that's part of why I've gone from just being excited about [98:35] the agent moment to being delirious. Because [98:39] I think as you say, some of it is a little assaulting. [98:42] Again, we're on a dial-up bandwidth-wise with our computer. I mean, [98:48] it's actually hilarious. So you think of I'm sitting here a year ago, right? I'm [98:52] chiseling my code. Yeah. [98:53] - I'm writing my lines. And over the course of, like, an hour, I will have written [98:59] one beautiful controller, one beautiful model. Like, that's one file. [99:03] And I've really worked on it, right? So maybe there's 60 lines left. So [99:07] maybe my bandwidth at this moment is, like, 30 lines [99:11] an hour. I think that's even high. Maybe it's 20 lines an hour. Now I'm [99:15] running 16 threads. I'm producing at some [99:18] times hundreds of lines of hour or hundreds of lines of code [99:22] per hour. Now, let me pause myself there for a hot moment. [99:26] I hate that metric, right? Like, lines of code is a stupid metric
... [transcript truncated due to length]