The creator of Clawd:I ship code I don't read(访谈归档)
解读
这期访谈最有价值的地方,不是“AI 会不会写代码”,而是 Peter 把工程师的主职责彻底重排:从“实现者”变成“任务系统设计者 + 质量闸门负责人”。
如果只提炼成一句话:AI coding 提效的本质,不是写得更快,而是把“并行执行能力”变成你的默认工作流,同时用更强的验收标准兜住质量。
关键原则
- 原则 1:人管目标和边界,Agent 管执行。 你先定义要做什么、做到什么程度算完成、不能碰什么,再让 agent 去跑。没有边界的并行,只会更快地产生垃圾。
- 原则 2:先把任务切成可验证的小闭环,再并行。 每个任务都要能在 30-90 分钟内完成一次“实现 -> 本地验证 -> 反馈”。
- 原则 3:把验证前置成本地。 编译、lint、测试尽量在本地 agent 循环里完成,减少等待远程 CI 的空转时间。
- 原则 4:评审重点从“逐行代码”转向“架构和 prompt 质量”。 在高并行场景,PR 更像 Prompt Request,核心是任务定义是否正确、系统方向是否一致。
- 原则 5:关注交付结果,不迷恋手写过程。 你真正要负责的是产品行为、稳定性、可维护性和迭代速度,不是“每一行是不是我亲手敲的”。
落地步骤(可执行)
- 定义任务卡(先写清楚再开跑)
- 目标:这次交付要改变什么。
- 输入:相关代码路径、依赖上下文、约束条件。
- 验收:必须通过哪些检查(测试、lint、性能、回归点)。
- 禁区:明确不允许改动的模块与风险点。
- 先小规模并行(2-3 个 agent 起步)
- 给每个 agent 不同任务卡,避免上下文互相污染。
- 统一要求 agent 输出:变更摘要、验证结果、剩余风险。
- 设置统一质量闸门(非通过不合并)
- 必过项:编译成功、关键测试通过、无高危 lint/security 问题。
- 必写项:失败场景、回滚方式、影响范围。
- 做人类评审的“高杠杆动作”
- 看架构一致性:是否破坏既有边界。
- 看任务定义质量:prompt 是否诱导错误实现。
- 看系统后果:可观测性、可扩展性、技术债务。
- 每周复盘并调参
- 统计:并行度、平均 lead time、一次通过率、回滚率。
- 调整:任务粒度、模板、验证清单、模型选择。
适用边界
- 高适用: 产品迭代快、需求碎片多、可自动化验证较完整的团队。
- 中适用: 有历史包袱但能补测试和约束的项目,先从低风险模块试点。
- 低适用: 强监管、高安全、低容错场景(支付核心、医疗核心、关键基础设施)。这类场景可以用 AI 辅助,但不能把“少读代码”作为默认策略。
我的判断
Peter 这套方法不是“偷懒”,而是把精力从低杠杆实现细节,迁移到高杠杆的系统设计与质量控制。它很强,但前提是你愿意在“任务定义 + 验收标准 + 回归验证”上投入更多纪律。
原文留档(完整转录/可得全文)
留档范围与完整性声明:
- 主来源:YouTube 自动字幕(
en-orig)。 - 官方人工字幕:未提供。
- 尝试补充:抓取
zh-Hans自动字幕时遇到HTTP 429,未成功。 - 结论:当前为可得全文转录,覆盖完整时长(00:00:02 - 01:54:02),但因自动字幕存在识别误差,
archive_status标记为partial(不标记 complete)。
展开查看英文转录(en-orig auto captions, cleaned)
[00:00:02.230] What if you could merge 600 commits on a [00:00:02.240] single day [music] and none of it was [00:00:03.600] slopp? This is what today’s guest, Peter [00:00:05.839] Stainberger, the creator of Claudebot, [00:00:08.160] claims he’s doing. Peter is a standout [00:00:10.240] developer who built PSP PDF kit, the PDF [00:00:12.445] [music] framework used on more than 1 [00:00:14.160] billion devices. Then he burned out, [00:00:16.480] sold his shares, [music] and disappeared [00:00:18.000] from tech for 3 years. This year, he [00:00:19.840] came back and how he builds and what [00:00:21.520] he’s doing now looks nothing like [00:00:22.925] [music] traditional software [00:00:23.920] development. In today’s episode, we [00:00:25.519] cover why he no longer reads most of the [00:00:27.519] code he ships, and why [music] that’s [00:00:29.519] not as crazy as it sounds. How he is [00:00:31.599] building Clawbot, his wildly popular [00:00:33.600] personal assistant project, which feels [00:00:35.440] like the future of Siri, the closing the [00:00:37.600] loop principle that separates effective [00:00:39.200] AI assistant coding from frustrating [00:00:41.040] vibe coding. Why he says code reviews [00:00:43.120] are dead and PR should be called prompt [00:00:45.195] [music] requests, and many more. If [00:00:46.960] you’re interested in how the software [00:00:48.079] engine workflow could change in the [00:00:49.600] coming years thanks to AI, this episode [00:00:51.520] is for you. This episode is presented by [00:00:53.360] Statsig, the unified platform for flags, [00:00:55.520] analytics experiments, and more. Check [00:00:57.520] out the show notes to learn more about [00:00:58.879] them, the pragmatic summit on the 11th [00:01:00.879] February in San Francisco that I’m [00:01:02.320] hosting with them, and our other [music] [00:01:03.760] season sponsors. Right, Pete, welcome to [00:01:06.159] the podcast. [00:01:07.200] » Thanks for having me, Gay. [00:01:08.720] » It is awesome to meet you in in person. [00:01:11.600] » Yeah, and I almost messed it up. [00:01:14.400] » Yeah. What what what what happened? You [00:01:16.720] lost track of time. Does that happen [00:01:18.320] often? And how how so? Um, not usually. [00:01:21.840] Not usually. Um, this is an interesting [00:01:24.159] time for me cuz I cuz my latest project [00:01:26.880] is is blowing up. Cloud, right? [00:01:29.840] » Clawbot. Yeah, [00:01:30.560] » Cloudbot. [00:01:31.360] » I’m struggling a bit to get enough [00:01:32.640] sleep, but it’s it’s it’s interesting. I [00:01:35.119] never I never had a community blowing up [00:01:37.840] so fast and it’s just incredibly fun to [00:01:39.439] work with. [00:01:39.920] » So, before we we get into Clubbot and [00:01:41.759] all the fun stuff you’re doing, I wanted [00:01:43.520] to rewind all the way way back. You [00:01:46.560] create a PSPDF kit which is used I think [00:01:49.600] on more than 1 billion devices users. If [00:01:52.880] if you see a PDF render you probably see [00:01:54.880] that. But even before that how did you [00:01:58.320] get into tech? Oh my god. How did you [00:02:01.119] get into tech? So I’m from rural [00:02:04.159] Austria. Um always more being the [00:02:07.119] introvert. [00:02:08.879] So eventually I we always had like [00:02:11.360] summer guests and one of them one of [00:02:13.360] them was a was a computer nerd and then [00:02:15.520] I kind of got hooked with with like the [00:02:17.599] machine he had and begged my mom to buy [00:02:20.800] me one [00:02:22.640] and ever since then I this was in high [00:02:24.800] school or so. [00:02:25.599] » I guess I was 14. [00:02:27.440] » Yeah. And ever since I started [00:02:29.120] tinkering, like I can remember the [00:02:30.959] earliest thing was like I stole an old [00:02:33.120] DOS game from my school and then wrote a [00:02:36.000] copy protection for the floppy disc so I [00:02:38.400] could sell it. [00:02:40.239] It took like 2 minutes to load. I was [00:02:42.080] just always tinkering. Also playing a [00:02:43.840] lot of computer games of course, but [00:02:46.640] like building stuff almost feels like [00:02:49.120] playing a computer game. Like definitely [00:02:51.120] right now it feels better than Factorio. [00:02:54.160] Oh, when I started out, I I I I read [00:02:56.640] like [00:02:58.239] the equivalent of bash scripts for [00:02:59.760] Windows and then I did like websites. [00:03:02.239] So, I guess a little bit of JavaScript, [00:03:05.360] uh, even though I had no clue what I was [00:03:06.800] doing. And then the actual first [00:03:10.000] language where I I had to learn how to [00:03:13.599] build things is when I started [00:03:14.959] university. [00:03:16.640] And I never met my dad. And I come from [00:03:19.280] a from a poor family. So, I always had [00:03:23.200] to work. like I had to had to finance my [00:03:25.920] own studies, right? So when other people [00:03:27.840] were were having holiday, I just worked [00:03:32.480] full-time at a company. So the the first [00:03:35.440] real job I had was was in Vienna was [00:03:38.159] supposed to be 1 months and then they [00:03:39.840] kept me for 6 months. It was just a [00:03:41.280] bridge between military and and my [00:03:43.280] university. And I kept working there for [00:03:45.360] like I think 5 years. And I remember the [00:03:48.319] first day they they gave me this huge [00:03:50.239] book. maybe that huge and say Microsoft [00:03:53.440] MFC. Um I still have nightmares and I [00:03:56.799] got I got like I was like this is [00:03:59.200] terrible like for for the next win I [00:04:01.360] just I just silently used net I just [00:04:04.000] didn’t tell them and like a few months [00:04:05.840] in I just told them yeah but the text I [00:04:07.840] I did a few modernizations but then it [00:04:09.760] was too late. I did this a few times in [00:04:11.519] this company. I don’t know why they kept [00:04:13.519] me because because my worked. So uh [00:04:18.479] I did net and actually I actually [00:04:20.400] actually dig it.NET 2.0 had like [00:04:22.479] generics. It took insanely long for the [00:04:25.040] application to to to launch because like [00:04:27.360] everything was compiled at first start [00:04:29.840] and like your hard disk was like [00:04:32.479] if [snorts] you remember [00:04:33.440] » so so you you how did you stumble into [00:04:35.759] both iOS and where did the idea from [00:04:37.840] PSPDF [00:04:39.280] » come from? [00:04:40.080] » Not even yeah the first one the first [00:04:41.840] one wasn’t even available in in in [00:04:43.600] Austria. That’s true. Yeah. [00:04:44.880] » A little time goes went on and I was at [00:04:47.600] university and a friend showed me the [00:04:49.120] iPhone and I I think I I touched it for [00:04:52.240] a minute and then immediately bought one [00:04:55.280] like like this like it it clicked when I [00:04:59.520] felt it and and to me this was like a [00:05:04.400] holy f moment cuz it was just like so [00:05:07.360] different and so much better. So I got I [00:05:09.440] got one. I was still not thinking about [00:05:12.320] building for it, you know. That was that [00:05:13.919] was [00:05:14.320] » when was this 2009 10 something like [00:05:16.400] that. [00:05:16.720] » Yeah. Yeah. And then I I used their [00:05:18.960] browser. I I can see the story. I was I [00:05:21.520] was literally driving in the subway. [00:05:23.600] » Mhm. [00:05:24.080] » And by the time I was using a gay dating [00:05:26.479] app and this was iPhone OS 2. [00:05:28.960] » Yeah. [00:05:29.360] » So So I I [00:05:30.560] » long time ago [00:05:31.360] » I typed this long message. I pressed [00:05:32.960] send and we were just going into a [00:05:34.560] tunnel and the JavaScript disabled the [00:05:36.479] send button and then an error message [00:05:38.240] came but there was no copy paste. There [00:05:41.199] was no screenshot. So I was just like [00:05:43.360] and I couldn’t scroll anymore because [00:05:44.720] like scrolling was disabled. So like [00:05:46.400] this long message was like a little bit [00:05:48.240] emotional was gone and I was so mad. I [00:05:52.320] was so mad. I’m like what the hell? I [00:05:55.039] went home and I downloaded Xcode. That’s [00:05:57.680] that’s where that’s where the window [00:05:59.680] came and I was like where is the ID? [00:06:02.720] So it was like like I was like this is [00:06:05.039] unacceptable. I basically hacked the [00:06:06.800] website. I used regular expressions to [00:06:08.960] like download uh to parse the HTML which [00:06:11.440] is like totally not something you should [00:06:12.720] do and I built an app and I used I used [00:06:17.600] iPhone OS3 beta with like core data in [00:06:20.160] beta regaxit light. I used a hacked [00:06:24.000] version of GCC that backported the [00:06:25.840] blocks compiler so I could use blocks in [00:06:27.919] iPhone OS3. It took me quite a while [00:06:30.000] until anything worked because like I had [00:06:31.919] no idea what I was doing and I was like [00:06:33.199] using all kind of like beta tech but [00:06:35.360] eventually I I got it to work and I I I [00:06:38.800] wrote that company was like hey I’m [00:06:40.400] making an app. What do you think about [00:06:41.360] it? Got no response of course. So I was [00:06:44.240] like let’s just put it in the app store. [00:06:46.880] » And this was for the dating app right? [00:06:48.479] » Yeah. [00:06:48.800] » So you just like you know you looked at [00:06:50.400] you saw their APIs you could just like [00:06:52.080] easily like build a client on top [00:06:53.600] » API. It was HTML. [00:06:55.039] » Oh [00:06:55.440] » I was I was just literally parsing HTML. [00:06:58.160] » Oh. So, so you kind of parse the HTML, [00:07:00.000] kind of turn it into your own, you know, [00:07:01.440] like you use it as an API. Oh, clever. I [00:07:04.160] mean, this was back in the day where no [00:07:05.759] one thought this this would happen, but [00:07:08.080] I made I put it in the app store. I [00:07:10.639] charged five bucks for it and I made [00:07:13.199] like 10k in the first month. [laughter] [00:07:16.880] And I had no clue what I was doing. So, [00:07:18.720] and there was like so many complex tech [00:07:20.240] stuff. This was very early on where [00:07:21.520] there was a lot of weird forums on [00:07:22.960] Apple. [00:07:23.680] » So, I just put in the the bank account [00:07:25.840] of my grandpa. And then one day my [00:07:28.160] grandpa called me, “Yeah, something is [00:07:29.840] weird. Like I got this huge payment from [00:07:31.520] Apple.” I’m like, “This is mine. This is [00:07:32.960] mine. Don’t touch it.” But the the funny [00:07:36.000] thing was when I this blew off and I [00:07:39.759] remember I was in a club one day and [00:07:41.360] like I saw someone using my app and I [00:07:43.440] was so proud and I wanted to like tap [00:07:44.960] him on the shoulder and say I built this [00:07:46.319] and I thought like that would be really [00:07:47.680] weird. So I didn’t. And then I I I went [00:07:50.720] to the company I worked for for 5 years [00:07:52.400] and told him like I’m going to pursue [00:07:54.240] this. This is this is really exciting. [00:07:56.720] And my boss was like mocking me. [00:08:00.400] » Oh, really? [00:08:01.120] » They’re like, “Oh, you’re making a [00:08:02.639] mistake. This is a fat. This will not [00:08:04.800] go.” Blah, blah, blah, blah, blah. And [00:08:06.960] you know what that got me? That’s what [00:08:08.800] you call a chip on your shoulder. I’m [00:08:10.560] like, [00:08:11.199] » you know, one day I’m going to I’m going [00:08:13.360] to have a company that that’s worth more [00:08:15.520] money than yours. Well, it took me eight [00:08:17.440] years. So, I I got hooked. Like, I I [00:08:20.560] worked [00:08:22.319] I I’m I’m a little bit of an addictive [00:08:23.759] personality. So which you see again [00:08:26.080] right now. But I I worked a lot on this [00:08:28.720] app. I learned I learned in in high [00:08:31.840] speed and this was also the time where I [00:08:33.680] started Twitter and that was usually [00:08:36.640] hugely influential for my career. I made [00:08:39.120] this app actually quite good and then [00:08:40.959] one day I was at a party at at 3:00 a.m. [00:08:45.120] um slightly intoxicated and I got a call [00:08:48.240] from a US number. The guy on the phone [00:08:50.720] was like, “Yeah, hello. This is John [00:08:52.800] from Apple. Yeah, there’s a problem with [00:08:55.040] your application. Like some people [00:08:56.560] reported pictures and that was it. That [00:08:58.959] was the end of my app. Um, [00:09:02.399] » it was good until it lasted [00:09:03.920] » and I was just I just quit my my job and [00:09:06.480] was like, well, [00:09:09.839] f you Apple. [00:09:10.880] » I did freelance work. I was at dubdub. [00:09:14.399] I was introduced to [00:09:16.399] » dubdubdubc. [00:09:17.920] » Yes. Sorry for the insider terms. I was [00:09:20.800] introduced to someone as one of the best [00:09:22.399] iOS developers in Austria at a bar at 2 [00:09:25.279] a.m. in San Francisco and then basically [00:09:28.000] got a job in the US and then I moved to [00:09:30.000] the US for a while and then I I went to [00:09:32.399] the Nokia development days. This is all [00:09:35.600] like stone age by now. My god. And then [00:09:38.000] someone came up to me and said, “Yeah, [00:09:40.720] they built this app somewhere in Eastern [00:09:42.399] Europe and it works but it crashes [00:09:46.000] sometimes and it was like was like a [00:09:48.160] magazine viewer, right? This was back [00:09:49.760] when the iPad just came out and Steve [00:09:52.399] Jobs hit that like this is the savior. [00:09:55.120] So everybody was building magazine apps [00:09:57.440] and I was like that sounds like an [00:10:00.240] interesting short-term gig. And I I was [00:10:03.040] like okay I I’ll I’ll I’ll help you out. [00:10:06.080] And I opened the app and it was like oh [00:10:09.120] the worst code I’ve [00:10:11.920] ever seen in my life. It was literally [00:10:14.240] one file with like thousands of lines [00:10:17.279] » of Objective C. Yes. Where they used [00:10:21.040] windows as tabs. I I didn’t know this [00:10:23.519] worked. I was surprised this worked at [00:10:24.959] all, but it felt like a a house of [00:10:27.200] cards. And I I tried to I tried to [00:10:29.680] surgically fix things, but like as soon [00:10:31.440] as you would touch something, something [00:10:32.480] else would break. Um so I got it I got [00:10:35.360] it somewhat stabilized and I told him [00:10:36.720] like, “Look, this is this is like [00:10:38.399] madness. Um I’m going to rewite this for [00:10:40.800] you.” Yeah. But it took half a year. I’m [00:10:42.480] going to do it in in a month. Well, it [00:10:44.160] took me two months. Um, I wasn’t that [00:10:46.480] far off [00:10:48.320] and and then here I was working on a on [00:10:50.800] a PDF viewer. You know, on every [00:10:53.279] technical problem, [clears throat] the [00:10:54.720] domain is is I wouldn’t say like [00:10:58.240] completely unimportant, but you can [00:11:01.120] always find interesting problems in [00:11:03.440] every domain. And there was a lot of [00:11:05.200] interesting problems because you had a C [00:11:07.279] call that would render a PDF that would [00:11:09.600] maybe take 30 megabytes, but the whole [00:11:11.519] system had 64 megabytes. So if you’re [00:11:13.680] not very smart and like very careful [00:11:16.640] what you do in the background and when [00:11:19.279] the OS would just kill you. I got really [00:11:21.760] fixated at like making it good like when [00:11:23.839] the rotation is like that the page would [00:11:25.600] like animate and so so you know I I like [00:11:27.839] I like those details. I spent way too [00:11:29.440] much time on that. That’s why I took two [00:11:30.640] months instead of one. But the end [00:11:32.480] result was it’s good. Um and then I I I [00:11:35.920] worked with them for a while and then a [00:11:37.279] friend texted me up. He’s like, “Yeah, [00:11:38.720] I’m working on this magazine app and [00:11:39.920] it’s really hard.” I’m like, “Yeah, no [00:11:41.200] way it’s hard. I know.” Oh, like I did [00:11:43.120] it. [00:11:43.360] » You just built one. [00:11:44.560] » And and he was like, “Can you can you [00:11:47.040] can you get me the code?” I’m like, [00:11:48.720] “Sure.” So, I sold him like I extracted [00:11:51.839] the the part that was PDF from from this [00:11:54.959] magazine app. And I I made sure I made [00:11:58.160] sure like the other person was okay. And [00:12:00.079] then I sold him that. I was like, “Well, [00:12:02.480] if he’s interested in that, why let’s [00:12:04.399] not try to sell it to other people.” I [00:12:07.680] used a a WordPress template and [00:12:10.800] mutilated it to run on GitHub pages and [00:12:13.440] then and then when you did the the fast [00:12:15.760] lane flow at the end you got a Dropbox [00:12:17.120] link to my personal Dropbox with a [00:12:18.720] source code sip and I put this on one [00:12:20.560] afternoon and I I tweeted it and and [00:12:23.519] then in that week three people bought it [00:12:25.600] and it was like I guess 200 bucks but [00:12:29.200] back then and for me this was like [00:12:30.880] amazing and not only I got like three [00:12:33.440] people who just bought it and like 10 [00:12:34.880] emails who comp 10 people who complained [00:12:36.560] about [00:12:37.920] uh because they wanted it but it didn’t [00:12:40.079] have the features they wanted. You know, [00:12:41.519] it’s like I got nerd sniped. I was like, [00:12:43.760] “Oh, I didn’t have text selection.” Oh, [00:12:45.279] how hard can it be? 3 months later. Oh, [00:12:48.079] yeah. It’s really hard. [laughter] [00:12:50.320] Text selection in a PDF specifically. [00:12:52.560] » Yeah. Yeah. Yeah. Yeah. You know the [00:12:54.320] saying the saying like uh the companies [00:12:56.880] are built by young people because they [00:12:58.079] don’t know how hard it is. [00:12:59.440] » Yes. [00:12:59.760] » Yeah. Yeah. I had no idea what an insane [00:13:01.760] madness this file format is. Peter was [00:13:04.880] talking about how some problems look [00:13:06.399] deceptively simple. PDF rendering is a [00:13:08.720] good example. You look at it and think, [00:13:10.720] how hard could it be? And then you spend [00:13:12.560] months on edge cases that you didn’t [00:13:14.160] even know existed. This looks easy until [00:13:16.880] you build it pattern shows up in other [00:13:18.639] places, too. Internal tooling for [00:13:20.160] feature flags and experimentation is a [00:13:22.079] classic example. Teams often [00:13:23.519] underestimate how much work it is to [00:13:25.200] build infrastructure around these tools. [00:13:27.040] There’s a reason big tech companies like [00:13:28.560] Uber invested years into building [00:13:30.560] internal experimentation and feature [00:13:32.480] flagging systems. Which brings me to [00:13:34.160] Static, our presenting partner for the [00:13:36.000] season. Static gives you the complete [00:13:37.839] toolkit without building it yourself. [00:13:39.920] You get feature flags, experimentation, [00:13:41.839] and product analytics all in one [00:13:43.600] platform tied to the same underlying [00:13:45.519] user assignments and data. In practice, [00:13:47.600] it looks like this. You roll out a [00:13:49.600] change to 1% of users first. You see how [00:13:52.079] it moves the top pipeline metrics you [00:13:53.839] care about, conversion, retention, [00:13:56.000] whatever is relevant for the release. If [00:13:58.000] something goes wrong, instant roll back. [00:14:00.480] If it’s working, you can confidently [00:14:02.560] scale it up. Companies like Notion went [00:14:04.720] from singledigit experiments per quarter [00:14:06.880] to over 300 experiments with static. [00:14:09.120] They shipped over 600 features behind [00:14:11.040] feature flags, moving fast while [00:14:12.959] protecting against metrics regression. [00:14:14.880] Microsoft, Atlassian, and Brex use [00:14:16.800] static for the same reason. It’s the [00:14:18.399] infrastructure that enables both speed [00:14:20.240] and reliability at scale. Static has a [00:14:22.480] generous free tier to get started and [00:14:24.079] pro pricricing for teams starts at $150 [00:14:26.320] per month. To learn more and get a [00:14:27.920] 30-day enterprise trial, go to [00:14:29.600] stats.com/pragmatic. [00:14:31.680] And now, let’s get back to Peter and why [00:14:33.680] rendering PDFs was a surprisingly hard [00:14:35.680] problem. [00:14:37.199] But now, I remember there was a few [00:14:39.279] weeks ago someone emailed me. They did [00:14:41.360] something PDF and they wanted my help. [00:14:43.360] And I just wrote them like, I’m sorry, [00:14:44.639] like I I did my deed. I I know more [00:14:46.959] about PDF than any any sane human person [00:14:49.360] ever should know. And I went I went to [00:14:51.040] therapy. Good luck. [laughter] [00:14:54.240] But that took off and and I just I while [00:14:56.880] I was waiting for my visa, I I worked on [00:14:59.600] this project and and it just kept on [00:15:03.680] more people kept on buying it. And you [00:15:05.600] know, it was like it was like summer. I [00:15:07.920] was I was like lying at the lake and got [00:15:09.360] another email that someone bought it for [00:15:11.120] 600 bucks, 800 bucks. I just up the [00:15:13.040] prices as it had more features. And by [00:15:15.839] the time I I went to San Francisco to [00:15:18.800] work at this company, it already made [00:15:21.279] more than what I made there. But my [00:15:23.920] whole life was I still I still thought [00:15:26.399] like I have to be there, you know. [00:15:28.320] » So I I did it. And also interestingly at [00:15:31.040] this company, I had to [00:15:32.000] » So what would you say that you moved to [00:15:33.440] San Francisco? [00:15:34.160] » Yeah. And and of course also it ended up [00:15:36.800] being something where I had to build [00:15:38.320] build something with my framework at [00:15:39.600] that company too. But you know startups [00:15:41.920] are not like 8 hours. They’re a little [00:15:43.519] more. And my personal project was also a [00:15:46.880] little more. So my sleep was a little [00:15:49.759] less. And then eventually after 3 months [00:15:53.440] uh Sabine my manager came over and said [00:15:56.000] this Peter are you okay? And they gave [00:15:59.040] me a choice uh to either keep working at [00:16:02.000] this company and drop my project or or [00:16:04.399] vice versa. And I had one week to [00:16:07.120] decide. The counter was one week to [00:16:10.720] stay there or leave the country because [00:16:12.639] I was on a on a complicated visa. [00:16:16.720] And well, the decision was quite easy. [00:16:18.959] It’s like, yeah, I want to do my own [00:16:20.480] thing. And then and [00:16:21.680] » and at this point, it was already taking [00:16:23.120] off. You already saw that this is [00:16:25.279] there’s a big business here. It it will [00:16:27.600] probably pay you as much as your US job [00:16:30.320] would have paid. Ah, [00:16:31.440] » it was never money driven either. [00:16:33.360] » It was more about what what were you [00:16:35.040] driven by? I want to make stuff that [00:16:39.360] other people find amazing. Like I I I [00:16:43.680] love tweaking the details. I love those [00:16:45.920] little delights. It wasn’t even that the [00:16:47.519] space there were competitors in the [00:16:48.720] space. But my angle was always like I [00:16:51.440] built something as if Apple would have [00:16:53.360] built it like like with with like all [00:16:55.360] the love and care and and polish and and [00:16:59.040] those little delights that [00:17:01.600] a lot of people in the industry don’t [00:17:03.360] get. Uh, so even though we had [00:17:05.760] competitors that had way more features [00:17:07.919] and were around way longer, my company [00:17:10.400] was more successful and my product was [00:17:11.919] more successful cuz developers tried the [00:17:15.039] the different ones and mine just felt [00:17:17.520] the best. I think software is all about [00:17:19.600] about how it feels much more so than the [00:17:21.839] than the feature set. Like why did we [00:17:23.600] buy Apple stuff? It has more features [00:17:24.959] than than Windows. Um, but it it feels [00:17:28.160] better. So, how did you go from like you [00:17:31.600] you left this company and you were [00:17:34.160] building this PDF component that started [00:17:37.840] to sell. At what point did you hire the [00:17:40.720] first person realizing, okay, there’s [00:17:42.240] something more to this? when I went back [00:17:44.320] to Vienna then I was like okay I have to [00:17:47.039] go all in and that’s where I I started [00:17:49.600] working with freelancers a little bit [00:17:51.520] and way too late to be honest also like [00:17:54.000] I I could have could have hired much [00:17:55.679] earlier but you know you know it’s it’s [00:17:58.000] it’s a big step and that’s kind of where [00:18:00.160] it it started having a life of its own [00:18:01.919] and I spent [00:18:03.760] pretty much 13 years of my career [00:18:07.120] um building this product with this weird [00:18:08.799] name that I never changed because I took [00:18:10.480] me like I thought like five minutes [00:18:11.760] about it and then stock PSPDF kit. [00:18:13.919] » PSPDF. [00:18:14.640] » They finally they finally did a rename, [00:18:16.559] but I wouldn’t have I wouldn’t have [00:18:17.840] renamed it. But now it it [00:18:19.760] » it’s it’s a mouthful, but it’s very [00:18:21.679] unique. [00:18:22.880] » Well, you get it if you do Objective C [00:18:24.480] because it’s just a name space. [00:18:25.760] » Yes. [00:18:26.240] » Um and by by the time it it made perfect [00:18:28.480] sense, my marketing my strategy for [00:18:31.280] marketing was always I only care about [00:18:33.840] the developer. Like I know like upper [00:18:36.240] management does the decisions but if I [00:18:39.039] can convince the people inside the [00:18:41.280] company they all do the marketing and [00:18:42.640] lobbying for me that worked really well. [00:18:44.960] We never did like cold cold emails or [00:18:47.760] aggressive. It was all inbound. All we [00:18:49.840] did was like make good stuff and write [00:18:53.760] insertful technical blog posts that and [00:18:57.200] I went to a lot of conferences like the [00:18:59.039] for me important it was okay if if [00:19:02.000] people understand that the people who [00:19:04.080] built this product are like know what [00:19:06.880] they do and and love what they do that [00:19:09.919] reflects on the product and that that [00:19:12.640] worked really well. [00:19:13.760] » And then what was the text type behind [00:19:15.039] PSPDF kit? Was it objective C? Was it [00:19:17.440] later swift? Were there other [00:19:18.720] technologies like C or or anything else? [00:19:20.880] » We eventually expanded to to all the [00:19:23.440] platforms. Um big shift was the switch [00:19:26.640] out renderer which was and is still [00:19:29.200] quite buggy to like a big C++ one that [00:19:32.160] when then we used across all the [00:19:34.480] frameworks. Um we we were we were really [00:19:37.120] early with web. We were one of the first [00:19:39.200] PDF frameworks that ran in web assembly. [00:19:42.160] And I I did the most clever thing that [00:19:44.000] it was in the very early days when Web [00:19:45.679] Assembly was just taking off and we [00:19:47.600] built a benchmark and that benchmark was [00:19:49.840] eventually used by by Google and [00:19:51.600] Microsoft and Apple and I basically had [00:19:55.039] all these companies like working really [00:19:56.160] hard on making my renderer faster cuz [00:19:58.480] cuz they used their benchmark as one of [00:20:00.320] their benchmarks and the benchmark was [00:20:01.600] just like rendering our stuff with our [00:20:06.470] » Ah nice. And then a as as a company [00:20:06.480] grew, one thing that I remember about [00:20:07.919] PSPDF kit, you did write a lot of blogs [00:20:10.640] and one blog in 2019, so this was about [00:20:13.360] like I think you know year nine or 10 in [00:20:15.039] the company. It was about how the team [00:20:18.000] worked and you you mentioned things [00:20:20.799] there like every feature starts with a [00:20:23.600] proposal. You mentioned that you are [00:20:25.360] conservative because it’s a it’s a big [00:20:26.960] API that that people use. You want to be [00:20:28.880] careful things like the boy scout rule [00:20:31.520] such a factor. How how did you kind of [00:20:33.840] put together the the culture of of this [00:20:36.159] now this team which was now closer to 30 [00:20:38.080] or 60 people? [00:20:39.120] » We were actually 70 when when I sold my [00:20:42.640] shares and now it’s almost 200. And I I [00:20:44.880] knew right from the get- go it’s like [00:20:46.559] I’m not going to find the people that I [00:20:48.240] need in Vienna. So it was always just [00:20:50.400] like remote first and eventually we we [00:20:54.240] landed up with some kind of hybrid model [00:20:56.640] uh which made things a bit more [00:20:58.000] complicated. I learned a whole lot on [00:21:00.400] the go. Like I I never had the urge to [00:21:03.520] be CEO. I always was coding. I I brought [00:21:08.320] people in to people that that helped me [00:21:11.280] a lot with other other parts. Uh and on [00:21:13.840] the business side, I can do it and I I [00:21:16.000] think I think I’m I’m quite good at it, [00:21:17.440] but I just don’t enjoy it. Like even on [00:21:20.240] sales calls where you like have to like [00:21:22.559] think of all the magic number how much [00:21:23.919] it would be worth because that’s how [00:21:25.120] enterprise works. Gh worse. Peter just [00:21:28.480] said, “Ah, the worst about enterprise [00:21:30.159] sales. Because selling to large [00:21:31.760] companies, enterprises, is as tricky as [00:21:34.240] it gets.” Not just because you need to [00:21:36.240] get pricing right, but because of all [00:21:37.760] the enterprise features that you need to [00:21:39.200] build. And this leads us nicely to our [00:21:40.720] season sponsor, Work OS. If you’re [00:21:42.880] building with AI agents or automation [00:21:44.640] tools, here’s a problem most teams don’t [00:21:46.640] think about at first. Once an agent can [00:21:48.720] take actions on your behalf, you need to [00:21:50.799] control what it’s allowed to do. And [00:21:52.240] traditional O just wasn’t designed for [00:21:54.240] that. That’s why work introduced MCP off [00:21:56.720] which gives teams a way to authenticate [00:21:58.640] AI agents with explicit permissions [00:22:01.120] auditability and enterprisegrade [00:22:03.039] security. Instead of sharing over scoped [00:22:05.200] API keys, you can define clear [00:22:07.200] boundaries for the data that agents can [00:22:09.039] access and the agents they can perform. [00:22:11.760] If you’re building AI powered features [00:22:13.280] and want to share fast without [00:22:14.720] compromising security, check out [00:22:16.640] workeros.com/mcp. [00:22:19.039] And with this, let’s get back to Peter [00:22:20.880] and enterprise pricing. But that’s also [00:22:23.280] the only thing that that really works on [00:22:24.960] on a model like this. [00:22:26.240] » Yeah. You mean enterprise sales [00:22:27.840] specifically, right? [00:22:29.360] » Meaning custom pricing. So So can you [00:22:31.760] tell us for for for you know devs [00:22:33.840] listening who go to a vendor’s website [00:22:36.080] and they’re frustrated that there’s no [00:22:37.520] price. It says call us or schedule [00:22:39.280] meeting. Why that is? [00:22:40.799] » Oh, that’s that’s why because we going [00:22:42.559] to look at your company and then just [00:22:44.320] take the dice and and and think about [00:22:46.480] the number that you’re probably willing [00:22:47.840] to pay. And that sounds horrible. But [00:22:51.200] also when you have a product where you [00:22:53.120] can’t really tear it down to a specific [00:22:55.440] number like it it’s it makes a [00:22:57.840] difference if uh a freelancer contacts [00:23:00.320] us or one of the big Fortune 500s. Let’s [00:23:03.039] not say names [00:23:04.320] » because the usage will be different. The [00:23:06.159] value they get out of it will be [00:23:07.440] different and charging the same. You [00:23:10.400] would either exclude one or the other. [00:23:12.000] If I if I if I go too low, they’re going [00:23:14.400] to see this fishy. It’s like uh [00:23:17.120] procurement for like 500 bucks. we’re [00:23:19.360] not going to even start the process. And [00:23:21.520] if we we target it too high, we’re going [00:23:23.200] to lose those people. So So as horrible [00:23:25.760] and unfair this process seems for some [00:23:28.799] kinds of products, it is the it’s the [00:23:31.440] most fair way after all. You know, you [00:23:33.280] know, on software [00:23:35.280] there is I would say there’s like four [00:23:36.960] axes. There’s like easy and hard and [00:23:39.679] interesting and not interesting. We were [00:23:41.360] very much in the not interesting and [00:23:42.720] hard part. If you build something that [00:23:45.039] every developer wants to build, it’s [00:23:46.799] going to be a hard cell. It’s it’s a [00:23:48.640] hard sell anyhow. Selling anything to [00:23:50.480] developers is a hard sell. [00:23:51.840] » Yeah. [00:23:52.240] » But if it’s if it’s too easy or too [00:23:54.559] interesting, good luck. But if it’s [00:23:57.600] » oh god, I don’t want to do this and oh [00:23:59.200] my god, this is hard. That’s a good spot [00:24:01.120] to be in. So So I found a really [00:24:04.480] interesting niche and there were just an [00:24:08.320] infinite number of complex problems. [00:24:10.480] » You you you need to tell me tell me one [00:24:12.240] or two hard things about parsing PDF. [00:24:15.440] How hard could it be? There’s a [00:24:17.520] specification. I’m an engineer. I know [00:24:19.679] specifications. I What’s so hard about [00:24:22.159] it? [00:24:22.320] » I mean, there was this one example [00:24:23.520] where, you know, like PDF has have [00:24:25.360] links. So, like there’s like there’s [00:24:26.480] like a table of contents and you click [00:24:27.679] on it and it goes to like page 37. So, I [00:24:29.679] built this whole model with the [00:24:30.640] assumption, oh yeah, maybe there’s like [00:24:32.240] a 100 or 400 links in there. [00:24:34.559] » And then we got this one customer who [00:24:36.000] like paid really good money. And then I [00:24:37.679] was like, oh, it takes 4 minutes to load [00:24:39.520] a PDF. What the heck, guys? And I looked [00:24:42.000] at it and it was like a 50,000 page text [00:24:44.640] bible from Canada and it had [00:24:46.799] » 50,000 pages. [00:24:47.760] » It had like more than 100 links per [00:24:49.919] page, [00:24:50.640] » 500,000 links. [00:24:52.240] » My data model completely exploded [00:24:53.760] because my assumptions were off by a [00:24:55.200] number of what 1,000. But by then you [00:24:57.600] have like a mature product with an API. [00:24:59.760] So like how do you how do you completely [00:25:03.200] redesign the internal part without [00:25:07.039] breaking things for everyone? like [00:25:09.279] suddenly everything has to be lazy where [00:25:11.039] where before parsing 100 one was easy [00:25:13.760] but now they were like this was like so [00:25:16.159] difficult to keep it working for people [00:25:19.520] um I think I spent like two months just [00:25:22.559] on that completely redesigning like the [00:25:24.720] internals and like making sure it’s [00:25:27.760] still easy for people they don’t have to [00:25:29.600] know what we what we load easy what we [00:25:31.360] load lazy or if you copy this thing it [00:25:34.159] it still has to like have to keep some [00:25:36.159] connection [00:25:36.799] » it needs to keep the references and and [00:25:38.559] some of those things. [00:25:39.360] » So, so I and I I love to do support and [00:25:42.880] I think that that that also a confining [00:25:44.960] factor why the company worked cuz if if [00:25:47.919] you send a ticket and then the the the [00:25:50.880] CEO replies and helps you out [00:25:53.919] um that has impact and my my strategy [00:25:56.480] was always like I always used to list in [00:25:58.799] reverse cuz if you if you send a ticket [00:26:02.640] and you get a reply within 5 minute [00:26:04.320] that’s magical. If you wait one or two [00:26:06.960] days not much difference. Yeah. [00:26:08.799] » So, yeah, this this was one of the [00:26:10.640] problems where I worked two months and I [00:26:13.200] finally got it down to almost like this. [00:26:15.440] » Mhm. That must have been satisfying. [00:26:16.960] » And and it was this was very satisfying. [00:26:19.120] » And you were writing a lot a lot of the [00:26:20.400] code or you were involved in in in a [00:26:22.320] bunch of the code like obviously a big [00:26:24.159] big team was now here, but you were [00:26:25.440] still kind of overseeing it, right? [00:26:26.720] You’re in the details. I mean, of [00:26:28.159] course, I had a a really great team and [00:26:29.760] and some parts I was more involved. I [00:26:31.840] was always more involved in mobile [00:26:33.039] because that’s where my my heart was, [00:26:34.799] but I was always very deep in the tech [00:26:36.880] and and the the [00:26:39.279] marketing side, the business side. I had [00:26:40.880] like Jonathan’s help, I had marketing [00:26:42.400] help. There was I I I found good people. [00:26:44.880] The the thing is if you like the [00:26:46.640] blogging and writing about how you solve [00:26:49.279] interesting hard problems will help you [00:26:51.600] hire interesting people that want to [00:26:53.440] solve interesting problems. This is what [00:26:55.440] I remember at PSP PDF kit that your blog [00:26:59.360] was every now and then it admitted it to [00:27:01.120] hacker news as well but it was just [00:27:02.480] interesting to read and I couldn’t name [00:27:05.200] again I I’m not went into PDFs but if I [00:27:08.000] had to say something a PDF I would have [00:27:09.520] said PSPDF kit because they’re the only [00:27:11.279] ones where I read interesting engineing [00:27:13.120] blogs about how you optimize your ship [00:27:15.679] is still there by the way I I I myself [00:27:17.919] also sometimes ask myself like hm [00:27:20.080] interesting do more companies not see [00:27:22.240] this or is is the question that you you [00:27:24.480] need to be a developer who’s either the [00:27:26.799] CEO or or up there who just likes doing [00:27:29.039] this. And by the way, did did you ever [00:27:32.320] write this thinking this will be helpful [00:27:34.240] or you just wrote because you got [00:27:36.480] something out of it like putting out [00:27:38.000] that you solved this hard problem? [00:27:39.600] » I like sharing and and and like [00:27:41.279] inspiring people. Um there was sometimes [00:27:44.559] even conflicts where we were like should [00:27:46.240] we write about this because it’s like a [00:27:47.840] little bit of secret sauce [00:27:50.720] but I just never listen to those voices [00:27:52.880] too much. Um I just you know there’s [00:27:56.240] also like when you when you write [00:27:58.399] something down there it’s this principle [00:27:59.840] of like you understand it but then if [00:28:02.640] you want to teach it you really have to [00:28:04.399] understand it. So to to me it was also a [00:28:06.880] little bit like oh yeah I worked on this [00:28:08.480] really hard problem and now I want to [00:28:11.039] like preserve it and like help others. [00:28:13.919] So, so, so I I got I got a gig of it of [00:28:16.320] of course I liked the attention. Um, but [00:28:20.320] really it it was this [00:28:23.120] sometimes I just referenced a year later [00:28:25.679] to my own post like yeah this this is a [00:28:29.360] this is both company documentation. This [00:28:31.279] is like my own lookbook. It’s helpful on [00:28:34.559] so many ways and a lot of those bigger [00:28:36.480] companies. [00:28:38.000] Oh, they put on too much red tape. [00:28:40.080] There’s a lot of developers who don’t [00:28:41.360] really like to write. So I I I forced [00:28:44.640] everyone once a month a full day just to [00:28:47.760] write a blog post. [00:28:48.880] » But you gave them the time. You’re like [00:28:50.240] that day you don’t need to do any other [00:28:51.520] work but write something. [00:28:52.960] » Yeah. You have Yeah. You have a day to [00:28:54.320] come up with a post. Ah a day is is [00:28:57.039] quite much actually. I mean when I’m [00:29:00.000] nowadays when I write posts it still [00:29:01.760] takes me [00:29:03.600] a few hours. I don’t want to dwell too [00:29:05.600] much on like the I think the the the [00:29:08.720] starting time of the company is the most [00:29:10.640] interesting. the then the the growth [00:29:14.159] phase, you get more red tape, you get [00:29:16.399] more people. It’s much more gardening [00:29:19.679] your product instead of like doing doing [00:29:22.240] wild hacks [00:29:24.159] » um and more iterative. So, so, so it got [00:29:26.480] a little bit less interesting uh over [00:29:28.960] the years and there was like more people [00:29:30.720] drama cuz the more so the more people [00:29:33.679] you have, the more issues there are and [00:29:35.600] I didn’t enjoy it that much and I was [00:29:38.000] really really burned out. What what [00:29:40.880] burnt you out, do you think? [00:29:42.559] » I was just burning too hard. I was [00:29:45.200] working most weekends. I I I tried to [00:29:48.640] shuffle all my managerial needs. And you [00:29:51.279] know, as a CEO, you’re basically the [00:29:52.720] waste bin cuz everything everything that [00:29:55.200] other people don’t manage or or can do [00:29:57.600] or or mess up, you have to fix. And it’s [00:30:00.960] also quite lonely because you you can’t [00:30:03.039] openly talk about a lot of things. I [00:30:06.480] mean I I I I structured the company to [00:30:08.799] be quite open but still like you cannot [00:30:11.840] you cannot be negative. You have to even [00:30:14.559] if even if like even if like really bad [00:30:16.640] stuff happens. I know there was like [00:30:18.159] there was like one weekend where my my [00:30:19.679] co-founder called me at at 5:00 a.m. and [00:30:23.200] told me like yeah there’s this big [00:30:24.399] airplane company and their planes are [00:30:25.840] down because our software is crashing. [00:30:28.159] That was a very interesting weekend [00:30:29.919] until I could like I disassembled their [00:30:34.000] their app and did proof that they messed [00:30:36.159] around with our source code to [00:30:38.240] triggering a triggering a license key [00:30:40.960] fall back. Uh that eventually like [00:30:43.120] caused issue they had. But that was like [00:30:46.159] a if they sus company’s gone and more [00:30:49.679] moment. Um and that’s just on top to all [00:30:52.799] the additional stress and there were [00:30:54.000] quite a few of those things. You can do [00:30:55.520] that for a while. And I I also believe [00:30:57.440] like burnout doesn’t necessarily come [00:31:00.080] from working too much. It it comes more [00:31:03.120] from or at least for me when you when [00:31:05.440] you work on something but you don’t [00:31:07.760] believe in it anymore or you have like [00:31:09.279] too many conflicts and and we also had a [00:31:12.559] we did fight a lot in the team uh with [00:31:15.039] like management team and by the time I I [00:31:18.960] made this mistake and I thought you have [00:31:20.320] to like lead a company more [00:31:21.440] democratically. [00:31:23.120] Um so that was also something that [00:31:24.880] burned me out. I wouldn’t I wouldn’t [00:31:26.399] want to miss it for a while, though. [00:31:27.919] » Yeah. So, you know, from from the [00:31:30.399] outside, it seems you sold your shares, [00:31:33.520] you made enough money to not have to [00:31:35.440] work again, should you not choose. And [00:31:37.279] for a lot of people, like, you know, [00:31:38.880] people who are starting out their [00:31:40.000] business or or one day want to start a [00:31:41.840] business, this sounds like the absolute [00:31:43.039] dream. Like, this is I guess what we [00:31:45.360] know realistically that most people will [00:31:46.960] not make it, but if you make it, I mean, [00:31:48.320] you’ve kind of like I guess you know, [00:31:49.600] checkbox done. You’re kind of it’s a [00:31:51.360] little bit if you’re like climbing on a [00:31:52.720] wall and you ring the bell, you’re done. [00:31:54.880] And then what I noticed is from the [00:31:57.440] outside again on your blog, the blog [00:31:59.360] post completely stopped for several [00:32:01.039] years. What what did you do uh in in [00:32:03.120] this time uh and and what what what did [00:32:05.760] you learn in this time, you know, before [00:32:07.600] you came back to to where we are now? [00:32:09.919] » I needed a lot of time to decompress. I [00:32:13.360] I catched up a lot on the things I [00:32:15.760] thought I missed. I I a lot. Um there [00:32:20.240] were months where I didn’t even turn on [00:32:21.519] my computer. And for a while I was I [00:32:23.679] just didn’t had this feeling of like [00:32:25.200] what should I do now? Like like I [00:32:27.279] definitely was like [00:32:29.760] why border? You know, you’re not you’re [00:32:32.240] not supposed to to retire so early or [00:32:36.480] like have so much have such a good exit [00:32:39.440] that you never have to work again. That [00:32:42.080] messed with my mind quite a bit. That [00:32:44.159] » that was some that was some hard years. [00:32:47.039] And then in in April I was like [00:32:51.279] I there was this idea that I had years [00:32:53.840] ago and even a side project that I [00:32:55.360] started I was like oh yeah I want to I [00:32:57.919] want to continue on that and then after [00:33:00.559] after after more than 3 years I just sat [00:33:02.720] back to my computer and and started [00:33:05.200] hacking again. But the thing was this [00:33:09.039] was like a a Twitter analytics thing and [00:33:11.760] it was written in in Swift and Swift UI [00:33:14.720] and back then I already knew this would [00:33:17.840] have would be so much better if I would [00:33:19.600] build as a website. [00:33:20.799] » So So was this an existing idea that you [00:33:22.960] kind of had at the back of your your [00:33:24.320] mind something something Twitter [00:33:25.519] analytic? [00:33:26.159] » Yeah, it was just like something I [00:33:27.279] wanted to build for myself because uh [00:33:29.039] because it didn’t exist and then [00:33:31.200] » even three years later it didn’t exist. [00:33:32.880] It still doesn’t exist. Uh it it kind of [00:33:35.120] does but I got a bit sidetracked. So I I [00:33:38.799] went back and I I wanted to build it in [00:33:41.440] in with web tech. But web was really was [00:33:44.559] always even at the company the one thing [00:33:46.559] that I looked into the least because I [00:33:49.600] had I had someone really smart who took [00:33:52.000] care of of of that side in the company [00:33:53.840] that I brought in Martin. So I never had [00:33:55.840] to worry about it. That was one of the [00:33:57.919] » You’re not hands on with React or any of [00:33:59.519] that stuff. [00:33:59.919] » Yeah. And when I came back, I was like, [00:34:01.679] what’s a prop? You know, that that level [00:34:04.159] where you really where and you know, [00:34:05.679] this is like this is a a trap I see with [00:34:08.480] many developers. The the better you get [00:34:11.040] at one technology, the harder it is to [00:34:13.839] jump somewhere else. It’s not that you [00:34:15.760] can’t do it, but it hurts so much. [00:34:19.040] You’re like like I can I can program in [00:34:21.760] in in in Apple stack. and program blind. [00:34:24.480] But then in that stack, I have to Google [00:34:26.720] the most mundane stuff and it it just [00:34:29.679] like it just hurts. You you you feel you [00:34:32.320] feel like an idiot again. [00:34:33.760] » Yeah. And and I guess the more [00:34:35.040] experience you have, it it kind of sucks [00:34:36.639] feeling. I mean, I’m sure you say [00:34:38.000] embrace and and all that, but it’s it’s [00:34:39.520] not great. You’re not as efficient. You [00:34:41.359] know that you could be faster, etc. [00:34:43.440] » Yeah. So So I came back and I was like, [00:34:45.760] gosh, there has to be there has to be [00:34:47.839] what is this AI? What is this AI stuff [00:34:50.159] that every that that people are [00:34:51.599] dismissing? let’s look into this. Yeah. [00:34:53.119] And in April, a lot of us were the [00:34:54.720] specific probably for rightfully so, but [00:34:57.119] and I and I and I like and I to a degree [00:35:00.880] I I credit those three years where I [00:35:03.920] basically didn’t turn on my computer [00:35:06.400] because in those years you guys checked [00:35:10.640] out AI and learned that it’s crap. [00:35:13.920] » Yeah. the the people who like I was [00:35:15.680] about to say so you missed out on you [00:35:18.000] didn’t do the beta of GitHub copilot you [00:35:20.320] know glorified autocomplete which is [00:35:22.079] GPC3 or or maybe not even there was then [00:35:25.200] of course 3.5 which is a big jump and it [00:35:27.680] it got incrementally better than GPT4 [00:35:30.560] and so by the time you came back what [00:35:32.160] tool did you first use when you cuz you [00:35:34.560] missed out on like two years of like [00:35:36.640] like devs us devs using dismissing [00:35:39.520] finding some niche use cases for it [00:35:41.920] » oh cloud code so you start with cloud [00:35:43.839] mode that I think came out. [00:35:45.359] » It just came out It came out in May, but [00:35:47.040] there was a beta beforehand. [00:35:48.400] » Yeah. Yeah. I think they had something [00:35:49.839] Didn’t they have something in February [00:35:50.960] already? [00:35:51.599] » They had a beta from February. Correct. [00:35:53.440] » Yeah. So, so [00:35:54.240] » so clock was your first you you come [00:35:56.560] back after like a you know hiatus and [00:35:59.040] you immediately turned on clock code and [00:36:00.400] you missed everything else before. and [00:36:03.040] and and you know, you know, it was like [00:36:05.839] I I remember I took this big messy site [00:36:10.400] project that I built and I have this [00:36:13.200] browser extension where that that [00:36:14.960] converts a GitHub repository into one [00:36:16.640] big markdown that was like a 1.3 [00:36:19.920] megabyte markdown file and I dragged it [00:36:21.920] into into Google’s CI studio with [00:36:24.079] Geminina 2.5 or two to something and I [00:36:27.359] typed write me a spec and it generated [00:36:29.839] those 400 lines of spec And I dragged [00:36:32.320] this back into cloud code [00:36:35.040] and I was like build and then I continue [00:36:38.160] continue [laughter] [00:36:39.119] continue and while I was like working on [00:36:42.079] other stuff, you know, um and eventually [00:36:44.800] told me like it’s 100% production ready [00:36:48.000] and I started it and it crashed. I’m [00:36:50.320] sure we can all relate to the story of [00:36:51.920] the AI saying the code is production [00:36:53.680] ready then crashing. This is a pretty [00:36:55.839] funny and innocent story, but I [00:36:57.760] personally don’t trust code that AI [00:36:59.599] generates without verifying it. And this [00:37:01.359] leads us nicely to our season sponsor, [00:37:03.200] Sonar. So, let’s look at some data. A [00:37:05.680] new report from Sonar, the state of code [00:37:07.680] developer survey report, found that 82% [00:37:10.400] of developers believe they can code [00:37:12.320] faster with AI. But here’s what’s [00:37:13.920] interesting. In the same survey, 96% of [00:37:16.640] developers said they do not highly trust [00:37:18.560] the accuracy of AI code. This checks out [00:37:21.280] for me as well. While I write the code [00:37:23.119] faster with AI agents, I don’t exactly [00:37:25.520] trust the code it produces. This really [00:37:27.839] becomes a problem at the code review [00:37:29.440] stage where all this AI generated code [00:37:31.680] must be regularly verified for security, [00:37:33.839] reliability, and maintainability. Sonar [00:37:36.000] cube is precisely built to solve this [00:37:37.520] code verification issue. Sonar has been [00:37:39.440] the leader in the automated code [00:37:40.720] analysis business for over 17 years, [00:37:42.880] analyzing 750 billion lines of code [00:37:45.520] daily. That’s over 8 million lines of [00:37:48.000] code per second. I actually first came [00:37:49.680] across Sonar 13 years ago in 2013 when I [00:37:52.480] was working at Microsoft Skype and a [00:37:54.560] bunch of teams already use Sonar Cube to [00:37:56.480] improve the quality of their code. I’ve [00:37:58.160] been a fan since. Sonar provides an [00:38:00.000] essential and independent verification [00:38:01.680] layer. It’s the automated guardrail that [00:38:03.760] analyzes all code whether it’s developer [00:38:06.400] or AI agent generated, ensuring it meets [00:38:09.040] your quality and security standards [00:38:10.800] before it ever reaches production. To [00:38:12.560] get started for free, head to [00:38:13.839] sonarsource.com/pragmatic. [00:38:16.240] With this, let’s get back to Peter and [00:38:18.400] how AI agents cannot exactly be trusted. [00:38:21.839] » Then I had then I added added an MCP so [00:38:24.320] it could use the browser. I think the [00:38:25.760] player with MCP was already there and it [00:38:27.599] looped a few more hours and then I had a [00:38:30.320] I had a Twitter login page and it it did [00:38:33.599] something. I It was not great, but it [00:38:36.720] did something. And to me to me this was [00:38:39.119] my holy mind-blowing moment. [00:38:42.160] » Yeah. [00:38:42.640] » This and this was like in April or May [00:38:44.400] this year, right? [00:38:45.200] » Yeah. It was it was it was just good [00:38:47.520] enough that I could see the potential [00:38:51.119] and I I understood it’s like [00:38:53.520] » yeah this is this is where it’s going [00:38:55.359] and and from that moment on I I had a [00:38:57.920] few months where I had really trouble [00:38:59.359] sleeping and I in [00:39:01.839] » I I remember because once on Twitter I [00:39:05.119] sent you a direct message. I was up [00:39:06.720] early for valid reasons, you know, my my [00:39:08.880] kids or something like that. But it was [00:39:11.040] 5:00 a.m. and I I sent you a message on [00:39:13.920] Twitter and you replied immediately. And [00:39:15.760] I was like, “Why are you up?” And he’s [00:39:17.280] like, “Oh, this is usual. Like I I [00:39:19.280] usually I’m still usually awake.” And [00:39:21.040] and I asked like, “Why?” And you said [00:39:22.320] like, “Oh, I’m I’m just like using [00:39:23.680] Claude and it’s really really [00:39:24.880] addictive.” And I was like, “Really?” [00:39:27.200] And you’re like, “Yeah, I’m not joking. [00:39:29.280] Like it’s really good.” And I think that [00:39:31.040] was the thing. You said something or [00:39:32.560] wrote something like just one more [00:39:34.400] prompt. like you told me how like what [00:39:37.040] what made it so addictive or or what [00:39:39.359] what still makes it so addictive? [00:39:40.960] » Oh, it’s the same economics as as you go [00:39:42.800] to a casino. That’s that’s it’s my [00:39:44.960] little slot machines, you know? You you [00:39:47.359] you press the trigger and ding ding ding [00:39:49.520] ding ding and it’s like nope. you you [00:39:51.599] type in the prompt and it it will like [00:39:54.240] and it does it does crap or it does [00:39:57.200] something that actually blows your mind [00:39:59.040] and it’s this [00:40:00.480] » and and you’re saying it it blows your [00:40:01.839] mind as like you’re a really experienced [00:40:03.359] developer like it’s it’s not easy to [00:40:04.960] blow your mind, right? Like you you [00:40:06.640] you’ve seen good code you can [00:40:08.800] differentiate like crap code, decent [00:40:11.040] code, good enough code like you have a [00:40:12.560] bar, right? It’s so funny, you know, in [00:40:15.440] my company, I used to obsess over every [00:40:18.880] detail, every spacing, every new line, [00:40:23.280] the naming. I spend so much time bike [00:40:26.720] shedding. And in retrospect, I’m like, [00:40:29.680] what the heck? Why did I do that? Like, [00:40:31.599] what’s the point that the customer [00:40:34.480] doesn’t see the insights of of course [00:40:36.880] like it has to meet certain certain [00:40:38.320] standards. It has to work. It has to be [00:40:39.920] fast. It should be secure, but like how [00:40:44.480] much did that bike there is like [00:40:46.880] stupid. [00:40:47.680] » You say that, but then you also just [00:40:49.680] said that people loved PSPDF kit because [00:40:53.359] it was the most polished. It worked the [00:40:55.040] best. Do you not think that that that [00:40:56.960] amount of caring bike shedding as you [00:40:59.040] call it? Being obsessed. It sound like [00:41:01.200] you were keeping tech depth at bay, you [00:41:03.200] know, like being obsessed with white [00:41:04.400] spaces is is not going to be messy. And [00:41:06.400] we know it’s not just the white spaces. [00:41:08.079] we know you’re going to care about [00:41:09.119] testing and all that. Like it sounds to [00:41:11.200] me that PSPDF kit like you know like [00:41:13.520] what I see is you were not just building [00:41:16.400] a product that was great UX but you [00:41:18.880] built something that had a really good [00:41:21.280] hygiene and that’s how it could be high [00:41:23.040] performance and all that is how do you [00:41:24.720] think about it? [00:41:25.359] » Yeah. Yeah. Yeah. To a degree. Yes. And [00:41:27.760] and even now like I I I mean like my my [00:41:32.319] last blog post was a confession that I I [00:41:35.680] ship code on read and [00:41:37.520] » yeah we have to talk about that [00:41:40.163] [laughter] [00:41:40.560] » and at the same time I spent so much [00:41:44.640] time to like restructuring [00:41:47.680] I mean I mean like even even today like [00:41:49.440] I I really wanted to get this PR in [00:41:52.720] where it was like 15,000 line change [00:41:55.280] where in my I moved everything over to a [00:41:57.839] plug-in architecture where I was so [00:41:59.359] excited about and I care a lot about the [00:42:01.440] structure. Did I read all the code? No, [00:42:04.000] because a lot of code really is just [00:42:05.760] boring plumbing. Well, what are most [00:42:07.680] apps? Like data comes in from an API in [00:42:11.040] one form. You like you parse it, you [00:42:14.160] package into a different form. Hey, you [00:42:16.160] store it into database and it’s a [00:42:18.319] different form. It comes out again into [00:42:19.760] a different form. Then it’s like HTML or [00:42:21.839] whatever. And you type in something it’s [00:42:24.240] a different form again. And all you do [00:42:26.079] is like you’re massaging data in [00:42:28.319] different forms throughout your app. [00:42:30.400] This is what most apps are. We are [00:42:31.760] pretty chasing printers. And the and the [00:42:33.839] the really the hard part is solved by [00:42:36.319] Postgress 30 years ago by some neck [00:42:38.720] birds. Uh that’s that’s really what a [00:42:41.599] lot of software is like. There’s always [00:42:43.440] some interesting parts, but I don’t have [00:42:45.599] to care how this button is aligned or [00:42:47.280] which tailwind class is used or or like [00:42:51.280] many details are boring and many other [00:42:52.960] details are interesting. But it I think [00:42:54.640] it’s much more about system architecture [00:42:56.400] than having to read every single line. [00:42:59.359] » Right now jumping forward, what is your [00:43:01.200] workflow like? Like like when you’re [00:43:02.960] working on on cloud bot, are you using a [00:43:06.800] terminal, multiple terminals, which [00:43:09.200] which tools and and how are you you know [00:43:11.200] like you said you’re not you’re kind of [00:43:13.040] like not reviewing the the code, but [00:43:14.880] you’re still thinking about [00:43:15.520] architecture. Like what does your [00:43:16.800] average day look like in terms of [00:43:18.079] tooling? You know, you have to explain [00:43:19.280] to a developer who might join the team. [00:43:21.359] you know, at at one point you didn’t get [00:43:23.440] like what does it look like? [00:43:24.560] » It’s interesting. Let’s let’s let’s go a [00:43:26.240] little bit. We were we were in in in [00:43:28.880] April with Cloud Code and then I got [00:43:31.280] really hooked and then I did some I had [00:43:33.359] a phase where I did cursor and then I [00:43:38.160] did I I used Gemini 2.5 a bit. Then we [00:43:41.760] had this phase with Opus 4. I hooked up [00:43:45.359] a lot of my friends like I know I know [00:43:47.280] both Armen and and Mario from Vinner. [00:43:49.920] They got they got AI pill because I I [00:43:53.760] was addictive. You know, my my enem was [00:43:56.160] like confusing them [clears throat] and [00:43:58.000] then they tried it out and then and then [00:43:59.680] eventually they also were up at 5:00 [00:44:00.960] a.m. and I called it like the black eye [00:44:02.640] club. [gasps] I mean, there’s a reason [00:44:04.800] like I I I I started a meet up in London [00:44:06.640] that I called called uh Cloud Code [00:44:08.720] Anonymous because because it’s it’s a [00:44:11.040] little bit like a drug because it’s so [00:44:13.920] it’s so much fun. Like to to me what [00:44:16.640] what what blew my mind so much was this [00:44:19.599] realization that I can build everything [00:44:22.960] now. Before you had to really pick which [00:44:25.440] side project you build because software [00:44:27.440] is hard. Yeah, it’s still hard. But now [00:44:30.480] like I I am this this friction that I [00:44:32.960] talked about where I’m so good at this [00:44:35.440] at this technology and I’m like so bad [00:44:37.440] at this and I’m like oh let’s make the [00:44:39.680] CLI in Go. I have no clue about Go. But [00:44:42.640] I have I have a good system [00:44:44.880] understanding and once you have that is [00:44:48.000] like you you develop a feeling what’s [00:44:50.400] right what’s wrong like it’s it it is a [00:44:52.720] skill in itself. I remember there was [00:44:54.319] this tweet where someone said, “Oh, when [00:44:56.400] you write the code, you you feel the [00:44:59.200] friction and that’s why that’s how you [00:45:01.040] make good architecture.” I feel the same [00:45:02.640] friction when I prompt because I I see [00:45:05.119] the code flying by. I see how long it [00:45:07.599] takes. I see if like the agent pushes [00:45:09.680] back. Um I see if what it creates looks [00:45:13.839] like messy or like makes sense. When I [00:45:16.160] prompt, I I have a hint already how long [00:45:18.079] it’s going to take. If it takes much [00:45:19.359] longer, I understand that I messed up [00:45:21.040] somewhere. [00:45:21.440] » You kind of feel the model. you you know [00:45:23.520] you know [00:45:24.000] » yeah usually it’s like this or if it [00:45:26.560] runs [00:45:26.880] » I I feel it’s very much a symbiosis like [00:45:28.800] I I learn to to talk [00:45:32.079] » may I even say dare or that language [00:45:34.319] more so it’s like my my knowledge how to [00:45:37.200] use those things improved and also the [00:45:39.280] models improved and then and then like [00:45:41.280] over the time between between April and [00:45:44.400] now I would say yeah the inflection [00:45:46.800] point was summer where it just got so [00:45:49.440] good that you could you create software [00:45:52.000] without actually writing code by hand. [00:45:54.160] But the real that change that like sold [00:45:57.680] it for me is was [00:46:01.040] again GBD 5.2 that was again I think [00:46:04.640] it’s underrated. I don’t know I don’t [00:46:06.480] know why why all these people still use [00:46:09.040] cloud code. I I I kind of get it. It’s [00:46:11.359] it’s a different way of working but [00:46:14.800] whatever OpenAI cook there is insanely [00:46:18.000] good. pretty much every prompt I type [00:46:21.280] gives me the result I want which is [00:46:24.800] insane like like on on on cloudbot the [00:46:28.160] my latest product I use [00:46:31.760] between five and 10 agents in parallel [00:46:34.160] if you’re very much cloud code build you [00:46:37.520] have to forget quite a lot of the [00:46:42.079] the silliness that the things that you [00:46:44.079] have to do to create good output with [00:46:46.480] cloud code I mean I also met that team [00:46:48.800] and and they created a whole new [00:46:51.920] category. Like cloud code is is is a [00:46:54.960] category defining product and it is [00:46:56.800] amazing for general purpose computer [00:46:58.400] work and it is is really good for coding [00:47:00.720] and I I I I still use it almost every [00:47:03.280] day. But for writing code in complex [00:47:07.440] applications, Codex is just so much [00:47:09.200] better because it it it takes 10 times [00:47:11.920] longer. um Claude would [00:47:15.440] read three files and then be confident [00:47:17.520] enough to just like create code and then [00:47:20.000] you really have to steer it and push it [00:47:22.079] so it reads more code so it gets it sees [00:47:24.560] a bigger picture of your codebase so [00:47:27.040] that it it it weaves in new features [00:47:29.280] better and Codex will just like be [00:47:32.560] silent and just read files for 10 [00:47:34.400] minutes and if you if you only work on [00:47:36.720] one terminal I completely understand how [00:47:38.560] you how you find this unbearable [00:47:41.200] But I rather have something where it’s [00:47:44.480] also you don’t tell it what to do. You [00:47:45.920] know this is this is also something that [00:47:47.440] people don’t get like I have a [00:47:49.760] conversation with the model. It’s like [00:47:52.319] oh let’s look at this what what what [00:47:54.480] what options do we have for this [00:47:56.800] structure? Did you consider this [00:47:58.640] feature? It’s like because every every [00:48:00.880] session is like the model starts from [00:48:03.280] having no understanding about your [00:48:04.640] product and you have and and sometimes [00:48:07.119] you have to just give it a little bit of [00:48:08.319] pointers. What about this and this? So [00:48:10.560] it explores different directions and you [00:48:13.119] don’t need plan mode like I’m just [00:48:14.720] having a conversation until I say build [00:48:16.720] this it will not build this. There’s [00:48:19.280] some trigger words because it it is they [00:48:21.520] all are a little trigger hungry but as [00:48:23.520] soon as I say let’s discuss or give me [00:48:25.359] options they will not build things until [00:48:27.599] I say build. [00:48:29.119] » So so a lot of a lot would you say a lot [00:48:31.280] of your prompting or a good part of it [00:48:33.200] is this conversation where you are [00:48:35.839] pretty much planning together with the [00:48:38.079] agent. [00:48:38.720] » Yeah. It’s like what about like I say [00:48:40.480] okay then you remind them it’s like okay [00:48:42.319] we need documentation what would be a [00:48:43.680] good spot it would like give me some [00:48:44.960] recommendations I say no this should [00:48:47.200] really be its own page do we need a [00:48:48.720] configuration how how does this fit into [00:48:50.400] this other feature it’s like I am [00:48:52.800] designing the system because I have this [00:48:55.040] I have this system understanding about [00:48:56.720] how how is my my product how are the [00:48:59.680] shapes looking I don’t have a line by [00:49:02.960] line code understanding that’s that’s [00:49:04.640] what Codex does for me but I’m the [00:49:07.040] architect you [00:49:08.800] It sounds a little bit like you’re [00:49:11.680] almost, you know, for [00:49:15.040] years back this this totally came got [00:49:18.319] out of style. But there was this idea [00:49:20.000] that you would have the architect with a [00:49:22.160] capital A who used to be a software [00:49:24.640] developer, but they’re not hands-on [00:49:26.319] anymore because they spend a lot of time [00:49:28.319] understanding the business and they have [00:49:29.760] these developers working underneath [00:49:31.839] them. And some companies still kind of [00:49:33.520] work a little bit like this, but most [00:49:34.800] modern companies don’t. But some banks, [00:49:36.640] etc. I met people there who are capital [00:49:38.880] architects. They do the system plan. [00:49:41.440] They talk with fellow architects. They [00:49:43.280] have the blueprint and then they [00:49:44.720] literally pass it down to the team and [00:49:46.400] everyone hates this model obviously [00:49:47.760] because you know again like I I think as [00:49:50.319] people you kind of want more. The [00:49:51.760] architect is never on call for for this [00:49:53.599] stuff and so it just kind of breaks down [00:49:55.520] in practice and a lot of large companies [00:49:57.520] just move to the staff engineer model [00:49:58.880] where you’re kind of all working [00:50:00.480] together. Of course, there’s people who [00:50:01.839] make who might have more input, but [00:50:03.760] sounds like it’s almost like this world [00:50:05.359] where you are the architect who kind of, [00:50:07.839] you know, you have your little agents [00:50:10.000] who who do the code, except in this [00:50:12.240] case, you are of course fully [00:50:13.680] responsible because you’re still an [00:50:14.880] individual contributor. You’re not [00:50:16.160] you’re not like a okay, you might say [00:50:17.599] you’re a manager of agents or whatnot, [00:50:18.960] but the code is is yours. It’s your [00:50:20.800] responsibility. You’re going to be on [00:50:22.160] call. If you know, if you push out code [00:50:24.240] that takes down CloudBot, which it did [00:50:26.640] just recently, you’re on the hook for [00:50:28.480] it, right? like and I think the the [00:50:30.800] difference in this system when when it [00:50:32.559] was in companies it was the architect [00:50:35.920] was kind of shielded from the output of [00:50:38.319] their work because there’s so much [00:50:39.599] people and so much process etc. Well, I [00:50:42.000] wouldn’t say architecture. I I like the [00:50:43.520] word builder. [00:50:44.480] » Builder. Yeah. [00:50:45.119] » And and and I think also that’s there’s [00:50:47.520] a few categories that I see for people [00:50:50.880] that are highly successful using using [00:50:52.720] AI and people who really struggle. [00:50:55.040] » I care more about the outcome, the [00:50:57.040] product. I very much care about how it [00:50:59.280] feels and everything, but how the [00:51:02.079] plumbing works underneath. [00:51:04.079] » I care structurally, but you know, not [00:51:06.000] to the not the biggest detail. And then [00:51:07.920] there are people who really love to to [00:51:10.880] code on hard problems like think about [00:51:12.880] algorithms don’t really like the I’m [00:51:15.920] building a product with like all the [00:51:17.520] marketing all the they they more like [00:51:19.599] they like to solve hard problems and [00:51:21.119] those are the people who really struggle [00:51:22.880] and and and often reject AI or get [00:51:25.520] really sad because that’s exactly the [00:51:27.520] job where that AI does like it solves [00:51:30.880] the hard problems. Now sometimes I give [00:51:32.640] it some pointers but many times I [00:51:34.880] learned I learned more this year than [00:51:37.520] last five years around around software [00:51:40.000] architecture and designing. I the [00:51:42.160] there’s so much inside those monsters um [00:51:46.480] on knowledge and everything is just a [00:51:49.119] question away but you have to know what [00:51:50.960] question to ask. Of course I also built [00:51:52.800] this Twitter thing and it’s still not [00:51:54.079] done and I and I I really hope I I’ll [00:51:55.839] get back to it at one one time. [00:51:57.680] everything worked but if I used it more [00:51:59.520] at some point things got really laggy [00:52:01.680] and weird and then it worked again and I [00:52:03.760] just couldn’t figure it out and it was [00:52:05.599] like really difficult to debug because [00:52:07.119] it was not easy to reproduce. It was [00:52:08.800] just like you use it more and things get [00:52:10.400] really slow. I basically had like [00:52:12.000] software in in in in Psql like in [00:52:14.880] Postgress that would be triggered when [00:52:16.880] certain inserts were were doing and then [00:52:18.640] the database would would get really busy [00:52:21.440] and the model couldn’t see it because it [00:52:23.280] was it was it was so far abstracted from [00:52:27.119] all the you know like those those models [00:52:29.440] are really good at tracing through but [00:52:31.599] this was a side effect that was so hard [00:52:33.520] to see because it was only in this one [00:52:36.160] file [00:52:37.839] a function that had no connection to [00:52:39.599] anything else. um with a name that was [00:52:42.000] not easy grabbable. I just never asked [00:52:44.319] the right question until I was like do [00:52:46.079] we have any side effects for this and [00:52:47.520] this and I found it and I fixed it and [00:52:49.200] it’s like but I everything is just the [00:52:52.079] right question away. [00:52:53.200] » Yeah. But you you need to have like [00:52:55.119] knowledge, expertise. [00:52:56.480] » Yeah. You experience [00:52:58.160] » you you I mean so so so these are the [00:53:01.280] people who rejected and then the people [00:53:02.480] who who care a bit less about how it’s [00:53:05.440] being plumbed internally but are just [00:53:06.960] excited to build things. They’re really [00:53:08.640] successful. And one thing that also [00:53:10.480] helped me is, you know, when you run a [00:53:12.240] company and then you hire people, you [00:53:15.200] can’t breathe on everyone’s neck and [00:53:17.520] like make them have the line of code [00:53:19.839] exactly that way. And there’s a lot of [00:53:21.839] people who who didn’t manage a team, [00:53:23.839] they didn’t had this experience how to [00:53:26.640] how to relax a little bit and understand [00:53:28.400] that yes, this maybe is not exactly that [00:53:30.559] code that I want, but it will get me [00:53:33.680] closer to my goal. And for anything that [00:53:37.280] is like [00:53:39.119] not perfect, we can always make it [00:53:41.280] better and like put more time into it. I [00:53:42.960] very much believe into this iterative [00:53:44.960] improvement. I had to learn to let go a [00:53:46.960] little bit at my company. So, so, so [00:53:48.960] then when I when I had cloud code, it [00:53:50.800] kind of felt like I have like I have [00:53:52.640] like imperfect, sometimes silly, but [00:53:54.400] sometimes very brilliant engineers that [00:53:56.640] I have to steer and where we where we [00:53:59.440] work together on a common goal. It felt [00:54:02.640] a lot like being the boss again. [00:54:04.800] » Yeah. And and interesting now you know [00:54:06.559] you you built kind of software I guess [00:54:08.640] the traditional way you know pre AI for [00:54:11.680] 15 years or even more than 15 years and [00:54:14.480] you got really good at being also [00:54:16.319] leading a team and then how to have high [00:54:18.400] standards. You really cared about the [00:54:20.000] the craft there as well. You’ve now kind [00:54:22.079] of been I guess vibe coding or working [00:54:23.839] with agents for a year. You’re comparing [00:54:25.520] the two. What do you think? What do you [00:54:27.440] think really really changed? And what do [00:54:29.280] you think are things that kind of stayed [00:54:30.880] the same despite all [00:54:32.160] » First of all, I don’t like I don’t like [00:54:33.760] the term VIP code. [00:54:34.720] » All right. How should we call it? [00:54:35.920] » I I think I think I think VIP coding is [00:54:38.079] by now almost a I I call it I tell [00:54:41.200] people I do what I do is agending [00:54:42.720] engineering with a little star. VIP [00:54:44.720] coding starts at 3:00 a.m. [00:54:46.480] » Now like because all the the mundane [00:54:49.599] stuff of writing code is automated away, [00:54:52.240] I can move so much faster. But also [00:54:54.079] means like I have to sing so much more. [00:54:56.880] I’m still very much in the flow. Like it [00:54:59.040] is it is completely the same feeling as [00:55:01.200] for me as as I I very much get in this [00:55:03.440] flow state but it is mentally even more [00:55:06.480] taxing because I have I don’t have one [00:55:09.119] employee that I manage. I have like five [00:55:10.800] or 10 that all work on things and I [00:55:12.640] switch from this one part to this other [00:55:13.920] part to this other part to this other [00:55:15.119] part. mostly because of I’m designing [00:55:18.079] this new subsystem or like this feature [00:55:19.839] and then I know that it will probably [00:55:21.040] take Codex like 40 minutes or or one [00:55:23.760] hour to build. So like I want to like [00:55:26.319] have the plan right and then I build it [00:55:28.240] and then I’ll I’ll move on to something [00:55:30.400] else but then this is cooking and then I [00:55:32.240] work on this and then this is cooking [00:55:33.440] and then this is cooking and then at [00:55:34.800] some point this is cooking and then this [00:55:36.480] is cooking and then I go back to this [00:55:37.760] one. So like I I I I switch around a lot [00:55:41.839] in my head. I wish I wouldn’t have to do [00:55:44.000] that. Like I’m sure this is a [00:55:45.920] transitionary problem and at some point [00:55:47.760] we have we have models and and systems [00:55:50.079] that are so fast that that I can [00:55:52.480] paralyze a little less. But to stay in [00:55:55.440] the float flow state I need to massively [00:55:57.680] parallelize. So that that’s that’s how [00:55:59.280] it work. I go back to there and and [00:56:02.480] maybe tweak it a little bit more. But [00:56:03.839] usually just like try it out and maybe [00:56:07.280] then this is ready because this only [00:56:08.880] took like 20 minutes. So like I [00:56:10.880] constantly jump around. Usually there’s [00:56:13.280] there’s one main project that has my [00:56:15.280] focus and I have like some satellite [00:56:16.720] projects that also need attention but [00:56:19.920] where I can make maybe I spend 5 minutes [00:56:21.760] it does something for half an hour and [00:56:23.359] and and I try it and it doesn’t need uh [00:56:26.079] so much capacity up there. [00:56:27.680] » This almost sounds you know like two [00:56:29.040] things come to mind. One is there’s [00:56:30.400] these like games where you have to [00:56:32.960] manage a kitchen with the employee and [00:56:34.720] and you see like the recipes or [00:56:36.480] something come out and you need to jump [00:56:37.760] and do it again. [00:56:38.559] » It’s like Starcraft, you know, you have [00:56:40.079] like your main base and you have like [00:56:41.359] your side bases. They give you [00:56:42.480] resources. [00:56:43.119] » That as well. And also one thing that [00:56:44.480] just came to mind as you said like I go [00:56:46.000] there and I watch this and I make a [00:56:47.520] decision is when I see the chess grand [00:56:49.599] masters play multiple boards at once. [00:56:52.160] You see see sometimes they 20 boards and [00:56:54.240] they always all you they go there they [00:56:55.839] kind of you can see that they just like [00:56:57.680] see what’s on that board. they make a [00:57:00.000] decision and for some boards they stop [00:57:02.160] for longer I guess better players or [00:57:04.079] better opponents. It feels, you know, [00:57:05.680] both they’re occupying 100% of of their [00:57:07.680] brain. You’re occupying your bay and [00:57:09.280] you’re you’re kind of scaling yourself [00:57:11.040] as long as you can context switch. The [00:57:13.680] difference the difference was up until [00:57:16.000] with with cloud code I you have to work [00:57:18.079] a little different because it is much [00:57:20.160] faster but then the output often doesn’t [00:57:23.280] work on the first try. So like it makes [00:57:25.760] something but then it forgot to update [00:57:27.599] three other things. it crashes or you [00:57:29.760] give it [00:57:31.760] the good thing how to be effective with [00:57:33.680] coding agent is always like you have to [00:57:35.119] close the loop. It needs to be able to [00:57:37.760] debug and test itself. That’s the big [00:57:40.240] secret. Um that’s also something I I [00:57:44.880] think that’s part of why it got so much [00:57:46.160] more effective. Um but yeah, with with [00:57:48.559] with clock code you I often had to go [00:57:50.240] back and like fix up the stuff [00:57:53.440] um or it just takes a lot of iterations. [00:57:55.680] So in the end it’s not that much faster. [00:57:58.960] It’s just more interactive. [00:58:01.200] And and these days with Cordex it just [00:58:04.799] almost always gets it right. My my [00:58:06.880] general strategy is always I I build a [00:58:08.799] feature of course you and and of course [00:58:10.880] you always let it write tests and you [00:58:13.680] make sure that it runs it. [00:58:15.359] » It runs them. Yes. [00:58:17.200] So even even when I write a MAC app, I [00:58:19.920] don’t know like I I just yesterday I [00:58:21.839] debuged this feature where [00:58:24.240] the MAC app couldn’t find a a remote [00:58:26.319] gateway but like the the same code in [00:58:29.359] Typescript could but makeup is kind of [00:58:32.720] annoying to debug because like it builds [00:58:35.359] it you have to start it you have to look [00:58:36.880] at it you have to like say no this is [00:58:38.319] not working. So now I just said it like [00:58:41.040] you know you’re going to build a CLI [00:58:42.319] just for debugging that invokes all the [00:58:44.480] same code path that you can call [00:58:45.839] yourself and then you just iterate and [00:58:48.000] you fix it yourself and then it will [00:58:49.920] just cook and it just cooked for an hour [00:58:51.359] and it was done and it told me like [00:58:52.720] there was a race condition here and here [00:58:53.920] and like a misconfiguration blah blah [00:58:55.839] blah and like yeah it sounds sensible. I [00:58:57.760] don’t need to I don’t need to see that [00:58:58.880] code. It’s like but but you don’t need [00:59:00.480] to see it because you set up the [00:59:02.720] validation loops and you trust that [00:59:04.880] because it ran it. I mean this is I [00:59:07.119] guess I guess it’s not too dissimilar to [00:59:08.640] like sometimes when you work on a large [00:59:10.000] project in a large company when all the [00:59:11.920] tests pass I mean it doesn’t mean 100% [00:59:14.400] it’s there but it’s it’s a pretty good [00:59:16.319] and and all the new new code has test as [00:59:18.960] well you know someone thought about it [00:59:20.240] and tested it and and all that. So even [00:59:22.000] even on my on the very latest project we [00:59:25.359] always had bugs [00:59:28.319] but like anti-gravity has like a certain [00:59:30.640] a certain weirdness with how it takes [00:59:33.440] tool calls in the loop in the in the [00:59:34.960] format. So you have to do like some [00:59:36.160] filtering. [00:59:36.799] » Yeah. [00:59:37.839] » And that broke a bunch. And it actually [00:59:39.520] took me way too long to realize like [00:59:41.520] what am I doing here? I just need to [00:59:42.960] automate this. So I was just going to [00:59:44.960] codeex. like design life tests that spin [00:59:49.280] up a Docker container, install the whole [00:59:51.599] thing, spin up a loop, use my API keys [00:59:54.079] from this and this file [00:59:56.400] and then you tell the model to [01:00:00.160] read an image, create an image before [01:00:03.839] and then look into the image and see [01:00:05.280] what it sees. So I I don’t not just tell [01:00:07.040] the loop, I still tell tool calling, [01:00:09.200] make it work [01:00:11.280] and then it solved itself. It took [01:00:12.640] forever, but it it it it tested all my [01:00:14.799] API keys like from from Entropic over [01:00:17.280] SEI over GLM like everything and it [01:00:19.440] fixed all those little indicies where [01:00:21.440] where sometimes the tool calling didn’t [01:00:23.200] work or the ordering was wrong because I [01:00:25.200] closed the loop and and that’s that’s [01:00:28.240] » and closing the loop you mean just have [01:00:30.400] a way to to have have the agent be able [01:00:32.799] to validate its work? [01:00:33.760] » Yeah, that’s why that’s the whole reason [01:00:35.520] why why those models that we currently [01:00:38.079] have are so good at coding. But like [01:00:41.280] sometimes mediocre good at writing [01:00:43.760] creative because there’s no easy way to [01:00:45.760] validate right but code I can compile I [01:00:49.119] can lint I can execute I can verify the [01:00:52.559] output if you design it the right way [01:00:54.000] you have a perfect loop like even now [01:00:55.760] even now for for websites I built the [01:00:58.000] core in a way that can be run via a CLI [01:01:01.119] so it’s like I have this I have this [01:01:03.119] perfect uh execution loop because the [01:01:05.200] the browser loop is insanely slow you [01:01:07.200] want something that that loops fast. So [01:01:09.760] it sounds like one thing that is not [01:01:11.359] really changing from like before is we [01:01:13.599] had this before like backend or business [01:01:15.440] logic heavy he heavy thing could easily [01:01:17.920] be or more easily be verified that it’s [01:01:20.000] correct. [01:01:20.559] » Surprise actually using aentic coding [01:01:22.720] makes you a better coder because you [01:01:24.160] have to have to think harder about your [01:01:26.319] your your architecture so that it’s [01:01:28.480] easier verifiable because verifying is [01:01:30.559] the way how to make things good. Well, [01:01:32.480] then remember back back even before AI [01:01:35.119] for complex systems like once you got [01:01:37.760] someone who built these things before [01:01:39.040] what they started with how do we make it [01:01:40.799] testable right like you you need to [01:01:42.640] design interfaces classes testable you [01:01:44.880] need to think about like am I going to [01:01:46.640] fake things will I use mocks will I use [01:01:49.359] end toend testing which will be long etc [01:01:52.240] but these are like really hard [01:01:53.359] architectural decisions and once you [01:01:54.720] make them they’re I guess harder to [01:01:56.400] change in your in your word you know [01:01:58.160] like the model would cook a lot longer [01:02:00.160] if you asked it to make a massive [01:02:01.599] refactor acture and you know if you have [01:02:04.079] test it’ll get it right but you know now [01:02:06.160] these we we still have these trade-offs [01:02:07.920] » yeah it’s still it’s still software it’s [01:02:09.920] it’s I I would say I write better code [01:02:12.880] now that I don’t write code myself [01:02:14.720] anymore and I wrote really good code but [01:02:16.880] but like even back at the company [01:02:19.520] sometimes testing was so tedious and you [01:02:22.160] come up with all those edge cases and [01:02:24.160] and and the branching [01:02:25.680] » I mean outside of Ken Debbec who I [01:02:27.680] deeply respect and he was on the podcast [01:02:29.920] and we We we we talk like he he still [01:02:34.079] writes test first and he tells me that [01:02:36.400] he’s not mad at me for not writing it [01:02:38.160] but if you want to write like you know [01:02:39.440] poor quality code it’s on you. Uh but I [01:02:41.839] don’t know many developers myself [01:02:43.440] included I never liked writing tests and [01:02:45.760] even even when I pretended that I did I [01:02:47.599] I just never did. It’s a little bit like [01:02:49.040] writing documentation and writing tests [01:02:50.960] to me it was never a creative [01:02:53.280] expression. It is so good now like I I [01:02:56.319] would say for my last project I have [01:02:57.839] really good documentation and I didn’t [01:02:59.839] write a single line myself like no I [01:03:03.200] don’t write the test I don’t write [01:03:04.319] documentation I explain the model the [01:03:07.119] trade-off so like why we did something [01:03:08.640] like this and then tell it like like [01:03:10.640] write that write the entrance section [01:03:12.559] beginner friendly and then add more [01:03:13.760] technical detail at the end and it is so [01:03:16.319] good I never had a project with that [01:03:18.400] good documentation just by every time I [01:03:21.440] design a feature this is a part of this [01:03:23.280] a part of the process And also like [01:03:24.559] testing I was like okay we built this [01:03:27.200] how are we going to test this? Yeah we [01:03:28.799] could do this and this and this. What if [01:03:30.480] we build it this way and oh yeah then we [01:03:32.400] can test it better. So it’s like this is [01:03:34.079] now part of my singing because I I [01:03:35.839] always think like how do I close the [01:03:37.119] loop? How do I the model always needs to [01:03:39.760] be able to verify the work itself [01:03:43.200] um which automatically steers me to [01:03:45.039] better architecture. So why do you think [01:03:47.920] there’s, you know, a bunch of like [01:03:50.160] experienced devs who are still pushing [01:03:52.640] quite a bit back on on just like the [01:03:54.880] idea that AI can do a lot of this? [01:03:57.599] » That was a week ago. I I stumbled over a [01:04:01.119] a blog post by Nala Coco with love that [01:04:05.119] I deeply respect and learned a lot from. [01:04:08.400] And this blog post was just was a [01:04:11.440] dissing of the current way how models [01:04:14.079] work. And and what he did was he he [01:04:18.400] tested like five or six models including [01:04:20.160] some that make no sense like the the [01:04:22.400] Open EI 120 billion open- source one [01:04:25.760] that is not good enough to write good [01:04:27.760] code you know it’s like and he just he [01:04:31.680] he wrote a prompt as far as I understand [01:04:34.240] it there was there was not a lot of [01:04:35.440] information on the website but to me it [01:04:37.359] sounded like he wrote a prompt he put it [01:04:39.039] on claude web and and he pressed send [01:04:44.480] and And then he took the output and ran [01:04:46.559] it and it didn’t compile and he was [01:04:48.559] disappointed. But he’s like, “Of course [01:04:50.559] it will not work. Do you think I can [01:04:52.400] write buck-free code on the first [01:04:54.400] attempt?” And those little those [01:04:58.000] models are ghosts of our collective [01:05:01.039] human knowledge. They work very similar [01:05:03.920] in many ways. Of course, you don’t get [01:05:05.839] it right the first time. Like there will [01:05:07.599] be mistakes. That’s why you have to [01:05:09.359] close the feedback loop. And also you [01:05:11.599] don’t just send a prompt to the model, [01:05:14.880] you start a conversation. Hey, this is [01:05:16.720] what I want to build. It’s like you he [01:05:19.359] complained that it used old API. Yeah, [01:05:21.200] you didn’t specify the Mac OS version. [01:05:23.440] So it so so it made an assumption to [01:05:25.200] default to like old API because that [01:05:27.039] information was missing and it is it is [01:05:29.520] trained on a lot of data, not just the [01:05:31.280] last two years and there’s just more old [01:05:33.359] data than new data. So this is like the [01:05:36.240] more you understand how those little [01:05:37.920] beasts think, the the better you get at [01:05:41.680] prompting. Um and then and then and then [01:05:44.960] he he spent maybe I don’t know a day or [01:05:48.559] so on on playing with it and then just [01:05:51.280] decided that this technology is still [01:05:53.039] not really good. But to be effective you [01:05:57.440] have to spend significantly more time. [01:05:59.680] You know, it’s it’s like it’s like you [01:06:01.680] know how to play guitar and I put you on [01:06:03.280] the piano and you tried a bit. It’s [01:06:04.799] like, “Oh, this sucks. I go back to my [01:06:06.319] guitar.” No. No. It’s like it’s it’s a [01:06:09.200] different way of building. It’s a [01:06:10.480] different way of thinking. You have no [01:06:12.559] idea how often I screamed at like 3:00 [01:06:15.119] a.m. to cloud code because it did [01:06:17.440] something silly. I slowly started to [01:06:20.160] understand why those things do what they [01:06:22.960] do with like exactly the way I tell it [01:06:25.280] to do things. And sometimes you can [01:06:27.680] literally ask you can even even last [01:06:30.319] year like I for this project I the last [01:06:33.200] project like clotboard I feel like a [01:06:34.480] human merge button because the community [01:06:36.000] is like blowing off and all I do is like [01:06:37.920] reviewing PRs. I I I I have very little [01:06:40.160] time to actually write code myself [01:06:41.359] anymore. [01:06:42.400] » And in the beginning it would often like [01:06:44.559] just cherrypick things and would close [01:06:46.079] the PR and I was like so annoyed. So was [01:06:47.839] I’m like why are you doing this? Yeah. [01:06:50.400] When you say this and this I interpret [01:06:51.839] this this and this. It was like ah like [01:06:55.599] I I learned the language of the machine [01:06:58.240] a little bit more. I tweaked my my [01:07:00.640] prompting and now I get exactly what I [01:07:02.319] want because it’s it’s a skill like any [01:07:05.440] other skill. [01:07:06.160] » Yeah. And this is like Simon Wilson has [01:07:08.160] been saying the same thing even though [01:07:09.119] he’s been using it for for years and I [01:07:10.880] think everyone I think once I start to [01:07:12.799] use it I also realize like I’m not I’m [01:07:14.880] okay at it but I I I I could do better. [01:07:17.359] What if we put this to a real test? cuz [01:07:19.359] I think it’s fair to say that right now [01:07:21.280] you’re building CloudBot which is a you [01:07:23.760] know it’s not something that generates [01:07:25.440] revenue there’s a lot of users and it’s [01:07:26.960] blowing up and it’s it’s a really cool [01:07:28.960] tool but it’s not PSPDF kit which is a [01:07:31.839] business that it’s a lot of revenue is [01:07:33.839] hinging over it if today you know we [01:07:37.039] just wiped PSPF kit does not exist you [01:07:39.599] need to rebuild PSPDF kit you now have [01:07:42.079] these agents how differently would it [01:07:44.720] look how much would you trust it what [01:07:46.799] would you delegate what you would you [01:07:48.319] validate and and when you know you built [01:07:50.400] up a team around it because now it’s a [01:07:52.240] profitable business at the very least [01:07:53.440] you need to hire sales people whatot how [01:07:55.440] do you think the team would look [01:07:56.559] different today with that same product [01:07:58.079] cuz you you know exactly what it took to [01:07:59.920] build it and you also know what these [01:08:01.680] tools can do today [01:08:02.720] » I could easily run a company with [01:08:05.920] 30% of the people it would probably be [01:08:09.359] quite difficult to find people [01:08:12.079] on that level but you you you want you [01:08:15.520] want to have really senior engineers [01:08:17.359] that really understand what they build [01:08:20.880] but that are also comfortable in in in [01:08:23.120] delegating and know which parts are [01:08:26.000] actually important to to work on and [01:08:28.480] which parts [01:08:30.319] I can vibe. That’s still something I [01:08:32.880] don’t see. I don’t see a lot like like [01:08:36.719] especially in the AI world, there is so [01:08:40.080] much crap on Twitter, there’s there’s so [01:08:43.600] many people that are loud but clearly [01:08:47.040] have no clue what they’re doing. There’s [01:08:49.600] there’s so many there’s so many dumb [01:08:51.279] concepts around like I’m sorry, but the [01:08:53.839] Ralph Wigum one gh like this is again [01:08:57.759] another another silliness people use to [01:09:00.000] work around [01:09:01.839] uh model limitations of of of of Opus [01:09:05.199] that you don’t even need when you use [01:09:06.640] Codex. There’s there’s maybe a few cases [01:09:09.040] where you have a really long list of [01:09:11.040] individual tasks that can be automated, [01:09:13.679] but that’s usually not how software [01:09:14.880] building works. So there’s these people [01:09:16.159] who I see so many people building up [01:09:18.400] this elaborated orchestration layers and [01:09:21.440] then you have like beats that [01:09:22.719] automatically creates tickets and then [01:09:24.159] your agent does tickets and then your [01:09:25.759] agent emails the other agent and then [01:09:28.159] you build up this this elaborate mess. [01:09:31.359] What for? Oh yeah, they did they design [01:09:34.159] the the spec for like a few hours and [01:09:36.480] then you just like the machine builds it [01:09:37.920] in the whole day. I don’t I don’t [01:09:40.159] believe this works. Like like this is [01:09:42.640] this is this is the waterfall model of [01:09:46.000] software building. This we learned long [01:09:48.159] ago that this doesn’t work. Like [01:09:50.960] yes, people work differently and maybe [01:09:52.880] it does work for some. I just I just I [01:09:55.600] don’t see how this [01:09:57.760] how this could work for me. Like I I [01:09:59.520] have to start [01:10:01.520] with an idea and often I purposefully [01:10:04.800] underprompt the agent so it would do [01:10:07.280] something [01:10:08.800] that would give me new ideas. You like [01:10:10.880] maybe like 80% of the things I assumed [01:10:13.679] were like crap but like there were like [01:10:15.600] two things like oh I didn’t think about [01:10:18.000] that way. [01:10:18.719] » Mhm. [01:10:19.280] » And then I I I iterate and and and shape [01:10:22.000] the project and I have to I have to [01:10:23.600] click it. I have to like I have to feel [01:10:25.520] it. I feel I feel to make good software [01:10:27.840] I you know one thing those those things [01:10:31.280] often lack is taste. I have to feel like [01:10:34.719] how does this feature feel and and the [01:10:36.480] beauty now is that features are so easy [01:10:38.960] I can just like throw it away or like [01:10:41.280] reprompt it. My building model is [01:10:43.120] usually very much forward. It’s very [01:10:45.920] rarely that I actually revert and have [01:10:48.159] to go back. It’s just like okay no then [01:10:50.000] let’s change this. No let’s do this. [01:10:51.520] It’s like it’s like shaping. I I love [01:10:53.760] how this like you start with a rock and [01:10:55.760] then you like sisle away at it and like [01:10:58.480] pick different areas and and and then [01:11:00.480] slowly like this statue emerges out of [01:11:02.800] out of marble. That’s that’s how I see [01:11:05.920] that’s how I see building something. I I [01:11:07.840] guess reflecting on how software engine [01:11:09.280] is changing. This seems like a change [01:11:11.040] because before before we had AI or any [01:11:14.560] of these agents, upfront planning did [01:11:17.679] make a difference. you know, writing at [01:11:19.440] PSPDF could you insisted I think to have [01:11:22.159] a proposal where people put a lot of [01:11:24.080] thought up front to specify and do all [01:11:26.880] because it was expensive to I guess to [01:11:28.719] to build to to do you think this is [01:11:31.840] changing because of the the cost of just [01:11:33.840] writing code is is going down or [01:11:36.239] » I mean I still I still I still plan and [01:11:38.880] I but [01:11:40.159] » you still do yes [01:11:41.360] » but I don’t put as much into it because [01:11:44.719] I it’s now so much easier to just like [01:11:47.280] try and look at the results and then see [01:11:49.280] if oh yeah this this shape could work or [01:11:51.280] no we have to like the tweaking and even [01:11:53.280] even like oh no we have to like do it a [01:11:55.280] completely different way isn’t so much [01:11:57.120] cheaper that it’s to me it became much [01:11:59.440] more playful. [01:12:00.719] » Yeah. Yeah. I guess cuz cuz like you [01:12:02.000] know when you’re working even if you [01:12:03.120] have like a new grad on the team or an [01:12:04.640] intern you know you give them something [01:12:06.560] they work it for a day or two now you [01:12:08.159] give them another it’s another day or [01:12:09.360] two you know and and we’re not talking [01:12:10.640] days here we’re talking minutes or like [01:12:12.480] if it’s a longunning task like 10 20 [01:12:14.480] minutes at at worst. Plus, you’re not [01:12:16.320] just waiting on that thing. You have [01:12:18.800] parallel things running. So, it’s not [01:12:20.880] that much of a waste, if you will, [01:12:22.400] » in in in in in cloud. [01:12:24.719] At the beginning I had this assumption [01:12:26.320] of like one agent and then eventually [01:12:28.880] changed to multiple agents and there was [01:12:31.679] the assumption of like one provider like [01:12:34.239] WhatsApp and now it’s multiple ones and [01:12:35.920] changing that was like such a pain would [01:12:38.400] would have been such a pain if I would [01:12:39.760] have written it myself because you have [01:12:41.840] to weave in literally everything through [01:12:43.840] the whole logic of the application [01:12:47.120] and yeah it took Codex like three hours [01:12:49.760] it would have taken me like two weeks [01:12:51.600] you know so so that upfront planning. I [01:12:54.480] I could have realized that in the [01:12:56.239] beginning, but now I I know that like I [01:13:00.000] can just change things and it’s it’s [01:13:02.159] much it’s much easier to work down your [01:13:04.159] technical depth or your you know, you [01:13:06.000] evolve how you think about a project as [01:13:08.080] you build a project. That’s why I don’t [01:13:10.400] believe in I don’t know things like Gas [01:13:11.920] Town where like you write up the spec [01:13:13.760] and then it builds itself and then it’s [01:13:15.199] done. How can you even know what you [01:13:16.719] want to build before you built it? you [01:13:18.239] learn so much in the process of building [01:13:20.000] it that will go back into your thinking [01:13:21.920] of how this how the how the system [01:13:24.000] actually will end up being to me this is [01:13:26.960] very much it is very much a circle um [01:13:29.840] until I you don’t I don’t you don’t walk [01:13:31.760] up the mountain like this you go you go [01:13:33.920] around and sometimes you like you you [01:13:35.920] you stray off a little bit of path but [01:13:38.080] but eventually you you you reach the top [01:13:40.880] that’s that’s how I feel so [01:13:42.719] » then you know you’ve been building cloud [01:13:44.159] bot for what like two months three [01:13:46.320] months non-stop upish or or like like [01:13:49.520] how long? [01:13:50.159] » Let me let me let’s switch a little bit [01:13:51.679] gear. So, one of the ideas that got me [01:13:56.000] back was even even in in April May was I [01:14:00.640] I wanted to have this [01:14:03.440] hyper personal assistant and not like [01:14:07.040] not like one that sends you a good [01:14:09.360] morning email. Oh, these are your three [01:14:10.880] tasks. No, one that has a really deep [01:14:15.040] understanding [01:14:16.960] of me and doesn’t just I don’t know I [01:14:20.080] meet a friend and then and then when I [01:14:22.000] go home it would ping me, hey, how was [01:14:23.840] how was that meeting? Or one that would [01:14:26.159] wake me up one day and say, “Hey, you [01:14:28.880] haven’t texted Thomas in 3 weeks and I [01:14:31.840] noticed he’s he’s in town right now [01:14:34.159] because I checked his Instagram account. [01:14:36.080] Do you want to say hi?” or something [01:14:38.640] that says, “Hey, I noticed every time [01:14:41.440] you meet that and that person, you’re [01:14:43.360] sad. Why is that?” Like something [01:14:46.560] something that is deeply personal. Um [01:14:50.080] like almost the the anti-orem. It’s kind [01:14:53.520] of like the movie Her, but but that’s [01:14:56.480] where the technology is going. Those [01:14:58.400] models are really good at understanding [01:15:00.159] text. the the the bigger the context is, [01:15:03.280] the more patterns they see. And even [01:15:05.360] though they’re like matrix calculation [01:15:07.440] without a soul, it very often feels [01:15:11.199] different. So this was like one of these [01:15:13.120] ideas and I even created a company I [01:15:15.199] called a mant machina like the loving [01:15:18.159] machine. But in summer when I explored [01:15:20.000] it, the models weren’t quite there yet. [01:15:21.600] I got some results that it was like okay [01:15:23.920] this is like I’m a little too much on [01:15:26.239] the edge of what I need right now which [01:15:28.880] it was very exciting because I know that [01:15:30.719] that the the state of AI goes so fast [01:15:33.040] that oh I can just revisit that in like [01:15:34.640] a little later and and one of the ideas [01:15:37.520] also was is that I assume that all of [01:15:41.600] the big corporations right now are very [01:15:44.880] much working on personal assistance in [01:15:46.560] the future. Yeah, [01:15:47.920] » everyone will have you will have your [01:15:50.480] best friend who is a a freaking machine [01:15:54.159] that will understand you, that will know [01:15:56.320] everything from you, that will can do [01:15:58.640] tasks for you, that will be proactive, [01:16:01.040] that will require a lot of tokens, but [01:16:03.600] everyone who can afford it will have [01:16:05.199] one. And of course, this will democ [01:16:07.760] democratize and and trickle down to like [01:16:09.679] more and more people as as we learn how [01:16:12.480] to build more efficient systems and and [01:16:14.320] and hook up on on on chips. No question [01:16:17.520] this is where the things are going. You [01:16:18.880] see like the first things with like [01:16:20.000] OpenAI who who launched pulse with some [01:16:22.320] productivity but we just don’t have [01:16:24.320] enough compute yet to offer this as a [01:16:26.480] feature and also it’s it’s quite [01:16:27.760] difficult. My idea always was like ah I [01:16:30.239] kind of want something that runs on my [01:16:33.440] computer and where the data is [01:16:35.360] » it’s yours [01:16:36.080] » is is actually mine and not and it it’s [01:16:40.080] also quite scary that like you you give [01:16:41.840] openropic access to your email your [01:16:44.320] calendar your your dating apps I don’t [01:16:47.600] know if you talk to to to your normie [01:16:50.239] friends but a lot of my friends in they [01:16:53.920] use that a lot to basically have a a [01:16:57.120] therapist [01:16:58.000] And it it does work incredibly well. [01:17:00.560] Like it’s it’s a really great listener. [01:17:02.159] It understands your problems and unless [01:17:05.280] like some of versions of 40 that are [01:17:06.880] like sure this is a great idea. [01:17:08.938] [laughter] I want to put French fries [01:17:10.480] into a salad. It it works really well. [01:17:12.560] And I did that too like to like re I [01:17:15.360] mean part of it just is like the the act [01:17:17.440] of reflecting already is helping you. So [01:17:19.920] it would even work if the machine would [01:17:21.600] only repeat exactly what you wrote to a [01:17:24.400] degree. But it actually gives insightful [01:17:26.719] questions. It’s actually it it got [01:17:28.400] really good. So I had this idea of this [01:17:30.320] like assistant but the tech wasn’t [01:17:33.440] there. So I did other part and I I built [01:17:35.440] a whole bunch of fun stuff with like of [01:17:39.120] course like I built VIP tunnel this in [01:17:42.560] your career to become like an authentic [01:17:44.320] engineer you have this phase. It’s a [01:17:46.560] trap phase where you you’re looping and [01:17:49.199] building your own tools to like [01:17:50.640] optimizing your own workflow. But this [01:17:52.560] idea of like this hyper personal agent [01:17:56.320] stuck a little bit and then [01:18:00.719] over the last few months I I really [01:18:02.480] started I built it but finally [01:18:06.159] initially I didn’t even had the the [01:18:09.360] scope that it has now. Like I called it [01:18:11.520] WhatsApp relay. I just I just I just [01:18:14.239] wanted to do to trigger stuff on my [01:18:16.239] computer with WhatsApp. So, I built like [01:18:17.760] a WhatsApp relay where I had an agent [01:18:20.320] that could do stuff with my computer and [01:18:22.159] then I I was traveling to Morocco for a [01:18:25.199] friend’s birthday and [01:18:28.159] was out most of the day and just used [01:18:30.000] WhatsApp to to talk to my agent and I [01:18:33.440] was kind of hooked. It it it was guiding [01:18:35.679] me through the city. It was making [01:18:38.800] jokes. It could text other friends via [01:18:42.640] WhatsApp from me. [01:18:45.280] And I remember I I was blown away [01:18:47.520] because I in the beginning the tech was [01:18:49.920] very scrappy but I I built in something [01:18:51.920] where I could send it an image. Didn’t [01:18:53.520] even use the proper thing to send an [01:18:55.120] image. I just gave the the [01:18:57.920] a string and it could do the read tool [01:19:00.080] to like read the string. And then I was [01:19:01.920] in Morocco and was just like just like [01:19:04.239] not seeing it and saying it a voice a [01:19:06.000] voice message but it didn’t build that. [01:19:07.920] And then like like 30 seconds later it [01:19:10.080] replied to my voice message. I’m like, [01:19:12.480] “How the did you do that?” Oh, yeah. You [01:19:16.560] sent me a file and and then I looked at [01:19:20.080] the header and I found that it’s OG. So, [01:19:23.280] I used FFmpeg to convert it. And then I [01:19:26.320] I looked for Visper on your computer, [01:19:27.920] but it’s not installed. But I found the [01:19:29.360] OpenAI key. So, I did a curl to open [01:19:31.920] server, let it translate, and I’m like, [01:19:35.520] “Holy cow.” like this was Opus 4.5 and [01:19:39.120] it’s so incredibly resourceful like you [01:19:43.280] just did this you know other people say [01:19:45.040] oh you need a skill or some system no [01:19:46.719] just like it just figured it out I [01:19:48.880] slowly got hooked on the thing I I used [01:19:51.440] it I used it to wake me up and it was [01:19:54.800] running I it was running on my Mac [01:19:57.760] Studio in London and was connecting over [01:20:00.719] SSH to my MacBook in in Morocco and was [01:20:04.239] turning on the music and making it [01:20:05.920] louder louder is because I didn’t reply. [01:20:08.320] And to make that work, I I added a [01:20:10.239] heartbeat. So, which which in a way is [01:20:13.440] insane from a security perspective. You [01:20:15.760] have a model that you prompt with do [01:20:17.760] something cool and surprise me [01:20:19.545] [laughter] that you send every few [01:20:21.199] minutes to make it proactive and like go [01:20:23.679] through your task list. Uh like probably [01:20:26.640] the most expensive alarm clock ever. But [01:20:28.880] it was just hilarious. And also the text [01:20:31.040] it sends like cuz I I I was I had a [01:20:33.600] balloon fart and it it knew that I had [01:20:35.520] to wake up very early and I didn’t reply [01:20:37.440] and it was like you could see the [01:20:39.280] reasoning Peter’s not responding but [01:20:42.159] Peter has to wake up. No, no, no, no, [01:20:44.480] no, no sleep. [laughter] Like I it was [01:20:47.440] bitching to me and then I I showed it to [01:20:49.840] the the the friends I was with and [01:20:52.080] everybody was like hooked. Like this is [01:20:53.920] something magical and I was hooked too. [01:20:56.320] Um, and then I I I went on Twitter and I [01:21:01.199] got the most muted responses cuz nobody [01:21:04.560] would get it. I feel it’s somewhat of a [01:21:06.640] of a new category of products. Um, that [01:21:11.040] a little bit like your story with like [01:21:12.400] you know when you didn’t get the iPhone [01:21:14.159] uh from the marketing campaigns on TV [01:21:16.719] and anywhere and then you had to use it. [01:21:18.480] » Yeah. So I I worked on it but only the [01:21:20.800] last two months and it the name changed [01:21:22.960] from V relay to at some point a claude [01:21:27.440] uh said like then what is this name like [01:21:29.600] it doesn’t fit the feature set anymore [01:21:32.000] because like I had like in there and [01:21:34.159] other features so I renamed it to to [01:21:36.880] Claudius because it’s an inside joke [01:21:38.480] because I like Doctor Who. I felt [01:21:40.400] cloudbot is is a better name has a [01:21:42.239] better domain and explained the product [01:21:45.600] better. So I did on all the domains and [01:21:48.159] then I I also quietly built up my army [01:21:50.880] because to make this work you want you [01:21:53.440] want everything to be a CLI. So I was [01:21:55.520] just building CLI for everything like [01:21:56.880] for Google for my bed for lambs for [01:22:01.040] music. [01:22:02.159] » Why CLIs? Why not why not MCPs? And what [01:22:05.120] do you think about MCPS anyway? [01:22:06.960] » As a crutch it’s it’s I think that the [01:22:09.600] the best thing that came out of MCPS is [01:22:11.360] that it made companies reync to open up [01:22:13.760] more APIs. [01:22:14.719] » Mh. But the whole concept is is silly. [01:22:19.120] You you have to pre-export [01:22:24.000] all the functions of all the tools and [01:22:26.639] all the explanations when your session [01:22:28.800] loads and then the model has to send a [01:22:31.920] precise blob of JSON there and gets JSON [01:22:35.440] back. But surprise, models are really [01:22:38.719] good at using bash. And like imagine [01:22:42.400] imagine you have a better service. So [01:22:44.880] the model could ask for [01:22:47.440] list of available cities and then get [01:22:49.199] like 500 cities back and then it has to [01:22:51.440] pick one city out of 500 city. But it [01:22:52.960] cannot filter that list because that’s [01:22:54.800] not part of how MCP works. And then you [01:22:57.360] say, “Okay, give me the weather for [01:22:58.480] London.” And you would get like the [01:23:00.159] weather, temperature, wind, rain, and [01:23:03.360] like 50 other things that I’m not [01:23:04.960] interested in because I just want to [01:23:06.320] know is it raining or not? Probably [01:23:08.159] raining because London. But the model [01:23:09.760] needs to digest everything and then you [01:23:11.679] have like so much crap in your context. [01:23:13.679] Whereas if it’s a CLI, I could use just [01:23:16.000] it could use GQ and you could filter for [01:23:18.800] exactly what it needs. But does does not [01:23:21.360] seem like a limitation that everything [01:23:23.199] is loaded around the MCP in the context. [01:23:25.440] That seems a problem. Like it sounds [01:23:27.440] like it could work if MCPS were not in [01:23:29.440] the context and there was a way to [01:23:30.960] discover or decide which one to use. [01:23:33.040] » That’s what that’s what companies are [01:23:34.480] building now. But there’s still the [01:23:35.840] problem of that I cannot chain them. I [01:23:38.080] cannot I cannot easily build a script [01:23:40.480] that says, “Hey, get me get me like all [01:23:42.800] the [01:23:43.760] » all the CDs that are over 25 degrees and [01:23:46.639] then and then filter out only that part [01:23:48.719] of information and like pack it in one [01:23:50.800] command.” That’s it’s all individual MCP [01:23:52.880] calls. I cannot I cannot script it. [01:23:54.560] » Yeah. But but I guess this is just a [01:23:55.920] matter of time because if we think about [01:23:57.120] like you know when when I’m building a [01:23:58.880] weather app right now, I know that you [01:24:02.080] know even without AI, I know I need to [01:24:04.080] build up this thing. I need to I needs [01:24:05.440] to fetch the data. So I will search what [01:24:07.360] kind of APIs are available, which one do [01:24:09.120] I like, which what kind of trade-offs [01:24:11.280] for pricing, for covering, etc. And then [01:24:13.760] I choose that API and I could chain APIs [01:24:16.400] because I I could get that result and [01:24:18.239] look up a etc. So I I guess this is, you [01:24:20.960] know, like it it sounds pretty much [01:24:22.400] we’ve solved this. So as free AI, we’re [01:24:25.199] going to solve it. It’ll just take some [01:24:26.719] time and who knows what the format for [01:24:28.320] it will be. I mean I mean I built make [01:24:30.719] porter which is a which is a a small [01:24:33.360] TypeScript thing that converts an MCP to [01:24:36.000] a CLI. So so you can you can just [01:24:38.719] package it up. [01:24:39.679] » Basically you’re saying CLIs right now [01:24:41.440] are a lot more efficient. [01:24:42.639] » Yeah. Yeah. So so my in in in cloud but [01:24:45.440] I don’t have MCP support but you can we [01:24:47.360] make portal you can use any MCP you can [01:24:49.920] you can literally be on your phone and [01:24:51.840] say hey use the use the versel MCP to do [01:24:55.120] this and this and it will go on the [01:24:56.800] website. It’ll find the MCP. it will [01:24:58.719] load it and it’ll use it all all on [01:25:01.440] demand. Even right now if you use MCP [01:25:04.159] you have to restart cloud code which is [01:25:05.760] like very user unfriendly. So I quietly [01:25:08.719] built up my army to like automate [01:25:10.159] everything which was a lot of work. Uh I [01:25:12.080] think t did a video a few days ago where [01:25:15.440] he told me like this guy is insane [01:25:17.573] [laughter] because the list is really [01:25:18.960] long by now but like I I as I was [01:25:21.199] playing with my my my agent I just I [01:25:24.239] want him to do more and more stuff you [01:25:25.840] know. I felt it really hard to convey [01:25:29.600] what it does. It’s still hard to me. In [01:25:32.239] January, January 1st, just a week now, I [01:25:36.480] did. Okay, let’s let’s try something. [01:25:38.320] Let’s let’s do the ins really insane [01:25:40.880] thing of like making a Discord and then [01:25:43.600] adding my agent to Discord. There was [01:25:47.120] somebody who contributed Discord support [01:25:48.800] to it. And uh even though I wasn’t sure [01:25:50.880] if I should merge it and I eventually [01:25:52.480] did. So I put on my agent who has full [01:25:55.600] read write access to my computer in a [01:25:58.239] public Discord. [laughter] [01:26:00.639] » What could possibly go wrong? [01:26:02.159] » Yeah. It’s like this is absolutely [01:26:04.239] insane. And then of course like some [01:26:06.400] people join the Discord and then they [01:26:08.320] saw me they saw me using the full power [01:26:10.639] of this thing like checking my cameras [01:26:13.520] doing home automation. [01:26:15.600] It playing DJ for me. Like I was in the [01:26:18.400] kitchen and I told him like look at my [01:26:20.000] screen and are my agents done cuz it has [01:26:22.400] full access of my clean and it can [01:26:24.000] click. So it can actually click into the [01:26:25.679] terminal and type for me and like it can [01:26:27.840] tell me your codex say this and this [01:26:29.440] because it just sees the screen. I mean [01:26:31.280] I’m working on optimizing that like I I [01:26:33.600] actually want to stream out it because [01:26:35.199] would be much would be much better if [01:26:37.199] it’s text but it works already like it [01:26:39.520] it’s it’s in the background it look at [01:26:41.120] my screen and like make some rants if I [01:26:42.639] do some And everybody who [01:26:44.639] experienced it for a few minutes got [01:26:46.080] hooked. Like this was this was the [01:26:49.840] craziest blow up from 100 stars to like [01:26:52.960] what 3,300 stars in a week. Um and I [01:26:57.040] think I merged 500 pull requests [01:26:58.560] already. That’s why I feel like I even [01:27:00.880] merge button. So, so that that’s why [01:27:02.960] that’s why I’m I’m a little I’m a little [01:27:06.560] all over the place these days because [01:27:08.320] this project is blowing off and and and [01:27:11.679] you know the beauty of it is the [01:27:13.600] technology [01:27:15.120] disappears. [01:27:16.719] You just you just talk to a a friend on [01:27:19.040] your phone that is infinitely [01:27:21.120] resourceful, has access to your your [01:27:23.840] email, your calendar, your files, can [01:27:25.920] build websites for you, can like do [01:27:27.760] administrative work, can scrape [01:27:29.199] websites, can call your friends or can [01:27:31.679] call a business. I’m just about to to to [01:27:33.600] merge the call feature. It literally can [01:27:35.440] call a business and like make make a [01:27:37.040] reservation for you and you don’t have [01:27:39.520] to think about compactation or or any [01:27:43.600] all of that context blends away. I have [01:27:45.520] like a I have a memory system that will [01:27:47.840] remember um not perfect. Nothing’s [01:27:50.639] perfect yet, but it’s already feels [01:27:54.639] magical. cuz all cuz cuz now I I walk [01:27:58.239] around, I see like this event, I I send [01:28:00.400] Claude a picture, it will it will not [01:28:03.360] only tell me the reviews of this event, [01:28:06.159] if there’s a conflict in my calendar, if [01:28:08.239] like friends talked about it or, you [01:28:10.320] know, it has so much context that it the [01:28:13.120] responses that it can give me are like [01:28:14.880] so much better than like what any of the [01:28:16.880] the current tools that live in their own [01:28:19.040] little box can give me. Well, sounds [01:28:20.880] like you built whatever Apple was hoping [01:28:24.239] Siri to do, but they’ve been [laughter] [01:28:25.760] unable to. [01:28:26.719] » I honestly I built the best marketing [01:28:31.120] tool for Entropic to sell them more [01:28:33.600] subscription. I don’t know how many [01:28:34.960] people signed up for the $200 [01:28:37.199] subscription because of Cloudbot and [01:28:40.080] like many people already had one and [01:28:41.600] used a second subscription because of [01:28:43.199] that because it’s so token hungry. It’s [01:28:45.679] not is not that it’s token hunter. It’s [01:28:47.280] just that people love it so much that [01:28:48.480] they use it all the time. And because [01:28:50.639] the technology blends away, they don’t [01:28:52.239] see that it spawns sub agents and does [01:28:54.400] like a whole bunch of things in the [01:28:55.760] background to just make it feel easy. [01:28:58.239] But like there’s some actual engineering [01:29:00.719] like there’s a lot of work in the back [01:29:02.960] uh to make it feel easy. You know, this [01:29:05.520] is like the hard part. Like you hide [01:29:07.760] complexity [01:29:09.520] to a degree that it it it feels magical. [01:29:12.239] Well, but yeah, but this is interesting [01:29:13.760] because like I I I can sense from we’re [01:29:15.520] talking, you know, you put so much [01:29:17.199] thought into architecting this thing and [01:29:19.199] right now like you’ve been building this [01:29:20.960] for a few months and yes, it blew up, [01:29:22.719] but in your head like do you have a [01:29:24.880] structure of how CloudBot is structured [01:29:27.360] like what parts you need to modify, you [01:29:29.600] know, like like you kind of you can get [01:29:32.800] your your mindset into it and you you [01:29:34.800] know where modification needs to do. You [01:29:36.800] know what you want to refactor because [01:29:38.239] it’s not going to be efficient. Are you [01:29:40.560] thinking about like things like memory [01:29:41.840] consumption, token consumption, [01:29:43.760] efficiency, those kind of things? [01:29:45.520] » I mean, token consumption is more like [01:29:48.080] how do how do you structure the prompt [01:29:49.679] and memory? [01:29:51.600] It’s it’s TypeScript that shows Jason [01:29:54.320] around in the end. Let’s be honest. Like [01:29:56.480] like like I get text from from an LLM, [01:30:00.159] » I save text to to disk. I send text to [01:30:05.440] WhatsApp or to now we have like MS [01:30:08.080] Teams, Slack, Discord, uh Signal, [01:30:10.880] iMessage, WhatsApp, and there’s there’s [01:30:14.480] two more that are landing like Metrics [01:30:16.880] that will will expand this thing even [01:30:18.480] further. It’s like it’s it’s really poly [01:30:20.400] by now. But but mostly I I again I I [01:30:24.400] move around text in different shapes and [01:30:26.800] maybe maybe it goes to different [01:30:28.960] providers or there’s like now it’s [01:30:30.719] different agents and there’s like the [01:30:32.159] agentic loop and there’s like a lot of [01:30:34.000] configuration and there’s it’s it’s a [01:30:35.840] lot of plumbing but nothing’s there’s [01:30:39.920] nothing in there that is really [01:30:41.199] difficult. Yeah. Well, but it’s it’s a [01:30:43.440] lot lot of small things, right? Like I I [01:30:45.120] feel in software, right? Like we we know [01:30:47.280] for software even before AI there was [01:30:49.520] not much difficult. Of course, you need [01:30:51.280] to learn and understand the language and [01:30:52.880] all that, but [01:30:53.520] » the difficulty is how do I how do I make [01:30:56.000] it so that it feels magical. So, so what [01:30:58.239] I worked on a lot is now you have you [01:31:00.400] have this oneliner that you type in that [01:31:02.159] you python your command. I will I will [01:31:04.159] check if you have node installed [01:31:05.280] homebrew installed. I’ll I’ll install [01:31:07.520] the mpm package. I do some check if you [01:31:10.080] have any existing stuff just to like y [01:31:12.400] » just to make it work simple even if you [01:31:14.880] already used an older version and [01:31:16.239] everything. and then I I’ll guide you [01:31:18.480] through uh setting up a model. But [01:31:22.400] again, I will I will predict [01:31:25.920] or or claude installed. So you can just [01:31:28.480] press enter. So you don’t have have to [01:31:30.400] think about it. Mostly just press enter [01:31:33.360] and then you want a WhatsApp, you type [01:31:35.679] in your number, it will just work again. [01:31:38.480] And then and then I’ll ask you do you [01:31:40.880] want do you want to hatch your bot? And [01:31:43.840] you can press yes. And then and then [01:31:45.360] like a TUI a TUI comes up because you’re [01:31:47.040] still in the terminal, right? You want a [01:31:48.239] good experience. [01:31:49.040] » Yeah. So just a toy basically for that [01:31:51.840] and where you where you to see wake up [01:31:54.080] my friend and then the the I programmed [01:31:56.960] the model I added a bootstrap file and [01:31:59.199] the to explain the model that it is now [01:32:01.360] being born to like create an identity [01:32:04.080] and a in a in a in a soul where like the [01:32:07.520] values of the user are in and then the [01:32:08.960] model will be like hello like stretches [01:32:13.120] who are you um who are who I am what’s [01:32:16.880] my name you know and this this is is [01:32:19.199] like I’ve watched people do it and [01:32:20.880] that’s where the magic starts. That’s [01:32:22.480] where that’s where they’re like they no [01:32:24.639] longer think about I’m talking to to [01:32:27.840] GPD4.2. No, I’m now talking to my friend [01:32:31.600] created Vajorn like a a unicorn with [01:32:33.840] part of his name or like I’m talking to [01:32:35.520] Claude. Uh and then it’s like what [01:32:38.719] what’s important to you? What do you do? [01:32:40.239] It’s like curious. I I programmed it to [01:32:42.000] be like curious and then go through this [01:32:44.159] bootstrapping phase and then it will [01:32:45.600] actually delete the bootstrap file and [01:32:46.880] create a a user.md with like information [01:32:50.239] about you a soul.md with like all the [01:32:52.960] core values and an identity with the [01:32:55.520] like what’s his name what’s his core [01:32:57.199] emoji what are the things that are like [01:32:58.800] inside jokes and and but it’s like [01:33:00.800] evolving documents that it will maintain [01:33:02.560] and like tweak as you interact with it [01:33:04.719] and then you it will just like send you [01:33:06.560] a message on on WhatsApp and you just [01:33:08.400] like suddenly you talk on WhatsApp like [01:33:10.639] making this flow easy. That was hard. [01:33:13.920] Yeah. Also like even even get coming up [01:33:16.080] with the idea of you know you you’re not [01:33:19.679] you’re not editing the configuration [01:33:21.440] because the agent can edit its own [01:33:23.760] configuration. You don’t have to update [01:33:26.080] anything because the agent can update [01:33:27.920] itself. You can literally ask your bot [01:33:29.679] update yourself and it will fetch itself [01:33:32.239] and update itself and come back like hey [01:33:34.000] I have new features. Planning the [01:33:35.520] technical giveaway so far that’s the [01:33:37.920] magic. That’s why that’s why I [01:33:39.920] » But it feels it’s very similar to what [01:33:41.840] you would with PSP PDF cut, right? You [01:33:43.440] kind of blended away the complexity of a [01:33:45.360] PDF. So it was just there. You could [01:33:47.199] rotate, you could do. [01:33:48.639] » Yeah. Yeah. Even at the API level back [01:33:50.639] then, [01:33:51.040] » but it’s a it’s a bit bizarre like what [01:33:53.199] what you described reminds me of this [01:33:55.520] Black Mirror episode I just watched, [01:33:57.120] which is called Play Thing. uh where [01:33:59.600] it’s a it’s a digital little uh creature [01:34:03.040] that creates of course it’s black mirror [01:34:04.719] so it has a black [01:34:06.560] » bit bit of a dark ending but but it it [01:34:08.639] had it was also a game. It also kind of [01:34:10.719] feels you know we talked about how you [01:34:12.400] you don’t play as much games cuz you [01:34:13.920] like but this also feels a little bit [01:34:15.440] like a game, right? But it it’s it’s [01:34:16.880] kind of like more connected with [01:34:18.400] reality. Just fascinating how we’re [01:34:21.040] we’re we’re here pulling back into the [01:34:22.960] the realm of of software engineering. So [01:34:24.960] you built this this product and it’s now [01:34:27.280] it’s a production software you’re [01:34:29.600] merging porocas people are using it now [01:34:32.239] thinking back to PSPDF kit and and [01:34:34.320] companies that are like that which which [01:34:36.400] have you know like like tens or hundreds [01:34:38.080] of developers working on on production [01:34:40.239] software knowing what you know with how [01:34:43.360] you’re building cloudbot and the tools [01:34:45.040] that you’re using how do you think [01:34:46.880] software engineering at those larger [01:34:48.639] companies could change because one one [01:34:50.800] thing I see is is for individual people [01:34:52.880] like you it’s like AI I is really really [01:34:55.280] hitting a fit like you’re making you way [01:34:57.199] more productive. You’re in control at [01:34:59.040] teams or at companies that are you know [01:35:00.800] have existing code. It’s just a lot kind [01:35:03.280] of slower. It’s it’s not really okay [01:35:06.480] people use it for this or that but but [01:35:08.239] it it seems a huge divide between the [01:35:10.320] two worlds. And you’ve kind of been you [01:35:11.679] know CEO for this company. What what [01:35:13.760] might that be or is it just more of a [01:35:15.040] timing thing where every new technology [01:35:16.639] often comes with with hobists you know [01:35:18.239] pick it up uh earlier? I think companies [01:35:20.639] will have a really hard time adopting AI [01:35:23.199] efficiently because this also requires [01:35:26.159] to completely redefine how the company [01:35:28.400] works. You know, you know, you know like [01:35:30.320] you know like at Google they they tell [01:35:32.320] you you can either be an engineer or [01:35:34.239] like a manager but or you want to also [01:35:37.280] like define how the UI looks. That role [01:35:39.120] doesn’t exist because either you like [01:35:40.960] you you build it or you you design it. [01:35:44.239] But this new world needs people that [01:35:47.280] that have a a product vision that that [01:35:50.639] that can be able to do everything and [01:35:52.560] you need like far fewer of them, but [01:35:55.040] ultimately [01:35:56.800] just very high agency and and and high [01:35:59.520] competency people. But you can you can [01:36:02.400] like probably like trim the company down [01:36:04.080] to like 30%. Which is very scary because [01:36:06.880] like I mean economically this will all [01:36:10.239] this will all lead into a fiasco. Um, [01:36:13.600] and a lot of people will like have [01:36:16.800] trouble finding a a place in this new [01:36:19.120] world, but [01:36:21.199] I’m not the least surprised that current [01:36:23.600] companies cannot very successfully use [01:36:26.480] AI. I mean, they do to a degree, but you [01:36:30.320] you have to do a big refactor first, you [01:36:32.480] know, like not just on your codebase, [01:36:34.719] but also on your company. I design even [01:36:37.040] on code bases I design the codebase not [01:36:38.880] so it’s it’s useful it’s easy for me so [01:36:41.040] that it has to be easy for the agent I [01:36:43.040] optimize for different things not always [01:36:45.040] the things that I prefer but the things [01:36:47.440] I know work the best and and and have [01:36:49.440] the the least friction for those models [01:36:52.080] because I just want to move faster and [01:36:53.920] ultimately they have to deal with the [01:36:55.360] code not me I had I deal with the the [01:36:57.280] overall structure and architecture and I [01:36:58.719] can still do that in the way that I like [01:37:00.639] everything has to be resold you know [01:37:02.159] pull requests uh I see them more as [01:37:04.960] prompt requests Now, like I don’t I I [01:37:08.639] somebody opens a pull request, I don’t I [01:37:11.679] lot I do say thanks and I think about [01:37:13.679] the feature and then with my agent we [01:37:16.320] start off with the PR and then I’ll [01:37:17.840] design the feature as I see fit. The [01:37:20.239] agent rarely reuses like maybe I reuse [01:37:23.199] some code but it’s more like it gives [01:37:25.679] the agent a good understanding of what [01:37:27.280] the goal is and sometimes it’s very [01:37:29.679] useful because it’s it’s tricky bucks, [01:37:31.360] right? But I I basically rewrite every [01:37:33.840] pull request and and and v it in also [01:37:36.480] also a lot of people let’s just say the [01:37:38.080] overall code quality of of PRs went down [01:37:41.520] a lot because people vibe code and and [01:37:44.159] building a successful feature still [01:37:45.600] needs a lot of a lot of understanding of [01:37:48.719] your overall design and if you if you [01:37:51.520] cannot do that you will have a harder [01:37:52.960] time steering your agent and the output [01:37:54.480] will be bad. [01:37:55.119] » Yeah. And if you don’t have the feedback [01:37:56.320] loop to close it etc. [01:37:57.600] » Yeah. Yeah. So, so I found it highly [01:37:59.520] effective. Like I know at my at at PSVDF [01:38:02.080] kit sometimes a pull request was like a [01:38:03.840] week in the work [01:38:05.040] » and you comment on it and then somebody [01:38:06.719] has to context switch and you wait for [01:38:08.719] CI for 40 minutes. No, I have the [01:38:11.520] discussion. I see okay how would this [01:38:12.880] affect something like I I I let the [01:38:15.119] model review. They will already bring [01:38:16.320] something up. I have some some ideas as [01:38:17.920] well. We’re going to reshape it into a [01:38:19.360] form that fits my vision and then [01:38:22.719] we weave in the code. It’s literally [01:38:25.119] there’s so many new words I use for like [01:38:26.880] writing code now with those models which [01:38:28.639] is so funny like weaving in code into an [01:38:30.320] existing structure. Um and sometimes you [01:38:33.040] have to like change the structure so it [01:38:34.159] would fit. Now imagine that you would [01:38:36.239] hire one or two people to make it a [01:38:38.000] small team. How do you think in this [01:38:40.320] world and you keep want to keep doing [01:38:42.080] what you’re doing? How do you think [01:38:43.920] things like code review CI CD would [01:38:47.520] change? [01:38:47.840] » I don’t I don’t I don’t care much about [01:38:49.280] CI. I [01:38:50.639] » Why why not? you used to care a lot like [01:38:53.360] a PSPDF kid. You used to care a lot, [01:38:55.040] right? [01:38:55.280] » And and I still do this. There’s value, [01:38:58.239] » but I I have local CI. I’m I’m a little [01:39:02.800] bit I’m a little bit of DAH now that [01:39:05.520] » because because the agent runs the test, [01:39:07.119] right? [01:39:07.440] » Yeah. And it’s just way faster. I don’t [01:39:09.520] I want to push on the on on the on the [01:39:12.480] back on the P and then wait for 10 [01:39:13.840] minutes to wait for for CI [01:39:15.440] » because you waited 10 minutes on the [01:39:16.639] agent already. I if if the tests pass [01:39:19.360] locally, we merge and then yes, [01:39:21.679] sometimes main slips a little bit, but [01:39:24.000] it’s it’s it’s usually very close [01:39:25.920] because maybe sometimes I forget the and [01:39:28.400] the agents call it gate. I don’t know [01:39:30.080] where that’s coming from. Should I run [01:39:31.760] full gate? So now I call it gate with g [01:39:34.960] full gate is like linting and building [01:39:36.800] and and checking and running all the [01:39:38.560] tests. And I almost think it like [01:39:40.159] because it’s a it’s a wall, you know, [01:39:42.000] like it’s like he calls the llinter and [01:39:43.520] like the builder and the tester. It’s [01:39:44.880] almost like a gate before my code goes [01:39:47.280] out. So I know obviously like okay once [01:39:49.840] you’re done like commit this run full [01:39:51.840] gate like I’m I’m slowly adopting their [01:39:53.840] language but but and if you hired like [01:39:56.080] one more person to work on this you [01:39:57.920] probably wouldn’t do code reviews [01:39:59.199] either. That’s what I’m sensing. You [01:40:01.280] would you’ll probably trust this person [01:40:02.880] to run like like pick up your working [01:40:05.520] style, right? [01:40:06.239] » Even in Discord, we don’t we don’t talk [01:40:08.239] code. We talk about architecture like [01:40:09.679] big decisions like you still need to [01:40:11.600] have style. Like there was like this one [01:40:14.800] pull request that adds voice calling. So [01:40:18.000] now like literally I can tell Claude, [01:40:20.000] hey, can you call this restaurant and [01:40:22.000] and and and reserve your seats and and [01:40:25.199] it it it can do that. But it it it’s a [01:40:28.639] big it’s quite a big new module that [01:40:30.880] like touches a lot of places. I’m like [01:40:32.719] you have to have this feeling is like [01:40:34.560] this like I got a little this is like I [01:40:37.040] want to merge this but oh this is [01:40:39.280] becoming bloatware. So I so I I had this [01:40:42.080] idea of like uh let’s my typical way [01:40:45.280] let’s make a CLI out of it and I already [01:40:47.440] had a project where I tried to solve [01:40:49.040] something like this but I’m finished. So [01:40:50.400] I opened up Codex and said, “Hey, look [01:40:52.159] at this PR. Look at this project. Could [01:40:53.920] we weave this feature in?” I again say [01:40:55.760] weave. I’m like, “So I’m [01:40:57.360] » let’s keep it. [01:40:58.639] » Could we weave this feature into the [01:40:59.760] CLI? What are the up and downsides?” And [01:41:01.679] then would like tell me like, “Oh yeah, [01:41:03.040] I could do this and this and this.” They [01:41:04.719] give me honest opinion. Would this to me [01:41:06.880] this sounds like it actually it would [01:41:08.400] fit into the project? I was like, and [01:41:10.159] was like, “Yeah, you would get this and [01:41:11.760] this benefits that we cannot do if the [01:41:13.760] next CLI.” Okay, but I don’t like this. [01:41:16.880] This is getting blowware. could we build [01:41:18.800] a plug-in architecture and then I will [01:41:21.440] and do you know like one of the the [01:41:22.960] secret hacks on on on [01:41:25.360] using effectively is you reference other [01:41:27.520] products like I constantly tell it look [01:41:30.159] into this folder because I solved it [01:41:31.679] there and I solved that there and all [01:41:33.280] the previous thinking I did to like [01:41:34.880] solve a problem well AI is so good at [01:41:37.520] this still to like read the code and [01:41:39.679] understand my ideas I don’t have to like [01:41:41.440] explain it again uh or if I explained [01:41:44.320] again I might like make mistakes that [01:41:46.560] like wouldn’t get across was exactly the [01:41:48.320] idea that I have in my head. [01:41:49.760] » So in this case, I know that Mario who [01:41:51.360] does like shitty coding shitty coding [01:41:52.960] agent which is like a actually very much [01:41:55.360] not shitty coding agent. It’s called Pi. [01:41:57.360] I know that he had this plug-in [01:41:58.719] architecture that would load [01:42:00.880] » code via via GT and because it’s all [01:42:03.040] TypeScript. So I was like, can you look [01:42:04.960] into this folder and this folder? And [01:42:07.280] then it just came up with this really [01:42:08.719] insanely good plug-in architecture again [01:42:10.560] by like being inspired by the people. [01:42:12.560] And then that’s why, you know, I have [01:42:14.159] this feeling and then I I came up with [01:42:16.159] Yeah, that’s what I built last night [01:42:17.440] basically. I mean, sounds like this is [01:42:19.360] going to be completely different like [01:42:21.199] you know PRs are are like in your [01:42:23.199] workflow, you’re not using PRs that much [01:42:25.440] as CI is just different. It’s it’s tests [01:42:27.920] are still doing there’s an more [01:42:29.360] important feedback loop. you’re using [01:42:30.719] things more like weaving instead of [01:42:32.960] code. You’re talking more about [01:42:34.239] architecture and taste. It sounds like a [01:42:36.960] pretty big shift to me. Now, in this [01:42:38.960] world, let’s assume you get to the point [01:42:40.719] where you’re going to you’re hire the [01:42:42.000] next one and two and three developers on [01:42:44.000] this team. Let’s imagine that this thing [01:42:45.520] gets a life of its own and you know, [01:42:47.360] maybe it’s a business as well. What [01:42:49.920] skills would you look for? And what [01:42:51.840] would you advise a an experienced [01:42:54.239] engineer right now? Who would you be [01:42:56.080] excited to work with? kind of either [01:42:57.920] expertise [01:43:00.000] projects would you look for for someone [01:43:01.920] who sounds like who can work in this way [01:43:03.840] or can pick up this way of working? [01:43:05.760] » Someone who’s active on GitHub and does [01:43:07.760] open source and and someone where I have [01:43:10.719] the feeling that they they love the the [01:43:13.760] game. The way you learn in this new [01:43:16.480] world is by like trying stuff and it [01:43:20.320] very much feels like a game where you [01:43:22.960] improve your skills as you get better [01:43:24.719] like like a like a music instrument. you [01:43:26.639] have to like keep trying and I and I [01:43:29.040] that I’m now this efficient and this [01:43:30.960] fast and I don’t know like I I think [01:43:33.119] like the other day I had like 600 [01:43:34.719] commits in a single day. this is like [01:43:36.320] completely nuts and it works like it’s [01:43:39.840] not it’s not like there was there was a [01:43:41.840] somebody did a code review and said like [01:43:43.040] oh this is actually not slop and like [01:43:45.199] yeah uh [01:43:46.400] » there’s a lot of skill that went into [01:43:47.840] » yeah it’s it’s it’s it’s a lot of hard [01:43:49.679] work but you need to play with the [01:43:53.280] technology and learn and then you will [01:43:55.760] get in the beginning it might be [01:43:57.199] frustrating I don’t know kind of like [01:43:59.040] you you know you start going to the gym [01:44:00.719] it’s going to suck it’s going to be [01:44:02.480] painful [01:44:05.040] but very quickly you like you get better [01:44:07.040] and you and you feel that that your [01:44:09.119] workflow gets faster and then you feel [01:44:10.960] the improvements and then you slowly get [01:44:12.400] hooked. So So but yeah, play and and [01:44:17.520] yeah, also work hard. [01:44:19.520] » Yeah, I I mean you’re putting in more [01:44:21.360] hours into this thing. [01:44:22.639] » I’ve never right now I’ve I’ve never I [01:44:25.199] never worked more even even when I had [01:44:28.239] my company. I I’ve never worked so hard [01:44:30.320] as I do now. Not because I have to, but [01:44:33.040] because it’s so addictive and so much [01:44:34.960] fun, but also because right now I’m like [01:44:38.239] using the moment where where this has [01:44:40.000] traction and and there’s a lot of people [01:44:41.920] who like are pushing me. Um, and I I [01:44:45.199] feel could it be cuz I think you have [01:44:47.520] pretty good business sense. Not not not [01:44:49.199] necessarily in the business business, [01:44:50.320] but seeing when there’s an opportunity [01:44:51.760] there is an opening for to get traction, [01:44:54.239] right? Like what you said for people to [01:44:56.080] work in the open right now it seems [01:44:58.639] novel. You’re telling me you don’t think [01:45:00.480] you could, even if you wanted to hire, [01:45:02.000] you don’t think you could hire people [01:45:03.360] cuz there’s not many people working in [01:45:05.199] the open, clearly using these things. [01:45:08.000] Fast forward 2 or 3 years from now, once [01:45:10.480] a bunch of people start to do it and [01:45:11.840] everyone does it, it’s kind of like moot [01:45:14.480] a little bit. So there there’s also that [01:45:16.159] a group that a lot of lot of people are [01:45:18.239] worried about is the the new grads, the [01:45:20.159] the people with with no experience who [01:45:21.840] are either in school or about to [01:45:23.280] graduate because of course you’ve been [01:45:25.119] an experienced engineer by the time this [01:45:26.800] came around. you know, you have a lot of [01:45:28.159] things to build on. Putting that [01:45:30.080] yourself into shoes of of someone like [01:45:32.320] that and knowing what you know now, what [01:45:34.239] would you recommend of of activities [01:45:36.400] that they do, things that they build or [01:45:39.119] try and you know like do would you [01:45:41.600] recommend on focusing on the [01:45:43.119] fundamentals of software engineering on [01:45:45.440] this on the agents kind of mixing the [01:45:47.520] two? [01:45:48.080] » I would I would recommend them to be [01:45:49.840] infinitely curious. Yes, it’s going to [01:45:51.760] be harder to enter this market. It’s [01:45:53.600] it’s absolutely going to be harder and [01:45:56.159] you need to build things to like gain [01:45:58.639] experience. I don’t think you need to [01:46:00.480] write a lot of code but you need to I [01:46:03.199] don’t know you know there’s a lot of [01:46:04.480] open source that is complex that you can [01:46:06.239] like check out and learn and you have an [01:46:08.480] infinitely patient machine that is able [01:46:10.560] to explain you all the things so you can [01:46:12.239] ask you can ask all questions why why [01:46:15.920] was it built this way to like gain [01:46:17.840] system understanding but it requires [01:46:19.440] real curiosity and I don’t think [01:46:21.360] universities right now are set up to [01:46:23.040] teach you that in a in in a really good [01:46:24.719] way this is usually something you [01:46:26.000] discover through pain it’s it’s not [01:46:28.400] going to be easy for new people, but but [01:46:29.840] they have they have the benefit that [01:46:31.360] they are not tainted by all the [01:46:33.760] experience like they they they use [01:46:36.639] agents in ways that we don’t even think [01:46:39.520] about again because they don’t know that [01:46:41.520] it doesn’t work and by then it probably [01:46:43.360] does [01:46:43.920] » and also their friends use it all all [01:46:45.360] the time [01:46:45.600] » especially like like the other day I I [01:46:48.000] have this little menu bar app for cost [01:46:50.239] tracking on on on on cursor and and and [01:46:53.760] cloud code and everything and it was a [01:46:55.920] bit slow. So I I was like, “Okay, let’s [01:46:59.199] do let’s do performance measurement.” [01:47:00.880] And and my old way is like I open [01:47:02.639] instruments and click around. And it [01:47:04.639] would just call and do everything by the [01:47:06.159] terminal. It blew me away. I was like I [01:47:08.639] didn’t even have to open instruments [01:47:09.760] anymore. And it just like made it [01:47:11.679] faster. And then did like some [01:47:13.040] recommendations. I’m like all of that [01:47:14.239] sounds good. Do it. [01:47:15.280] » Yeah. I I think we might be [01:47:16.480] underestimating both like how [01:47:18.719] resourceful people entering tech have [01:47:21.760] been also how young people if I think [01:47:24.480] about some of the great companies [01:47:25.920] started they were very young and [01:47:27.280] obviously very inexperienced but had a [01:47:28.960] lot of passion so so that’s there as [01:47:30.719] well yeah it’s it’s a big opportunity I [01:47:33.119] I’m especially taking in like it’s I [01:47:35.760] have to take it in like but all the [01:47:37.280] things you mentioned about just your way [01:47:39.440] you know weaving code in not caring [01:47:41.360] about PR not caring about code reviews [01:47:43.360] it’s a big change because these things [01:47:44.719] have been us with like again for like 15 [01:47:47.679] plus years of your life they have been [01:47:49.840] in fact you know a lot of it has been [01:47:51.280] kind of you know solid building blocks [01:47:53.280] of PSPDF kit right yeah we need we need [01:47:55.920] a lot of new things even you know even [01:47:58.239] when I get a PR I’m actually more [01:48:00.960] interested in the prompts than in the [01:48:02.639] code I I ask people to please add the [01:48:06.320] prompts and some do and I I read the [01:48:09.199] prompts more than I read the code [01:48:11.440] because to me this is this is a way [01:48:13.199] higher signal of like how did you get to [01:48:15.520] the solution what did you actually ask [01:48:17.920] how much steering was involved then the [01:48:20.239] actual out to me this gives me more idea [01:48:22.560] about the output I don’t have to read [01:48:23.760] the code or like if someone wants a [01:48:26.159] feature I ask for a prompt request like [01:48:28.960] write it up really well because then I [01:48:30.639] can just point my agent to the issue and [01:48:32.000] it will build it so because because the [01:48:34.159] the work is the thinking about how it [01:48:36.320] should work and what the details are and [01:48:38.159] if someone else does it for me I can [01:48:39.840] literally say build and it will work uh [01:48:42.239] and I and then yeah of course I think [01:48:44.080] about But it will will re really or if [01:48:47.040] someone sends me a PR that are just a [01:48:49.440] few fixes. I told people please don’t do [01:48:51.760] that. It takes me 10 times more time to [01:48:53.760] to review that and just type in fix in [01:48:56.560] in in codex and wait a few minutes. So [01:48:59.119] there’s there like all these insane [01:49:00.639] things that are like would have been [01:49:01.760] completely different [01:49:03.040] » even even at the beginning. uh now we [01:49:05.840] have a oneliner but for the last two [01:49:08.320] weeks [01:49:09.920] like when it got really traction I told [01:49:11.360] people to just just point an agent at [01:49:13.600] the repository to configure it so so I [01:49:16.400] didn’t had I didn’t have an onboarding [01:49:17.679] but we had cloud codebased onboarding [01:49:20.159] where claude would like check out the G [01:49:21.679] repository read the things and write the [01:49:23.280] configuration for those people and set [01:49:24.719] everything up so it works like set up a [01:49:26.560] launch agent that didn’t have the manual [01:49:28.000] setup because it was not a priority [01:49:29.920] anymore because because agents can now [01:49:32.239] do that for you and the and the and [01:49:33.520] since the the product was built by [01:49:35.360] agents. They structured it exactly the [01:49:37.280] way agents expect things to be named and [01:49:39.920] things. There’s certain ways that are [01:49:42.400] encoded in in in the in the weights how [01:49:45.760] they expect things to be named and [01:49:47.600] everything exactly like how they expect. [01:49:50.480] So they are really good at navigating [01:49:52.080] their product. So it was not a priority [01:49:54.159] to work on onboarding as much. I mean [01:49:56.719] eventually I wanted this magical [01:49:57.920] experience but it was more important to [01:49:59.600] like make sure that your message arrives [01:50:01.119] and that things don’t explode. So [01:50:02.880] onboarding was literally like type this [01:50:04.960] prompt into your agent. Um which is [01:50:08.639] would have been mind-blowing even a year [01:50:10.159] ago. [01:50:10.800] » All right. So to to wrap up, we’ll do [01:50:12.880] some rapid questions. So I’ll just ask [01:50:14.400] and you tell me what’s on your mind. [01:50:16.400] What’s a tool that is not a CLI, not an [01:50:19.440] ID, it can be physical that you you use [01:50:22.719] you like you would recommend? I buy a [01:50:24.639] lot of gadgets and many of them dust [01:50:28.400] away. But there’s this one kind of [01:50:32.960] crappy thing that was not expensive that [01:50:34.960] gives me almost unlimited amount of joy. [01:50:37.520] And it’s like this Android powered photo [01:50:40.239] stand where I can upload pictures and [01:50:42.480] where like it has an email address and [01:50:43.920] friends can send pictures and it will [01:50:45.360] just show pictures. And I and I put a [01:50:48.320] few a few in in my house again. And I [01:50:51.280] mean even the animations are a little [01:50:52.480] croppy because it runs nward and it’s [01:50:54.080] terrible from the technology but but it [01:50:56.159] gives me infinite number of joy because [01:50:57.520] it is low tech that just shows pictures [01:51:00.400] and reminds me of happy moments in my [01:51:02.239] life and it was like 200 bucks and I [01:51:05.280] don’t know to be honest that gets me [01:51:07.760] more joy than the latest iPhone. I [01:51:09.280] bought the iPhone 17. I still haven’t [01:51:11.119] unpacked it because I just in my head I [01:51:13.840] wanted it but then I couldn’t get around [01:51:15.119] to it because it’s just a hassle to like [01:51:16.639] move the Sims around and I said like [01:51:19.040] basically no no no no feelable benefit [01:51:22.239] but like this little this little device [01:51:24.159] gives me infinite joy. [01:51:25.679] » What’s something that helps you recharge [01:51:27.520] outside of tech like just or just moving [01:51:29.840] away from from tech and screens? What [01:51:32.320] keeps me sane, even if I work crazy [01:51:35.600] hours, is going to the gym, even better, [01:51:40.560] working with a a coach and leaving my [01:51:43.599] phone in the locker. And then I really [01:51:46.560] have like a good hour where [01:51:50.239] I just feel me and I and I’m like in the [01:51:54.639] moment and I’m not distracted by [01:51:58.159] notifications or tempted to like touch [01:52:02.159] my phone like we need more time for [01:52:04.800] this. Or even sometimes I I I go for a [01:52:07.199] walk and I I leave my phone at home and [01:52:10.239] it feels very scary. It’s almost like a [01:52:12.880] it’s almost like an organ now, you know? [01:52:14.719] It’s like your your body knows where it [01:52:16.800] is and if you don’t know where your [01:52:17.760] phone is, you freak out. [01:52:18.880] » I I’m having I’m having a blast. [01:52:20.639] » Love it. This is great, Pete. Thanks [01:52:22.560] very much. Well, this was a super [01:52:24.080] interesting conversation [music] [01:52:25.360] and it feels to me that how one person [01:52:27.040] teams built software with AI is already [01:52:29.119] completely different [music] to what [01:52:30.560] we’ve been used to. One thing that [01:52:32.719] really caught my attention is how Peter [01:52:34.480] thinks in prompts and not pull requests [01:52:37.119] and how he weaves in the code and no [01:52:40.000] longer merges the code. He doesn’t find [01:52:41.760] poll requests all that useful and would [01:52:43.599] rather get prompt [music] suggestions [01:52:44.880] even on GitHub. I do think we might have [01:52:47.440] to rethink the importance of prompts or [01:52:49.520] at the very least sharing of prompts in [01:52:51.199] software development the more we use AI [01:52:53.199] and AI agents. Another thing that struck [01:52:55.199] with me was Peter’s emphasizing how [01:52:56.960] important is to close the loop. As Peter [01:52:59.119] explained, the reason AI is so good at [01:53:00.800] coding but [music] often mediocre at [01:53:02.239] writing is because you can validate [01:53:04.080] code. You can compile it, run tests, [01:53:06.080] check the output. So, the secret to [01:53:08.000] making AI system development work well [01:53:09.760] is to design your system to close the [01:53:11.440] loop and have the AI run the test. [01:53:13.599] Finally, I was wondering if Peter is in [01:53:15.360] the flow as much even when he’s not [01:53:17.280] writing code. Turns out he is. He’s in [01:53:19.199] the flow more than ever. And he told me [01:53:21.360] that it’s mentally more exhausting to [01:53:22.880] juggle several AI agents in parallel [01:53:24.800] than it was just to write code. My [01:53:26.639] feeling is that someone who was a great [01:53:28.880] developer without AI can be an excellent [01:53:31.360] kind of code architecture or carding [01:53:33.760] person with AI. This is just a gut [01:53:35.520] feeling I’ve had so far, but Peter seems [01:53:37.520] to prove it. Finally, we should note [01:53:39.040] that Clawbot is more of a YOLO project [01:53:40.960] than most production apps. So, take the [01:53:43.199] approaches that we discussed with a [01:53:44.800] grain of salt. At the same time, I do [01:53:47.199] think that a lot of what Peter does [01:53:48.480] could well spread to building production [01:53:50.239] code, except review and validation will [01:53:52.239] become a much more important step [01:53:53.693] [music] in those projects. If you enjoy [01:53:55.520] this podcast, please do subscribe on [01:53:57.040] your favorite podcast platform and on [01:53:58.639] YouTube. A special thank you if you also [01:54:00.480] leave a rating on the show. Thanks and [01:54:02.480] see you in the next one.