Agent, take the wheel (Interview)

2 Jul 2025 · 1 h 54 min

Ask about this episode

Ask anything about it. ChatGPT or Claude reads this page and answers with the times it was said.

Connect VO and ask about every podcast you hear, including the moments you saved. Add to ChatGPT · Add to Claude

In short

Podcast Summary: The Changelog - Agent, Take the Wheel (Interview with Thorsten Ball)

Overview In this episode of *The Changelog*, Thorsten Ball returns to discuss his work on Amp, a coding agent developed at Sourcegraph. He believes that interacting with an AI that can edit code is transformative for software development. The conversation delves into the workings of coding agents, the evolution of AI tooling, the unique aspects of Amp compared to competitors, and the divide between AI believers and skeptics.

Key Topics Discussed

Introduction to Amp

  • Background: Thorsten Ball's rejoining of Sourcegraph to work on Amp, a tool he believes can revolutionize coding through AI.
  • Main Concepts:
  • Coding agents can edit code autonomously, changing the way developers interact with software.
  • Recent advancements in AI make coding agents more effective and accessible.

How Coding Agents Work

  • Functionality: Thorsten describes the process of coding agents as a series of prompts and tool calls that allow AI to perform coding tasks.
  • Demystification: He emphasizes that building a basic coding agent isn't complex — it can be done with a few lines of code.

The Divide Between Believers and Skeptics

  • Believers: Those who actively engage with AI tools and see their potential.
  • Skeptics: Individuals who have dismissed AI based on past experiences or misunderstandings of its capabilities.
  • Key Argument: Skeptics often exhibit a “willful ignorance,” not realizing how much AI has improved.

Recent Developments in AI Tooling

  • Advancements: Coding agents have become significantly more capable, with improvements in tool calling and context understanding.
  • Comparison with Traditional Methods: Thorsten contrasts old methodologies (like using CI providers) with the new efficiencies brought by AI, highlighting the ease of generating code and automating repetitive tasks.

Amp's Unique Position

  • Target Audience: While pitched as an enterprise tool, Thorsten argues that Amp is valuable for individual developers as well.
  • Business Model: Amp capitalizes on the powerful capabilities of AI without limiting usage, allowing users to leverage its full potential.

Future of Programming

  • Code Generation vs. Traditional Coding: The ease of generating code may lead to a decline in the importance of traditional programming skills.
  • Open Source Implications: The relevance of open source could diminish as individuals can generate what they need on the fly without reliance on shared libraries.
  • Cultural Shift: Thorsten sees a generational divide where younger developers are less attached to traditional coding practices and more open to AI-driven workflows.

Reflections on Development Practices

  • Efficiency: Developers are encouraged to think about how they can adapt their practices to leverage AI tools rather than relying solely on past methods.
  • Adaptation of Codebases: There is a trend towards restructuring codebases to better fit AI tools, which could redefine programming norms.

Key Takeaways

  • AI's Role in Coding: AI tools like Amp can significantly reduce time spent on repetitive tasks and improve productivity.
  • Evolving Landscape: As AI continues to develop, the skills and practices of software development are likely to change drastically, potentially diminishing the value of traditional programming.
  • Encouragement for Developers: There is an opportunity for developers to embrace these changes, adapt their workflows, and explore new possibilities offered by AI.

Conclusion The episode underscores the transformative potential of AI in software development. As tools like Amp become more prevalent, developers are encouraged to shift their perspectives and practices, preparing for a future where coding may look vastly different from today.

