¶ Intro
What if you could merge 600 commits on a single day and none of it was slop? This is what today's guest, Peter Steinberger, the creator of ClaudBot, claims he's doing. Peter is a standout developer who built PSPDF Kit, the PDF framework used on more than 1 billion devices.
Then he burnt out, sold his shares, and disappeared from tech for three years. This year he came back and how he builds and what he's doing now looks nothing like traditional software development. In today's episode, we cover why he no longer reads most of the code he ships.
And why, that's not as crazy as it sounds. How he is building ClaudeBot, his wildly popular personal assistant project, which feels like the future of Siri. The closing-the-loop principle that separates effective AI assistant coding from frustrating vibe coding. Why he says code reviews are dead and PR should be called prompt requests?
And many more. If you're interested in how the software engine workflow could change in the coming years thanks to AI, this episode is for you. This episode is presented by Statsig. the unified platform for flags, analytics experiments, and more. Check out the show notes to learn more about them, the Pragmatic Summit on the 11th of February in San Francisco that I'm hosting with them, and our other season sponsors. Alright Pete, welcome to the podcast. thanks for having me go go
¶ How Peter got into tech
It is awesome to meet you in in person. Yeah, I mean I almost messed it up. Yep. What what what what what happened? You lost track of time. Does that happen often and how how so? Um not usually. Not usually. Um This is an interesting time for me'cause I'cause my latest project is is blowing up. Claude, right? Clawbot, yeah. Claudebot. I'm struggling a bit to get enough sleep. But it's it's it's interesting. I never
And never had a community blowing up so fast and it's just incredibly fun to work with. So before we we get into CloudBot and all the fun stuff you're doing, I want to rewind all the way way back. You create a PS PDF kit, which is used, I think, on more than one billion devices, users. If if you see a PDF rendered, you probably see that. But even before that, how did you get into tech? Oh my god, how did you get into tech? So I'm from U rural Austria. Um always mobbing the introvert.
So eventually I we always had like summer guests and one of them one of them was a was a computer nerd and then I kinda got hooked with with like the machine he had and begged my mom to buy me one. And ever since then I This was in high school or so? I guess I was fourteen. Yeah. And ever since I started tinkering, like I can remember the earliest thing was like I stole an old DOS game from my school and then wrote a copy protection.
for the floppy disk so I could sell it. It took like two minutes to load. I was just always sinkering. I was also playing a lot of computer games of course. But like building stuff Almost feels like playing a computer game. Like definitely right now, it feels better than Victorio. When I started out, I I I I I read like The equivalent of bash scripts for Windows and then I did like websites. So I guess
A little bit of JavaScript, uh even though I had no clue what I was doing. And then the actual first language where I I had to learn how to build things is when I started university. And I never met my dad and I come from a from a poorer family. So I always had to work. I had to had to finance my own studies, right? So when other people were uh were having holiday. I just worked full time at a company.
So the the first real job I had was was in Vienna. It was supposed to be one month. And then they kept me for six months. It was just a bridge between military and and my university. And I kept working there for like I think five years. And I remember the first day they they gave me this huge book.
Well, maybe that huge. And says Microsoft MFC. Um, I still have nightmares. And I got I got like I was like, this is terrible. Like and for the for the next win I just I just silently used.net. I just didn't tell'em. And like a few months in I just wasn't Yeah but the tech stack I I did a few modernizations so but then it was too late. I did this a few times in this company. I don't know why they kept me. No, because it because my shit works.
So uh I did dot net and actually I actually dig it.net two point oh had like generics. It took insanely long for the application to to lo to launch because like it everything was compiled at first start and like your hard disk was like If you remember. So so you you how did you stumble into both iOS and where did the idea from PSPDF?
See it come from? Not even yeah, the first one. And the first one wasn't even available in in in in Australia. A little time goes went on and I was at university and a friend showed me the iPhone and I I think I I touched it for a minute. And then I immediately bought one. Like like this. Like it it clicked when I felt this. And and the to me this was like a holy F moment because it was just like so different and so much better. So I got I got one.
They were still not thinking about building for it, you know. There was that was what when was this? Two thousand nine, ten, something like that. Yeah. Yeah. And then I I used their browser. I can I can see the story. I was I was literally driving in the subway and by the time I was using a a gay dating app and this was iPhone OS two.
Yeah. So so I I long time ago. I typed this long message, I pressed send, and we were just going into a tunnel and the JavaScript disabled the send button and then an error message came. But there was no copy paste, there was no screenshot. So it was just like and I couldn't scroll anymore because like scrolling was disabled. So like this long message was like a little bit emotional was gone. And I was so mad. I was so mad. I'm like, what the hell? I'm at home?
And I downloaded X code. That's that's where that's where the the window came and I was like, where's the IDE? So it was like like I was like, this is unacceptable. I basically hacked the website. I used regular expressions to like download uh to parse the IHTML, which is like totally not something you should do. And I built an app. And I used I used iPhone OS three beta with like core data in beta, regex kit light.
I used a hacked version of GCC that backported the blocks compiler so I could use blocks in iPhone OS3. It took me quite a while until anything worked. Because I I had no idea what I was doing and I was like using all kind of like beta tech. But eventually I I got it to work. And I I I wrote that company. It's like, hey, I'm making an app, what do you think about it? Got no response, of course. So I was like, Let's just put it in the App Store.
And this was for the dating app, right? Yeah. So you just like you know, you looked at you saw their APIs, you could just like easily like build a client on top of the API it was HDML.
Oh. I was I was just literally parsing HTML. Oh, so so you kinda parsing HTML, kind of turn it into your own, you know, like each use it a as an API. Oh clever. I mean th this was back in the day where no one thought this this would happen, but I made I put it in the app store, I charged five bucks for it, and I made like ten K in the first months.
And I had no clue what I was doing. So and there was like so many complex tech stuff. This was very early on where there was a lot of weird forums on Apple. Yeah. So I just put in the the bank account of my grandpa. And then one day my grandpa called me, Yeah, something is weird. Like I got this huge payment from Apple. I'm like, This is mine, this is mine, don't touch it. But the the funny thing was Lena this blew off.
And I remember I was in a club one day and like I saw someone using my app and I was so proud and I I wanted to like tap him on the shoulder and say, I built this and I thought like really weird. So I didn't. And then I I I went to the company I worked for for five years and told them like I'm gonna pursue this. This is this is really exciting. And my boss was like mocking me. I really like oh you're making a mistake, this is a fad, this will not go, blah blah blah blah blah.
And the way that got me, that's what you call a new is a chip on your shoulder. I'm like, you know, one day I'm gonna I'm gonna have a company that that's worth more money than yours. Why it took me eight years. So I I got hooked. Like I I worked I I'm I'm a little bit of an addictive personality, so which you see again right now. But I I worked a lot on this app. I learned I learned in in high speed. And this was also the time where I started Twitter.
¶ PSPDFKit
And that was usually hugely influential for my career. I made this up actually quite good. And then one day I was at a party at at three AM, um slightly intoxicated. And I got a call from a US number. The guy on the phone was like, Yeah, hello, this is John from Apple. Yeah, there's a problem with your application. Like some people reported pictures. And that was it. That was the end of my app. Um It was good until it lasted. And I was just I just quit my my job and was like, well.
F you Apple. I did freelance work. I was at dubdub. I was introduced to dubdub being dubdub DC. Yes. Sorry for the insider terms. I was introduced to someone as one of the best iOS developers in Austria at a bar at two AM in San Francisco. And then basically got a job in the US. And then I moved to the US for a while. And then I I went to the Nokia development days. This is all like Stone Age by now. Oh my god. And then someone came up to me and said
Yeah, they built this app somewhere in Eastern Europe. And it works but it crashes sometimes. And it was like it was like a magazine viewer, right? This was back when the iPad just came out and Steve Jobs said that like this is the saviour. So everybody was building magazine apps. And I was like That sounds like an interesting short term gig. And I I was like, okay, I I'll I'll I'll help you out.
And I opened the app and it was like, oh the worst code I've out iOS that I've ever seen in my life. It was literally one file with like thousands of lines. Double Objective C. Yes, where they use Windows as tabs? I did I didn't know this worked. I was surprised it worked at all. But it it felt like a a house of cards and I I tried to I tried to surgically fix things, but like as soon as you touch something, something else would break.
Um, so I got it I got it somewhat stabilized and told him like look this is this is like madness. Um I'm gonna rewrite this for you. Yeah, but it took half a year. I'm gonna do it in in a month. Well it took me two months. Um I wasn't that far off. And and then here I was working on a on a PDF viewer. You know, on every technical problem, the domain is is I wouldn't say like completely unimportant, but you can always find interesting problems in every domain.
And that was a lot of infrastructure problems because you had a C call that would render a PDF that would maybe take thirty megabytes, but the whole system had 64 megabytes. So if you're not very smart and like are very careful what you do in the background and when, uh the the OS would just kill you.
I got really fixated at like making it good, like when rotation is, like the the page would like animate. And so so you know, I I like I like those details. I spent way too much time on that. That's why it took two months instead of one. But the end result was
It's good. Um and then I I I worked with them for a while and then a friend texted me up, is like, Yeah, I'm working on this magazine app and it's really hard. I'm like, Yeah, no way it's hard. I know. Like I did it. You just built one. And um and he was like, Yeah, c can you can you can you get me the code? I'm like Sure. So I sold him like I extracted the the part that was PDF from from this magazine app.
And I I made sure I made sure like the other person was okay. And then I sold him that. And I was like, well, if he's interested in that, then why let's not try to Tell it to other people. I used uh a WordPress template and mutilated it to run on GitHub pages. And then and then when you did the the fastland flow, at the end you got a Dropbox link to my personal Dropbox with a source code SIP. And I've built this in one afternoon and I tweeted it. And and then in that week three people bought it.
It was like I guess two hundred bucks. But back then and for me it just was like amazing. And not only I got like three people who just bought it and like ten emails who compla ten people who complained about it. Um, because they wanted it but it didn't didn't have the features they wanted. You know, it's like I got nerd sniped. It's like, Oh, I didn't have text selection. Oh, how hard can it be? Three months later.
Oh yeah, it's really hard. Text lecture and a PDF specifically. Yeah, yeah, yeah, yeah. You you know the saying uh the saying like uh the companies are built by young people because they don't know how hard it is. Yes. Yeah, yeah, I had no idea what an insane madness.
This file format is? Peter was talking about how some problems look deceptively simple. PDF rendering is a good example. You look at it and think, how hard could it be? And then you spend months on edge cases that you didn't even know existed. This looks easy until you build a pattern shows up in other places too. Internal tooling for feature flags and experimentation is a classic example. Teams often underestimate how much work it is to build the infrastructure around these tools.
There's a reason big tech companies like Uber invested years into building internal, experimentation, and feature flagging systems. Which brings me to Statsig, our presenting partner for the season. Statsig gives you the complete toolkit without building it yourself. You could feature flags, experimentation, and product analytics all in one platform tied to the same underlying user assignments and data. In practice, it looks like this.
You roll out a change to 1% of users first. You see how it moves the top pipeline metrics you care about, conversion, retention, whatever is relevant for the release. If something goes wrong, instant rollback. If it's working, you can confidently scale it up. Companies like Notion went from single-digit experiments per quarter to over 300 experiments with Satsig. They shipped over 600 features behind feature flags, moving fast while projecting against metrics regression.
Microsoft, Atlashian, and Brex use StatsIC for the same reason. It's the infrastructure that enables both speed and reliability at scale. Statsik has a generous free tier to get started, and pro pricing for teams starts at one hundred and fifty dollars per month. To learn more and get a 30-day enterprise trial, go to statsic.com/slash pragmatic. And now let's get back to Peter and why rendering PDFs was a surprisingly hard problem.
But now I remember that was a few weeks ago. Someone emailed me. They did something with PDF when they wanted my help. And I just wrote them like, I'm sorry, like I I did my deed. I I know more about PDF than any any sane human person ever should know and I went I went to therapy. Good luck. But yet that took off and and I just I while I was waiting for my visa, I I worked on this project and and it just kept on
more people kept on buying it. And you know, it was like it was like summer, I was I was like lying at the lake and got another email that someone bought it for six hundred bucks, eight hundred bucks, or just up the prices as it had more features. And by the time I I went to San Francisco to work at this company, it already made more than what I made there. But my whole life was I still I still sort like I have to be there, you know?
So I I did it. And also interestingly at this company I had to do. So w what would you say that you moved to San Francisco? Yeah. And and of course also it ended up being something where I had to build s build something with my framework at that company too. But, you know, startups are not like eight hours, a little more. And my personal project was also a little more. So my sleep was a little less and then eventually after three months
Uh Sabine, my manager, came over and said this, Peter, are you okay? And they gave me a choice, uh, to either keep working at this company and drop my project or or vice versa. And I had one week to decide. The count up was one week to stay there or leave the country'cause I was on a on a complicated visa. and my decision was quite easy it's like yeah i want to do my own thing
And then and then And at this point it was already taking off. You already saw that this is there's a big business here. Yeah. It it will probably pay you as much as your US job would have paid. Uh that's never money driven either. It was more about w what what what were you driven by? I'm gonna make Stuff that other people find amazing. Like I I I love tweaking the details. I love those little delights. It wasn't even that the space there were competitors in the space.
But my anger was always like I built something as if Apple would have built it. Like like with with with like all the love and care and and polish and and those little delights that A lot of people in the industry don't get. Uh so even though we had competitors that had remote features. And well round way longer my company was more successful, my product was more successful.'Cause
developers tried the the different ones and mine just failed the best. I think software's all about about how it feels. Much more so than the than the feature set. Like why do we buy Apple stuff? There's more features than than Windows. Um, but it it feels better. So how did you go from like you you left this company and you were building this p PDF?
component that started to sell, at what point did you hire the first person realizing okay, there's something more to this? When I went back to Vienna. Then I was like, okay, I have to go all in.
And that's where I I started working with freelancers a little bit. And I'm way too late to be honest also. Like I I could have could have hired much earlier, but you know, you know, it's it's it's a big step. And that's kinda where it it it started having a life of its own and I spent pretty much thirteen years of my career.
um building this product with this weird name that I never changed because it took me like I thought like five minutes about it. But then then it's stuck PSVDF kit. PSVDF K. They they finally did a rename. But I wouldn't have I wouldn't have renamed it. But now it It it it's it's it's a mouthful, but it's very unique. Well you get it if you do objective C because it's just a namespace. Yes. Um and by the time it it it made perfect sense. My marketing or m my strategy for marketing was always
I only care about the developer. Like I know like upper management has the decisions, but if I can convince the people inside the company. They all do the marketing and lobbying for me. That worked really well. We never did like cold cold emails or aggressive. It was all inbound. All we did was like make good stuff and write insightful technical blog posts that and I went to a lot of conferences. Like the for me partners was okay.
If people understand that the people who built this product are like... know what they do and and love what they do, that reflects on the product. And that That worked really well. And then what was the tech stack behind PSPDF kit? Was it Objective-C? Was it later Swift? Were there other technologies like C or anything else? We eventually expanded to all the platforms. Um Big Shift was.
¶ PSPDFKit's tech stack and culture
The switch out Apples renderer, which was NES is still quite buggy, to like a big C one that one then we used across. all the frameworks. Um we we were we were really early with web. We were one of the first PDF frameworks that ran in WebAssembly. And I I did the most clever thing that it was in the very early days when WebAssembly was just taking off. And we built a benchmark. And that benchmark was eventually used by by Google and Microsoft and Apple.
And I basically had all these companies like working really hard and making my renderer faster. 'Cause'cause'cause they use their benchmark as one of their benchmarks and the benchmark was just like rendering our stuff with our shit. Nice. And then as as a company grew, one thing that I remember about PSPDF Kit, uh you did write a lot of blogs. And one blog in 2019, so this was about like I think, you know, year nine or ten in the company, it was about how the team worked.
And you you mentioned things there like every feature starts with a proposal. You mentioned that you are conservative because it's a it's a big API that that people use. You want to be careful. things like the Boy Scout rules to refactor. How how how did you kinda put together the the the culture of of this now this team which was now closer to thirty or sixty people? Either actually seventy then when
I sold my shares and now it's almost two hundred. And I I knew right from the get-go is like, I'm not gonna find the people that I need in Vienna. So it was always just like remote first. And eventually we we we landed up with some kind of hybrid model, uh, which made things a bit more complicated. I learned a whole lot on the go. Like I I never had the urge to be CEO. I always was coding.
I eventually I I brought people in, two people, that that helped me a lot with other other parts, uh and on the business side. I can do it and I I think I think I'm I'm quite good at it, but I just don't enjoy it. Like In on sales calls where you like have to like think about a magic number, how much it would be worth because that's how enterprise works. Ugh. Peter just said ah the worst about enterprise sales because selling to large companies, enterprises,
is as tricky as it gets. Not just because you need to get pricing right, but because of all the enterprise features that you need to build. And this leads us nicely to our season sponsor, WorkAway. If you're building with AI agents or automation tools, here's a problem most teams don't think about at first. Once an agent can take actions on your behalf, you need to control what it's allowed to do. And traditional auth just wasn't designed for that. That's why WorkWas introduced MCP Auth.
Which gives teams a way to authenticate AI agents with explicit permissions, auditability, and enterprise-grade security. Instead of sharing over-scoped API keys, you can define clear boundaries for the data that agents can access. and the agents they can perform. If you're building AI powered features and want to shift fast without compromising security, check out workerwash.com slash mcp. And with this, let's get back to Peter and enterprise pricing.
But that's also the only thing that that really works on on a model like this. Yeah. Right. Me meaning custom pricing. So c can you sell us for for for you know devs listening who go to a vendor's website and they're frustrated that there's no price, it says call us or schedule a meeting, why that is?
¶ Enterprise pricing
Oh that's that's why we because we're gonna look at your company and then just take the dice and and and think about the number that you're probably willing to pay. And that sounds horrible. But also when you have a product where you can't really tear it down to a specific number, like it it
it makes a difference if uh a freelancer contacts us or one of the big Fortune five hundreds. Let's not say names. Yeah. Because the usage will be different. The value they get out of it will be different. And charging the same You would either exclude one or the other. If I if I if I go too low, they're gonna see this fishy. It's like uh procurement for like five hundred bucks, we're not gonna even start the process.
And if we we target it too high, we're gonna lose those people. So so as horrible and unfair this process seems, for some kinds of products it is the i it's the most fair way after all. You know you know, on on software. There is I would say there's like four X's. There's like easy and hard. and interesting and not interesting. We were very much in the not interesting and hard part. If you build something that
every developer wants to build is gonna be a hard sell. It's it's a hard sell anyhow to uh selling anything to developers is a hard sell. Yeah. But if it's if it's too easy or too interesting, good luck. But if it Oh God, I don't wanna do this and oh my god, this is hard. That's a good spot to be in. So so I found a really interesting niche and
There were just an infinite number of complex problems. You you you need to tell me, tell me one or two hard things about parsing PDF. How hard could it be? Yeah. If there's a specification, I'm an engineer, I know specifications, I
What's so hard about it? I mean there was like this one example where you know like PDFs they have links. So like there's like there's like a table of contents and you click on it and it goes to like page thirty seven. So I built this whole model with the assumption, oh yeah, maybe there's like a hundred or a few hundred links in there.
And then we got this one customer who like paid really good money and then they send us like, Oh, it takes four minutes to load the PDF. What the heck, guys? And I looked at it and it was like a fifty thousand page text bible from Canada.
And it had like it had like more than hundred links per page. Five hundred thousand links. My data model completely exploded because my assumptions were off by a number of what one thousand? But by then you have like a mature product with an API. So like How do you how do you completely redesign the internal part without breaking things for everyone?
Like suddenly everything has to be lazy. Where where before parting hundred one was easy, but now they were like this was like so difficult to keep it working for people. Um, I think I spent like two months just on that, completely redesigning like the internals and like making sure It's still easy for people. They don't have to know what we what we load easy, what we load lazy, or if you copy the thing it still has to like
Have to keep some connection. It needs to keep the references and and some of those things. So I I so I and I I love to do support. And I think that that that was also a confining factor why the company worked.'Cause if if you send a ticket and then the the the CEO replies and helps you out Um that has impact. And my my strategy was always like I always use the list in reverse. Cause if you if you send a ticket and you get a reply within five minutes, that's magic.
If you wait one or two days, not much difference. Yeah. So yeah, and then this uh this was one of the problems we're working Uh two months and I finally got it down to almost like this. Mm-hmm. That must have been satisfying. And and that was that was very satisfying.
And you were writing a lot lot of the code or you were involved in in in a bunch of the code. Like obviously a big big big team was now here, but you were still kind of overseeing it, right? Or in the details. I mean, of course I I had a re a really great team and and some parts I I was more involved. I was always more involved in mobile because that's where my my heart was. But I was always very deep in the tech and and uh
the marketing side, the business side, I had like Jonathan's help, I had Martin's help. Those I I I found good people. And the the thing is if you like the blogging and writing about
how you solve interesting hard problems will help you g hire interesting people that wanna solve interesting problems. This is what I remember at PSPDFK that your blog was every now and then it it made it to hacker news as well, but it was just interesting to read and I couldn't name again, I I'm not one into PDFs, but if I had to say something of PDF, I would have said PS PDF because they're the only ones where I read interesting entering blogs about
how you optimize or ship is still there, by the way. I I I myself also sometimes ask myself, like, hmm, interesting. Do more companies not see this? Or is is the question that you you need to be a developer who's either the CEO or up there who just likes doing this and by the way, d did you ever write this thinking this will be helpful or you just wrote because
you got something out of it, like putting out that you solved this hard problem. I like sharing and and and like inspiring people. Um there was sometimes even conflicts where we were like, should we write about this? Because it's like a little bit of secret sauce.
But I just never listen to those voices too much. Um I just you know there's also like when you when you write something down, there's it's this principle of like you understand it, but then if you wanna teach it, you really have to understand it. And now I wanna like preserve it and like help others. So so so I I got I got a giga of it. Of course of course I liked the attention. Um but really it it was this
Sometimes I just referenced a year later to my own pulse. It's like yeah, this this is a it this is both company documentation, this is like m my own logbook. I i i it's helpful in so many ways. And a lot of the speaker companies Oh, they put on too much red tape. There's a lot of developers who don't really like to write. So I I I force
Everyone once a month a full day just to write a blog post. But you gave them the time. You're like that day you don't need to do any other work, but write something. Yeah, you have yeah, you have a day to come up with a post. Ah a day is is quite much actually. I mean when I'm nowadays when I write posts, it still takes me A few hours. I don't want to dwell too much on like the I think the the the starting time of the company is the most interesting.
And then the the growth phase, you get more red tape, you get more people. It's much more gardening your product instead of like doing doing white hack. um and more iterative. So so so it got a little bit less interesting uh over the years and there was like more people drama because the more it's just so the more people you have the more issues there are. And I didn't enjoy it that much. And I was Really really burned out. Wha what burnt you out, do you think? Uh it was just burning too hard.
¶ Burnout
I was working most weekends. I I I tried to shuffle all my managerial needs. And you know, as a CEO, you're basically the waste bin. 'Cause everything everything that other people don't manage or or can do or or mess up, you have to fix. And it's also quite lonely because you you can't openly talk about a lot of things. I mean I I I I I structured the company to be quite open.
But still, like you cannot you cannot be negative. You have to ev even if even if like even if like really bad stuff happens. I know that was like there was like one weekend where my my co-founder called me at at five AM And told me like yeah, there's this big airplane company and their planes are down because our software's crashing.
That was a very interesting weekend. Until I could like I disassembled there or their app and did prove that they messed around with our source code to tr triggering a uh triggering a a a license key fallback. Uh that eventually like cost you should ahead, but That was like a if the source company's gone and more moment. Um and that's just on top to all additional stress and there were quite a few of those things. You can do that for a while. And I I also believe like
Burnout doesn't necessarily come from working too much. It it comes more from or at least for me, when you when you work on something but you don't believe in it anymore or you have like too many conflicts and and uh we also had uh uh we did fight a lot in the team, uh with like management team. And by the time I I I made this mistake and I thought you have to like lead a company more democratically.
Um, so that was also something that burned me out. I wouldn't I wouldn't want to miss it for the world though. Yeah. So You know, from from the outside. It seems you sold your shares, you made enough money to not have to work again, should you not choose. And for a lot of people, like you know, people who are starting out their business or or one day want to start a business, this sounds like the absolute dream. Like this is, I guess, what
We know realistically that most people will not make it. But if you make it, I mean you've kind of like, I guess, you know, checkbox is done. You're kind of it's a little bit if you're like climbing on a wall and you you ring the bell. You you're done. And then what I noticed is from the outside again on your blog, the blog post completely stopped for several years.
What what did you do uh in in this time uh and and what what what did you learn uh in this time you know before you came back to where we are now? I needed a lot of time to decompress. I I catched up a lot on the things I thought I missed. I I party a lot. Um, there were months where I didn't even turn on my computer. And for a while I was I just didn't had this feeling of like, what should I do now? Like like I w definitely was like
Why border? You know, you're not you're not supposed to to retire so early or like have so much have such a good exit that you never have to work again. That messed with my mind quite a bit. That that was some that was some hard years. And then in in April I was like I there was this idea that I had years ago and even a side project that I started. It's like, oh yeah, why not?
I wanna continue in that. And then after after after more than three years I just sat back to my computer and and started hacking again. But The thing was, this was like a a Twitter analytics thing and it was written in in Swift and Swift UI and uh back then i already knew
Oh, this would have would be so much better if I would build as a website. So so was this an existing idea that you kind of had at the back of your your mind? Something something Twitter analytic? Yeah, it was just like something I wanted to build for myself. Yeah.'Cause uh'cause it didn't exist and then Even three years later it didn't exist. It still doesn't exist. Uh it it it kinda does, but uh
got a bit sidetracked. So I I went back and I I wanted to build it in in with WebTech. But Web was really was always even though the company, the one thing uh that I looked into the least because I had I had Someone really smart who took care of of of of that side in the company that I brought in, Martin. So I never had to worry about it. Yeah. And when I came back I was like, what's the problem?
You know that that level where you where and you know this is like this is a a a trap I I see with many developers. The the better you get at one technology, the harder it is to jump somewhere else. It's not that you can't do it, but it hurts so much. Yeah like like I can I can program in in in in in in in Apple Stack, I can program blind, but then in that stack I have to Google the most mundane stuff and it it just like
It just hurts. You you you feel you feel like an idiot again. Yeah, and and I guess the more experience you have, it it kind of sucks feeling. I mean, I'm sure you say embrace and and all that, but it's it's not great. You're not as efficient. You know that you could be faster, etcetera. Yeah so so I came back and I was like
Gosh, there has to be there has to be what is this AI? What is this AI stuff that every that that that people are dismissing? Let's look into this. Yeah, and in April a lot of us were dismissing it. And I and I and I like it and I
¶ Peter finding his spark again
To a degree I I credit those three years where I basically didn't turn on my computer because En esos años. You guys. checked out AI and learned that it's crap. Yeah, the the people who like I was about to say, so you missed out on you didn't do the beta of GitHub Copilot, you know, glorified autocomplete, which is GPC three or or maybe not even.
There was then of course three point five, which is a big jump and it it got increasingly better than GPT four. And so by the time you came back, what tool did you first use when you'cause you missed out on like two years of like Like devs us devs using, dismissing, finding some niche use cases for it. So you start with clock code.
That I think they came out. Yeah, yeah, yeah. Didn't they have something in February already? Uh they had a beta from February, correct. Yeah. So so So Clo Clock was w was your first you you you come back after like uh You know, hiatus and you immediately turned on clock code and you missed everything else before and you know you know it was like I I remember I took this big, messy side project that I built.
And I have this browser extension where that that converts a GitHub repository into one big markdown. So it was like a 1.3 megabyte markdown file, and I dragged it into into Google CI Studio with terminal two point five or two to something. And I typed, write me a spec. And it generated those four hundred lines of spec and I dragged the spec into cloud code. And it was like
And then I continue, continue, continue, continue. And while I was like working on other stuff, you know? Um and eventually it told me like It's one hundred percent production ready. And I started it and it crashed. I'm sure we can all relate to the story of the AI saying the code is production ready and crashing. This is a pretty funny and innocent story, but I personally don't trust code that AI generates without verifying.
And this leads us nicely to our seasonal sponsor, Sonar. So let's look at some data. A new report from Sonar, the State of Code Developer Survey Report. found that 82% of developers believe they can code faster with AI. But here's what's interesting. In the same survey, 96% of developers said they do not highly trust the accuracy of AI code. This checks out for me as well. While I write the code faster with AI agents, I don't exactly trust the code it produces.
This really becomes a problem at the code review stage, where all this AI generated code must be regularly verified for security, reliability, and maintainability. Sonar Q is precisely built to solve this code verification issue. Sonar has been the leader in the automated code analysis business for over seventeen years, analyzing seven hundred and fifty billion lines of code daily.
That's over eight million lines of code per second. I actually first came across sonar thirteen years ago in twenty thirteen when I was working at Microsoft slash Skype and a bunch of teams already used SonarCube to improve the quality of their code. I've been advanced since. Sonar provides an essential and independent verification layer.
It's the automated guardrail that analyzes all code, whether it's developer or AI agent generated, ensuring it meets your quality and security standards before it ever reaches production. To get started for free, head to sonarsource.com/slash pragmatic. With this, let's get back to Peter and how AI agents cannot exactly be trusted. But then I had then I added added an MCP so it could use the browser. I think a playwright mcp was already there, and it looped a few more hours.
And then I had a I had a Twitter login page and it it did something. I mean it was not great but it did something and to me to me this was my holy fuck mind blowing moment. Yeah. This And this was like in April or May this year, right? Yeah. It was it was it was just good enough that I could see the potential and I I understood. It's like Yeah, this is this is where it's going. And and from that moment on I I had a few months where I had really trouble sleeping.
And I in I I remember because once uh on on Twitter I sent you a direct message. I was up early for valid reasons, you know, my my kids or something like that. But it was five AM. And I I sent you a message on Twitter and you replied immediately. And I was like, Why are you up? And it's like, Oh, this is usual. Like I I usually I'm still usually awake. B and and I asked like why? And you said like, Oh, I'm I'm just like using Claude and it's really, really addictive.
And I was like, really? And you're like, yeah, I'm I'm I'm not joking. Like it's really good. And I think that was the thing. You you said something or wrote something, like just one more prompt. Like you told me how. Like what what made it so addictive? Or or what what still makes it so addictive? Oh it's the same economics as as you go to a casino. That's that's
It it's my little slot machines. You know, you you you you you press the trigger and it's like and it's like nope. You p you tap in the prompt and it it it will uh and it does it it does crap. Or it does something that actually blows your mind. And it
And and and you're saying it d it blows your mind as like you're a really experienced developer. Like it's it's not easy to blow your mind, right? Like you've you you you've seen good code y you you can differentiate like crap code, decent code, good enough code, like you have a bar, right? It's so funny, you know. In my company I used to obsess over every detail, every spacing, every new line, the naming. I spent so much time bike shedding.
And in retrospect I'm like, What the heck? Why did I do that? Like what's the point? The customer doesn't see the insights. Of of course, like it has to meet certain certain standards. It has to work, it has to be fast, it should be secure. But But like how much did that bike shit there is like stupid though. You say that, but then you also just said that.
people loved PSPDF ca because it was the most polished, it worked the best. Do you not think that that that amount of carrying, bike shedding as you call it, being obsessed it sounded like you were keeping tech bet depth at bay, you know, like being obsessed with white spaces is it's not gonna be messy. And we know it's not just the white spaces. We know you're gonna care about testing and all that. Like it sounds to me that PSPDF kit, like you know, like what I see is
you were not just building a product that was great UX, but you built something that had a really good hygiene and that's how it could be high performance and all that. Is how how do you think about it? Yeah, yeah, yeah. To a degree, yes. And and even now like I I... I mean like my my last blog post was a confession that I I ship coded on read. And it Yeah. We have to talk about that. And at the same time I spent
So much time to like restructuring. I mean I mean heck even even today like I I really wanted to get this PR in where it was like a fifteen thousand line change where I In my list project I moved everything over to a plugin architecture which I was so excited about. And I care a lot about the structure. Did I read all the code? No. Because a a lot of code really is just boring plumbing. Well what are most apps? Like
Data comes in from an API in one form. You're like, you parse it, you package it into a different form, you store it into a database. As a different form, it comes out again in a different form, then it's like HTML or whatever. And you're typing something, it's a different form again. And all you do is like you're massaging data in different forms throughout your app. This is what most apps are. We are pretty JSON printers. And the and the the really the hard part is solved by Postgres.
Thirty years ago was on neck bird. Uh that's that's really what a a lot of software is. Like there's always some interesting parts, but I don't have to care how this button is aligned or which tailwind class is used or or Like many details are boring and many other details are interesting. But it I think it's much more about system architecture than having to read every single line. Right now, jumping forward, what is your workflow like? Like when you're working on on cloud bot bot.
¶ Peter's workflow
are using a terminal, multiple terminals. Which which tools and and how are you you know, like you said you're not you're kind of like not reviewing the the code, but you're still thinking about architecture. Like what does your average day look like in terms of tooling? You know, you had to explain to a developer who might join the team, you know, at at one point you think like what does it look like? It's interesting. Let's let's let's go a little bit
We we were we were in in in April with Cloud Code. And then I got really hooked. And then I did some I had a f a a phase where I did cursor and then I did it I I I used Gemini two point five a bit, then we had this phase with Opus four, I hooked up a lot of my friends. Like I know I know both Armin and and Mario from Vienna. They got they got AI pilled because I I was addictive. You know my my entheism was like
confusing them and then they tried it out and then and then eventually they also were up at five AM and I called it like the Black Eye Club. I mean I mean there's a reason. Like I I I I started a meetup in London that I called called uh Cloud Code Anonymous. 'Cause'cause it's it's a little bit like a drug.'Cause it's so it's so much fun. Like to to to me what what what what blew my mind so much was this realisation that I can build everything now.
Before you had to really pick which side project you build because software is hard. It's still hard. But now like I I'm this this friction we're talked about where I'm so good at this at this technology and I'm like so bad at this. And I'm like, oh let's make the CLI in Go. I have no clue about Go, but I have I have a good system understanding
And once you have that it's like you you develop a feeling what's right, what's wrong. Like it's i it it is a skill in itself. I remember there was this tweet where someone said, Oh yeah, when you write a code you You feel the friction and that's why that's how you make good architecture. I feel the same friction when I prompt because I I see the code flying by. I see how long it takes. I see if if like the agent pushes back. Um I see if I
what it creates looks like messy or like makes sense. When I prompt I I have a hinge already how long it's gonna take. If it takes much longer, I understand that I messed up somewhere. You kind of feel the model. You you you know you know how usually It's like this or if it runs it's very much a symbiosis like I I learn to to talk
may I even say there or that language more. So it's like my my knowledge how to use those things improved. And also the models improved. And then and then like over the time between Between April and now I would say yeah the inflection point was summer where it just got So good that you could you create software without actually writing code by hand. But the real that change that like sold it for me is was Again, GPT 5.2. That was again, I think it's underrated. I don't know. I don't know why.
Why all these people still use cloud code? I I I kinda get it. It's it's a different way of working. But whatever OpenAI cooked there is insanely good. Pretty much every prompt I type gives me the result I want, which is insane. Like like on on on CloudBot, the my latest product, I use between five and ten agents in parallel. If you're very much cloud code build, you have to forget quite a lot of the
the silliness that the things that you have to do to create good output with Cloud Code. I mean I also met met that team and and they created a whole new category. Like cloud code is is is a category defining product and it is amazing for general purpose computer work and it is is really good for coding and I I I I I still use it almost every day. But for writing code in complex applications, Codex is just so much better because it
It it takes ten times longer. Um Claude would Read three files and then be confident enough to just like create code. And then you really have to steer it and push it so it reads more code, so it gets it sees m a a bigger picture of your code base. So that it it it weaves in new features better. And codecs will just like be silent and just read files for ten minutes. And if you're if you only work on one terminal, I completely understand how you how you find this unbearable. But
I rater have something where it's also you don't tell it what to do, you know? It's just this is also something that people don't get. I have a conversation with the model. It's like, Oh, let's look at this. What what what What options do we have for this structure? Did you consider this feature? It's like because every every session is like the model starts from having no understanding about your product and you ha and and sometimes you have to just give it a little bit of pointers.
What about this and this? So it explores different directions. And you don't need plan mode. Like I'm just having a conversation. Until I say build this, it will not build this. Uh there's some trigger words because it it is they all are a little trigger hungry. But as soon as I say let's discuss or give me options they will not build things until I say build. Um so a lot of a lot of would you say a lot of your prompting or or a good part of it is this conversation where you are
Pretty much planning together with the agent. Yeah. It's like uh what about like I say then you remind him it's like, Okay, we need documentation, what would be a good spot? It would like give me some recommendations or say No, this should really be its own page. Do we need a configuration? How how does this fit into this other feature? It's like I am designing the system because I have this I have this system understanding about how how is my my product, how are the shapes looking. I don't
have a line by line code understanding. That's that's what Codex does for me. But I'm the architect, you know? It sounds a little bit like you're almost you know, for for
¶ Managing agents
Totally came out got out of style, but there was this idea that you would have the architect with a capital A who used to be a software developer, but they're not hands-on anymore because they spend a lot of time understanding the business and they have these developers Working underneath them. And some companies still kind of work a little bit like this, but most modern companies don't. But some banks, etc., I met people there who are capital architects.
They do the system plan, they fell talk with fellow architects, they have the blueprint, and then they literally pass it down to the team. And everyone hates this model obviously because y you know, again, like I I think as people you kinda want more. The architect is never on call for for this stuff. And so it just kinda kinda breaks down in practice and a lot of large companies just move to the staff engineer model where
You're kind of all working together. Of course, there's people who make who might have more input. But sounds like it's almost like this world where you are the architect who kind of, you know, you have your little agents. who who do the code, except in this case, you are of course fully responsible because you're still an individual contributor. You're not you're not like a okay, you might say you're a manager of agents or whatnot, but
The code is is yours. It's your responsibility. You're gonna be on call if you know, if you push out code that takes down ClaudBot, which it did just recently, you're on the hook for it. Right. Like uh and I think the the difference in this system when when it was i in in companies.
It was the architect was kind of shielded from the output of their work because there's so much people and so much process, etcetera. Well I wouldn't say architect, I I like the word builder. Builder, yeah. And and and and I think also that There's a few categories that I see. for people that are highly successful using using AI and people who really struggle. I care more about the outcome, the product. I very much care about how it feels and everything, but how the plumbing works underneath.
I care structurally, but you know the not to the not the biggest detail. And then there are people who really love to to code on hard problems, like think about algorithms, don't really like the I'm building a product with like all the marketing, all the they they more like They like to solve hard problems. And those are the people who really struggle and and and often reject AI or get really sad because that's exactly the job where that AI does. Like it solves the hard problems.
Now sometimes I give it some pointers, but many times I learned I learned more this year than the last five years around around software architecture and designing. I the there's so much inside those monsters and knowledge.
And everything is just a question away, but you have to know what question to ask. I of course I also built this Twitter thing and it's still not done and I and I I really hope I I'll get back to it at one one time. Everything worked, but if I used it more at some point Things got really laggy and weird and then it worked again.
Yeah, I just couldn't figure it out. And it was like really difficult to debug because it was not easy to reproduce. It was just like you use it more and things got really slow. I basically had like software in in in in P SQL, like in Postgres that would be triggered when certain inserts were were were doing and then the database would would get really busy.
And the model couldn't see it because it was it was it was so far abstracted from all the you know, like the those those models are really good at tracing through. But this was a side effect that was so hard to see because It was only in this one file.
a function that had no connection to anything else, um, with a name that was not easy grabbable, I just never asked the right question until I was like, do we have any side effects for this and this? And I found it and I fixed it. And it's like, but uh Everything is just the right question away. Yeah, m but you y you need to have like knowledge, expertise. Yeah. Yeah. Yeah, experience.
So so so these are the people who rejected and then the people who who care a bit less about how it's being plumbed internally, but are just excited to build things, they are really successful. And one thing that also helped me is, you know, when you run a company and then you hire people You can't breed on everyone's neck and like make them have the line of code exactly that way.
And there's a lot of people who who didn't manage a teammate, who didn't had this experience how to how to relax a little bit and understand that yes, this maybe is not exactly that code that I want, but it will get me closer to my goal. And for anything that is like
not perfect, we can always make it better and like put more time into it. I very much believe into this iterative improvement. I had to learn to let go a little bit of my company. So so so then when I when I had Cloud Code, it kinda felt like I have like I have like imperfect, sometimes silly but sometimes very brilliant engineers. that I have to steer and where we where where we work
together on a common goal. It would a lot like being the boss again. Yeah, and and interesting. Now, you know, you you built kind of software, I guess, the traditional way, you know, pre AI for about fifteen years or even more than fifteen years.
¶ Agentic engineering
And you got really good at being also leading a team and in how to have high standards. You really cared about the the craft there as well. You've now kind of been, I guess, vibe coding or working with agents for a year. You know, comparing the two, what do you think
What do you think really really changed and what do you think are things that kind of stayed the same despite all first of all I don't like I don't like the term vibe coding. All right. How should we call it? I I think I think I think vibe coding is
By now almost a star. Oh yeah. I I I call it w I tell people I do what I do is agent engineering with a little star. Vibe coding starts at 3 a.m. Now like Because all the the mundane stuff of writing code is automated away, I can move so much faster, but also means like I have to think so much more. I'm still very much in the flow. Like it it is it is completely the same feeling as for me as as uh I I very much get in this flow state.
But it is mentally even more taxing because I have I don't have one employee that I manage, I have like five or ten, they're all work on things and I switch from this one part to this other part to this other part to this other part. Mostly because of I'm designing this new subsystem or like this feature and then I know that it'll probably take codex like forty minutes or or one hour to build. So like I wanna like have the plan right and then I build it. And then I'll
I'll move on to something else. But then this is cooking, and then I work on this, and then this is cooking, and then this is cooking. And then at some point, this is cooking and then this is cooking, and then I go back to this one. So like I I I I switch around a lot in my head. I wish I wouldn't have to do that. Like I I'm sure this is a transitionary problem and uh at some point we have we have models and and systems that are so fast that
And that I can paralyze a little less. But to stay in the float flow state, I need to massively parallelize. So that that's that's how I work. And then I go back to there. and and maybe tweak it a little bit more but usually just like try it out. Uh uh maybe then this is ready because this took only took like twenty minutes. So like I I constantly jump around. Usually there's there's one main project that has my focus and I have like some satellite projects that also need attention.
But where I can may maybe I spend five minutes, it does something for half an hour and and then and I try it and it doesn't need uh so much capacity up there. This almost sounds, you know, like two things come to mind. One is there's these like games where you have to manage a kitchen with the employee and and you see like the recipes or something come out and you need to jump and do it.
It's more like Starcraft, you know, you have like your main base and you have like your side bases to give you resources. That as well. And also one thing that just came to mind as you said, like I go there and I watch this and I make a decision is when I see the chess grandmasters.
play multiple boards at once. You know, see, you see sometimes they say 20 boards, and they always all you know, they go there, they kind of you can see that they just like see what's on that board, they make a decision. And for some boars they suffer longer, I guess, better players or better opponents. It feels, you know, both they're occupying a hundred percent of of their bay, you're occupying your bay and you're you're kind of just scaling yourself as long as you can context switch.
The difference the difference was up up until with cloud code I you have to work a little different because it is much faster, but then the output often doesn't work on the first try. So like It makes something, but then it it forgot to update three other things. It crashes or you give it
And uh the the good thing about how to be effective with coding agent is always like you have to close the loop. It needs to be able to debug and test itself. That's the big secret. Um that's also some something I I think that's part of why I got so much more effective. Um but yeah, with with plot code you I often had to go back and like fix up the stuff.
Um or it just takes a lot of iterations. So in the end it's not that much faster. It's just more interactive. And and these days with Codex it just almost always gets it right. My my general strategy is always I I I build a feature, of course you and and then you of course you always let it write tests and you make sure that it runs its own. It runs them, yes. And so even even when I write a Mac app
I don't know. I I I just yesterday I debugged this feature where The Mac app couldn't find a a remote gateway, but like the the same coding type script could. But it make up is kinda annoying to debug because like it builds it, you have to start it, you have to look at it, you have to like take no this is not working. So now I just said it like, you know, you're gonna build a CLI just for debugging that invokes all the same code paths that you can call yourself.
And then you just iterate and you fix it yourself. And then it will just cook. And it just cooked for an hour and it was done. And it told me like, yeah, there was a race condition here and here and like a misconfiguration, blah, blah, blah. It's like, yeah, sounds sensible. I don't need to I don't need to see that code. It's like
But but you don't need to see it because you set up the validation loops and you trust that because it ran it, I mean this is I guess I guess it's not too dissimilar to like sometimes when you work on a large project in a large company.
¶ Testing and debugging
when all the tests pass, I mean, it doesn't mean that for a hundred percent it's there, but it's it's a pretty good and and all the new t new new code has tests as well. You know, someone thought about it and tested it and and all that. So even even on my But like anti gravity has like a certain a certain w weirdness with how it takes tool calls in the loop in the in the format. So you have to do like some filtering. Yeah.
And that broke a bunch and it actually took me way too long to realize like, what am I doing here? I just need to automate this. So I was just going to Codex. It's like, design life tests that Spin up a Docker container, install the whole thing, spin up a loop, use my API keys from this and this file, y and then you tell the model to
Read an image, create an image before, and then look into the image and see what it sees. So I I don't not just tell the loop, I'll still tell tool calling. Make it work. And then it solved itself. It took forever, but it it it it tested all my API keys, like from from Anthropic over SETI over GLM, like everything, and it fixed all those little indicacies where where sometimes the tool calling didn't work or the ordering was wrong because I closed the loop.
And and that's that's and and closing the loop you mean just have a way to to have have the agent be able to validate its work. That's why that's the whole reason why. Why those models that we currently have are so good at coding, but like sometimes mediocre good at writing creative, because there's no easy way to validate, right? But code, I can compile, I can lint.
I can execute, I can verify the output. If you design it the right way, you have a perfect loop. Like even now even now for for websites, I built the core in a way That can be run via a CLI. So it's like I have this I have this perfect uh execution loop because the the browser loop is insanely slow. You want something that That loops fast. So sounds like one thing that is not really changing from like before is we had this before like back end or business logic heavy heavy thing.
could easily be or more easily be verified that it's correct. Surprise. Actually using agent decoding makes you a better coder because you have to have to think harder about your your your architecture so that it's easier verifiable because verifying is the way how to make things good. Well then remember back back e even before AI
For complex systems, like once you got someone who built these things before what they started with, how do we make it testable, right? Like you you need to design interfaces, classes, testable. You need to think about like, am I going to fake things? Will I use mock?
Will I use end-to-end testing, which will be l long, etc.? But these are like really hard architectural decisions. And once you make them it, they're I guess harder to change. And in your in your word, you know, like the model would cook a lot longer if you asked it to make a massive refactor and
Yeah, if you have tested, I'll get it, right? But you know how these we we still have these trade offs. I I I I would say I write better code now that I don't write code myself anymore. And I wrote really good code. But uh but like Even back at the company, uh sometimes testing was so tedious. And you come up with all those edge cases and and and the branching. I mean, o outside of Ken de Beck, who I deeply respect, and he was on the podcast and we we we we talk like he
He still writes tests first and he tells me that the he he he's not mad at me for not writing it, but if you want to write like, you know, poor quality code, that's on you. Uh but I don't know many developers, m myself included, I never liked writing tests. And even even what I pretended that I did, I I just never did. It's a little bit like writing documentation and writing tests. To me, it was never a a creative.
Expression. It is so good now. Like I I would say for my last project I have really good documentation and I didn't write a single line myself. Like no, I don't write the test, I don't have documentation. I explain the model the trade-off, so like why we did something like this and then tell it like ik like write that, write the entrance section beginner friendly, and then add more technical detail at the end.
And it is so good. I never had a project with that good documentation. Just by every time we design a feature, this is a part of this is a part of the process. And also like testing. I was like, okay, we built this. How are we gonna test this? Yeah, we could do this and this and this.
What if we build it this way? And the oh yeah, then we can test it better. So it's like this is now part of my thinking because I I always think like how do I close the loop? How do I the model always needs to be able to verify the work itself? Um which automatically steers me to better architecture. So why do you think
there's you know a bunch of like experienced devs who are still pushing quite a bit back on on just like the idea that AI can do a lot of this. That was a week ago I I stumbled over a a blog post by McGallhagar, Cook of his Love, that I deeply respect and learn a lot from.
¶ Why devs struggle with LLM coding
And this blog post was just was a dissing of the current way how models work. And and what he did was he He tested like five or six models, including some that make no sense, like the the OpenEI hundred twenty billion open source one that is not good enough to write good code, you know, it's like and he just
He he wrote a prompt. As far as I understand it, there was there was not a lot of information on the website, but uh to me it sounded like he wrote a prompt. He put it on Claude Web and and he pressed send. And then he took the output and ran it and it didn't compile. And he was disappointed. But he's like, Of course it will not work. Do you think I can write buck free code on the first attempt? And those little those th those models are ghosts of our collective human knowledge.
They work very similar in many ways. Of course they don't get it right the first time. Like they there will be mistakes. That's why you have to close the feedback loop. And also you don't just send a prompt to the model. You start a conversation. Hey, this is what I want to build. It's like yo you d uh he complained that it used old API. Yeah, you didn't specify the macOS version. So it's so so it made an assumption to default to like old API because that information was missing.
And it it is it is trained on a lot of data, not just the last two years. And there's just more old data than new data. So this is like the more you understand how those little beasts sink, the the better you get at prompting. Um and then and then in and then h he he spent maybe, I don't know, a day or so on on playing with it and then just d decided that this technology is still not really good.
But to be effective you have to spend significantly more time. You know, it's it's like it's like you know how to play guitar and I put you on the piano and you try it a bit, it's like, oh this sucks, I'll go back to my guitar. No, no, it's like it's it's it it's a different way of building, it's a different way of thinking. You have no idea how often I screamed at like three AM to cloud code'cause it did something silly.
I I slowly started to understand why those things do what they do with like exactly the way I tell it to do things. And sometimes you you can literally ask. You can even even last year, like I For this project, uh the last project like Cloudboard, I feel like a human merge button because the community is like blowing off and all I do is like reviewing PRs. I I I I have very little time to actually write code myself anymore. And
In the beginning it would often like just cherry pick things and would close the PR and it was like so annoyed. So it was I'm like, why are you doing this? Yeah when you say this and this, I interpret it as this and this. It was like Ah. Like I I learned the language of the machine a little bit more. I tweaked my My prompting and now I get exactly what I want.
It's a skill like any other skill. Yeah, and this is like and Simon Willison has been saying the same thing even though he's been using it for for years. And I I think er everyone I think once I start to use it I also realise like I'm not
I'm okay at it, but I I I I could do better. What if we put this to a real test? Because I think it's fair to say that right now you're building CloudBot, which is a you know, it's it's not something that generates revenue. There's a lot of users and it's blowing up and it's it's a really cool tool.
¶ How PSPDFkit would look if built today
But it's not PSPDF kit, which is a business that it's a lot of revenue is hinging over it. If today, you know, we just wipe. PSPDF kit does not exist. You need to rebuild PSPDF kit. You now have these agents. How differently would it look? How much would you trust it? What would you delegate? What you would you validate? And and when, you know, you built up a team around it because now it's a profitable business, at the very least you need to hire salespeople or whatnot.
How do you think the team would look different today with that same product? Because you you know exactly what it took to build it. And you also know what these tools can do today. I could easily run a company with thirty percent of the people. It would probably be quite difficult to find people On that level.
So you you w you want you want to have really senior engineers that really understand what they build, but are that are also comfortable in in in delegating and know which parts are actually important to to work on and which parts I can vibe. That's still something I don't see I don't see a lot. Like like especially in the EI world, there is so much crap on Twitter. There is
There's so many people that are loud but clearly have n no clue what they're doing. Uh there's there's so many there's so many dumb concepts around like I'm sorry, but the Ralph Wiggum one, ugh like This is again another another silliness people use to work around Uh model limitations of of of of opus. You don't even need when you use codecs. There's there's maybe a few cases where you have a really long list of. Individual tasks.
That can be automated, but that's usually not how software building works. So there's these people who I see so many people building up this elaborated orchestration layers and then you have like beats that automatically creates tickets and then your agent does tickets and then your agent emails the other agent and then You build up this this elaborate mess what for? Oh yeah, they did they design the the spec for like a few hours and then it just like the machine builds it in the whole day.
I don't I don't believe this works. Like like this is this is you would this is the waterfall model of software building. We learned long ago that this doesn't work. Like maybe yes, people work differently and maybe it does work for some. I just I just I don't see how this How this could work for me. Like I I have to start. with an idea and often I purposefully underprompt the agent so it would do something. That would give me new ideas.
Eighty percent of the things are assumed by like crap. But like there are like two things are like oh it I didn't think about that way. Uh-huh. And then I I I iterate and and and shape the project and I have to I have to click it. I have to like I have to feel it. I feel I feel to make good software, I You know, the one thing that those things often lack is taste. I have to feel like, how does this feature feel? And the beauty now is that.
Features are so easy, I could just like throw it away or like reprompt it. My building model is usually very much forward, it's very rarely that I actually revert and have to go back. It's just like okay, no, then let's change this. No, then let's do this. And it's it's like it's like shaping. I I love how this like you start with a rock and then you like Sistle away at it, like pick different areas and and and then slowly like this statue emerges out of out of marble. That's that's how I see
That's how I see building something. I I guess reflecting on how software engineering is changing, this seems like a change because before before we had AI or any these agents
¶ How planning has changed with AI
Upfront planning did make a difference. You know, writing uh at PSPDFK, you you insisted, I think, to have a proposal where people put a lot of thought up front. to specify and do all the'cause be because it was expensive to, I guess, to to build, to to ex do you think this is changing because of the the cost of just writing code is Is going down or I mean it's still a st I still I still plan and I I but you still do yes.
But I don't put as much into it because I it's now so much easier to just like try and look at the results and then see if oh yeah this this shape could work or no we have to like the tweaking and even even like oh no we have to like do it a completely different way is not so much cheaper that it's to me it became much more playful. Yeah, yeah, I guess'cause'cause like, you know, when you're working even if you have like a new grad on the team or an intern.
you know, you give them something, they work in it for a day or two. Now you give them another it's not a day or two. You know, and and we're not talking days here, we're talking minutes or like if it's a long running task, like 10, 20 minutes at at worst. Plus you're not just waiting on that thing
you have parallel things running, so it's not that much of a waste, if you will. In in the in in in in in Cloud, but in at the beginning I had this assumption of like one agent and then eventually changed to multiple agents. And there was a assumption of like
one provider like WhatsApp and now it's multiple ones. And changing that was like such a pain. Would or would have been such a pain if I would have written it myself because you have to weave in literally everything through the whole logic of the application. And yeah, it took Codex like three hours. It would have taken me like two weeks, you know? So so that upfront planning, I I could have realized that in the beginning, but now I I know that like I can just change things.
And it's it's mu it's it's much easier to work down your technical debt or your you know, you evolve how you think about a project as you build the project. That's why I don't believe in I don't know, things like Gastown where like
You write up the spec and then it builds itself and then it's done. How can you even know what you want to build before you build it? You learn so much in the process of building it that will go back into your thinking of how this how the how the system actually will end up being. To me, it it this is very much
It is very much a circle. Um, until I you don't I don't you don't walk up the mountain like this. You go you go around and sometimes you like You you you stray off a little bit of path, but uh but eventually
You you you reach the top. That's that's how I I feel software is. Then you know, you've been building CloudBot for what, like two months, three months, nonstop ish. Or or th like like how long gear. So one of the ideas that got me back was even even in in April May was I I wanted to have this Hyperpersonal assistant. Not like one that sends you a good morning email. Oh, these are your three tasks. No, one that has a really deep understanding
of me and doesn't just I don't know, I meet a friend and then and then uh when I go home it would ping me, Hey, how was how was that meeting? Or one that would wake me up one day and say, Hey, you haven't texted Thomas in three weeks. And I noticed he's he's in town right now because I checked his Instagram account. Didn't want to say hi. Or something that says Hey I noticed every time you meet that and that person you're sad. Why is that? Like something something that is deeply personal.
Um like almost the the anti ORM. It's kinda like the movie Her, but but that's where the technology is going. Those models are really good at understanding tech. the the the bigger the context is, the more patterns they see. And even though they are like matrix calculations without a soul. it very often feels different. So this was like one of these ideas, and I even created a company I called a Mantos Machina.
Like the loving machine. But in summer when I explored it, the models weren't quite there yet. I got some results that it was like, okay, this is like I'm a little too much on the edge of what I need right now. Which it was very exciting because I know that the the the state of VI goes so fast that oh I can just revisit that in like a little later. And and one of the ideas also was is that I assume that
All of the big corporations right now are very much working on personal assistance. In the future, everyone will have You will have your best friend. who is a a freaking machine that will understand you, that will know everything from you, that will can do tasks for you, that will be proactive, that will require
A lot of tokens, but everyone who can afford it will have one. And of course, this will democr democratize and and trickle down to like more and more people as as we learn how to build more efficient systems and and and hook up on on on chips. No question, this is where the things are going. You see like the first things with like OpenAI who who launched pulse with some proactivity, but we just don't have enough compute yet.
To offer this as a feature and also it's it's quite difficult. My idea was it's like, uh I kinda want something that runs on my computer and where the data is yours. Is is actually mine and not And it it's also quite scary that like you you give open aerantropic access to your email, your calendar, your your dating apps. I don't know if you talk to to to your normie friends, but a lot of my friends in that dream
They use that a lot to basically have a a therapist. And it it does work incredibly well. Like it's it's a really great listener, it understands your problems. And unless like some of versions of four O that are like, sure, this is a great idea. I wanna put French fries into a salad. It it works really well and I I did that too. Like to like re I'm I mean
Part of it just is like the the act of reflecting already is helping you. So y it would even work if the machine would only repeat exactly what you wrote to a degree, but it actually gives insightful questions. It's actually it it got really good. So I had this idea of this like assistant. But the tech wasn't there, so I did other part and I I built a whole bunch of fun stuff with like
Of course, like I built Vibe Tunnel and d this in your career to become like an authentic engineer, you have this phase. It's a trap phase where you you're looping and building your own tools to like optimizing your own workflow. But th this idea of like This hyper personal agent stuck a little bit. And then Over the last few months I I really started I built it but finally
Initially I didn't even had the the scope that it has now. Like I called it WhatsApp relay. I just I just I just wanted to do to trigger stuff on my computer with WhatsApp. So I built like a WhatsApp relay where I had an agent that could do stuff with my computer. And then I I was traveling to Morocco for a friend's birthday. And was out most of the day and just used WhatsApp to to talk to my agent. And I was kinda hooked. It it it was guiding me through the city, it was making jokes. It
could text other friends via WhatsApp from me. And I remember I I was blown away because I In the beginning the attack was very scrappy, but I I built in something where I could send it an image. Didn't even use the proper thing to send an image, I just gave the the LM a a f a a string and it could use the read tool to like read the string. And then I was in Morocco and was just like
Just like not seeking and sending it a voice a voice message, but I didn't build that. And then like like thirty seconds later it replied to my voice message. I'm like, how the f did you do that? Oh yeah, you sent me a file and and then I looked at the header. And I found that it's OGG, so I used FFmpack to convert it. And then I I looked for VISPA on your computer, but it's not installed. But I found the OpenAI key. So I did a curl to OpenAI server, let it translate, and I'm like.
Holy cow, like this was Opus 4.5 and it's so incredibly resourceful. Like You just did this. You know, other people say, Oh, you need a skill or some system. No, it just like it just figured it out. I slowly got hooked on the thing. I I used it I used it to wake me up. And it was running I it was running on my Mac studio in London and was connecting over SSH to my MacBook in in Morocco.
And was turning on the music and making it louder and louder is because I didn't reply. And to make that work I I added a heartbeat. So which Which in a way is insane from a security perspective. You have a model with that you prompt with do something cool and surprise me that you send every few minutes to make it proactive and like go through your task list. Uh like mm, probably the most expensive alarm clock ever, but it was just hilarious. And also the text it sends like
'Cause I I I was I had a balloon fought and and it it knew that I had to wake up very early and I didn't reply and it was like you could see the reasoning. Hmm. Peter's not responding. But Peter has to wake up. No no no no no no sleep as it was bitching to me. And then I I showed it to the the the friends I was with and everybody was like hooked. Like this is something magical. And I was hooked too. Um And then I I
I went on Twitter and I got m the most muted responses because nobody would get it. I feel it's somewhat of a of a new category of product. Um that's a little bit like your story with like, you know, when you didn't get the iPhone uh from the marketing campaigns on TV and anywhere and then you had to use it. Yeah, so I I worked on it but only the last two months and it did it the name changed from Var relay to At some point a claude.
¶ Building Clawdbot (now: Moltbot)
Uh then what is this name? doesn't fit the feature set anymore because like I had like Telegram in there and other features. So I renamed it to to Claudus because it's an inside joke because I like Doctor Who. I felt CloudBot is is a better name, has a better domain. And Explained the part better. So either done on the domains and then I
I also quietly build up my army because to make this work, you want you want everything to be a CLI. So I was just building CLIs for everything, like for Google. For my bed, for lambs, for music why CLIs? Why not why not MCPs? Um what do you think about MCPs anyway? Uh it's a crutch.
It's it's I think that the the best thing that came out of MCPs is that it made companies rethink to open up more APIs. But i i the whole concept is is silly. You you have to pre export all the functions of all the tools and all the explanations when your session loads. And then the model has to send a precise blob of JSON there and gets JSON back. But surprise, models are really good at using bash. And like imagine imagine you have a better server.
So the model could ask for List of available cities and then get like five hundred cities. And then it has to pick one CD out of five CD, but it cannot filter that list because that's not part of how MCP works. And then it'd say, Okay, give me the better for London and you would get like The weather, temperature, wind, rain and like fifty other things that I'm not interested in because I just wanna know is it raining or not.
Probably raining because London. But the model needs to uh digest everything and then you have like so much crap in your context. Whereas if it's a CLI, I could use just it could use GQ and could sort filter for exactly what it needs. But does n does not seem like a limitation that
everything is loaded around the MCP in the context, that seems the problem. Like it sounds like it could work if MCPs were not in the context and there was a way to discover or decide which one to do. Yeah, that's that's what that's what companies are building now. But there's still the problem of that I I cannot chain them. I cannot I cannot easily build a script that says, hey, get me get me like all the All the cities that are over twenty five degrees and then
and then filter out only that part of information and like pack it in one command. That's it's all individual M C P calls. I cannot I cannot script it. Yeah, but but I guess this is just a matter of time because if we think about like, you know, when you're when I'm building a weather app right now I know that You know, even without AI, I know I need to build up this thing. I need to I need to fetch the data, so I will search what kind of APIs are available, which one do I like, which one
what kind of trade offs for pricing for covering, et cetera. And then I choose that API and I I could chain APIs because I I could get that result and look up a et cetera. So I I I guess this is, you know, like it it sounds pretty much we've solved this so as Yeah. We're gonna solve it. It'll just take some time and who knows what the format for it will be. I mean I I built MacPoyter, which is a which is a a small TypeScript thing that converts an MCP to a CLI.
So it's so you can you can just package it up. Basically you're you're saying CLIs right now are a lot more efficient. Yeah, yeah. So so my in in in in in Cloudbot I don't have MCP support. But you can via make port or you can use any MCP. You can you can literally be on your phone and say, Hey, use the use the Verse Cell MCP to do this and this and we'll it will go on the website, it'll find the MCP, it will load it and it'll use it all
all on demand. Even right now, if you use M C P you have to restart cloud code, which is like very user unfriendly. So I quietly built up my army to like automate everything, which was a lot of work. Uh I think Theo did a video A few days ago where he told me like, Yo, this guy is insane. 'Cause the list is really long by now, but like I I as I was playing with my my my agent, I just I want him to do more and more stuff, you know?
I felt it really hard to convey what it does. Uh uh it's still hard to me. In January January first? Just a week now? I did okay, let's let's try something. Let's do the ins really insane thing of like making a Discord and then adding my agent to Discord. There was somebody who contributed Discord support to it and uh even though I wasn't unsure sure if I should merge it and I eventually did. So I put on my agent who has full read write access to my computer.
in a public Discord. What could possibly go wrong? Yeah. It's like this is absolutely insane. And then of course, like some people joined the Discord and then they saw me They saw me using the full power of this thing, like checking my cameras, doing home automation.
it playing DG for me. Like I was in the kitchen and I told him like look at my screen and are are my agents done. Because it has full access of of my clean and it can click. So it can actually click into the terminal and type for me. And like you can tell me your codecs say this and this'cause it it just sees the screen. I mean I'm I'm working on optimizing that. Yeah. Like I I actually wanna stream out it because it would be much f it would be much better if it's tech
But it works already. Like it it it's in the background, it's time to look at my screen and like make some rants if I do some shit. And everybody who experienced that for a few minutes got hooked. Like This was this was the craziest blow up from a hundred stars to like what three thousand three hundred stars in a week. Um and I think I merged five hundred photo quests already.
That's why I say I feel like a human merge button. So so tha that's why that's why I'm li I I'm a little I'm a little all over the place these days because this project is blowing off and and and You know, the beauty of it is the technology disappears. You just you just talk to a a friend on your phone that is infinitely resourceful. has access to your the email, your calendar, your files, can build websites for you, can like
Do administrative work, can scrape websites, can call your friends or can call a business. I'm just about to to to merge the call feature. It like you literally can call a business and like make make a reservation for you. And you don't have to think about compactation or or in all of that context blends away. You have like a you have a memory system that will remember. Um, not perfect. Nothing's perfect yet.
But it's already feels magical.'Cause all'cause now I I walk around, I see like this event, I I send Claude a picture, it will it will not only tell me the reviews of this event, if there is a conflict in my calendar, if like friends talked about it. Or you know, like it has so much context that it the responses that it can give me are like so much better than like what any of the the current tools
that live in their own little box can give me. Well, sounds like you built whatever Apple was hoping Siri to do, but they've been unable to do it. I honestly I built the best marketing tool for Enthropic to sell them more subscription. I don't know how many people signed up for the$200 subscription because of CloudBot. And like many people already had one and used a second subscription because of that because it's so token hungry.
It's it's not and it's it's not that it's token hungry, it's just that people love it so much that they use it all the time. And because th the technology blends away, they don't see that it spawns sub agents and does like a whole bunch of things in the background to just make it feel easy, but like There's some actual engineering and like there's a lot of work in the back, uh, to make it feel easy. You know, this is like the hard part. Like you hide complexity.
To a degree that it it it feels magical. Well but yeah, but this is interesting because like I I I can sense from we're talking, y you know, you put so much thought into architecting this thing and right now, like you've been building this for a few months and yes, it blew up but
In your head, like do you have a structure of how CloudBot is structured? Like what parts you need to modify? You know, like like you kind of you can get your your mindset into it and you you know where modification needs to do, you know what you wanna refactor because it's not gonna be efficient.
Are are you thinking about like things like memory consumption, token consumption efficiency, those kind of things? I mean token consumption is more like how do how to structure the prompt uh and memory. It's it's TypeScript that shows Jason around in the end. Let's be honest. Like like like I get text from from an LLM. I save text to to this. I send text to WhatsApp or to now we have like MS Teams, Slack, Discord.
uh signal, iMessage, WhatsApp, uh and and there's there's two more that are landing like metrics that will will expand the thing even further. It's like it's it's really poly by now. But but mostly I I again I I move around text in different shapes.
And maybe maybe it goes to different providers or there's like now it's different agents and there's like the agent dig loop and there's like a lot of configuration and there's it's it's a lot of plumbing, but nothing's There's nothing in there that is really difficult. Yeah, well but it it's it's it's a lot a lot of small things, right? Like I I feel uh in software, right? Like
We we know for software even before AI there wasn't that much difficult. Of course you need to learn and understand the language and all that. But the difficulty is how do I how do I make it so that it feels So what I have worked on a lot is now you have You have this one liner that you type in that you pice in your command. I will and I will check if you have No installed, Homebrew installed, I'll I'll install the N NPM package. I do some check if you have any existing stuff. Just do like
To make it work simple, even if you already used an older version and and everything. And then I I'll guide you through uh setting up. a model. But again, I will I will pre find if you have codex or or cloud installed. So you can just press enter. So you don't have to have to think about it. Mostly just press enter. And then you want a WhatsApp, you type in your number, it'll just work again. And then and then I'll ask you, do you want do you want to hatch your button?
And you can press yes and then and then like a two ye a two ye comes up because you're still in the terminal, right? You want a good experience. Yeah. So put a but uh just a two yeah basically for that and where you where you just see, wake up my friend. And then the i the I programmed the model, I added a bootstrap file and the m to explain the model that it is now being born.
to like create an identity and a in a in a in a in a soul where like the values of the user are in and then the model will be like hello like stretches who are you um Who I who I am, what's my name? You know and this this is this Like I watch people do that and that's where the magic starts. That's where that's where they're like they no longer think about I'm talking to
To GPD 4.2? No, I'm now talking to my friend created Vahorn, like a unicorn with part of his name, or like I'm talking to Claude. Uh and then it's like, well wha what's important to you? What do you do? It's like curious. I I programmed it to be like curious and then go through this bootstrapping phase and then it will actually delete the bootstrap file and create a Uh a user.md with like information about you, uh a soul.md with like all the core values and an identity with the
Like what's his name, what's his core emoji, what are the things that are like inside jokes and and but there's like evolving documents that it will maintain and like tweak as you interact with it. And then you ch it it will just like send you a message on on WhatsApp and you just like suddenly you talk on WhatsApp. Like making this flow easy, that is hard. Yeah. Also like even even get coming up with the idea of
You're no you're you're not you're not editing the configuration because the agent can edit its own configuration. You don't have to update anything because the agent can update itself. You can literally ask your bot update yourself? And it will fetch itself and update itself and come back it's like, Hey, I have new features. Blending the technology away so far That's the magic.
That's why that's why I But i it feels it's very similar to what you would with PS PDF kit, right? You kinda blended away the complexity of a PDF. So it was just there, you could rotate, you could do Yeah, e yeah, even at the API level back then. But it's uh it's a bit bizarre, like what what you described reminds me of this Black Mirror episode I just watched, which is called Plaything.
uh where it's a it's a digital little uh creature that creates of course it's black mirror so it has a black bit of a dark ending but but it it had it was also a game. It also kinda kinda feels, you know, we talked about how you You don't play as much games'cause you like, but this also feels a little bit like a game, right? But it it's it's kind of like more connected with
Reality. Just fascinating how we're we're we're here. P pulling back into the the realm of of software engineering. So you build this this product and it's it's now it's a production software. You're merging porous, people are using it.
¶ AI's impact on large companies
Now, thinking back to PSPDF Git and and companies that are like that, which which have, you know, like like tens or hundreds of developers working on on production software. Knowing what you know. with how you're building CloudBot and the tools that you're using. How do you think software engineering at those larger companies could change? Because one one thing I see is is for individual people like you, it's
Like AI is really, really hitting a fit. Like you're making you way more productive, you're in control at teams or at companies that are, you know, have existing code. It's just a lot kind of slower, it's it's not really uh okay, people use it for this or that, but but it's it seems a huge divide between the two worlds. And you've kind of been the CEO for this company.
What what might that be or is it just more of a timing thing where every new technology often comes with with hobbies, you know, pick it up uh earlier? I think companies will have a really hard time adopting AI efficiently because This also requires to completely redefine how the company works. You know, you know you know like you know like at Google, they they tell you you can either be an engineer or like a manager.
But or you want to also like define how the UI looks, that rule doesn't exist because either you like you you build it or you you design it. But this new world needs people that that have a a product vision, that that that can be able to do everything and you need like far fewer of them. But ultimately just v very high agency and and and high competency people. But you can you can like probably like trim the company down to like thirty percent, which is very scary because like
I mean economically this will all e uh this will all lead into a fiasco. Um and a lot of people will like have trouble finding a a place in this new world, but I'm not the least surprised that current companies cannot very successfully use the I mean I mean they do to a degree. But you you have to do a big refactor first, you know?
Like not just on your codebase, but also on your company. I design even on codebases, I design the code base not so it's it's useful. It's easy for me, so that it has to be easy for the agent. I optimize for different things, not always the things that I prefer. But the things I know work the best and and and have the l the least friction.
for those models because I just want to move faster and ultimately they have to deal with the code, not me. I had I deal with the the overall structure and architecture and I can still do that in the way that I like. Everything has to be resort, you know, pull requests. Uh I see them more as prompt requests now. Like I don't I I s somebody opens a pull request, I don't I all I do is say thanks and I I think about the feature.
And then with my agent, we start off with the PR and then I'll design the feature as I see fit. The agent rarely reuses like maybe I reuse some code, but it's more like it gives the agent a good understanding of what the goal is. And uh sometimes it's very useful because it's very it's tricky bugs, right?
But I I basically rewrite every pull request and and and weave it in. Also also a lot of people let's just say the overall code quality of of PR is went down a lot because people wipe code and and building a successful feature still needs a lot of a lot of
if you cannot do that, you will have a harder time steering your agent and the output will be bad. Yeah, and if you don't have the feedback group to close it, etc. Yeah. Yeah. So so I found it highly effective. Like I know it at my at at PSVDF kit. sometimes a pull request with like a week in the work yeah and then you comment on it and then somebody has to context context switch and you wait for a CI for forty minutes.
No. I have the discussion. I see okay, how would this affect something? Like I I I let the model review, they will already bring something up. I have some some ideas as well. We're gonna reshape it into a form that fits my vision. And then We weave in the code. It's literally there's so many new words I use for like writing code now with those models, which is so funny, like weaving in code into an existing structure.
Um and sometimes you have to like change the structure so it would fit. Now imagine that you would hire one or two people to make it a small team.
¶ "I don't care about CI"
How do you think in this world and you keep wanna keep doing what you're doing, how do you think things like code review, C I, C D would change? I don't I don't I don't care much about CI. I Why? Why why why not? You used to care a lot. Like a PSPDF kit, you used to care a lot, right? And and and st I still do this, there's value, but
I I have local CI. I'm I'm a I'm a little bit I I'm a little bit of DAH build now that Be because because the agent runs the test, right? Yeah. And it's just way faster. I don't I wanna Push on the on the on the on the back on the PI and then wait for ten minutes to wait for for CI. Because you've waited ten minutes on the agent already.
i if if the tests pass locally, we merge. And then yes, sometimes main slips a little bit, but it's it's it's usually very close because maybe sometimes I forget the And the agents call it gate. I don't know where that's coming from. Should I run full gate? So now I call it gate.
This g ga full gate is like linting and building and and and checking and running all the tests. And I almost think it like because it's a it's a wall, you know, like it's like you call it linter and like the the builder and the tester, it's almost like a gate. before my code goes out. So I know I always like, oh uh okay, once you're done like uh commit this, run full gate. Like I'm I'm slowly adopting their language.
But but i and if you hired like one more person to work on this, you probably wouldn't do code reviews either. Well that's what I'm sensing. You you would
¶ Peter's process for new features
you'll probably trust this person to run like like pick up your w working style, right? Like big decisions. Like you still need to have style like there was like this one pull request that adds voice calling. So now I like literally I can tell Claude, Hey, can you call this restaurant and and and and reserve your seats? And and it it it can do that.
But it it it's a big it's quite a big new module that like touches a lot of places. I'm like, you have to have this feeling, is this like this ick. I like I got a little bit of this ick, it's like I want to merge this but Oh this is becoming bloodware. So I so I I had this idea of like uh let's My typical way let's make a C L I out of it. And I already had a project where I tried to solve something like this but unfinished. So I opened up Codex and said
Hey, look at this PR, look at this project. Could we weave this feature in? I again say weave. I'm like so. No, let's let's let's keep it. Could we weave this feature into the CLI? What are the up and downsides? And then it would like tell me, like, oh yeah, I could do this and this and this.
But give me honest opinion. Would this to me this sounds like it actually it it would fit into the project and it's like and it was like, Yeah, you g you would get this and this benefits uh that we cannot do if we next other C L I Okay but I don't like this. This is getting bloodware. Could we build a plugin architecture? And then I will and you know like one of the the secret hacks on on using YA effectively is you reference other
Like I constantly tell it look into this folder because I solved it there and I solved it there. And all the previous thinking I did to like solve the problem well. Yeah, I'm so good at this still to like read the code and understand my ideas, I don't have to like explain it again. Uh well i if I explained again I might like make mistakes that like wouldn't get across exactly the idea that I have in my head.
So in this case I know that Mario who does like shitty coding shitty coding agent, which is like a actually very much not shitty coding agent, that's called Pi. I know that he had this plugin arch architecture that would load code via via GT and because it's all typescript. So it was like can you look into this folder and this folder?
And then it just came up with this really insanely good plugin architecture but again by like being inspired by other people. And then that's where you know I have this feeling and then I I came up with yeah, that's what I built last night basically. I mean, sounds like this is gonna be completely a different. Like, you know, PRs are are like in your workflow, you're not using PRs that much.
uh ci is just different it's it's tests are still doing there's an important more important feedback loop you're using things more like weaving instead of code you're talking more about architecture and taste It sounds like a pretty big shift to me. Now, in this world, let's assume you get to the point where we're gonna h you hire the next one and two and three developers on this team. Let's imagine that this thing gets a life of its own and, you know, maybe maybe it's a business as as well.
What skills would you look for? And what would you advise a an experienced engineer right now? Who would you be excited to work with? What kind of either expertise? projects would you look for for someone who sounds like who can work in this way or can pick up this way of working? Someone who is active on GitHub and does open source. And and someone where I have the feeling that they They love the pl the game. The way you learn in this new world is by like
trying stuff. And it very much feels like a game where you improve your skills as you get better. Like like a like a music instrument. You have to like keep trying. And I and I That I'm now this efficient and this fast. And I don't know, like I we I think like the other day I I had like six hundred commits in a single day. This is like completely nuts. And it worked.
Like it's not it's not like there was there was a somebody did a code review and said, like, Oh, this is actually not slop. And like, Yeah. Yeah. Uh there's a lot of skill that wanted to Yeah. It's it's it's it's a lot of hard work. But you need to play with the technology and learn and then you will get in the beginning it might be frustrating. I don't know, kinda like you y you know, you start going to the gym, it's gonna suck. It's gonna be painful. Um
But very quickly l you like you get better and you and you feel that that your workflow gets faster and then you feel the improvements and then you get slowly get hooked. So but yeah, play and and Yeah, also work hard. Yeah, I I mean you're su you're putting in more hours into this thing. I've never uh right now I've I've never I never worked more I even Even when I had my company I I've never worked so hard as I do now. Not because I have to, but because it's so addictive and so much fun.
Yeah, but also because right now I I'm like using the moment where where this has traction and and there's a lot of people who like uh pushing me. Um and I I feel uh could it be'cause I think you have pretty good business sense. Not not not not necessarily in the business business, but seeing when there's an opportunity, there is an opening for to get traction.
¶ Advice for new grads
Right. Like what you said for people to work in the open right now it seems novel. You're telling me you don't think you could h even if you wanted to hire, you don't think you could hire people'cause there's not many people working in the open, clearly using these things. fast forward two or three years from now, once a bunch of people start to do it and everyone does it.
it's kind of like moot a a little bit. So there there's also that a group that A lot of lot of people are worried about is the the new grads, the the people with with no experience who are either in school or about to graduate. Because of course you've been an experienced engineer by the time this came around, you know, you have a lot of things to build on.
putting back uh yourself into shoes of of someone like that and knowing what you know now. What what would you recommend of of activities that they do, things that they build or try? And you know, like do would you recommend on focusing on the fundamentals of software engineering on this?
Uh on the agents, kinda mixing the two. I would I would recommend them to be infinitely curious. Yes, it's gonna be harder to enter this market. It it's it's absolutely gonna be harder and you need to build things to l gain experience. I don't think you need to write a lot of code, but you need to
I don't know. You know, there's a lot of open source that is complex that you can like check out and learn and you have an infinitely patient machine that is able to explain you all the things. So you can ask you can ask all questions why? why was it built this way to like gain system understanding? But it requires real curiosity and I don't think universities right now are set up to teach you that in a in in a really good way. This is usually something you discover through pain.
It's it's not gonna be easy for new people. But but they have they have the benefit that they are not tainted by all the experience. Like they w they They use agents in ways that we don't even think about. Again, because they don't know that it doesn't work and by then it probably does. And also their friends use it all all the time as well. I have this little menu bar app for cost tracking on on on on on Cursor and and and cloud code and everything. And it was a bit slow, so I I was like, okay
Let's do let's do performance measurement and and my old way is like I open instruments and click around and it would just call Xus and do everything by the terminal. It blew me away. It was like I didn't even have to open instruments anymore. made it faster and then did like some recommendations and like all of that sounds good. Do it. Yeah, I I think we might be underestimating both like how resourceful people entering
tech have been also how uh young people if I think about some of the great companies started, they were very young and obviously very inexperienced, but had a lot of passion. So so that's there as well. Yeah, it's it's a big opportunity. I I'm especially taking like it's Uh I have to take it in like all but all the things you mentioned about
Just your way, you know, weaving code in, not carrying out PRs, not carrying out code reviews. It's a big change'cause these things have been been us with like again, y for like fifteen plus years of your life, there they have been. In fact, you know, a lot of it has been kind of, you know solid building blocks at PSPDF get right? Yeah we need we need a lot of new things. Even you know even when I get a PR I'm actually more interested in the prompts than in the code.
I I I ask people to please add the prompts and some do. And I I read the prompts more than I read the code. What did you actually ask? how much steering was involved than the actual out the to me this gives me more idea about the output. I don't have to read the code. Or like If someone wants a feature, I ask for a prompt request. Like write it up really well, because then I can just point my agent to the issue and we'll build it.
So because because the the work is the thinking about how it should work and what the details are. And if somebody else does it for me, I can literally say build and it will work. Uh and I and then uh yeah, of course I think about it but it will will re really Or if someone sends me a a PR that has just a few fixes, I told people, please don't do that. It takes me ten times more time to to review that and just type in fix in c in in codex and wait a few minutes.
So th it's like all these insane things that are like would have been completely different. Even even in the beginning. Uh now we have a one liner, but for the last two weeks Uh like when you got really traction I told people to just just point an agent at the repository to configure it. So so I didn't had I didn't have onboarding, but we had cloud code based onboarding.
My claude would like check out the good depository, read the things and write the configuration for those people and set everything up so it works, like set up a launch agent that didn't have the manual setup because it was not a priority anymore because Because agents can now do that for you. And the and the and since the the product was built by agents, they structured it exactly the way agents expect things to be named and think. There's certain ways that are encoded in in the in the weight.
How do you expect things to be named? And everything is exactly ex like how they expect to. They are really good at navigating their product. So it was not a priority to work on onboarding as much. I mean I eventually I wanted this magical experience, but it was more important to like make sure that your message arrives and that things don't explode. So onboarding was literally like type disk prompt into your agent.
Would have been mind blowing even a year ago. Right. So to to wrap off, we'll do some rapid questions. So I'll just ask and you tell me what's on your mind. What's a tool that is not a C L I, not an ID? It it can be physical that you you use, you like, you would recommend? I buy a lot of gadgets and many of them
¶ Rapid fire round
That's the way. But there's this one kinda crappy thing that was not expensive that gives me almost unlimited amount of joy. And it's like this Android powered photo stand where I can upload pictures and where like it has an email address and friends can send pictures and it will just show pictures. And I and I put a a few a few in in my house again and I mean even the animations are a little crappy because it runs anywhere, then it's terrible for my technology.
But it gives me infinite number of joy because it is low tech that just shows pictures and reminds me of happy moments in my life. And it was like two hundred bucks and I don't know. To be honest, it gets me more to it than the latest iPhone. I bought the iPhone seventeen, I still haven't unpacked it because I just in my head I wanted it, but then I couldn't get around to it because it's just a hassle to like move the sims around. And I it's like basically no no
no feelable benefit. But like this little this little device gives me infinite joy. What's something that helps you recharge outside of tech? Like just or just moving away from from tech and screens? What keeps me sane even if I work
Crazy hours is going to the gym, even better, working with a a a coach and leaving my phone in the locker. And then I really have like a good hour where I just feel me and I and I'm like in the moment and I'm not distracted by notifications or tempted to like Touch my phone. We need more time for this. Or even sometimes I I I go for a walk and I I leave my phone at home and it feels very scary.
It's almost like a it's almost like an organ right now, you know? It's like your your your body knows where it is and if you don't know where your phone is, you freak out. I I'm having I'm having a blast. Love love it. Thanks very much. Well this was a super interesting conversation.
And it feels to me that how one-person teams built software with AI is already completely different to what we've been used to. One thing that really caught my attention is how Peter thinks in prompts and not pull requests. And how he weaves in the code and no longer merges the code. He doesn't find pull requests all that useful and would rather get prompt suggestions even on GitHub.
I do think we might have to rethink the importance of prompts, or at the very least, sharing of prompts in software development, the more we use AI and AI agents. Another thing that struck with me was Peter's emphasizing how important it is to close the loop.
As Peter explained, the reason AI is so good at coding, but often mediocre at writing, is because you can validate code. You can compile it, run tests, check the output. So the secret to making AI system development work well is to design your system to close the loop and have the AI run the test. Finally, I was wondering if Peter is in the flow as much even when he's not writing code. Turns out he is. He's in the flow more than ever.
and he told me that it's mentally more exhausting to juggle several AI agents in parallel than it was just to write code. My feeling is that someone who was a great developer without AI, can be an excellent kind of code architecture or card architecting person with AI. This is just a gut feeling I've had so far, but T Peter seems to prove it. Finally we should note that Clawbot is more of a YOLO project than most production apps,
So take the approaches that we discussed with a grain of salt. At the same time, I do think that a lot of what Peter does could well spread to building production code, except review and validation will become a much more important step in those projects. If you enjoy this podcast, please do subscribe on your favorite podcast platform and on YouTube. A special thank you if you also leave a rating on the show. Thanks and see you in the next one.