Listen to the Episode For those interested in the full conversation, be sure to listen to the episode on [The Changelog](https://changelog.com).

Written by AI. May contain mistakes. Listen to the episode to check what was said.

Hear the part that matters, and keep it.Open this episode in VO. Double tap your headphones to save a moment as you listen.
Get VO free

Transcript

Automatic transcript. May contain errors.

0:05Hello friends, I'm Jared and you are listening to the Change Log Log. where each week we interview the hackers, the leaders, and the innovators of the software world to pick their brains, to learn from their failures, to get inspired by their accomplishments, and to have a lot of fun along the way. Torsten Ball returned to Sourcegraph to work on AMP, their agentic coding tool, because he believes being able to talk to an alien intelligence that edits your code changes everything. On this episode, Torsten joins us to discuss exactly how coding agents work, recent advancements in AI tooling, AMP's uniqueness in a sea of competitors, the divide between AI believers and skeptics, and a whole lot more.

0:55But first, a big thank you to our partners at Fly.io, the public cloud built for developers who love to ship. We love Fly. You might too. Learn more at Fly.io. Okay, Torsten Ball on the changelog. Let's do it.

1:17Well, friends, it's all about faster builds. Teams with faster builds ship faster and win over the competition. It's just science. And I'm here with Kyle Galbraith, co-founder and CEO of Depot. Okay, so Kyle, based on the premise that most teams want faster builds, that's probably a truth. If they're using CI providers their stock configuration or GitHub actions, are they wrong? Are they not getting the fastest builds possible? I would take it a step further and say if you're using any CI provider with just the basic things that they give you, which is if you think about a CI provider, it is in essence a lowest common denominator generic VM.

1:57And then you're left to your own devices to essentially configure that VM and configure your build pipeline, effectively pushing down to you, the developer the responsibility of optimizing and making those builds fast. Making them fast, making them secure, making them cost effective, like all pushed down to you. The problem with modern day CI providers is there's still a set of features and a set of capabilities that a CI provider could give a developer that makes their builds more performant out of the box, makes their builds more cost effective out of the box and more secure out of the box. I think a lot of folks adopt GitHub Actions for its ease of implementation and being close to where their source code already lives inside of GitHub.

2:41And they do care about build performance and they do put in the work to optimize those builds. But fundamentally, CI providers today don't prioritize performance. Performance is not a top level entity inside of generic CI providers. Yes. Okay, friends, Save your time, get faster builds with Depot, Docker builds, faster GitHub action runners, and distributed remote caching for Bazel, Go, Gradle, Turbo Repo, and more. Depot is on a mission to give you back your dev time and help you get faster build times with a one-line code change. Learn more at Depot.dev. Get started with a seven-day free trial.

3:17No credit card required. Again, Depot.dev.

3:35today we're joined by torsten ball from source graph working on amp excited to dig into this with you hi nice to be you guys thanks for having me i was very impressed by your blog post back in April on Amco.com, How to Build an Agent or The Emperor Has No Clothes, in which you walk us through kind of line by line a pretty, a basic but functional coding agent written in Go. And it really did a good job of demystifying it for myself. Can you talk us through some of that, your motivation for writing that blog post, and then maybe just help our listeners as well as you did for myself understand just how easy or I guess basic it is to get a working agent in your terminal yeah I the reason why I wrote the blog post is I had my mind blown so much that I couldn't shut up about it and I had to get it out there and the blog post you know ended up resonating with a lot of people I think that's the most likes I've ever had on a tweet I think and the most visits, surely.

4:44But it started before as an internal blog post that I wrote for the rest of the team here at SauceGraph. And before that, what happened was that Quinn, SauceGraph CEO, and I, we started hacking on what is now known as AMP. And we basically started with the realization that came up while experimenting with the models. Back then, it was Claude 3.7, uh sonnet 3 7 the realization that wow like the game has changed you don't need a lot anymore for to make these models work to get them to edit code and i can go into what previously would you would have to have but you just give them these tools and they go off and i've had this i had this moment i wish i i don't know we could edit a screenshot and i send a text message just long to a friend of mine and the text message was basically, man, I think I just felt the AGI.

5:42I was in San Francisco at that point. So, you know, you have to talk like somebody in San Francisco. I felt the AGI. Yeah. And I felt the AGI because what I had running was a super tiny prototype. It was Cloud 3.7. And I gave it a read file tool so it could access files. I gave it a list directory tool and a run terminal command tool so it can run bash commands. And I was playing around with it. I was like, oh, you know, it goes through the directories. It reads the files. That's crazy. And then I, while testing, I said, like, can you change this file to something, something? I can't remember.

6:24And suddenly the program stopped. It hung. And I was like, where's the loop? Why does it hang? What's going on? And then suddenly I saw in my editor show up file modified. And I'm like, I didn't give it a tool to modify files. I didn't give it an edit file tool. What? And then I looked at the transcript. And what it did on its own, like with a system prompt this big and like three tools, it wrote an echo command that echoed the contents of the file, including the modifications and redirected it over the file. So it figured out that me, the user, wants the agent to edit a file, but it doesn't have an edit file tool.

7:07So it resorted to running terminal commands and echoing the contents and overwriting the file. And I was sitting there thinking, there's engineers that I could give this challenge to. You don't have the ability to edit files. You can only list directories and read files, and you can only run shell commands. How do you make this edit? And that model figured it out. And I was sitting there, mind blown, how this is crazy. This is changing everything. Like this is nuts when you see this truly happening and how little code it is. So to spread the message inside of Saucecraft, I wrote this blog post about how to build an agent, which is basically a modification of what I just described to you, like cloth 3, 7, 3, 4 tools, and then off it goes.

7:55and pretty well received. And then still like, I saw more and more people talking online about how to build these agents or working with agents and a lot of stuff about what's agentic and whatnot. And I got so, I guess, anxious, restless, nervous about, guys, you really need to see this. You know, like friends of mine who are AI skeptics or were skeptical about AI, they didn't know or they didn't really know what an agent was and have not seen how powerful these models are. And I'm like, I got to get this out there. So I wrote it all up basically in one go. And here's what you need. And it's only 300 lines of code.

8:35And it was pretty well received. And the amount of people that still tag me and say like, hey, I wrote an agent in Python or in whatever it is with this model based on this blog post. And oh my God, I had a mind blown moment. And I don't know, I think it's one of the most well-received things I put on the internet in the last 15 years or something. Yeah, it was really, really nice, really nice response to it. And I think the nicest one was somebody, you know, basically was saying that this is the first non-hype thing that makes this approachable and tangible. You know, it's not this like magical thing and here, go watch 18 Karpathy videos and learn about neural networks and all of this.

9:29And, you know, it was like, write some code. You roughly know how an LLM works. Tool calling is not that fancy of a thing. Just type this out and look at it yourself and play around with it and you will have, you know, a light bulb moment. And they were saying, you know, like, it feels like you're democratizing this, like making it more accessible to others. And I don't know, that made me happy to hear, really happy. You said the word, or at least the acronym AGI, implying, you know, general intelligence, artificial general intelligence. What makes you feel like that brute force nature was AGI, or you felt the AGI?

10:10I mean, I was half kidding, right? Like just making fun of this. I'm not saying that. I was just checking your littleness there on that. Yeah, no, it's, I mean, you know, half kidding because, I mean, we could talk about what does it even mean to be intelligent and whatnot, right? But what I said is, look, like you have like this model that, you know, can have tools and then you give it a problem. For example, I can build you this today. I mean, that's what all of these agents can do. You start it on your Linux server, and then you say, restart my Nginx instance. And I'm pretty sure what it will do is, or at least, you know, Sonnet 4, Cloud 3.7 Sonnet, is it will check, like, syscontrol, Nginx, restart.

11:02Does that exist? Or, et cetera, entity, Nginx. Does that exist? and if it fails and it doesn't get a response back, it will look at the error messages and then we'll try a different thing and then we'll, I've seen this happen. It will say, wait, is there an Nginx running? Let me do a PS, grab Nginx. Oh, what's the pit of this process? And then it will look in the proc directory with that pit and figure out in the exe file, like what is it, proc slash pit slash exe or something, like what's the binary location? And then based on that, figure this out. And it will do this with only the prompt, restart my NGINX.

11:39That's it. And we could talk about what AGI is or what it isn't, but I don't have another word to describe this as to say it did something smart here. Like it looked at what it's doing and it looked at the feedback. It got back from what it's doing and it acted on that feedback and tried to achieve this goal. And that's not, you know, it's not AGI. Like it's not, it's who knows, but it's still like the ability to, yeah, it looks like, yeah. You know, what are the transcript describe? I know that you alluded to this transcript. I've never read one of these transcripts. What is, can you describe the transcript?

12:18What is it? What details are in there? Can you allude to like the thinking part of this? Oh, you mean the transcripts of like, right. You said you, you, you saw it do this. You're like, how did this happen? You look at the transcript when that transcript was revealed to you. What did you see? I mean, the transcript is just a conversation. So every time you talk to an LLM, at the basic level, you send text in and you get a completion back, right? So if you say what numbers are in the flag of the US and you say blue, red, and then it will come back and complete with white, right? And they're trained on completing conversations between a user and an assistant.

13:00So if the user says, hello, my name is Bob, and the assistant says, my name is Joe, and then you wanted to complete, what's my name again? Then it comes back based on this with your name is Bob or whatever I just said. And I mean, that's it. Like that's a transfer for me. That's a conversation. And, you know, the funny thing is that with tool calling, you add another element to this. So I described this in the article that tool calling sounds super fancy. It sounds like there's a lot of stuff going on, but it's in some sense, the way I describe it in a blog post is you have a conversation with a friend and you say, Hey, Adam, I'm going to talk to you.

13:44And in the following conversation, if you want me to raise my arm, I just need you to wink, right? And then you wink and then I raise my arm. And tool calling, it's a weird conversation starter, right? Like you don't get people excited. But with tool calling, you basically start a conversation with the LLM and you say in the following conversation, when you feel the need to say read a file or list files or what else? Like run a terminal command, respond in this specific way. respond with a message that starts with tool call, name, read file, like in a specific syntax. And they're trained on this.

14:28So when the model thinks in quotes, air quotes for everybody listening, if it thinks it needs to call a tool, it will respond in a specific way. And that's it. That's the whole magic trick. So what you say to the model is, you are a coding assistant. you have access to the following three tools, read file, list directory, run terminal command. Here's the conversation with the user. And then the user says, what's in the read me file? And then the model thinks, you know, I'm going to wink. He's still using air quotes. Yeah, yeah, sorry. I'm air quoting everything. But then the model comes back and says, let me read that file.

15:09Like that's the thing that I want to do. And then how it works on a practical level is that you sent that up to the provider, to Anthropic, to Google, OpenAI. And the response comes back and it says, the assistant or the model didn't complete the text, it wants to call a tool. And then you look at what specific tool it wants to call. And then you air quotes, you execute the tool by just running that function with the given parameters and you send the result back up. So it's pretty simple. If you draw it out on a UML diagram or something, it's pretty simple. And the magic is in how much is enabled through that.

15:51So if we go back to the first example, you would ask, you have three files, list file, read file, run terminal command. And you say, what kind of project is this? That's what you ask. And then the model, just like, you know, that's what I keep saying, just like us, just like us. What it will do is, well, let me list the files. Let me see what's in this directory. And then you execute the list file thing and you send it back up the list file results, which can just be, you know, list of strings or a string with new lines in it, right? Or just ls-l or something. And it has this list of files. And then on its own, it will say, oh, I see you have a go.mod file.

16:32Or I see you have a package.json. Or I see you have a pnpm log file. I'm assuming this is a web app because of blah, blah, blah. Let me check in this other file how you define or what's in this file, how this is documented. And then it goes on its own and explores these other files. And it's, again, I've been saying this 18 times now, I think the last 20 minutes, it's mind-blowing. It's truly, it's crazy. It's crazy to see how much that enables these tiny, tiny tools. What's interesting about it is that it's a very basic algorithm, right? It's like a loop until you have a solution. And really that's kind of what we do as human engineers is, or we give up.

17:18And that's the difference. It's like, this thing's not going to give up. So it very much is a brute force. But if you come to me with a problem and you say, Jared, I got to solve this thing. And you'll read from a file. I'm going to like pick my most obvious known solution. I'm going to try that. If that doesn't work, I'm going to get another idea. I'm going to try that. if that doesn't work until I've exhausted all of my ideas. And then what? Then I go ask a friend or I go out to Stack Overflow or now I go to an LLM and get more ideas. Like, okay, I need more ways of doing it until I eventually get there.

17:48And one proxy for like good programmer in the past 50 years has been how long will you persist through that process until you get to the solution? Like some people just give up. I'm stuck, roadblock, whatever, I'm done. And there's other people who actually power through and then they learn because they've had experience to like jump straight to the right one sometimes like you can just you know early exit from your loop and it's amazing how that simple algorithm which is like try a thing loop until it works when brute force with something that is inexhaustible like i'm just going to loop i'm going to try things really fast and just keep looping until my problem is solved it approximates to like human intellect, doesn't it?

18:32Like that's, that's what we're doing in different ways. And so it's very effective too. And that's why it's mind blowing. Cause you're like, Oh, try this. And because it has a corpus of all these ideas because it's already ingested them. Right. So it has all these different ways of doing it ways that maybe I wouldn't have thought of, and it didn't think of them either. It just indexed them and has access to them. And the end result is very impressive and very productive. And yeah, I think mind blowing is fair? On that, you know, the simplicity of this algorithm, what we kept saying last few months is what we've seen over say the past year is that a lot of tooling or a lot of stuff that has been built around this model has collapsed into the model.

19:18Meaning, say a year ago, they weren't that good at tool calling. So what you would do is you would say, here's the contents of this file. Can you edit this file? And it would come back and you would prod it and you would say, reply in this really specific way, reply in this diff format. And then you parse out that diff format and then you apply this or you use another model to apply this. And this has collapsed into the model because now you can give them tools and they do this on their own. And it's truly like just a for loop. And the funny thing is like if, I don't know if you ask a hundred engineers, half of them would say it's just a for loop.

19:56and the others would say with a smile on their face, it's just a for loop. Like this is crazy. Like you just, it's all in this model. You just give it output of five commands and then say, what should I do next? And it goes and tries 15 other things because it no, you know, like based on the previous conversation, it then thinks the next best step is to do the following. And it's, again, I'm not going to use the same word again. I'm going to say it's nuts. It's bananas. It's nuts. It's bananas. my mental model for that which is not a super complicated thing to think about but i compare it to tool calling specifically i compare to like shelling out of a programming language it's like you know elixir has all these things you can do in it when it comes time to tag an mp3 with id3 tags well there's no like elixir can't go there unless you build it but you could also just call FFMPEG, right?

20:51Now you're just tool calling and wait for that to do its thing and then hand back to what you need. And we've been doing that forever in programming languages, right? You just shell out, wait for the response and then move on. And now you can do all kinds of things you couldn't do otherwise. And really that's what this tool calling is doing with these agents is like, yeah, it doesn't know how to do these things, but it knows you tell it how it can do those things. You tell it to wink when it needs to. And then it waits for something else to do it. And it can just tie, If you tie those things together in a tight loop, you know, magic happens.

21:21And I mean, that's how they've been trained, right? So a year ago, one of the big topics was hallucinations, right? And that's because, to use your analogy here, the model was only inside the programming language. It couldn't shell out. It only knew what was in its standard library. It's going to break down the analogy. But, you know, it didn't have - All metaphors break down eventually. So really quick. It didn't know that there's a world outside in some sense. So if you would ask it, like, what's in this directory? We've all tried this. People tried this. And without telling it what's in the directory, it will come up with something.

22:05It will then say, in this directory, there's probably a readme file. Because in that, whatever context, that's the most likely thing. But now they've trained them to use these tools. And then they shell out. It's like, I don't know what's in the directory. that may run list files or, you know, LSL as a bash command or something. And yeah, it's nice. So this unlocked a huge opportunity, which of course Sourcecraft is trying to jump on and other people are. We were talking before we started recording, Google just got into the game. We know OpenAI is in the game. We know that Anthropic is in the game.

22:40There are open source players of this game because there's huge value here. There's lots of opportunity. and so you are one of the creators inside of Sourcegraph of AMP. We talked with Steve Yege a few weeks back now, and he's like saying just try Codex AI, OpenAI Codex, try AMP, try Cloud Code, and mix and match, and these have different things. And that's when Adam was like, we want to talk about AMP and learn more about AMP specifically. Of course, all of us probably want to learn more about Gemini CLI. I just announced today, I think you were playing with it before we hopped on. I know I downloaded it and it has some interesting stuff.

23:21I mean, Google's going to be a good player in any game. So Gemini CLI free of charge, open source, unmatched usage limits. Like it looks pretty good. So curious eventually your opinions on that. But let's talk about AMP. Like what's Sourcegraph's angle, its view of the world? Steve kept saying it's for enterprises. But I wonder your thoughts. my thought is that amp was built in february which seems like an eternity ago when basically this phase shift happened where suddenly with cloud 3.7 people started to realize that these models are really good at tool calling that you can quickly get something running hence the blog post and amp is built on the assumption that the results are amazing if you just get out of the way of the model give the model tokens which is you know what we do and that's why amp is also more expensive than maybe other providers but give the tool more tokens and don't try to match like your 20 a month subscription and restricting stuff and cutting output but just let the model run and give it access to tools a curated set of tools like a set of tools that you think is good for you know doing coding and just get out of its way and and give power to the model and we started working on this and we're amazed by how well it works like quickly quinn and i quickly started building amp in with amp and just all day long sending each other messages this is amazing it just did this it just did that and and then nobody's going to believe me but we actually started working on this before clawed code came out and then clawed code came out and i think it's still AMP and Cloud Code that are the most agentic of these tools.

25:16I think Cursor and Windsurf, great products, but I think their agentic mode feels a little bit slower, feels a little bit more like there's some sort of abstraction between you and the model and there's other stuff going on. And we specifically made a distinction or the decision to say, no, no, forget about accepting each change. Forget about not giving the model real access to the file system. Forget about being able to modify the previous conversation of this. No, no, it's give the model, the transcript, like the whole conversation, give it access to the tools, give it access to the file system and let it go and let it run.

25:57And I think that's what people are now discovering. This is powerful stuff. and is it for the enterprise? Is it for individual devs? I'm an individual dev. I love using it. I know a lot of other individual devs love using it. When it comes to enterprise, I think it's just our expertise at Sourcegraph of working with large-scale customers and some of the best software companies in the world gives us customer trust. It gives us the ability to build something for their need. We know what their code bases look like. We've seen how many thousands of large repos they have. So that plays into it, but it's not, you know, I wouldn't market it as, well, CloudCode is for the individual dev and AMP is for the enterprise dev.

26:41To me, AMP is for everybody, everybody who wants a powerful tool. And of course, it sounds ridiculous now because we're in times where individual devs spend hundreds of dollars a month to use these tools. And you two have also been around a while. You know how crazy that is that even two years ago, if I would have said to you, an individual dev for their side project will spend 50 bucks on a weekend just to blow some tokens and ship stuff. That sounded crazy. and I think we've accepted this change and that this is now how you are productive and how this stuff works and if you want to say, well, the individual dev cannot afford this and it's costing maximum five bucks and you get only that many tokens and whatnot or requests, that's not what AMP is.

27:34AMP is, if you want a best agent and you want to put some money in the agent and let it rip and let it go, that's what AMP is for. and the other thing is on a super coming up from the level of product principles or product vision on a purely practical level we are a CLI application like AMP is in the CLI we are in a VS Code extension which works in Cursor, Windsurf and VS Code obviously and Codium and even works in the what's it called? The Firebase, the web-based VS Code version so you can use it in all of those you don't have to use a different editor You don't have to use a different IDE. And what's also is different to the others is that we have a server component.

28:19So all of your conversations you can share with your team. They can see how you talk to the agent. You can share links to these conversations. You have a leaderboard. You see how many tokens everybody burns and you see how many lines of code everybody generates. And that's been pretty nice. And that also resonates a lot with large enterprises where I'm sure you can imagine, well, maybe not. I was surprised when I heard this, but apparently in large enterprises, there's a big divide between people who've seen what these tools can do and want to encourage the rest of the engineering org to use these tools and people who are really skeptical.

28:57There's a big divide and there's a big divide in how successful each of them is with these tools. And when we show these customers or potential customers, we show them, look, like with AMP, you can share the threads and you can share the prompts. You can see what the results are. They go, perfect. Then I can send this around and can show others. This is how I would prompt it. This is the trick that I use. This is how I set up this feedback loop or something. So, yeah, that's roughly the overview. And the other meta thing to mention here is that we specifically started on AMP with the assumption that every week a model might get stronger and better and stuff might collapse into it again.

Read the full transcript

29:41And we need to be prepared for changing our product again. Like if you get Beyang on the CTO of Softcraft, he said something that stuck with me a couple months back. He said, in these times when you build with AI, the old startup playbook of try stuff out, find product market fit, scale it up. That playbook has worked for the last 15, 20 years, but maybe that's over. Because now, as soon as you find product market fit, there's another huge technological change that might pull the rug out from under you. And you need to be prepared that you cannot say, we found this, let's scale this up. You need to be able to move with the technology because we're in a phase of upheaval, you know, phase of change.

30:28And we try to embrace this from the start by saying our products, you know, get out of the way of the model. The picture I use is built light scaffolding, wooden scaffolding around the model. So when the model gets better and bigger and stronger, the scaffolding falls away and you again get access to the raw power of this model. And yeah, that's the meta thing, you know, like keep it simple, be able to move fast, move as fast as you want, be able to, that's, should have mentioned it at the start. We don't have a model selector. We pick the best model for the job that we think is the best model for the job right now.

31:07And we are prepared to change this. So if tomorrow a new model comes out, we want to be able to say, this is now the best model for coding. But we want to provide the best experience without the user having to select, you know, out of these premium models, low-cost models, fast models, select one of 18 for this given task. Now you need to activate ask mode and then go into planning mode and then go in execute mode. We want to say, no, this is the best way to do this. And you don't have to worry about this. We pick the best model for you. And right now under the hood, it's a mixture of different providers models.

31:42And we just want to provide the best experience. yeah when we talked to uh steve one thing that was uh stuck out i suppose was the copy the the web copy when i say this the word copy on amcode.com and it said and i i i just can't believe some of the words that was written here and this is quinn apparently because i asked beyond who wrote this and he said it was quinn so there you go it was me oh it was you was it you yeah it was me yeah you wrote all this okay so i'm gonna read your words talking to the right guy well beyond credited Quinn and you're crediting yourself. Let me read the words. Confirm that it's true.

32:18Awkward but true. I believe you. It says, and this is older because the website has since changed. I had to go use the Wayback Machine. Thankfully that still exists. And I'm able to actually see back to like last month or earlier this month or something like that. So the heading says everything is changing. Then it says we believe programming with AI is going through massive changes dot dot dot again. The models yearn for the tools and tokens. We hold them back if we make them, and this is kind of harkening to some of the things you just said. We hold them back if we ask them, if we make them ask before they can change a file.

32:55Give them tools and tokens and everything changes. What we use them for, how we use them, how many we run at the same time, how they talk to each other, how they talk to you, what they even are. It's all going to change. And so I'm not going to read the whole page because we should miss a few more lines, but a really good copy for one. So very profound. And then you mentioned how you and Quinn have been working on this and kind of chatting back and forth. Like this is what it did today. And he says that, and you say that. What exactly are you doing with this thing to like build this thing? Like what is, give us a glimpse into what it's like to have this be true for you and put this to work.

33:41Yeah, so first of all, thank you for the compliment on the copy. Amazing copy. The dramatic reading of my copy that I – Yeah, does that feel good? It was really good. I mean, the reading as well as the copy. The reading was excellent. Can I read the rest of it actually now that I think it was? There's only a few more lines. Go ahead, go ahead. I'll finish it off, man. Yeah. It says, it's all going to change. AMP is embracing it. So that's what AMP is. Our way of keeping up, question mark, shipping. we add and we add and remove every day we're building for where these models are going if that means amp will look completely different in three months so be it it's like this it's almost like a rap song it's like this anthem against this this rally calling away and it goes on to say if you want long-term support and the same ui in 2032 if you want to spend a maximum of 20 bucks per month amp is not for you if you want to find out where this is all going come with us and this says read the manual and i think that is just like so cool it's like you're going off into this this sort of like bernie man journey in a way it's like you know i don't know where we're who we're gonna be when we come back but we're going on this journey and we're opening the flood the floodgates we're letting go of all the restrictions and what happens happens is that kind of what's going on yeah i i think um so i didn't have raps on mind i it was more like 60s you know like the rolex copy or whatever you know like the magazine advertised and um but i think this come with us thing builds on this idea that we've had that is you know i said this to queen and beyond that I want to spread excitement and curiosity and the joy of discovering these new things.

35:32And if people want to come along and they are open-eyed and are also excited by this, let's pull them along. Let's explain how this works. Don't act like this is something that nobody else can do and it's magic. You wouldn't even understand. Just click, run agent and accept what the agents do. So like, no, this is a tool by professionals for professionals, a power tool. And you can understand how it works. And I want to show you how this works. And I want to pull you along, which is also where the blog post comes from, right? The subtitle of the blog post is The Emperor Has No Clothes. Because a lot of the copy from other AI software is this AI magic.

36:14It knows everything about you. it's going to replace you and it's going to replace your job and whatever you're doing. And for me, the fascinating bit is that these are incredibly powerful tools. Let's figure out how to yield them. Let's figure out how to make real use of them and just build, you know, come along, let's use this. Like everything is changing. These are incredible tools that will change software in the next years tremendously. Let's come along. And to go back to your question, what does it look like in practice? When Quinn and I started building this, so AMP started out as the VS Code extension, and it's written in a standard web stack.

36:57In VS Code, the sidebars is usually a web view. So in our case, we use Svelte for this. And what we would do is we would hack on this. And we started with the normal, what everybody knows, like the user message, assistant message, tool calls, like the display of this. And then, for example, we would add a new tool call, like say format file. There's even a video recording of me and Bian doing this. You add a new tool and say the agent can now format files. And then in the UI, it would show up as like just, you know, like an unstyled JSON message, like tool, format file, arguments. And then you would go, let's see if the agent can build me a nice looking component for this.

37:40And then I would take a screenshot of this thing. And I would open a new conversation with the agent and say, can you make this look better? It's this tool call. And here's all of the other components that we already have. And also check your work by opening this URL. And then what the agent would do is it would go, oh, let me look at these other components. Oh, this is how tool calls are displayed by using these components. Let me look at this. Oh, so it's missing this. Let me add a new component. Let me add a storybook entry. Let me open the storybook in the browser. Oh, here's a screenshot.

38:13but now it looks good. And then you're sitting there and you send a message to Quino and you go, you won't believe what just happened. Like it used the browse and took screenshots and then it ran into an error and it figured out how to fix this error and it got the diagnostics. And it's just this excitement of seeing when you put it on the right tracks, it's an image I use is that you kind of just scream at a nation and say, fix this issue that I have. What you have to do is you kind of have to set some rails and say, here's a file. Here's an example file. Here's how you get feedback about your work.

38:51You know, here's the command you have to run to get linter output or compiler errors or whatnot. Go and do it. And then it goes off and it will run into obstacles and issues and it usually will jump over those hurdles. And it then comes back and says, here's a new component. and we had you know there was another thing where we we also have a at the same time we started sending so many dms back and forth that i was i was on a bike ride and i was listening to another podcast and they were also talking about agents and i'm like oh yeah we should do this and this and this it got so excited i stopped the bike and i said quinn a message we should record a podcast just to share this excitement.

39:34So also on ampcode.com, we have like this five, six episodes, I think, podcast where we just talk about what we do. And in that first episode, I described something that I also couldn't shut up about. And that was, I was working with AMP on the right as the assistant on AMP itself. And I was refactoring some tests. And what I was doing was, you know, standard like TypeScript tests with like this describe and test, test, test, like pretty repetitive stuff. And so I started refactoring these tests. And back then we didn't have Amptap, which is the completion. And I was like, I wish I could have recorded what I just did to five of these eight tests and then say to the agent, you now do the rest, right?

40:21So I started to type out a prompt to the agent. I said, I want you to rebuild a feature that records the keystrokes. Like once you hit record, it should record the keystrokes that you make in the editor. And then when I stop recording, it generates a prompt and sends it to the agents. It's like, here's all of the keystrokes I just did. Go and finish the work I was doing, right? And I sent this off to the agent and the agent went off. And as they say, one shot at it, right? It went off and it actually built something. And I was like, surely this isn't going to work. So I've boot up the debug build.

40:55I start modifying. No, I start the start recording command and it shows like a little recording icon in VS Code. I was like, okay, cool. But now it's going to fall apart. So I started modifying the tests again. I changed two out of eight tests. I hit recording. It says recording stored. Surely now it's going to break. So then I hit this other command that it added to add like the keystrokes to the agent and say to the agent, this is the edits I just made. And I hit that button. And at that moment, I realized that what it did was a pretty naive version. It truly recorded every keystroke, Like not as a diff, but truly like, you know, T-E-S-T, new line, return, all of this.

41:35And it gave, it sent like 60 lines or something or 160 lines of just keystrokes. And I was like, yeah, what the hell? And I send it off to the agent, basically saying, you know what I just did? And then it's 160 lines of keystrokes. And it came back and said like, I see you're trying to refactor these tests to switch from assert to expect. Let me finish up the rest of the tests. Get out of here. And it went and did it. And yeah, exactly. So then I sent Quintinventus like, dude, we got to record the podcast. Like, this is crazy. You know, like, is this something that you would use every two minutes?

42:11No. You know, is it like a little feature that I build in 50 minutes? Yes. Is it amazing? 100%. Like, the ability that you can just, like, build a tiny feature by just describing it roughly. it comes back and it cut and it works and then this mind-blowing thing of sending 160 characters and then you realize yeah they they are somewhat like us but they're also not they they can make sense of 160 characters right and and say okay this is what you're trying to do here right and it's just couldn't you make the same sense as a human though what do you what do you i know this is amazing i'm not arguing against this but like what are you what are you arguing for by saying they can comprehend the 160 lines of code or the well as a human yeah you could right if i give you 160 lines of one characters you could i for sure it takes a little longer maybe it takes a little longer that's what i'm saying but that's the other thing you know where um you can sometimes just paste some error messages in that are not formatted and if you do this with the human they're like what is this and then you realize oh it's one file path broken up into four lines and not four separate, you know, whatever, stuff like this.

43:24And for these models, that just, it's, you know, it's not an issue. Like it's like the red and butter. It's like, yeah, yeah. Making sense of text. And then the other thing, right. Is, is you can sometimes send them like the rot 13 encoded text or something and talk to them in that. Just to troll it or why? Yeah. But they, they get it. Like sometimes they get it and they're like, oh, this is rot 13 encoded and reply also encoded back and stuff. It's a troll back. They're really like us in some sense, but they're also strange. You're going to encode your question. I'm going to encode my answer.

44:00Yeah, exactly. Let's see you do what I just did. How do you deal with this? Yeah. Well, friends, Retool Agents is here. Yes, Retool has launched Retool Agents. We all know LMs, they're smart. They can chat. They can reason. They can help us code. They can even write the code for us. But here's the thing. LLMs, they can talk, but so far, they can't act. To actually execute real work in your business, they need tools. And that's exactly what Retool Agents delivers. Instead of building just one more chatbot out there, Retool rethought this. They give LLMs powerful, specific, and customized tools to automate the repetitive tasks that we're all doing.

44:45Imagine this. You have to go into Stripe. You have to hunt down a chargeback. You gather the evidence from your Postgres database. You package it all up and you give it to your accountant. Now imagine an agent doing the same work, the same task in real time and finding 50 chargebacks in those same five minutes. This is not science fiction. This is real. This is now. That's retool agents working with pre-built integrations in your systems and workflows. Whether you need to build an agent to handle daily project management by listening to stand-ups and updating Jira, or one that researches sales prospects and generates personalized pitch decks, or even an executive assistant that coordinates calendars across time zones.

45:29Retool Agents does all this. Here's what blows my mind. Retool customers have already automated over 100 million hours using AI. That's like having a 5 ,000-person company working for an entire decade. And they're just getting started. Retool agents are available now. If you're ready to move beyond chatbots and start automating real work, check out Retool agents today. Learn more at retool.com slash agents. Again, retool.com slash agents.

46:01let me ask you this you said earlier there's this divide in the enterprise and for lack of better term let's just call it believers and unbelievers right so you have the the bulls and the bears and of late you know on this podcast we've been just doused in believers yourself chris mccord was just on the show he's he's into it obviously steve yeggie's into it uh chris Anderson, who's got Vibes DIY, they're building a vibe coding thing. And like all these stories are in alignment, but there is a lot of people that are super skeptical for various reasons. And I can list off what I think are some reasons that I've heard, but you said with your enterprise customers, there is this inside enterprises like skeptics and believers.

46:49What's the skepticism's argument that you're hearing? Maybe you could steel man it for them and not just dismiss it. But like, what are the skeptics skeptical about inside the enterprise about these tools and their future? I don't want to distinguish between enterprise and, you know, let's just, let's just say in general, I think I had a conversation last year at a Rust conference in Italy with a senior engineer who was, um, done some amazing stuff in the last 20 years, like apparently a crazy good programmer. and he was like back then i was working on zed and and talking about the text editor and he's like so you have ai features and i said yeah and he and i knew by the tone you know not a believer right and he's like can i turn them off and i was like yeah sure you can and then i said why do have you not played around with it just curious i'm like have you not played around with it and he's like ah well i played around with it a year ago two years ago and it just gave me back garbage and i'm like what did you use chat gpt and he's like some website and it stuck with me it stuck with me so much that i wrote a whole blog newsletter post about it because it was this there was no interest at all there was no curiosity at all it was just i tried it once it doesn't work i don't you know so i think there's a lot of i don't want to say willful ignorance but i i think there's a lot of ignorance where people have kind of tuned out all of this and yeah just like some of us have tuned out crypto or whatever it is, blockchain in general.

48:26And I think some people have just tuned this out. And whenever AI pops up, their eyes get blurry and they just ignore what's next. And I think that's a big thing that some people just, it's not like they looked at stuff and thought, it's not for me. They just don't realize how much has changed in the last few years and um that's one part that i see and then the other thing is that um some people describe it at the bell curve meme where the junior engineers get a lot out of it because they don't know that much so the ai takes care of a lot of stuff for them they never have to learn how to center a diff with css you know like nice and then on the other end of the bell curves the senior engineers get a lot out of it because they know a lot and they basically know how to review what the ai is doing and they know where the pitfalls are and the trap doors and what tests to write and what not to do and how to architect the thing so they're like you know hey nice i don't have to type all of this like i know what goes in this file i know what goes in that file i don't have to do this and then there's like the middle part of the bell curve where it's the engineers who are trying to get better at what they're doing and they want to learn all of this and they are not i think comfortable with you know agent take the wheel kind of thing they they're like i don't i don't know what's going on here i want to know what's going i don't know understand this and they get skeptical and yeah that's also what a lot of people describe in the enterprise and then the third problem is that it's something you have to learn like you have to get better at this it's it's you you the first time you try an agent you won't have amazing results possibly you know on a small scale yes but some people do crazy stuff but others will fail and i think there's this problem that all of the hype and marketing over the last few years hyped it up as you just say build me a website and it's going to look amazing and the expectations were made so high that now some engineers try this stuff out and they go you know fix this distributed database oh look it doesn't do it it doesn't know how to fix a distributed database and so they bump up against these expectations and then they're kind of let down when it doesn't work on first try and then they give up and And what Mitchell Hashimoto recently said, I think last week, he's like, when have you ever become more productive with a tool after using it for just a single day?

51:09Like you have to put some effort and you have to get better at this. And I think that's a problem. Like people, these models are anthropomorphized, which is also what I've been doing in the last hour, right? I'm at fault, right? And talk about intelligence and it's the agent and whatnot. And there's this mode of thinking where, well, these things are smart and these are like humans and these are close to AGI and whatever else somebody somewhere says. But the reality is that these are large language models based on a transformer architecture. They have a certain way of taking the context that you put in and producing something.

51:53and they cannot do everything. They don't know everything. You have to know about what goes into the context and what shouldn't go into the context to not derail them. So there is a learning curve, but it's not something that somebody tells you on the website, you know, like, hey, you got to learn this, you know, because nobody says we have a learning curve. That's amazing because the last 20 years of software has said learning curves are bad, you know, saying this as a Vim user, you know, like learning curves like do you even use them anymore i hear the ids dying i mean don't you just let the i don't take the wheel yeah yeah yeah like that's that's a hot topic like i said yeah i know it is i've been bringing it up non-stop do you use them or not yes or no yeah exactly not anymore i use my am mode in vs code but i don't honestly i don't type that much code by hand anymore like it's truly crazy i i mean say that again say that one more time clear okay so the journey in some sense of the last one and a half years was that i i worked at saucecraft i wanted to try something else i wanted to go as hardcore programmer as i can and i went to Zed and we build a text editor in Rust from the ground up with our own, you know, GPU framework and whatnot.

53:22That's truly some of the best programmers in the world work in that team. And it's truly an amazing product. It's amazing code base. I feel like I've reached the core of what programming can be. But then over the year with AI getting better and then trying out stuff like back then, like cursor tab where i was sitting down and i just want we were building the completion for zed so i was working on that the tab completion the fancy ai commission and figure out what the competitors are doing you know so i tried out tab a cursor tab and i was sitting there and i would change a switch statement or whatever it was like some repetitive thing where back in the day i I would have been so proud to pull out an amazing, impressively good Vim macro.

54:12And I would just start typing like a console log or something in one of the switch statement cases. And it would say, oh, you want to add this down here too? Tap. You want to add this too? Tap, tap, tap, tap, tap, tap, tap. And I hit tap 10 times and it had the whole thing. And I sat there thinking, damn, like this is faster than I will ever be. Like all of the Vim, you know, I'm going to use Colmac and I'm going to use Quickscope and Vim and blah, blah, blah, blah. I'm like, you now have models that are faster than you at doing this. If you have like a CSV file or something and you, I don't know, remove the last column, I would have done this, you know, selecting normal mode, jump to the end, delete, blah, blah, blah, or macro and repeat it for 990 times and whatnot.

54:57on. Now with these models, you could just remove the first column, second column, it would go, you want to remove all of the column, like the last column, tab, tab, tab, tab. And I was like, that's crazy. Like that changes a lot of things. And then I worked on the Zed completion and we built this ourselves. And I realized I'm not an ML guy. And Antonio, the guy I worked with, he's maybe the best programmer I ever worked with, but he's also not an ML guy, but we could built something of equal quality as cursor tab was and i was sitting there thinking this truly is going to change a lot of stuff like if if if like an open source mall like you can use a quen or deep seek or whatever if you can turn this into a completion mall that edits code faster than somebody who's really good at win myself right if it's faster than i can be like that has to change stuff that has to change stuff in death to one and then after that moment i had this thought of like you know i don't know how to phrase this in a in a way that doesn't offend anybody but um go ahead this thought of offend away are the yeah am i working on a horse carriage you know like by working on a text editor am i am i working dang i don't mean it you know but it's just it's It's a really good text editor though.

56:20It's really good. It's an amazing product, but it's just this, I've worked in the Vim mode with Conrad at Zed and I was like, all of that stuff. And it's amazing. But then you're like, I want to be efficient at the end of the day. I'm not somebody who loves programming and being fast at stuff because of macros and key bindings. I like doing stuff fast. Like I like being efficient. And now suddenly I realized that all of my Vim macro stuff was kind of invalid, you know, because I could just tap, tap, tap in another editor to get rid of this brute force, whatever, you know, chores. And that changed a lot of stuff.

56:59That changed a lot of stuff with how I look at developer tooling. And then basically I, you know, just to round this up, I looked at different other companies and talked to different other people. and then I ended up coming back to Sourcecraft because I talked with Quinn and I told him everything I just told you and I'm like, dude, everything is changing. He's like, you want to come build the future here? You know, like I agree with you. Like a lot of stuff is changing. So yeah, that's, and now I'm working in VS Code, which I've never wanted to do. And I don't like VS Code. Like aesthetically, I don't like it, but it's just, I also realized I don't care that much anymore.

57:41And then I thought, am I the leper here? Like, is this, what's going on? And then I talked with a bunch of other people, colleagues at Sourcegraph and people I met in San Francisco or at conferences, and they use Am2 or they use Cursor, Windsurf. And there was at least five of them that said, I was a hardcore Vim person, but I switched to using VS Code, Cursor, whatever, because I realized it's just a 10X multiplier. And the other stuff doesn't matter that much anymore. And if you were to ask Primogen or TJ or whatever, they would give me for saying this, of course. But I had this feeling, and a lot of other people have this feeling too, that the age of fast mechanical movement in an editor, it's kind of over when you have these models that are much faster than you.

58:35And when you project out the future that these things are getting faster and cheaper and that maybe surely you will have this running on your laptop, right? And then it's like instead of having your Vim key bindings and Comac and a split keyboard that you can put up vertically or whatever it is, you just talk to your computer. Maybe. I don't know. But yeah. It goes back to your bell curve. Well, I was going to say you said horse carriage. I kind of want to come back there, not to like slap the offense on there, but to really think about that, though, like you have to think about. I'm trying to do this in the moment.

59:14I'm trying to like listen as a podcaster would and I'm trying to think about where we can go and I'm trying to like, you know, think about this idea, too. And what you had me thinking about really is like, what do I do today? You know, automatically go to the easy choice because that has become the 10x multiplier in my life. And I think the easiest response would be vehicular movement. How do I get from A to B? You know, for example, I took my kid to, he's in golf now and he went to a camp today. I didn't walk him there. You know, we didn't get onto our horse carriage with horses and go there, although distant family members may have done it that way.

59:59No, we got into our new version of the carriage, which is called an F-250. It's still a diesel truck, but can't modernize that quickly and that fast. But we got into a vehicle and we went back and forth from here to there. I didn't think about or cry about the fact that, you know, my grandfather, my great grandfather may have, you know, travel via horse at one point. And they loved it because of the nature of the care of the horse and all the things that go into the pasture and all the pure things that are beautiful, right? Doesn't take away the beauty, but it takes away. It changes the utility of day-to-day life.

1:00:34The utility of me maintaining a pasture with space for my horse so I can go from A to B is over. That way is over, right? There's no one doing that. I now take a vehicle and that's, that's just how it is. And so that's what you had me thinking. Like this is the most obvious thing of like, I would never go back to the way, or maybe I, I would, if I could retire, if I had a few money and it's like, yeah, now I can afford the pasture and I can take horses everywhere because time doesn't matter. You know, maybe that's a different kind of thing, but yeah, the obvious answer is a vehicle that moves faster because that's the way of the world.

1:01:11I think that's a good point. There's a generational divide too. And I forgot to mention this, but also last year, I gave a talk in Munich at something from the university. Basically, there were a lot of people much younger than me hanging out at this meetup. And we started talking about AI and you know back then I'm sure you've you could confirm this a lot of hand wringing about is it pure programming is this still programming when you use cursor and these other tools and Kodi and Windsurf is this you know is this real programming do you unlearn stuff do you I don't know like do you get dumber by doing that do you really learn it the right way all of this And, you know, is it not artisanal code if it's not written by hand, you know?

1:02:05And I talked to these young people at this meetup and I realized they don't care. Like that's over for them. They've never think my code is not real code because I didn't use Emacs to write. They just use the tool available. and they would tell me, oh yeah, I organize my docs in this way so I can use like cursor to pull in this whenever it needs this. And I also have like this library of these rules and I organize my files like this because then it's easier to do this. And they didn't even spend two seconds thinking about, is this the right way to do this? It's just the way they now program. They grew up with AI.

1:02:48And if they cannot get this out of their editor, they ask chat GPT or Claude or whatever and they ask stuff here. and it just opened my mind that, you know, made me realize that maybe a lot of this handwringing is just like old man wondering about the clouds, you know? Like, is this still true programming? Turns out people, younger people don't care, you know? And it felt like somebody in 1965, like, oh, the electric guitar is this real music, you know? If it's not a violin or something, it turns out the young people don't care. They don't want to hear it. They moved on. And that's how I felt about a lot of stuff there.

1:03:35And yeah, like you said, it's a generational thing, right? And if you're the young generation, I mean, go to any 20-year-old at university right now, studying computer science or programming in their spare time. I will guarantee you they use AI and they don't bat an eye about it. Like they don't worry about is this true programming. Okay. Here's something visual for the, for the, you know, those tuning in via video and they can see me. What am I, what am I doing here? What is this? Calling somebody. Taking a phone call. What is this? Or maybe this, since it's like a real object. This is taking a phone call to folks these days.

1:04:18This is not. Right? And so there's a generational divide. It's like that is not the way the phone operates anymore. The phone has moved to this other thing that is not connected to a line to the house. It is now free range and roaming to wherever you go. And it's personalized. The phone has changed even. You know, so you can't, as much as we want to stay in the past, the future comes no matter what. Time is linear. We cannot stop time. We're only in the, we literally only have this present moment. The past is gone. We can't change it because all we can do is this moment. And the future is coming no matter what we do.

1:04:59That's how time works, by the way. You know, is this, is this analogy like, well, okay. And what I mean by doing that gesture of the phone and not the phone is that what if writing code or being a software developer is not in Vim anymore? What if it is not in even VS Code really that much longer? What if it's in a version of what these tools are evolving into? And that's... Yeah. You know what I mean? Yeah. I 100 % agree. It hurts if you have a Vim tattoo, though, you know? Yeah. I mean, I kid, but there is an identification factor, which is actually baggage to change, is identification. Just like we identify, perhaps, with the music of our youth or our formative years and not the current music.

1:05:53There's an aspect of that because so much of what we do with our computers is who we are and what we care about, and we can express that through our tool choice, our editor choice and that's why there are flame wars because like who really cares well we do why because we're the kind of people who care and so of course we're going to care when you call vim or zed a horse carriage for instance like yeah you didn't want to offend anybody but uh yeah it might be the case now there's also rational skepticism that i think comes from being around enough to see a lot of fads come and go. And I think if it weren't for my particular perspective through this podcast, I would have written these things off pretty early myself because I, and you could probably go back if you had copious free time and like track my change of mind throughout episodes because the results I was getting early on were really bad.

1:06:50and i was like this is not useful this is a distraction i'll just keep coding and it came through like prolonged exposure and progress to actually get to the point where i think it's just recently i'm like yeah this is amazing you know the mind blow is happening but i could have easily just been like heads down going back to my work because i've seen a lot of things that are quote unquote promising or game-changing and they weren't you know and so that's part of it i'm just going back to some of your thoughts around resistance, Torsten, and people who are not on board yet. And then the other one is, is the, you went to the bell curve and you know, that, I think they call it the midwit theme or midwit meme where like the one in the middle thinks they're like the smartest and has the worst take, right?

1:07:36It's like the junior gets it for a different reason. The senior gets it and the middle ones don't get it. And I think in this particular case, it's because of the skills. Like VIM is a skill. And you put a lot of effort into learning that. Maybe it was easy for you, but for most people, it's not easy. And so there's some sunk cost fallacy there. Like, well, I've worked really hard at these skills. And if you look at that bell curve, like, well, the junior doesn't really have any skills, so they don't care. They're like, cool, this helps me do stuff I couldn't do. And the senior, I think, if they are continually curious and self-aware, they realize that the skills are a means to an end and really what they're about is the end.

1:08:18And they can also get to the end better, faster, stronger with this tool versus the ones that, I mean, I know Vim, I've spent a lot of time learning Vim and yet I don't identify myself with Vim. And so I can just set Vim aside when I think that it's no longer the best thing for me to do the thing. But when you're at the peak of that, the peak of that bell curve you've spent a lot of time a lot of money a lot of effort maximizing your engineering skills and so it's the hardest for you to say these skills aren't actually all that useful anymore all that valuable and i think that for a lot of us just hurts i think there's a lot of identity wrapped up in this where like you said like people identify with i'm the guy who never has to look up a method in Rust.

1:09:09I'm the guy who knows all of the syntax. I'm the guy who's really good at Vim. And to use that example again that you brought up with the senior engineer, I think, I mean, I guess you can affirm this. As a senior engineer, there's like these moments where you realize that the code does not matter that much. Like what matters is also the marketing and the business and the team and how you ship stuff, how often, you know, like you're not this line. There's so much more to it. Like it matters, but there's so many other things. Yes. You realize that code might be a liability even and whatnot. And that same curve, I think you can go through over time when it comes to tools where you're like, well, I mean, I had this experience early on.

1:09:54I was pretty good and fast and I'm super proud of it. And I thought everybody who is a really good program has to use Vim and, you know, whatever. And then I had a senior colleague and he used Supplym and I don't think the guy has ever configured any keyboard shortcut ever in his life. And he was still incredibly fast. And he did a lot of amazing stuff and made a lot of smart decisions. And he was a senior engineer for a reason. And I realized maybe that's not the differentiator. And I think there's a lot of this going on where right now people are running around with AI as the sledgehammer to hit people over the head and say, you know, this is over.

1:10:31What you've put a lot of effort in is not worth a lot anymore. And to some extent that's true, to some extent that's harsh and you have to empathize with people. But I also went through it. I struggled with it for a long, long time. You know, I get it. Yeah. I think what we have to recognize in order to accept that harsh reality, but also overcome it and really leverage it is that it's not that our skills are useless. It's that they've lost value. But because of where we've been as engineers, we are well positioned to leverage the new tools better than other people and to adapt quicker and understand when things do go wrong, what went wrong.

1:11:21And like help the agent better than a neophyte could help the agent do its thing, even though it's pretty good. You just tell it what you want and it's getting better, you know. but I feel like skilled people can adopt new tools as long as they don't have the baggage that we're talking about, probably more effectively than people who don't know how to use tools at all. Yeah, there was this amazing Kent Beck quote that popped up, I think yesterday, a couple of days ago in a pragmatic engineering newsletter. And I think Kent Beck said this even two years ago about ChatGPT and I'm getting the numbers wrong, but I think he was saying that oh, I just realized that 90 % of what I can do as a programmer is now worthless, and the other 10 % have just gone up in value by 100x.

1:12:12Yeah, he drills it. Yeah, and it's this, like, a lot of the mechanical stuff, like which framework do you configure how and what goes into which config file and how do you type this and how do you do that and how do you – construct an FFM pack command, what command line arguments, all of that stuff, right? Pretty worthless right now. But what to build and when and how to, say, organize it, how to architect it, what dependencies to pull in, what pitfalls to avoid, how to build this for future use. All of those like meta, or say let's say engineering skills right it's about trade-offs it's about making decisions of how to build something under a set of constraints that's now super valuable like that's that's the multiplier now not how fast you can type 100 there's analog to this i just told this to my kids this morning because of course as parents and teachers we're trying to figure out how to approach these new things as well there's a lot of upheaval in school systems right now i I mean, it's a mess out there.

1:13:25There's a lot of cheating that's just way too good to keep up with the cheating detection tools. And what I said to my kids, which I think applies specifically to our work as well, is there's a big difference. It's a small delineation, but there's a huge difference between using AI to help you think and using AI to think for you. And if you're using it to think for you, then we're headed towards idiocracy and you're not going to make it, you know, like you're going to be one of those. But if you're using it to help you think, now you're basically just a superhuman. And I think when it comes to coding, it's very similar.

1:14:04Like we do have to be engaged and be making those decisions and judging the results and like doing all the things that are unique to us and our context and our business goals. And like the things that we know, because the coding agent just knows what you tell it to do. and it's going to do its best to get it done and probably do it better than you can do it but it can't decide what to do not yet we're not there yet and so use these things that help us build way better than we could before versus just building for us and just being along for the ride even though it does feel like a ride along the way which is kind of why it's fun right like you're like wow it's just happening yeah i mean that the windows kind of passed and we i was just arguing back really just to this idea maybe to the vim folks who have the tattoo and all that on vim folks is like you know you can still ssh into a machine today it's not common to do it you usually use a cli to do it and at some point you'll have an agent use a cli to do it or maybe today you should be doing that but ssh still exists you still have a username and login you can still control how you access a linux machine it's just not common like it doesn't mean that you can't use vim anymore it doesn't mean that those skills go by the wayside either or even you know nurturing and curating your vim file those are still truths that they just live in a different world now where that used to be a productivity tool for the ultra x programmer and now that version of a programmer is sort of flatlined in a way because the agent can go faster than it right in a way or the person controlling babysitting as steve said babysitting the agents and torson you didn't describe it as that you didn't seem like it was tedious toil maybe uh steve is in a different realm than you are but um i think of it like that like it doesn't mean that vim doesn't exist or that sh doesn't exist you still sh into a machine it's just kubernetes orchestrates your your sea of machines versus you individually doing that and ssh into each one of them and provisioning them it's just like not how you do it now you know it's just not the way so sh still exists vim still exists it's just used differently i think what you're saying also touches on something else which is that in these discussions, a lot of stuff gets thrown into one bucket that is programming.

1:16:44Will AI be able to replace programmers? And I think people need to understand there's a thousand different types of programmers out there. There's like a programmer who works at Big Tech on distributed systems. There's a programmer who works at a hardware company on embedded systems. There's a programmer like me who works on dev tools and there's programmers with web stuff and people that work in agencies. And I live in a small town in Germany. If I would try and go meet like the hundred programmers closest to me, most of them work in companies that are not software companies and they modify old Java programs and whatnot.

1:17:25And some of them do WordPress websites. And I think when we say it's going to change a lot of programming and then people push back with, oh, it cannot modify the storage layer of Postgres. That's not what I mean. But what I mean is that every day, 10 ,000 of times, somebody gets a phone call to call somebody else to say, can you change this on our WordPress website? And that person who makes that change maybe is called a programmer, but it needs some skills to do this. And I'm thinking that a lot of this will change in the future. Maybe not in the next four, six, eight, whatever months, but a lot of the stuff on the fringes will change heavily.

1:18:08And come back to your point of SSH into a machine. When the cloud got big, a lot of people were saying, the cloud is just another computer. It's not different. And we will always have sysadmins. We will always have sysadmins that administrate those machines. And yes, we do have sysadmins still, right? 2025, we still have sysadmins. Yeah, they're just like graduated. Exactly. In different areas. And if you look at the number of job postings that hire for sysadmins, I'm pretty sure that's changed in the last 15 years. And I think some of those changes will happen to programming. I don't think you will find the same amount of, you know, in Germany called a web designer or front-end developer, like people who build websites for a living for like companies and whatnot.

1:18:55I think a lot of that might change in the next couple of years. But if you work on a distributed storage layer at Google, an agent is not going to take your job in the next two years, you know, probably not. Yeah. If you're working on like really edge fringe R and D, those are areas that are more protected. I would say if you're in the 80 % realm where 80 % of the development is done by a common, hireable, typical developer these days, that job is probably more in jeopardy of either getting compressed or agentic. And you become a babysitter and you have taste and curation and humanistic tendencies, which is like care and humanity, you know, like things that, that thus far machines can probably reason it, but not really feel it the way we feel it.

1:19:47But, you know, those are still traits and qualities that remain, you know. It's such a wild thing to think about how this is changing, though. Like, even in the moment, like, this podcast is for software developers. Okay? Just in case you didn't know that, listener. And agents. You're a human. This is not a podcast for robots yet. Jinx. so that's a profound thing to even think about too i've been thinking too about the kind of code you're writing have you been amping with amp can you kind of like give us maybe a more clear picture of the behind the scenes because i asked you for that and you kind of alluded to it and you basically described what you did versus literally how it looks what it looks like to sort of like write this level of code.

1:20:46It seems like I would describe your job today, maybe not the R &D version of AMP and where you're taking that platform, but your job as a trained professional software developer, you're not writing code these days. You're trying to generate as much code as possible and solve as many big problems as possible. Is that pretty accurate to what you're doing? well i still i guess my title is still software engineer right and i do i wrote this other blog post about how i use amp that's also an appcode.com it kind of goes into this and i think the bigger picture idea is that um i call it paint by numbers programming so that means my job as a senior engineer is to think of how will I implement this.

1:21:38And then what I have constantly running my head in the last few months is like, will the agent be able to write this code for me? Like, can it do this? And if the problem is too large, or there's a lot of implicit knowledge in my head that I couldn't write down, or it's too cumbersome to write down, I go in and paint by numbers programming. I put in the lines, like I say, I want this file and this file and this new service and it should have these methods and it should do this and these arguments, please write this code for me. And on a practical level, I think 50 % of our, or more, say 60, 70 % of the code in our code base, which is a standard TypeScript, Svelte, SvelteKit, you know, there's standard looking code base.

1:22:25A lot of that is generated. And a lot of the, say, load-bearing parts, the stakes in the ground parts where you say, like, this is the architecture, these are the central pieces, that has been kind of written by hand or revised by hand. But I'm going to guess, I would say the test suite, 90 % of that is generated, right? Like, oh, cover all of these cases. Then we have a storybook that is pretty long by now, which is just a web service website that shows all of our UI components, right? Like the Svelte components. And it shows them in all of those different configurations, you know, show arrow two, what's the active state?

1:23:09Is it active, deactive? Like all of that stuff. So you have one page and you can see one component in all of the different states, right? And imagine an activity indicator. It can be blue, red, green, or idle or whatever it is. And it has a tooltip. So you want to see when you develop this, you want to see what does it look like in all of those different states. What I previously would have done is create the storybook page, create one version of this, create some mock data, do some Vim stuff, duplicate the mock data in like different states and different configurations, and then, you know, render it or put in other terms.

1:23:46you have a test suite and you have some mock data, like five different users. One user is deactivated, one user is activated, one user is an admin, one user is a group admin or whatever it is. And previously you would have used your editor to duplicate that information multiple times, or you write other helper scripts to remove the code duplication. But what I'm doing now with the agent, when I want to do like tests or storybook or whatever, I'm like, here's the component here's where i want to render it or here's the test that i want to write go and type out this code for me like it so most of it is not super smart like it's not coming up with amazingly new algorithms or whatever it is but it's just the the chores and like this just typing you know and one other thing that people kept saying is that i didn't realize how much dumb typing i did you know while programming you're like you know we've all heard this oh thinking is the bottleneck you know like typing speed doesn't matter but then you're doing it and it's like okay yeah fix the import statement no add that missing import no no no align this auto complete this blah blah blah there's a lot of typing still involved and you know that's what i try to get rid of i don't try to get rid of you know the thinking part like you put it it's it's more that i know what the structure is please write out the rest for me give you a concrete example from two hours ago i have two components in the ui and they should do the same thing two buttons you know they one of them has two buttons and the other one has one of two buttons and i'm like why are they inconsistent like they both should have these let's call them sign in and sign out buttons right one only had sign in and the other had sign in and sign out dumb example doesn't make sense should be the same button you get the point two buttons.

1:25:41And I was like, okay, if I do this, then I have to duplicate the call from here, update the import statements, adjust this, make sure that this is flex box aligned and it renders correctly and adjust the height of this. So this button, blah. So I say agent, this component has one button. This component has two buttons. The first one should also have two buttons. Please make it happen. And it looks at both components. It figures it out. It's not a hard task, copies it over and 20 seconds later, it's done. And I didn't have to type this out. And that obviously goes, that's one of the smallest examples.

1:26:19What I did earlier today was I built, I wanted to have some, I don't know, let's call it a testing script where I have a bunch of data and I want to go through the data and I want Each piece of data, I want to send it against the API and see what comes back. And because I noticed that my feedback loop is start up the dev build, try this out manually, hit the button, do this. I'm like, I could build a tool where I can do this 50 times in a row and see all of the results on the same page. And half a year ago, I would have never attempted to do this because I don't want to build another thing and type out 300 lines of code.

1:27:03and I would need to figure out how to do a three-pane layout. But then I was like, I can generate this. If I say, here's the data in this folder, here's the API, give me an ability to put an API key in and then render me a website with a three-pane layout where on the left side you list the data. When you click on one, you show the data and then you have a button to send the request and then you see the results on the third pane. It goes and does it. There's no issue. And I don't care about how it looks. Like, is it styled or not? It's just, yeah, it's useful. It's like a little, what do you call this?

1:27:43When you're woodworking, you build like tools to like a tool for the tool, right? Ad hoc. Yeah, it's like a tool specific. Yeah. Is it shim? Is it shim? I don't know. But it's basically, I'll give you a really concrete example, another one from a few months ago. This was early days of AMP. and um yes for everybody listening this is not in production this was early early days yeah but just like two years like two months ago yeah yeah so this is two months ago so early days i we had the agent fail sometimes to edit a file right so in users would say uses early early early alpha testers okay they would say it sometimes fails and then i would go that doesn't help me.

1:28:30I need the data. Like what was the input? What was the actual file on this? What's the thing that happened? And in order to figure out what went wrong, I guess in the past, what I would have done was figure out some logging, like some error reporting, use sentry or logging or something, and then put the data in some form that makes it readable for me to figure what the problem was. But then I thought, I now have at my hand a code-spooing, like a machine that can spit out code really fast. And if that code is a standalone project under a thousand lines, it will 99 % of the time get it. So what I did was I put in the code, don't do this at home, but I put in the code something like, if you are on Torsten's machine and you run into this error, put the raw data dump, like a JSON that was this big, for everybody listening, I made a huge gesture, like let's say 600, 700, 800, whatever lines big.

1:29:31Take the raw data, put it in this folder on Torsten's computer. And I just ran this for two days and I collected a thousand files. And then I said, AMP, let's build something. Here's a folder full of data. What I want you to build is a data viewer. I want you to build a little web app in Go. And I've never seen the insights of this code. Build me a Go web app that lists all of these files. It takes out these two fields. It syntax highlights them. And then it shows me a diff between these two fields. And then give me keyboard control so I can go through the data. And it did this in 45 seconds. I open up the website.

1:30:07I go click, click, click, go through. And I go through like 50 examples. And just by being able to look at the data, I spotted a bug. I realized, oh, it's a white space issue. And that's only because I had syntax highlighting and a diff, and I could easily go through data. And I never would have built this on my own because syntax highlighting, pain in the butt, like the diff in the JavaScript, the three-pane layout, I would have given up. But the barrier to entry with this, you know, the agents or the AI in general is so low that you can build stuff that you never would have attempted before, right?

1:30:44And to come back to what I would originally have tried, like logging and whatnot, imagine you get logs of like, input this, output this, and it's just this, like a line of logs. Would you have spotted a white space issue in those logs? You know, with like, oh, it used two spaces instead of a tab or whatnot. And I don't think I would have. But just being able to say with the push of a button, I can generate 500 lines of code. I changed how I approach this problem from an engineering perspective. And I think a lot of people are now realizing this where they say, oh, somebody tweeted yesterday, Jeffrey Litt, I think.

1:31:31He's like, oh, I kind of wanted to figure out. What was it? How many words are in each section of this Markdown document or something? What would you have done in the past? Would you have sat down and written a tool to do this by hand? Probably not. Like it would have been an idea that you brush off immediately. And he's like, Claude, build me like a one file, whatever strip to do this. And it did it just because it's affordable now. So now, you know, come back to real software engineering. how many tests and debug tools and test suites and like introspection tools or analysis tools have we not written because it would have been too much effort.

1:32:15And that's now affordable. And how we're starting to realize this. And the question is, when will we really leverage this? When will we make use of this? And to go one even further, you know back i've worked at softcraft since 2019 with one year break and a lot of large scale customers they say can you make this work for our code base can you make the tool that you have work for our large code base what we're seeing now is that people change the code base to leverage ai more they're like oh these files are too long for an agent it blows up the context window. You know what? Let's split it up in five files.

1:33:01And I'm telling you two years ago, nobody would have split up their files for any tool. They would have said, this is our file. This is our 20 ,000 lines. You're not going to touch this. But now the levers change and the amount of leverage you get out of these tools change. And now suddenly the code base will adapt. That's my bet. The code base will adapt to these tools. And the really interesting bet for me is how will our engineering practices change like yeah what code will be right by hand what code will we generate thinking even further will there be code that we won't check in but instead we just check in the prompt or whatever it is and just generate it on the fly or will all code still be checked in you know yeah this actually opens up a whole new line of thinking for me which i haven't thought before Or how does this impact open source?

1:33:53Because I was thinking through your situation. I was like, well, in the past, that one-off tool to help me do something else, right? Like it's like a side quest, basically. Like I either would have forgot about it, like you said, like, nah, too much work. It'd be nice to have, but I don't need it. Or I'd say, screw it. I'm going to write it. I'm going to open source it. And then other people can use it. And now it's worth it for me, right? Or I'd say, well, let's go see if someone else has done it and see if I can just use somebody else's. Maybe not in that order. I probably would go look first and then decide to build it or not.

1:34:24But in a world where we can just ad hoc generate one-off tools and check them into the code base or not, keep the prompt or throw the prompt away, like does the amount of open source diminish? Does my use of open source not matter as much because I can just generate anything I need? Yeah. Have you thought through this? Because I haven't even thought about the impact on open source. Yes. Quinn and I talked about this in our podcast that, let's be honest, the GitHub contribution graph is not worth as much as it was 10 years ago, five years ago, two years ago. And it had a sharp drop, I think, in the last whatever year or something.

1:35:02Yeah. Like, and you also know Go and you know that, you know, say on one end of the extreme, one extreme is the JavaScript community where it's like, here's one function. I published this as a package. And on the other end, there's like the Go community, which is like little copying is not bad. Like I don't have to pull in this dependency. So now I'm thinking with AI, why would I pull in like a tiny, you know, package? Or why would I write it by hand if I just need like a, why would I even go somewhere and look up a function that formats a timestamp in whatever format I want? Like I can literally ask the LLM, here's the timestamp.

1:35:50Here's all of the five formats. If you don't have all of the five formats, here's the command. Write me a program that generates all of the possible formats. So you see all of the power performance and then write me a function to parse them. Like, you know, like even the act of, you know, code as a way to reduce duplication is not up for grabs, but it's kind of changing because... Start to question it at least. Dumb example. And somebody listening will say, Torsten is an idiot. But just to illustrate the point, say you have a function that validates something and you want to make sure that it validates these 50 cases of whatever.

1:36:27or say 150. It always was best practice to type out these 150 cases. You would write a regex or something, right? And you're like, oh, let's not, you know, regex, blah, blah, blah, because we cannot maintain this list. Now with LLMs, you can generate 150 examples. Like why you can literally add code write time, generate all of the variations. You don't have to let the CPU go through all of the variations. And just stuff like this where, you know, even frameworks, all the goal of a say web framework is to help you reduce the amount of code you have to write but if the amount of code that you can generate is suddenly large and it's fast and it's getting cheaper do i need like fancy templating helpers when i can just say change all of the user avatar components and make them all green you know like something like this and the principle becomes do repeat yourself maybe i don't know but it's this it's certainly a lot of code is based on the assumption or a lot of code and a lot of the way we write code is based on the assumption that writing code takes time is hard and we want to avoid it as much as possible you know but now Now, will that change?

1:37:48Because I can generate you websites with one push of the button now in like 50 different variations. And then coming back to the original question of open source, well, does it make sense to store pre-generated pieces of code and build libraries that are available and configurable for 15 other use cases? when you could just say, well, here's like one version of this and then maybe you feed it into an LLM and you generate your own versions of this. This is a bit sci-fi and obviously it's not performing, blah, blah, blah, but it's just, you know, like this stuff is changing. And one thing that to go one level higher even is, and it's also one of, you know, why I think, you know, the business I'm in is so interesting is Eric Meyer, ex-director of engineering at Facebook, or one of the ex, you know, he's a Haskell guy, like really smart functional programmer.

1:38:49He's done program for 40 years. And he said, he had a presentation two years ago, I think pretty early where he's like, why search for code when you can have an LLM generated for you? And what he means is that when you go and you search for Stack Overflow and you search your own code base or you search the code basis of your company, what you want to answer is, I want to build a user avatar component or something. How do we usually do this? Because you don't know how or you don't want to do it, right? But if you have a model that knows how and can do it in less than a second, why go and find those examples?

1:39:30Why not generate this here? It's the same as you're trying on new clothes and it's like, oh, I'm going to try on the red shirt and the blue shirt and whatnot. But instead you could have a photo taken of you and then say, give me 15 variations where I wear the same shirt in 15 different colors. You know, like stuff changes when you don't have to go look for it, but can generate it on the fly. Well, what you're saying is, is that the efficiencies or the perceived efficiencies we've done in the past have been based upon human efficiency. Exactly. Right? Human, like we thought it was efficient to write shared code so that it was more efficient to stand up a new project.

1:40:11So that was more efficient for teams to unify around codified ways, standards, et cetera. Right. Those are all the efficiencies. But if those efficiencies are under mute or moot, sorry, is that they're no longer they're no longer important. So those efficiencies to an LLM were the thing that begins to generate this code. It's like, well, you know what? I don't need to worry about this one unified way for 25 applications to connect because I could just write it on the fly. Right. For the bespoke need it has, very specific, and that efficiency versus the efficiency of some other ephemeral efficiency that doesn't really matter anymore.

1:40:52Yeah. The analogy I used in the past was, at the end of a book, you have an index with different words that you can look up quickly. And you have that index because it takes a long time to find that specific thing in the book. if you're able to read a thousand pages per second do you need an index still the thing itself is optimized for how it's consumed right now but if the way you consume it and suddenly we why would i need an index at the end of the book if i can just have photographic memory and can read a thousand pages per second and i think a lot of code is still like this a lot of has to be right it's based on how we write and consume code and how hard it is to write code but when the capabilities change you know the tools or how what we produce with those tools will also change the kids are going to totally get this the kids you know the next generation the ai natives they're not going to ask these questions because they're going to grow up in a world without that constraint you know like they'd say like why why would i share like well you have to have a shared library like why would i share my library when i could just tell my thing to make a new library why would i refactor when i could just rewrite or why would i maintain when i can replace like when the cost of replacing maintain your car because it's expensive to replace it but the cost of replacing is approaching zero why maintain i don't know you start to ask a lot of questions that we've assumed were like fundamentally unaskable, right?

1:42:38Because all the calculus changes. I'll give you one funny example. I've started to build this because I posted it and people got riled up about it, but it's a little bit philosophical, but basically a lot of stuff we do when we work with computers is about putting things in a certain form, in a certain structure so the computer can work with it. Example, static site generator blog posts. Right now, the format is you have to have a YAML, front matter it's called, right? The slog, publish date and whatnot, and then the text of this. Now with LLMs, you could technically write a blog post with anything.

1:43:21You could have a folder called my posts and it could be a screenshot of a text message. That could be one blog post. You could have a screenshot of a post-it note, a photo of a post-it note, a markdown file, a text file. And then you ask the LLM, here's my five blog posts. Here's the basic template I want for these blog posts. Generate me my blog. And you don't have to put any structure in it because these LLMs are now these, I call them the fuzzy to non-fuzzy adapters. You can throw pictures, screenshots, audio messages, videos, anything at them, and they can spit out text. And when you think about it, it's sci-fi and philosophical, right?

1:44:01But when you think about it, it's how many beautiful things can we build when we don't have to think in strict database column schemas, you know, where we can say, well, a blog post could be anything. It could be a picture, a video, an audio recording, you know? And we now have a tool that lets us transform this into another form. We don't have to put it in a specific thing. That is interesting. So what exactly are you building on? I started to build a static site generator that at build time will just look through a folder called posts and generate out of images and videos and audio files and screenshots an index of blog posts and put them in a format.

1:44:45And the prompt is for each blog post, modify the layout so it matches the content of the blog post. You know, like make it look serious or make it look fun or whatever it is. And I think that's just something we've never had in computing or software where you could say, make this one look like the handwriting, you know, make or, you know, it's just orderly handwriting. Is it fun handwriting? Is it a little throwaway note? Make the page look like this. And it comes up and probably does something, you know, and that makes it look like this. Yeah. So is it non-deterministic then? or are you going to have some sort of - Yeah, it's undeterministic.

1:45:23How are you going to have a reverse chronological listing of posts? Isn't that what a blog is? I mean, or does that also have to be undeterministic? Okay, then the - What is a blog? I mean, a blog is a dumb example, but it's like, then the file names have timestamp in them or whatever it is. But I mean, still, right? Like it's a large step up. That's for sure. Because I don't like YAML front matter. I only do it because the computer likes it, you know? Yeah, exactly. That's what I mean. That's what I mean. And what I did was, this was two months ago or something, somebody sent me an email and they were like, hey, on your personal website, it still says you work at Z, but I heard you back at Salesforce.

1:46:01And I was like, oh, you're right. And I opened my website with AMP and I took a screenshot of that email, pasted it into the agent and said, fix this. And it went and it found that bit on my website where it says where I work right now. And it updated it based on that screenshot of that email. And I sat there thinking, isn't that amazing that I can take a screenshot of an email and something changes based on it? And I sent it back that person who sent me the email. And that person was like, I'm sure you could have done it faster than asking an agent. I'm like, don't you see, man? Like, this is crazy.

1:46:34I could build you something where you forward an email and it opens a pull request on your website. That's not hard to build anymore. Yeah, back in the day, it was a startup, right? Exactly. That was somebody with a pitch and seeking funding. Now it's, yeah, whatever. We got here, though, specifically by Jared, you asking about open source. Like this entire last 35 minutes-ish has been about the question of open source. Yeah, more or less. And at first, I almost said everything by default is open source now then. Because if you can generate every line of code, then the critical factor is not what the code that gets produced.

1:47:17It's the thought and the intellectual property potentially that makes it proprietary or not around that idea. If by default, then everything is just open source. But then now as the conversation goes on, it's like, well, what if open source doesn't matter anymore? because when we need something, we just make it. There's got to be some living standards, though. The value in the source. I mean, where's value in the source anymore? Right. Like, that's what I'm trying to really - There has to be some source out there because the robots need to learn more. That's, yeah, well, that's a second order effect, right?

1:47:51Like, if we all say there's no value in sharing stuff anymore, then the well dries up, you know, to make these models better. I think we'll find value in sharing things, though, still yet. I mean, I think there will still be libraries and frameworks that will get made. And maybe at some point the source will be just a codified way of the LLMs using this stuff. And there'll be a user like we're a user. And we're only user by proxy in the fact that we care about the name that gets associated to it. They don't want source necessarily. They want tools. Like for training them, they need source. But for their actual building, they need tools more than source.

1:48:31So I don't think we can answer this question in the next three to five minutes, let alone the next three to five years. I feel like this is a generational question. Like if you go out now 20 years and say, what is the impact of open source on the world in 2045? Will it be dramatically different now? I think it might be. I'm not sure. I'm not sure. Can I make an optimistic prediction? Sure, please do. I think the value of what's creative and truly human and tasteful and based on experiences, unique experiences, I think the value of that will rise. I think if there's one thing that only you in that moment with that combination of this model and that model in this scenario can produce, I think that's still valuable.

1:49:25But like a really piece, a really creative piece of code, a really insightful algorithm, really efficient, good data structure, you know, but yet another two -week framework or I don't know, you know, like a date parsing library or something or a one-off function to check temp the existence or something like this, right? I think the value of that will diminish. But the value of uniqueness and taste and creativity will, well, stand out. I think that's a good note to end on. You think, Adam? I think so. I think the only thing I would add to really this conversation is just that it seems like perspective is in order.

1:50:12Because when you're closer to the problem, the specifics matter more. like for example future humans may say remember when human validation was based upon lines of code or characters written in their life or whatever like and now it just like it doesn't matter because that doesn't it's not a metric that matters to track when you zoom out right when you zoom in that matters when you zoom out it's like well you you measure things based upon the broad strokes versus the specific definitives on the zoom in well said thorson thanks so much for coming over to our podcast and sharing i know you've been on go time a few times we've known you and known of you especially back when you're writing those books about compilers and stuff but i haven't had you on the changelog so this was a joy i'm i'm fascinated i'm inspired i'm excited more than scared sometimes i'm scared but today i'm more excited about the future with these agents helping us do better, cooler stuff faster.

1:51:16I mean, mostly good, right? Thank you for having me. And small anecdote is I told my wife before we started recording, I'm going to go record this podcast. And she's like, what podcast is it? And I said, it's the first podcast I've ever been on in 2016. You know, back then go time. Yeah, totally. Was Adam, yeah. Yep. That's awesome. always happy to hear origin stories that include us you know we we've been around a while so we have a few of us that was a long time ago it's nice it's good to be friends to you all these years yep it's pretty cool that's what it's all about right there not the last time appreciate the conversations really enjoyable thank you forson breaking news about our denver live show not only will breakmaster cylinder be in attendance bmc is now officially performing some fresh and some classic changelog beats live on stage 30 minutes prior to our 10 a.m start so if you were planning on arriving just before the show starts maybe get yourself to the oriental theater a little earlier and if you haven't bought your ticket yet, you now have one more reason to get in on it.

1:52:3615 bucks cheap and free for ChangeLog Plus Plus members. Find a way to get to Denver on July 25th and 26th. The FOMO is very real. Learn more at changelog.com slash live. Thanks again to our partners at fly.io and to our sponsors of this episode. Retool agents are waiting to work for you. Go to retool.com slash agents and depot 10x faster build times at depot.dev that's it this show's done but we'll talk to you again on friday and we do hope to see you in denver chainsaw.com

1:53:42Game on!

From the publisher

Thorsten Ball returned to Sourcegraph to work on Amp because he believes being able to talk to an alien intelligence that edits your code changes everything. On this episode, Thorsten joins us to discuss exactly how coding agents work, recent advancements in AI tooling, Amp's uniqueness in a sea of competitors, the divide between believers and skeptics, and more.

More from The Changelog: Software Development, Open Source

All 232 episodes
Agent, take the wheel (Interview)The Changelog: Software Development, Open Source · 1 h 54 min
Listen in VO