HomeVideos

The creator of Clawd: "I ship code I don't read"

Now Playing

The creator of Clawd: "I ship code I don't read"

Transcript

3132 segments

0:00

What if you could merge 600 commits on a

0:02

single day and none of it was slopp?

0:04

This is what today's guest, Peter

0:05

Stainberger, the creator of Claudebot,

0:08

claims he's doing. Peter is a standout

0:10

developer who built PSP PDF kit, the PDF

0:12

framework used on more than 1 billion

0:14

devices. Then he burned out, sold his

0:16

shares, and disappeared from tech for 3

0:18

years. This year, he came back and how

0:20

he builds and what he's doing now looks

0:22

nothing like traditional software

0:23

development. In today's episode, we

0:25

cover why he no longer reads most of the

0:27

code he ships, and why that's not as

0:29

crazy as it sounds. How he is building

0:31

Clawbot, his wildly popular personal

0:34

assistant project, which feels like the

0:35

future of Siri, the closing the loop

0:37

principle that separates effective AI

0:39

assistant coding from frustrating vibe

0:41

coding. Why he says code reviews are

0:43

dead and PR should be called prompt

0:45

requests, and many more. If you're

0:47

interested in how the software engine

0:48

workflow could change in the coming

0:49

years thanks to AI, this episode is for

0:51

you. This episode is presented by

0:53

Statsig, the unified platform for flags,

0:55

analytics experiments, and more. Check

0:57

out the show notes to learn more about

0:58

them, the pragmatic summit on the 11th

1:00

February in San Francisco that I'm

1:02

hosting with them, and our other season

1:04

sponsors. Right, Pete, welcome to the

1:06

podcast.

1:07

>> Thanks for having me, Gay.

1:08

>> It is awesome to meet you in in person.

1:11

>> Yeah, and I almost messed it up.

1:14

>> Yeah. What what what what happened? You

1:16

lost track of time. Does that happen

1:18

often? And how how so? Um, not usually.

1:21

Not usually. Um, this is an interesting

1:24

time for me cuz I cuz my latest project

1:26

is is blowing up. Cloud, right?

1:29

>> Clawbot. Yeah,

1:30

>> Cloudbot.

1:31

>> I'm struggling a bit to get enough

1:32

sleep, but it's it's it's interesting. I

1:35

never I never had a community blowing up

1:37

so fast and it's just incredibly fun to

1:39

work with.

1:39

>> So, before we we get into Clubbot and

1:41

all the fun stuff you're doing, I wanted

1:43

to rewind all the way way back. You

1:46

create a PSPDF kit which is used I think

1:49

on more than 1 billion devices users. If

1:52

if you see a PDF render you probably see

1:54

that. But even before that how did you

1:58

get into tech? Oh my god. How did you

2:01

get into tech? So I'm from rural

2:04

Austria. Um always more being the

2:07

introvert.

2:08

So eventually I we always had like

2:11

summer guests and one of them one of

2:13

them was a was a computer nerd and then

2:15

I kind of got hooked with with like the

2:17

machine he had and begged my mom to buy

2:20

me one

2:22

and ever since then I this was in high

2:24

school or so.

2:25

>> I guess I was 14.

2:27

>> Yeah. And ever since I started

2:29

tinkering, like I can remember the

2:30

earliest thing was like I stole an old

2:33

DOS game from my school and then wrote a

2:36

copy protection for the floppy disc so I

2:38

could sell it.

2:40

It took like 2 minutes to load. I was

2:42

just always tinkering. Also playing a

2:43

lot of computer games of course, but

2:46

like building stuff almost feels like

2:49

playing a computer game. Like definitely

2:51

right now it feels better than Factorio.

2:54

Oh, when I started out, I I I I read

2:56

like

2:58

the equivalent of bash scripts for

2:59

Windows and then I did like websites.

3:02

So, I guess a little bit of JavaScript,

3:05

uh, even though I had no clue what I was

3:06

doing. And then the actual first

3:10

language where I I had to learn how to

3:13

build things is when I started

3:14

university.

3:16

And I never met my dad. And I come from

3:19

a from a poor family. So, I always had

3:23

to work. like I had to had to finance my

3:25

own studies, right? So when other people

3:27

were were having holiday, I just worked

3:32

full-time at a company. So the the first

3:35

real job I had was was in Vienna was

3:38

supposed to be 1 months and then they

3:39

kept me for 6 months. It was just a

3:41

bridge between military and and my

3:43

university. And I kept working there for

3:45

like I think 5 years. And I remember the

3:48

first day they they gave me this huge

3:50

book. maybe that huge and say Microsoft

3:53

MFC. Um I still have nightmares and I

3:56

got I got like I was like this is

3:59

terrible like for for the next win I

4:01

just I just silently used net I just

4:04

didn't tell them and like a few months

4:05

in I just told them yeah but the text I

4:07

I did a few modernizations but then it

4:09

was too late. I did this a few times in

4:11

this company. I don't know why they kept

4:13

me because because my worked. So uh

4:18

I did net and actually I actually

4:20

actually dig it.NET 2.0 had like

4:22

generics. It took insanely long for the

4:25

application to to to launch because like

4:27

everything was compiled at first start

4:29

and like your hard disk was like

4:32

if you remember

4:33

>> so so you you how did you stumble into

4:35

both iOS and where did the idea from

4:37

PSPDF

4:39

>> come from?

4:40

>> Not even yeah the first one the first

4:41

one wasn't even available in in in

4:43

Austria. That's true. Yeah.

4:44

>> A little time goes went on and I was at

4:47

university and a friend showed me the

4:49

iPhone and I I think I I touched it for

4:52

a minute and then immediately bought one

4:55

like like this like it it clicked when I

4:59

felt it and and to me this was like a

5:04

holy f moment cuz it was just like so

5:07

different and so much better. So I got I

5:09

got one. I was still not thinking about

5:12

building for it, you know. That was that

5:13

was

5:14

>> when was this 2009 10 something like

5:16

that.

5:16

>> Yeah. Yeah. And then I I used their

5:18

browser. I I can see the story. I was I

5:21

was literally driving in the subway.

5:23

>> Mhm.

5:24

>> And by the time I was using a gay dating

5:26

app and this was iPhone OS 2.

5:28

>> Yeah.

5:29

>> So So I I

5:30

>> long time ago

5:31

>> I typed this long message. I pressed

5:32

send and we were just going into a

5:34

tunnel and the JavaScript disabled the

5:36

send button and then an error message

5:38

came but there was no copy paste. There

5:41

was no screenshot. So I was just like

5:43

and I couldn't scroll anymore because

5:44

like scrolling was disabled. So like

5:46

this long message was like a little bit

5:48

emotional was gone and I was so mad. I

5:52

was so mad. I'm like what the hell? I

5:55

went home and I downloaded Xcode. That's

5:57

that's where that's where the window

5:59

came and I was like where is the ID?

6:02

So it was like like I was like this is

6:05

unacceptable. I basically hacked the

6:06

website. I used regular expressions to

6:08

like download uh to parse the HTML which

6:11

is like totally not something you should

6:12

do and I built an app and I used I used

6:17

iPhone OS3 beta with like core data in

6:20

beta regaxit light. I used a hacked

6:24

version of GCC that backported the

6:25

blocks compiler so I could use blocks in

6:27

iPhone OS3. It took me quite a while

6:30

until anything worked because like I had

6:31

no idea what I was doing and I was like

6:33

using all kind of like beta tech but

6:35

eventually I I got it to work and I I I

6:38

wrote that company was like hey I'm

6:40

making an app. What do you think about

6:41

it? Got no response of course. So I was

6:44

like let's just put it in the app store.

6:46

>> And this was for the dating app right?

6:48

>> Yeah.

6:48

>> So you just like you know you looked at

6:50

you saw their APIs you could just like

6:52

easily like build a client on top

6:53

>> API. It was HTML.

6:55

>> Oh

6:55

>> I was I was just literally parsing HTML.

6:58

>> Oh. So, so you kind of parse the HTML,

7:00

kind of turn it into your own, you know,

7:01

like you use it as an API. Oh, clever. I

7:04

mean, this was back in the day where no

7:05

one thought this this would happen, but

7:08

I made I put it in the app store. I

7:10

charged five bucks for it and I made

7:13

like 10k in the first month.

7:16

And I had no clue what I was doing. So,

7:18

and there was like so many complex tech

7:20

stuff. This was very early on where

7:21

there was a lot of weird forums on

7:22

Apple.

7:23

>> So, I just put in the the bank account

7:25

of my grandpa. And then one day my

7:28

grandpa called me, "Yeah, something is

7:29

weird. Like I got this huge payment from

7:31

Apple." I'm like, "This is mine. This is

7:32

mine. Don't touch it." But the the funny

7:36

thing was when I this blew off and I

7:39

remember I was in a club one day and

7:41

like I saw someone using my app and I

7:43

was so proud and I wanted to like tap

7:44

him on the shoulder and say I built this

7:46

and I thought like that would be really

7:47

weird. So I didn't. And then I I I went

7:50

to the company I worked for for 5 years

7:52

and told him like I'm going to pursue

7:54

this. This is this is really exciting.

7:56

And my boss was like mocking me.

8:00

>> Oh, really?

8:01

>> They're like, "Oh, you're making a

8:02

mistake. This is a fat. This will not

8:04

go." Blah, blah, blah, blah, blah. And

8:06

you know what that got me? That's what

8:08

you call a chip on your shoulder. I'm

8:10

like,

8:11

>> you know, one day I'm going to I'm going

8:13

to have a company that that's worth more

8:15

money than yours. Well, it took me eight

8:17

years. So, I I got hooked. Like, I I

8:20

worked

8:22

I I'm I'm a little bit of an addictive

8:23

personality. So which you see again

8:26

right now. But I I worked a lot on this

8:28

app. I learned I learned in in high

8:31

speed and this was also the time where I

8:33

started Twitter and that was usually

8:36

hugely influential for my career. I made

8:39

this app actually quite good and then

8:40

one day I was at a party at at 3:00 a.m.

8:45

um slightly intoxicated and I got a call

8:48

from a US number. The guy on the phone

8:50

was like, "Yeah, hello. This is John

8:52

from Apple. Yeah, there's a problem with

8:55

your application. Like some people

8:56

reported pictures and that was it. That

8:58

was the end of my app. Um,

9:02

>> it was good until it lasted

9:03

>> and I was just I just quit my my job and

9:06

was like, well,

9:09

f you Apple.

9:10

>> I did freelance work. I was at dubdub.

9:14

I was introduced to

9:16

>> dubdubdubc.

9:17

>> Yes. Sorry for the insider terms. I was

9:20

introduced to someone as one of the best

9:22

iOS developers in Austria at a bar at 2

9:25

a.m. in San Francisco and then basically

9:28

got a job in the US and then I moved to

9:30

the US for a while and then I I went to

9:32

the Nokia development days. This is all

9:35

like stone age by now. My god. And then

9:38

someone came up to me and said, "Yeah,

9:40

they built this app somewhere in Eastern

9:42

Europe and it works but it crashes

9:46

sometimes and it was like was like a

9:48

magazine viewer, right? This was back

9:49

when the iPad just came out and Steve

9:52

Jobs hit that like this is the savior.

9:55

So everybody was building magazine apps

9:57

and I was like that sounds like an

10:00

interesting short-term gig. And I I was

10:03

like okay I I'll I'll I'll help you out.

10:06

And I opened the app and it was like oh

10:09

the worst code I've

10:11

ever seen in my life. It was literally

10:14

one file with like thousands of lines

10:17

>> of Objective C. Yes. Where they used

10:21

windows as tabs. I I didn't know this

10:23

worked. I was surprised this worked at

10:24

all, but it felt like a a house of

10:27

cards. And I I tried to I tried to

10:29

surgically fix things, but like as soon

10:31

as you would touch something, something

10:32

else would break. Um so I got it I got

10:35

it somewhat stabilized and I told him

10:36

like, "Look, this is this is like

10:38

madness. Um I'm going to rewite this for

10:40

you." Yeah. But it took half a year. I'm

10:42

going to do it in in a month. Well, it

10:44

took me two months. Um, I wasn't that

10:46

far off

10:48

and and then here I was working on a on

10:50

a PDF viewer. You know, on every

10:53

technical problem, the domain is is I

10:57

wouldn't say like completely

10:58

unimportant, but you can always find

11:02

interesting problems in every domain.

11:04

And there was a lot of interesting

11:05

problems because you had a C call that

11:07

would render a PDF that would maybe take

11:10

30 megabytes, but the whole system had

11:12

64 megabytes. So if you're not very

11:14

smart and like very careful what you do

11:17

in the background and when the OS would

11:20

just kill you. I got really fixated at

11:22

like making it good like when the

11:23

rotation is like that the page would

11:25

like animate and so so you know I I like

11:27

I like those details. I spent way too

11:29

much time on that. That's why I took two

11:30

months instead of one. But the end

11:32

result was it's good. Um and then I I I

11:35

worked with them for a while and then a

11:37

friend texted me up. He's like, "Yeah,

11:38

I'm working on this magazine app and

11:39

it's really hard." I'm like, "Yeah, no

11:41

way it's hard. I know." Oh, like I did

11:43

it.

11:43

>> You just built one.

11:44

>> And and he was like, "Can you can you

11:47

can you get me the code?" I'm like,

11:48

"Sure." So, I sold him like I extracted

11:51

the the part that was PDF from from this

11:54

magazine app. And I I made sure I made

11:58

sure like the other person was okay. And

12:00

then I sold him that. I was like, "Well,

12:02

if he's interested in that, why let's

12:04

not try to sell it to other people." I

12:07

used a a WordPress template and

12:10

mutilated it to run on GitHub pages and

12:13

then and then when you did the the fast

12:15

lane flow at the end you got a Dropbox

12:17

link to my personal Dropbox with a

12:18

source code sip and I put this on one

12:20

afternoon and I I tweeted it and and

12:23

then in that week three people bought it

12:25

and it was like I guess 200 bucks but

12:29

back then and for me this was like

12:30

amazing and not only I got like three

12:33

people who just bought it and like 10

12:34

emails who comp 10 people who complained

12:36

about

12:37

uh because they wanted it but it didn't

12:40

have the features they wanted. You know,

12:41

it's like I got nerd sniped. I was like,

12:43

"Oh, I didn't have text selection." Oh,

12:45

how hard can it be? 3 months later. Oh,

12:48

yeah. It's really hard.

12:50

Text selection in a PDF specifically.

12:52

>> Yeah. Yeah. Yeah. Yeah. You know the

12:54

saying the saying like uh the companies

12:56

are built by young people because they

12:58

don't know how hard it is.

12:59

>> Yes.

12:59

>> Yeah. Yeah. I had no idea what an insane

13:01

madness this file format is. Peter was

13:04

talking about how some problems look

13:06

deceptively simple. PDF rendering is a

13:08

good example. You look at it and think,

13:10

how hard could it be? And then you spend

13:12

months on edge cases that you didn't

13:14

even know existed. This looks easy until

13:16

you build it pattern shows up in other

13:18

places, too. Internal tooling for

13:20

feature flags and experimentation is a

13:22

classic example. Teams often

13:23

underestimate how much work it is to

13:25

build infrastructure around these tools.

13:27

There's a reason big tech companies like

13:28

Uber invested years into building

13:30

internal experimentation and feature

13:32

flagging systems. Which brings me to

13:34

Static, our presenting partner for the

13:36

season. Static gives you the complete

13:37

toolkit without building it yourself.

13:39

You get feature flags, experimentation,

13:41

and product analytics all in one

13:43

platform tied to the same underlying

13:45

user assignments and data. In practice,

13:47

it looks like this. You roll out a

13:49

change to 1% of users first. You see how

13:52

it moves the top pipeline metrics you

13:53

care about, conversion, retention,

13:56

whatever is relevant for the release. If

13:58

something goes wrong, instant roll back.

14:00

If it's working, you can confidently

14:02

scale it up. Companies like Notion went

14:04

from singledigit experiments per quarter

14:06

to over 300 experiments with static.

14:09

They shipped over 600 features behind

14:11

feature flags, moving fast while

14:12

protecting against metrics regression.

14:14

Microsoft, Atlassian, and Brex use

14:16

static for the same reason. It's the

14:18

infrastructure that enables both speed

14:20

and reliability at scale. Static has a

14:22

generous free tier to get started and

14:24

pro pricricing for teams starts at $150

14:26

per month. To learn more and get a

14:27

30-day enterprise trial, go to

14:29

stats.com/pragmatic.

14:31

And now, let's get back to Peter and why

14:33

rendering PDFs was a surprisingly hard

14:35

problem.

14:37

But now, I remember there was a few

14:39

weeks ago someone emailed me. They did

14:41

something PDF and they wanted my help.

14:43

And I just wrote them like, I'm sorry,

14:44

like I I did my deed. I I know more

14:46

about PDF than any any sane human person

14:49

ever should know. And I went I went to

14:51

therapy. Good luck.

14:54

But that took off and and I just I while

14:56

I was waiting for my visa, I I worked on

14:59

this project and and it just kept on

15:03

more people kept on buying it. And you

15:05

know, it was like it was like summer. I

15:07

was I was like lying at the lake and got

15:09

another email that someone bought it for

15:11

600 bucks, 800 bucks. I just up the

15:13

prices as it had more features. And by

15:15

the time I I went to San Francisco to

15:18

work at this company, it already made

15:21

more than what I made there. But my

15:23

whole life was I still I still thought

15:26

like I have to be there, you know.

15:28

>> So I I did it. And also interestingly at

15:31

this company, I had to

15:32

>> So what would you say that you moved to

15:33

San Francisco?

15:34

>> Yeah. And and of course also it ended up

15:36

being something where I had to build

15:38

build something with my framework at

15:39

that company too. But you know startups

15:41

are not like 8 hours. They're a little

15:43

more. And my personal project was also a

15:46

little more. So my sleep was a little

15:49

less. And then eventually after 3 months

15:53

uh Sabine my manager came over and said

15:56

this Peter are you okay? And they gave

15:59

me a choice uh to either keep working at

16:02

this company and drop my project or or

16:04

vice versa. And I had one week to

16:07

decide. The counter was one week to

16:10

stay there or leave the country because

16:12

I was on a on a complicated visa.

16:16

And well, the decision was quite easy.

16:18

It's like, yeah, I want to do my own

16:20

thing. And then and

16:21

>> and at this point, it was already taking

16:23

off. You already saw that this is

16:25

there's a big business here. It it will

16:27

probably pay you as much as your US job

16:30

would have paid. Ah,

16:31

>> it was never money driven either.

16:33

>> It was more about what what were you

16:35

driven by? I want to make stuff that

16:39

other people find amazing. Like I I I

16:43

love tweaking the details. I love those

16:45

little delights. It wasn't even that the

16:47

space there were competitors in the

16:48

space. But my angle was always like I

16:51

built something as if Apple would have

16:53

built it like like with with like all

16:55

the love and care and and polish and and

16:59

those little delights that

17:01

a lot of people in the industry don't

17:03

get. Uh, so even though we had

17:05

competitors that had way more features

17:07

and were around way longer, my company

17:10

was more successful and my product was

17:11

more successful cuz developers tried the

17:15

the different ones and mine just felt

17:17

the best. I think software is all about

17:19

about how it feels much more so than the

17:21

than the feature set. Like why did we

17:23

buy Apple stuff? It has more features

17:24

than than Windows. Um, but it it feels

17:28

better. So, how did you go from like you

17:31

you left this company and you were

17:34

building this PDF component that started

17:37

to sell. At what point did you hire the

17:40

first person realizing, okay, there's

17:42

something more to this? when I went back

17:44

to Vienna then I was like okay I have to

17:47

go all in and that's where I I started

17:49

working with freelancers a little bit

17:51

and way too late to be honest also like

17:54

I I could have could have hired much

17:55

earlier but you know you know it's it's

17:58

it's a big step and that's kind of where

18:00

it it started having a life of its own

18:01

and I spent

18:03

pretty much 13 years of my career

18:07

um building this product with this weird

18:08

name that I never changed because I took

18:10

me like I thought like five minutes

18:11

about it and then stock PSPDF kit.

18:13

>> PSPDF.

18:14

>> They finally they finally did a rename,

18:16

but I wouldn't have I wouldn't have

18:17

renamed it. But now it it

18:19

>> it's it's a mouthful, but it's very

18:21

unique.

18:22

>> Well, you get it if you do Objective C

18:24

because it's just a name space.

18:25

>> Yes.

18:26

>> Um and by by the time it it made perfect

18:28

sense, my marketing my strategy for

18:31

marketing was always I only care about

18:33

the developer. Like I know like upper

18:36

management does the decisions but if I

18:39

can convince the people inside the

18:41

company they all do the marketing and

18:42

lobbying for me that worked really well.

18:44

We never did like cold cold emails or

18:47

aggressive. It was all inbound. All we

18:49

did was like make good stuff and write

18:53

insertful technical blog posts that and

18:57

I went to a lot of conferences like the

18:59

for me important it was okay if if

19:02

people understand that the people who

19:04

built this product are like know what

19:06

they do and and love what they do that

19:09

reflects on the product and that that

19:12

worked really well.

19:13

>> And then what was the text type behind

19:15

PSPDF kit? Was it objective C? Was it

19:17

later swift? Were there other

19:18

technologies like C or or anything else?

19:20

>> We eventually expanded to to all the

19:23

platforms. Um big shift was the switch

19:26

out renderer which was and is still

19:29

quite buggy to like a big C++ one that

19:32

when then we used across all the

19:34

frameworks. Um we we were we were really

19:37

early with web. We were one of the first

19:39

PDF frameworks that ran in web assembly.

19:42

And I I did the most clever thing that

19:44

it was in the very early days when Web

19:45

Assembly was just taking off and we

19:47

built a benchmark and that benchmark was

19:49

eventually used by by Google and

19:51

Microsoft and Apple and I basically had

19:55

all these companies like working really

19:56

hard on making my renderer faster cuz

19:58

cuz they used their benchmark as one of

20:00

their benchmarks and the benchmark was

20:01

just like rendering our stuff with our

20:03

>> Ah nice. And then a as as a company

20:06

grew, one thing that I remember about

20:07

PSPDF kit, you did write a lot of blogs

20:10

and one blog in 2019, so this was about

20:13

like I think you know year nine or 10 in

20:15

the company. It was about how the team

20:18

worked and you you mentioned things

20:20

there like every feature starts with a

20:23

proposal. You mentioned that you are

20:25

conservative because it's a it's a big

20:26

API that that people use. You want to be

20:28

careful things like the boy scout rule

20:31

such a factor. How how did you kind of

20:33

put together the the culture of of this

20:36

now this team which was now closer to 30

20:38

or 60 people?

20:39

>> We were actually 70 when when I sold my

20:42

shares and now it's almost 200. And I I

20:44

knew right from the get- go it's like

20:46

I'm not going to find the people that I

20:48

need in Vienna. So it was always just

20:50

like remote first and eventually we we

20:54

landed up with some kind of hybrid model

20:56

uh which made things a bit more

20:58

complicated. I learned a whole lot on

21:00

the go. Like I I never had the urge to

21:03

be CEO. I always was coding. I I brought

21:08

people in to people that that helped me

21:11

a lot with other other parts. Uh and on

21:13

the business side, I can do it and I I

21:16

think I think I'm I'm quite good at it,

21:17

but I just don't enjoy it. Like even on

21:20

sales calls where you like have to like

21:22

think of all the magic number how much

21:23

it would be worth because that's how

21:25

enterprise works. Gh worse. Peter just

21:28

said, "Ah, the worst about enterprise

21:30

sales. Because selling to large

21:31

companies, enterprises, is as tricky as

21:34

it gets." Not just because you need to

21:36

get pricing right, but because of all

21:37

the enterprise features that you need to

21:39

build. And this leads us nicely to our

21:40

season sponsor, Work OS. If you're

21:42

building with AI agents or automation

21:44

tools, here's a problem most teams don't

21:46

think about at first. Once an agent can

21:48

take actions on your behalf, you need to

21:50

control what it's allowed to do. And

21:52

traditional O just wasn't designed for

21:54

that. That's why work introduced MCP off

21:56

which gives teams a way to authenticate

21:58

AI agents with explicit permissions

22:01

auditability and enterprisegrade

22:03

security. Instead of sharing over scoped

22:05

API keys, you can define clear

22:07

boundaries for the data that agents can

22:09

access and the agents they can perform.

22:11

If you're building AI powered features

22:13

and want to share fast without

22:14

compromising security, check out

22:16

workeros.com/mcp.

22:19

And with this, let's get back to Peter

22:20

and enterprise pricing. But that's also

22:23

the only thing that that really works on

22:24

on a model like this.

22:26

>> Yeah. You mean enterprise sales

22:27

specifically, right?

22:29

>> Meaning custom pricing. So So can you

22:31

tell us for for for you know devs

22:33

listening who go to a vendor's website

22:36

and they're frustrated that there's no

22:37

price. It says call us or schedule

22:39

meeting. Why that is?

22:40

>> Oh, that's that's why because we going

22:42

to look at your company and then just

22:44

take the dice and and and think about

22:46

the number that you're probably willing

22:47

to pay. And that sounds horrible. But

22:51

also when you have a product where you

22:53

can't really tear it down to a specific

22:55

number like it it's it makes a

22:57

difference if uh a freelancer contacts

23:00

us or one of the big Fortune 500s. Let's

23:03

not say names

23:04

>> because the usage will be different. The

23:06

value they get out of it will be

23:07

different and charging the same. You

23:10

would either exclude one or the other.

23:12

If I if I if I go too low, they're going

23:14

to see this fishy. It's like uh

23:17

procurement for like 500 bucks. we're

23:19

not going to even start the process. And

23:21

if we we target it too high, we're going

23:23

to lose those people. So So as horrible

23:25

and unfair this process seems for some

23:28

kinds of products, it is the it's the

23:31

most fair way after all. You know, you

23:33

know, on software

23:35

there is I would say there's like four

23:36

axes. There's like easy and hard and

23:39

interesting and not interesting. We were

23:41

very much in the not interesting and

23:42

hard part. If you build something that

23:45

every developer wants to build, it's

23:46

going to be a hard cell. It's it's a

23:48

hard sell anyhow. Selling anything to

23:50

developers is a hard sell.

23:51

>> Yeah.

23:52

>> But if it's if it's too easy or too

23:54

interesting, good luck. But if it's

23:57

>> oh god, I don't want to do this and oh

23:59

my god, this is hard. That's a good spot

24:01

to be in. So So I found a really

24:04

interesting niche and there were just an

24:08

infinite number of complex problems.

24:10

>> You you you need to tell me tell me one

24:12

or two hard things about parsing PDF.

24:15

How hard could it be? There's a

24:17

specification. I'm an engineer. I know

24:19

specifications. I What's so hard about

24:22

it?

24:22

>> I mean, there was this one example

24:23

where, you know, like PDF has have

24:25

links. So, like there's like there's

24:26

like a table of contents and you click

24:27

on it and it goes to like page 37. So, I

24:29

built this whole model with the

24:30

assumption, oh yeah, maybe there's like

24:32

a 100 or 400 links in there.

24:34

>> And then we got this one customer who

24:36

like paid really good money. And then I

24:37

was like, oh, it takes 4 minutes to load

24:39

a PDF. What the heck, guys? And I looked

24:42

at it and it was like a 50,000 page text

24:44

bible from Canada and it had

24:46

>> 50,000 pages.

24:47

>> It had like more than 100 links per

24:49

page,

24:50

>> 500,000 links.

24:52

>> My data model completely exploded

24:53

because my assumptions were off by a

24:55

number of what 1,000. But by then you

24:57

have like a mature product with an API.

24:59

So like how do you how do you completely

25:03

redesign the internal part without

25:07

breaking things for everyone? like

25:09

suddenly everything has to be lazy where

25:11

where before parsing 100 one was easy

25:13

but now they were like this was like so

25:16

difficult to keep it working for people

25:19

um I think I spent like two months just

25:22

on that completely redesigning like the

25:24

internals and like making sure it's

25:27

still easy for people they don't have to

25:29

know what we what we load easy what we

25:31

load lazy or if you copy this thing it

25:34

it still has to like have to keep some

25:36

connection

25:36

>> it needs to keep the references and and

25:38

some of those things.

25:39

>> So, so I and I I love to do support and

25:42

I think that that that also a confining

25:44

factor why the company worked cuz if if

25:47

you send a ticket and then the the the

25:50

CEO replies and helps you out

25:53

um that has impact and my my strategy

25:56

was always like I always used to list in

25:58

reverse cuz if you if you send a ticket

26:02

and you get a reply within 5 minute

26:04

that's magical. If you wait one or two

26:06

days not much difference. Yeah.

26:08

>> So, yeah, this this was one of the

26:10

problems where I worked two months and I

26:13

finally got it down to almost like this.

26:15

>> Mhm. That must have been satisfying.

26:16

>> And and it was this was very satisfying.

26:19

>> And you were writing a lot a lot of the

26:20

code or you were involved in in in a

26:22

bunch of the code like obviously a big

26:24

big team was now here, but you were

26:25

still kind of overseeing it, right?

26:26

You're in the details. I mean, of

26:28

course, I had a a really great team and

26:29

and some parts I was more involved. I

26:31

was always more involved in mobile

26:33

because that's where my my heart was,

26:34

but I was always very deep in the tech

26:36

and and the the

26:39

marketing side, the business side. I had

26:40

like Jonathan's help, I had marketing

26:42

help. There was I I I found good people.

26:44

The the thing is if you like the

26:46

blogging and writing about how you solve

26:49

interesting hard problems will help you

26:51

hire interesting people that want to

26:53

solve interesting problems. This is what

26:55

I remember at PSP PDF kit that your blog

26:59

was every now and then it admitted it to

27:01

hacker news as well but it was just

27:02

interesting to read and I couldn't name

27:05

again I I'm not went into PDFs but if I

27:08

had to say something a PDF I would have

27:09

said PSPDF kit because they're the only

27:11

ones where I read interesting engineing

27:13

blogs about how you optimize your ship

27:15

is still there by the way I I I myself

27:17

also sometimes ask myself like hm

27:20

interesting do more companies not see

27:22

this or is is the question that you you

27:24

need to be a developer who's either the

27:26

CEO or or up there who just likes doing

27:29

this. And by the way, did did you ever

27:32

write this thinking this will be helpful

27:34

or you just wrote because you got

27:36

something out of it like putting out

27:38

that you solved this hard problem?

27:39

>> I like sharing and and and like

27:41

inspiring people. Um there was sometimes

27:44

even conflicts where we were like should

27:46

we write about this because it's like a

27:47

little bit of secret sauce

27:50

but I just never listen to those voices

27:52

too much. Um I just you know there's

27:56

also like when you when you write

27:58

something down there it's this principle

27:59

of like you understand it but then if

28:02

you want to teach it you really have to

28:04

understand it. So to to me it was also a

28:06

little bit like oh yeah I worked on this

28:08

really hard problem and now I want to

28:11

like preserve it and like help others.

28:13

So, so, so I I got I got a gig of it of

28:16

of course I liked the attention. Um, but

28:20

really it it was this

28:23

sometimes I just referenced a year later

28:25

to my own post like yeah this this is a

28:29

this is both company documentation. This

28:31

is like my own lookbook. It's helpful on

28:34

so many ways and a lot of those bigger

28:36

companies.

28:38

Oh, they put on too much red tape.

28:40

There's a lot of developers who don't

28:41

really like to write. So I I I forced

28:44

everyone once a month a full day just to

28:47

write a blog post.

28:48

>> But you gave them the time. You're like

28:50

that day you don't need to do any other

28:51

work but write something.

28:52

>> Yeah. You have Yeah. You have a day to

28:54

come up with a post. Ah a day is is

28:57

quite much actually. I mean when I'm

29:00

nowadays when I write posts it still

29:01

takes me

29:03

a few hours. I don't want to dwell too

29:05

much on like the I think the the the

29:08

starting time of the company is the most

29:10

interesting. the then the the growth

29:14

phase, you get more red tape, you get

29:16

more people. It's much more gardening

29:19

your product instead of like doing doing

29:22

wild hacks

29:24

>> um and more iterative. So, so, so it got

29:26

a little bit less interesting uh over

29:28

the years and there was like more people

29:30

drama cuz the more so the more people

29:33

you have, the more issues there are and

29:35

I didn't enjoy it that much and I was

29:38

really really burned out. What what

29:40

burnt you out, do you think?

29:42

>> I was just burning too hard. I was

29:45

working most weekends. I I I tried to

29:48

shuffle all my managerial needs. And you

29:51

know, as a CEO, you're basically the

29:52

waste bin cuz everything everything that

29:55

other people don't manage or or can do

29:57

or or mess up, you have to fix. And it's

30:00

also quite lonely because you you can't

30:03

openly talk about a lot of things. I

30:06

mean I I I I structured the company to

30:08

be quite open but still like you cannot

30:11

you cannot be negative. You have to even

30:14

if even if like even if like really bad

30:16

stuff happens. I know there was like

30:18

there was like one weekend where my my

30:19

co-founder called me at at 5:00 a.m. and

30:23

told me like yeah there's this big

30:24

airplane company and their planes are

30:25

down because our software is crashing.

30:28

That was a very interesting weekend

30:29

until I could like I disassembled their

30:34

their app and did proof that they messed

30:36

around with our source code to

30:38

triggering a triggering a license key

30:40

fall back. Uh that eventually like

30:43

caused issue they had. But that was like

30:46

a if they sus company's gone and more

30:49

moment. Um and that's just on top to all

30:52

the additional stress and there were

30:54

quite a few of those things. You can do

30:55

that for a while. And I I also believe

30:57

like burnout doesn't necessarily come

31:00

from working too much. It it comes more

31:03

from or at least for me when you when

31:05

you work on something but you don't

31:07

believe in it anymore or you have like

31:09

too many conflicts and and we also had a

31:12

we did fight a lot in the team uh with

31:15

like management team and by the time I I

31:18

made this mistake and I thought you have

31:20

to like lead a company more

31:21

democratically.

31:23

Um so that was also something that

31:24

burned me out. I wouldn't I wouldn't

31:26

want to miss it for a while, though.

31:27

>> Yeah. So, you know, from from the

31:30

outside, it seems you sold your shares,

31:33

you made enough money to not have to

31:35

work again, should you not choose. And

31:37

for a lot of people, like, you know,

31:38

people who are starting out their

31:40

business or or one day want to start a

31:41

business, this sounds like the absolute

31:43

dream. Like, this is I guess what we

31:45

know realistically that most people will

31:46

not make it, but if you make it, I mean,

31:48

you've kind of like I guess you know,

31:49

checkbox done. You're kind of it's a

31:51

little bit if you're like climbing on a

31:52

wall and you ring the bell, you're done.

31:54

And then what I noticed is from the

31:57

outside again on your blog, the blog

31:59

post completely stopped for several

32:01

years. What what did you do uh in in

32:03

this time uh and and what what what did

32:05

you learn in this time, you know, before

32:07

you came back to to where we are now?

32:09

>> I needed a lot of time to decompress. I

32:13

I catched up a lot on the things I

32:15

thought I missed. I I a lot. Um there

32:20

were months where I didn't even turn on

32:21

my computer. And for a while I was I

32:23

just didn't had this feeling of like

32:25

what should I do now? Like like I

32:27

definitely was like

32:29

why border? You know, you're not you're

32:32

not supposed to to retire so early or

32:36

like have so much have such a good exit

32:39

that you never have to work again. That

32:42

messed with my mind quite a bit. That

32:44

>> that was some that was some hard years.

32:47

And then in in April I was like

32:51

I there was this idea that I had years

32:53

ago and even a side project that I

32:55

started I was like oh yeah I want to I

32:57

want to continue on that and then after

33:00

after after more than 3 years I just sat

33:02

back to my computer and and started

33:05

hacking again. But the thing was this

33:09

was like a a Twitter analytics thing and

33:11

it was written in in Swift and Swift UI

33:14

and back then I already knew this would

33:17

have would be so much better if I would

33:19

build as a website.

33:20

>> So So was this an existing idea that you

33:22

kind of had at the back of your your

33:24

mind something something Twitter

33:25

analytic?

33:26

>> Yeah, it was just like something I

33:27

wanted to build for myself because uh

33:29

because it didn't exist and then

33:31

>> even three years later it didn't exist.

33:32

It still doesn't exist. Uh it it kind of

33:35

does but I got a bit sidetracked. So I I

33:38

went back and I I wanted to build it in

33:41

in with web tech. But web was really was

33:44

always even at the company the one thing

33:46

that I looked into the least because I

33:49

had I had someone really smart who took

33:52

care of of of that side in the company

33:53

that I brought in Martin. So I never had

33:55

to worry about it. That was one of the

33:57

>> You're not hands on with React or any of

33:59

that stuff.

33:59

>> Yeah. And when I came back, I was like,

34:01

what's a prop? You know, that that level

34:04

where you really where and you know,

34:05

this is like this is a a trap I see with

34:08

many developers. The the better you get

34:11

at one technology, the harder it is to

34:13

jump somewhere else. It's not that you

34:15

can't do it, but it hurts so much.

34:19

You're like like I can I can program in

34:21

in in in Apple stack. and program blind.

34:24

But then in that stack, I have to Google

34:26

the most mundane stuff and it it just

34:29

like it just hurts. You you you feel you

34:32

feel like an idiot again.

34:33

>> Yeah. And and I guess the more

34:35

experience you have, it it kind of sucks

34:36

feeling. I mean, I'm sure you say

34:38

embrace and and all that, but it's it's

34:39

not great. You're not as efficient. You

34:41

know that you could be faster, etc.

34:43

>> Yeah. So So I came back and I was like,

34:45

gosh, there has to be there has to be

34:47

what is this AI? What is this AI stuff

34:50

that every that that people are

34:51

dismissing? let's look into this. Yeah.

34:53

And in April, a lot of us were the

34:54

specific probably for rightfully so, but

34:57

and I and I and I like and I to a degree

35:00

I I credit those three years where I

35:03

basically didn't turn on my computer

35:06

because in those years you guys checked

35:10

out AI and learned that it's crap.

35:13

>> Yeah. the the people who like I was

35:15

about to say so you missed out on you

35:18

didn't do the beta of GitHub copilot you

35:20

know glorified autocomplete which is

35:22

GPC3 or or maybe not even there was then

35:25

of course 3.5 which is a big jump and it

35:27

it got incrementally better than GPT4

35:30

and so by the time you came back what

35:32

tool did you first use when you cuz you

35:34

missed out on like two years of like

35:36

like devs us devs using dismissing

35:39

finding some niche use cases for it

35:41

>> oh cloud code so you start with cloud

35:43

mode that I think came out.

35:45

>> It just came out It came out in May, but

35:47

there was a beta beforehand.

35:48

>> Yeah. Yeah. I think they had something

35:49

Didn't they have something in February

35:50

already?

35:51

>> They had a beta from February. Correct.

35:53

>> Yeah. So, so

35:54

>> so clock was your first you you come

35:56

back after like a you know hiatus and

35:59

you immediately turned on clock code and

36:00

you missed everything else before. and

36:03

and and you know, you know, it was like

36:05

I I remember I took this big messy site

36:10

project that I built and I have this

36:13

browser extension where that that

36:14

converts a GitHub repository into one

36:16

big markdown that was like a 1.3

36:19

megabyte markdown file and I dragged it

36:21

into into Google's CI studio with

36:24

Geminina 2.5 or two to something and I

36:27

typed write me a spec and it generated

36:29

those 400 lines of spec And I dragged

36:32

this back into cloud code

36:35

and I was like build and then I continue

36:38

continue continue and while I was like

36:41

working on other stuff, you know, um and

36:44

eventually told me like it's 100%

36:46

production ready and I started it and it

36:49

crashed. I'm sure we can all relate to

36:51

the story of the AI saying the code is

36:53

production ready then crashing. This is

36:55

a pretty funny and innocent story, but I

36:57

personally don't trust code that AI

36:59

generates without verifying it. And this

37:01

leads us nicely to our season sponsor,

37:03

Sonar. So, let's look at some data. A

37:05

new report from Sonar, the state of code

37:07

developer survey report, found that 82%

37:10

of developers believe they can code

37:12

faster with AI. But here's what's

37:13

interesting. In the same survey, 96% of

37:16

developers said they do not highly trust

37:18

the accuracy of AI code. This checks out

37:21

for me as well. While I write the code

37:23

faster with AI agents, I don't exactly

37:25

trust the code it produces. This really

37:27

becomes a problem at the code review

37:29

stage where all this AI generated code

37:31

must be regularly verified for security,

37:33

reliability, and maintainability. Sonar

37:36

cube is precisely built to solve this

37:37

code verification issue. Sonar has been

37:39

the leader in the automated code

37:40

analysis business for over 17 years,

37:42

analyzing 750 billion lines of code

37:45

daily. That's over 8 million lines of

37:48

code per second. I actually first came

37:49

across Sonar 13 years ago in 2013 when I

37:52

was working at Microsoft Skype and a

37:54

bunch of teams already use Sonar Cube to

37:56

improve the quality of their code. I've

37:58

been a fan since. Sonar provides an

38:00

essential and independent verification

38:01

layer. It's the automated guardrail that

38:03

analyzes all code whether it's developer

38:06

or AI agent generated, ensuring it meets

38:09

your quality and security standards

38:10

before it ever reaches production. To

38:12

get started for free, head to

38:13

sonarsource.com/pragmatic.

38:16

With this, let's get back to Peter and

38:18

how AI agents cannot exactly be trusted.

38:21

>> Then I had then I added added an MCP so

38:24

it could use the browser. I think the

38:25

player with MCP was already there and it

38:27

looped a few more hours and then I had a

38:30

I had a Twitter login page and it it did

38:33

something. I It was not great, but it

38:36

did something. And to me to me this was

38:39

my holy mind-blowing moment.

38:42

>> Yeah.

38:42

>> This and this was like in April or May

38:44

this year, right?

38:45

>> Yeah. It was it was it was just good

38:47

enough that I could see the potential

38:51

and I I understood it's like

38:53

>> yeah this is this is where it's going

38:55

and and from that moment on I I had a

38:57

few months where I had really trouble

38:59

sleeping and I in

39:01

>> I I remember because once on Twitter I

39:05

sent you a direct message. I was up

39:06

early for valid reasons, you know, my my

39:08

kids or something like that. But it was

39:11

5:00 a.m. and I I sent you a message on

39:13

Twitter and you replied immediately. And

39:15

I was like, "Why are you up?" And he's

39:17

like, "Oh, this is usual. Like I I

39:19

usually I'm still usually awake." And

39:21

and I asked like, "Why?" And you said

39:22

like, "Oh, I'm I'm just like using

39:23

Claude and it's really really

39:24

addictive." And I was like, "Really?"

39:27

And you're like, "Yeah, I'm not joking.

39:29

Like it's really good." And I think that

39:31

was the thing. You said something or

39:32

wrote something like just one more

39:34

prompt. like you told me how like what

39:37

what made it so addictive or or what

39:39

what still makes it so addictive?

39:40

>> Oh, it's the same economics as as you go

39:42

to a casino. That's that's it's my

39:44

little slot machines, you know? You you

39:47

you press the trigger and ding ding ding

39:49

ding ding and it's like nope. you you

39:51

type in the prompt and it it will like

39:54

and it does it does crap or it does

39:57

something that actually blows your mind

39:59

and it's this

40:00

>> and and you're saying it it blows your

40:01

mind as like you're a really experienced

40:03

developer like it's it's not easy to

40:04

blow your mind, right? Like you you

40:06

you've seen good code you can

40:08

differentiate like crap code, decent

40:11

code, good enough code like you have a

40:12

bar, right? It's so funny, you know, in

40:15

my company, I used to obsess over every

40:18

detail, every spacing, every new line,

40:23

the naming. I spend so much time bike

40:26

shedding. And in retrospect, I'm like,

40:29

what the heck? Why did I do that? Like,

40:31

what's the point that the customer

40:34

doesn't see the insights of of course

40:36

like it has to meet certain certain

40:38

standards. It has to work. It has to be

40:39

fast. It should be secure, but like how

40:44

much did that bike there is like

40:46

stupid.

40:47

>> You say that, but then you also just

40:49

said that people loved PSPDF kit because

40:53

it was the most polished. It worked the

40:55

best. Do you not think that that that

40:56

amount of caring bike shedding as you

40:59

call it? Being obsessed. It sound like

41:01

you were keeping tech depth at bay, you

41:03

know, like being obsessed with white

41:04

spaces is is not going to be messy. And

41:06

we know it's not just the white spaces.

41:08

we know you're going to care about

41:09

testing and all that. Like it sounds to

41:11

me that PSPDF kit like you know like

41:13

what I see is you were not just building

41:16

a product that was great UX but you

41:18

built something that had a really good

41:21

hygiene and that's how it could be high

41:23

performance and all that is how do you

41:24

think about it?

41:25

>> Yeah. Yeah. Yeah. To a degree. Yes. And

41:27

and even now like I I I mean like my my

41:32

last blog post was a confession that I I

41:35

ship code on read and

41:37

>> yeah we have to talk about that

41:40

>> and at the same time I spent so much

41:44

time to like restructuring

41:47

I mean I mean like even even today like

41:49

I I really wanted to get this PR in

41:52

where it was like 15,000 line change

41:55

where in my I moved everything over to a

41:57

plug-in architecture where I was so

41:59

excited about and I care a lot about the

42:01

structure. Did I read all the code? No,

42:04

because a lot of code really is just

42:05

boring plumbing. Well, what are most

42:07

apps? Like data comes in from an API in

42:11

one form. You like you parse it, you

42:14

package into a different form. Hey, you

42:16

store it into database and it's a

42:18

different form. It comes out again into

42:19

a different form. Then it's like HTML or

42:21

whatever. And you type in something it's

42:24

a different form again. And all you do

42:26

is like you're massaging data in

42:28

different forms throughout your app.

42:30

This is what most apps are. We are

42:31

pretty chasing printers. And the and the

42:33

the really the hard part is solved by

42:36

Postgress 30 years ago by some neck

42:38

birds. Uh that's that's really what a

42:41

lot of software is like. There's always

42:43

some interesting parts, but I don't have

42:45

to care how this button is aligned or

42:47

which tailwind class is used or or like

42:51

many details are boring and many other

42:52

details are interesting. But it I think

42:54

it's much more about system architecture

42:56

than having to read every single line.

42:59

>> Right now jumping forward, what is your

43:01

workflow like? Like like when you're

43:02

working on on cloud bot, are you using a

43:06

terminal, multiple terminals, which

43:09

which tools and and how are you you know

43:11

like you said you're not you're kind of

43:13

like not reviewing the the code, but

43:14

you're still thinking about

43:15

architecture. Like what does your

43:16

average day look like in terms of

43:18

tooling? You know, you have to explain

43:19

to a developer who might join the team.

43:21

you know, at at one point you didn't get

43:23

like what does it look like?

43:24

>> It's interesting. Let's let's let's go a

43:26

little bit. We were we were in in in

43:28

April with Cloud Code and then I got

43:31

really hooked and then I did some I had

43:33

a phase where I did cursor and then I

43:38

did I I used Gemini 2.5 a bit. Then we

43:41

had this phase with Opus 4. I hooked up

43:45

a lot of my friends like I know I know

43:47

both Armen and and Mario from Vinner.

43:49

They got they got AI pill because I I

43:53

was addictive. You know, my my enem was

43:56

like confusing them and then they tried

43:58

it out and then and then eventually they

44:00

also were up at 5:00 a.m. and I called

44:01

it like the black eye club. I mean,

44:04

there's a reason like I I I I started a

44:06

meet up in London that I called called

44:08

uh Cloud Code Anonymous because because

44:10

it's it's a little bit like a drug

44:12

because it's so it's so much fun. Like

44:15

to to me what what what blew my mind so

44:18

much was this realization that I can

44:22

build everything now. Before you had to

44:24

really pick which side project you build

44:26

because software is hard. Yeah, it's

44:28

still hard. But now like I I am this

44:31

this friction that I talked about where

44:34

I'm so good at this at this technology

44:36

and I'm like so bad at this and I'm like

44:38

oh let's make the CLI in Go. I have no

44:41

clue about Go. But I have I have a good

44:44

system understanding and once you have

44:47

that is like you you develop a feeling

44:50

what's right what's wrong like it's it

44:52

it is a skill in itself. I remember

44:54

there was this tweet where someone said,

44:55

"Oh, when you write the code, you you

44:58

feel the friction and that's why that's

45:00

how you make good architecture." I feel

45:02

the same friction when I prompt because

45:04

I I see the code flying by. I see how

45:07

long it takes. I see if like the agent

45:09

pushes back. Um I see if what it creates

45:13

looks like messy or like makes sense.

45:15

When I prompt, I I have a hint already

45:17

how long it's going to take. If it takes

45:19

much longer, I understand that I messed

45:20

up somewhere.

45:21

>> You kind of feel the model. you you know

45:23

you know

45:24

>> yeah usually it's like this or if it

45:26

runs

45:26

>> I I feel it's very much a symbiosis like

45:28

I I learn to to talk

45:32

>> may I even say dare or that language

45:34

more so it's like my my knowledge how to

45:37

use those things improved and also the

45:39

models improved and then and then like

45:41

over the time between between April and

45:44

now I would say yeah the inflection

45:46

point was summer where it just got so

45:49

good that you could you create software

45:52

without actually writing code by hand.

45:54

But the real that change that like sold

45:57

it for me is was

46:01

again GBD 5.2 that was again I think

46:04

it's underrated. I don't know I don't

46:06

know why why all these people still use

46:09

cloud code. I I I kind of get it. It's

46:11

it's a different way of working but

46:14

whatever OpenAI cook there is insanely

46:18

good. pretty much every prompt I type

46:21

gives me the result I want which is

46:24

insane like like on on on cloudbot the

46:28

my latest product I use

46:31

between five and 10 agents in parallel

46:34

if you're very much cloud code build you

46:37

have to forget quite a lot of the

46:42

the silliness that the things that you

46:44

have to do to create good output with

46:46

cloud code I mean I also met that team

46:48

and and they created a whole new

46:51

category. Like cloud code is is is a

46:54

category defining product and it is

46:56

amazing for general purpose computer

46:58

work and it is is really good for coding

47:00

and I I I I still use it almost every

47:03

day. But for writing code in complex

47:07

applications, Codex is just so much

47:09

better because it it it takes 10 times

47:11

longer. um Claude would

47:15

read three files and then be confident

47:17

enough to just like create code and then

47:20

you really have to steer it and push it

47:22

so it reads more code so it gets it sees

47:24

a bigger picture of your codebase so

47:27

that it it it weaves in new features

47:29

better and Codex will just like be

47:32

silent and just read files for 10

47:34

minutes and if you if you only work on

47:36

one terminal I completely understand how

47:38

you how you find this unbearable

47:41

But I rather have something where it's

47:44

also you don't tell it what to do. You

47:45

know this is this is also something that

47:47

people don't get like I have a

47:49

conversation with the model. It's like

47:52

oh let's look at this what what what

47:54

what options do we have for this

47:56

structure? Did you consider this

47:58

feature? It's like because every every

48:00

session is like the model starts from

48:03

having no understanding about your

48:04

product and you have and and sometimes

48:07

you have to just give it a little bit of

48:08

pointers. What about this and this? So

48:10

it explores different directions and you

48:13

don't need plan mode like I'm just

48:14

having a conversation until I say build

48:16

this it will not build this. There's

48:19

some trigger words because it it is they

48:21

all are a little trigger hungry but as

48:23

soon as I say let's discuss or give me

48:25

options they will not build things until

48:27

I say build.

48:29

>> So so a lot of a lot would you say a lot

48:31

of your prompting or a good part of it

48:33

is this conversation where you are

48:35

pretty much planning together with the

48:38

agent.

48:38

>> Yeah. It's like what about like I say

48:40

okay then you remind them it's like okay

48:42

we need documentation what would be a

48:43

good spot it would like give me some

48:44

recommendations I say no this should

48:47

really be its own page do we need a

48:48

configuration how how does this fit into

48:50

this other feature it's like I am

48:52

designing the system because I have this

48:55

I have this system understanding about

48:56

how how is my my product how are the

48:59

shapes looking I don't have a line by

49:02

line code understanding that's that's

49:04

what Codex does for me but I'm the

49:07

architect you

49:08

It sounds a little bit like you're

49:11

almost, you know, for

49:15

years back this this totally came got

49:18

out of style. But there was this idea

49:20

that you would have the architect with a

49:22

capital A who used to be a software

49:24

developer, but they're not hands-on

49:26

anymore because they spend a lot of time

49:28

understanding the business and they have

49:29

these developers working underneath

49:31

them. And some companies still kind of

49:33

work a little bit like this, but most

49:34

modern companies don't. But some banks,

49:36

etc. I met people there who are capital

49:38

architects. They do the system plan.

49:41

They talk with fellow architects. They

49:43

have the blueprint and then they

49:44

literally pass it down to the team and

49:46

everyone hates this model obviously

49:47

because you know again like I I think as

49:50

people you kind of want more. The

49:51

architect is never on call for for this

49:53

stuff and so it just kind of breaks down

49:55

in practice and a lot of large companies

49:57

just move to the staff engineer model

49:58

where you're kind of all working

50:00

together. Of course, there's people who

50:01

make who might have more input, but

50:03

sounds like it's almost like this world

50:05

where you are the architect who kind of,

50:07

you know, you have your little agents

50:10

who who do the code, except in this

50:12

case, you are of course fully

50:13

responsible because you're still an

50:14

individual contributor. You're not

50:16

you're not like a okay, you might say

50:17

you're a manager of agents or whatnot,

50:18

but the code is is yours. It's your

50:20

responsibility. You're going to be on

50:22

call. If you know, if you push out code

50:24

that takes down CloudBot, which it did

50:26

just recently, you're on the hook for

50:28

it, right? like and I think the the

50:30

difference in this system when when it

50:32

was in companies it was the architect

50:35

was kind of shielded from the output of

50:38

their work because there's so much

50:39

people and so much process etc. Well, I

50:42

wouldn't say architecture. I I like the

50:43

word builder.

50:44

>> Builder. Yeah.

50:45

>> And and and I think also that's there's

50:47

a few categories that I see for people

50:50

that are highly successful using using

50:52

AI and people who really struggle.

50:55

>> I care more about the outcome, the

50:57

product. I very much care about how it

50:59

feels and everything, but how the

51:02

plumbing works underneath.

51:04

>> I care structurally, but you know, not

51:06

to the not the biggest detail. And then

51:07

there are people who really love to to

51:10

code on hard problems like think about

51:12

algorithms don't really like the I'm

51:15

building a product with like all the

51:17

marketing all the they they more like

51:19

they like to solve hard problems and

51:21

those are the people who really struggle

51:22

and and and often reject AI or get

51:25

really sad because that's exactly the

51:27

job where that AI does like it solves

51:30

the hard problems. Now sometimes I give

51:32

it some pointers but many times I

51:34

learned I learned more this year than

51:37

last five years around around software

51:40

architecture and designing. I the

51:42

there's so much inside those monsters um

51:46

on knowledge and everything is just a

51:49

question away but you have to know what

51:50

question to ask. Of course I also built

51:52

this Twitter thing and it's still not

51:54

done and I and I I really hope I I'll

51:55

get back to it at one one time.

51:57

everything worked but if I used it more

51:59

at some point things got really laggy

52:01

and weird and then it worked again and I

52:03

just couldn't figure it out and it was

52:05

like really difficult to debug because

52:07

it was not easy to reproduce. It was

52:08

just like you use it more and things get

52:10

really slow. I basically had like

52:12

software in in in in Psql like in

52:14

Postgress that would be triggered when

52:16

certain inserts were were doing and then

52:18

the database would would get really busy

52:21

and the model couldn't see it because it

52:23

was it was it was so far abstracted from

52:27

all the you know like those those models

52:29

are really good at tracing through but

52:31

this was a side effect that was so hard

52:33

to see because it was only in this one

52:36

file

52:37

a function that had no connection to

52:39

anything else. um with a name that was

52:42

not easy grabbable. I just never asked

52:44

the right question until I was like do

52:46

we have any side effects for this and

52:47

this and I found it and I fixed it and

52:49

it's like but I everything is just the

52:52

right question away.

52:53

>> Yeah. But you you need to have like

52:55

knowledge, expertise.

52:56

>> Yeah. You experience

52:58

>> you you I mean so so so these are the

53:01

people who rejected and then the people

53:02

who who care a bit less about how it's

53:05

being plumbed internally but are just

53:06

excited to build things. They're really

53:08

successful. And one thing that also

53:10

helped me is, you know, when you run a

53:12

company and then you hire people, you

53:15

can't breathe on everyone's neck and

53:17

like make them have the line of code

53:19

exactly that way. And there's a lot of

53:21

people who who didn't manage a team,

53:23

they didn't had this experience how to

53:26

how to relax a little bit and understand

53:28

that yes, this maybe is not exactly that

53:30

code that I want, but it will get me

53:33

closer to my goal. And for anything that

53:37

is like

53:39

not perfect, we can always make it

53:41

better and like put more time into it. I

53:42

very much believe into this iterative

53:44

improvement. I had to learn to let go a

53:46

little bit at my company. So, so, so

53:48

then when I when I had cloud code, it

53:50

kind of felt like I have like I have

53:52

like imperfect, sometimes silly, but

53:54

sometimes very brilliant engineers that

53:56

I have to steer and where we where we

53:59

work together on a common goal. It felt

54:02

a lot like being the boss again.

54:04

>> Yeah. And and interesting now you know

54:06

you you built kind of software I guess

54:08

the traditional way you know pre AI for

54:11

15 years or even more than 15 years and

54:14

you got really good at being also

54:16

leading a team and then how to have high

54:18

standards. You really cared about the

54:20

the craft there as well. You've now kind

54:22

of been I guess vibe coding or working

54:23

with agents for a year. You're comparing

54:25

the two. What do you think? What do you

54:27

think really really changed? And what do

54:29

you think are things that kind of stayed

54:30

the same despite all

54:32

>> First of all, I don't like I don't like

54:33

the term VIP code.

54:34

>> All right. How should we call it?

54:35

>> I I think I think I think VIP coding is

54:38

by now almost a I I call it I tell

54:41

people I do what I do is agending

54:42

engineering with a little star. VIP

54:44

coding starts at 3:00 a.m.

54:46

>> Now like because all the the mundane

54:49

stuff of writing code is automated away,

54:52

I can move so much faster. But also

54:54

means like I have to sing so much more.

54:56

I'm still very much in the flow. Like it

54:59

is it is completely the same feeling as

55:01

for me as as I I very much get in this

55:03

flow state but it is mentally even more

55:06

taxing because I have I don't have one

55:09

employee that I manage. I have like five

55:10

or 10 that all work on things and I

55:12

switch from this one part to this other

55:13

part to this other part to this other

55:15

part. mostly because of I'm designing

55:18

this new subsystem or like this feature

55:19

and then I know that it will probably

55:21

take Codex like 40 minutes or or one

55:23

hour to build. So like I want to like

55:26

have the plan right and then I build it

55:28

and then I'll I'll move on to something

55:30

else but then this is cooking and then I

55:32

work on this and then this is cooking

55:33

and then this is cooking and then at

55:34

some point this is cooking and then this

55:36

is cooking and then I go back to this

55:37

one. So like I I I I switch around a lot

55:41

in my head. I wish I wouldn't have to do

55:44

that. Like I'm sure this is a

55:45

transitionary problem and at some point

55:47

we have we have models and and systems

55:50

that are so fast that that I can

55:52

paralyze a little less. But to stay in

55:55

the float flow state I need to massively

55:57

parallelize. So that that's that's how

55:59

it work. I go back to there and and

56:02

maybe tweak it a little bit more. But

56:03

usually just like try it out and maybe

56:07

then this is ready because this only

56:08

took like 20 minutes. So like I

56:10

constantly jump around. Usually there's

56:13

there's one main project that has my

56:15

focus and I have like some satellite

56:16

projects that also need attention but

56:19

where I can make maybe I spend 5 minutes

56:21

it does something for half an hour and

56:23

and and I try it and it doesn't need uh

56:26

so much capacity up there.

56:27

>> This almost sounds you know like two

56:29

things come to mind. One is there's

56:30

these like games where you have to

56:32

manage a kitchen with the employee and

56:34

and you see like the recipes or

56:36

something come out and you need to jump

56:37

and do it again.

56:38

>> It's like Starcraft, you know, you have

56:40

like your main base and you have like

56:41

your side bases. They give you

56:42

resources.

56:43

>> That as well. And also one thing that

56:44

just came to mind as you said like I go

56:46

there and I watch this and I make a

56:47

decision is when I see the chess grand

56:49

masters play multiple boards at once.

56:52

You see see sometimes they 20 boards and

56:54

they always all you they go there they

56:55

kind of you can see that they just like

56:57

see what's on that board. they make a

57:00

decision and for some boards they stop

57:02

for longer I guess better players or

57:04

better opponents. It feels, you know,

57:05

both they're occupying 100% of of their

57:07

brain. You're occupying your bay and

57:09

you're you're kind of scaling yourself

57:11

as long as you can context switch. The

57:13

difference the difference was up until

57:16

with with cloud code I you have to work

57:18

a little different because it is much

57:20

faster but then the output often doesn't

57:23

work on the first try. So like it makes

57:25

something but then it forgot to update

57:27

three other things. it crashes or you

57:29

give it

57:31

the good thing how to be effective with

57:33

coding agent is always like you have to

57:35

close the loop. It needs to be able to

57:37

debug and test itself. That's the big

57:40

secret. Um that's also something I I

57:44

think that's part of why it got so much

57:46

more effective. Um but yeah, with with

57:48

with clock code you I often had to go

57:50

back and like fix up the stuff

57:53

um or it just takes a lot of iterations.

57:55

So in the end it's not that much faster.

57:58

It's just more interactive.

58:01

And and these days with Cordex it just

58:04

almost always gets it right. My my

58:06

general strategy is always I I build a

58:08

feature of course you and and of course

58:10

you always let it write tests and you

58:13

make sure that it runs it.

58:15

>> It runs them. Yes.

58:17

So even even when I write a MAC app, I

58:19

don't know like I I just yesterday I

58:21

debuged this feature where

58:24

the MAC app couldn't find a a remote

58:26

gateway but like the the same code in

58:29

Typescript could but makeup is kind of

58:32

annoying to debug because like it builds

58:35

it you have to start it you have to look

58:36

at it you have to like say no this is

58:38

not working. So now I just said it like

58:41

you know you're going to build a CLI

58:42

just for debugging that invokes all the

58:44

same code path that you can call

58:45

yourself and then you just iterate and

58:48

you fix it yourself and then it will

58:49

just cook and it just cooked for an hour

58:51

and it was done and it told me like

58:52

there was a race condition here and here

58:53

and like a misconfiguration blah blah

58:55

blah and like yeah it sounds sensible. I

58:57

don't need to I don't need to see that

58:58

code. It's like but but you don't need

59:00

to see it because you set up the

59:02

validation loops and you trust that

59:04

because it ran it. I mean this is I

59:07

guess I guess it's not too dissimilar to

59:08

like sometimes when you work on a large

59:10

project in a large company when all the

59:11

tests pass I mean it doesn't mean 100%

59:14

it's there but it's it's a pretty good

59:16

and and all the new new code has test as

59:18

well you know someone thought about it

59:20

and tested it and and all that. So even

59:22

even on my on the very latest project we

59:25

always had bugs

59:28

but like anti-gravity has like a certain

59:30

a certain weirdness with how it takes

59:33

tool calls in the loop in the in the

59:34

format. So you have to do like some

59:36

filtering.

59:36

>> Yeah.

59:37

>> And that broke a bunch. And it actually

59:39

took me way too long to realize like

59:41

what am I doing here? I just need to

59:42

automate this. So I was just going to

59:44

codeex. like design life tests that spin

59:49

up a Docker container, install the whole

59:51

thing, spin up a loop, use my API keys

59:54

from this and this file

59:56

and then you tell the model to

60:00

read an image, create an image before

60:03

and then look into the image and see

60:05

what it sees. So I I don't not just tell

60:07

the loop, I still tell tool calling,

60:09

make it work

60:11

and then it solved itself. It took

60:12

forever, but it it it it tested all my

60:14

API keys like from from Entropic over

60:17

SEI over GLM like everything and it

60:19

fixed all those little indicies where

60:21

where sometimes the tool calling didn't

60:23

work or the ordering was wrong because I

60:25

closed the loop and and that's that's

60:28

>> and closing the loop you mean just have

60:30

a way to to have have the agent be able

60:32

to validate its work?

60:33

>> Yeah, that's why that's the whole reason

60:35

why why those models that we currently

60:38

have are so good at coding. But like

60:41

sometimes mediocre good at writing

60:43

creative because there's no easy way to

60:45

validate right but code I can compile I

60:49

can lint I can execute I can verify the

60:52

output if you design it the right way

60:54

you have a perfect loop like even now

60:55

even now for for websites I built the

60:58

core in a way that can be run via a CLI

61:01

so it's like I have this I have this

61:03

perfect uh execution loop because the

61:05

the browser loop is insanely slow you

61:07

want something that that loops fast. So

61:09

it sounds like one thing that is not

61:11

really changing from like before is we

61:13

had this before like backend or business

61:15

logic heavy he heavy thing could easily

61:17

be or more easily be verified that it's

61:20

correct.

61:20

>> Surprise actually using aentic coding

61:22

makes you a better coder because you

61:24

have to have to think harder about your

61:26

your your architecture so that it's

61:28

easier verifiable because verifying is

61:30

the way how to make things good. Well,

61:32

then remember back back even before AI

61:35

for complex systems like once you got

61:37

someone who built these things before

61:39

what they started with how do we make it

61:40

testable right like you you need to

61:42

design interfaces classes testable you

61:44

need to think about like am I going to

61:46

fake things will I use mocks will I use

61:49

end toend testing which will be long etc

61:52

but these are like really hard

61:53

architectural decisions and once you

61:54

make them they're I guess harder to

61:56

change in your in your word you know

61:58

like the model would cook a lot longer

62:00

if you asked it to make a massive

62:01

refactor acture and you know if you have

62:04

test it'll get it right but you know now

62:06

these we we still have these trade-offs

62:07

>> yeah it's still it's still software it's

62:09

it's I I would say I write better code

62:12

now that I don't write code myself

62:14

anymore and I wrote really good code but

62:16

but like even back at the company

62:19

sometimes testing was so tedious and you

62:22

come up with all those edge cases and

62:24

and and the branching

62:25

>> I mean outside of Ken Debbec who I

62:27

deeply respect and he was on the podcast

62:29

and we We we we talk like he he still

62:34

writes test first and he tells me that

62:36

he's not mad at me for not writing it

62:38

but if you want to write like you know

62:39

poor quality code it's on you. Uh but I

62:41

don't know many developers myself

62:43

included I never liked writing tests and

62:45

even even when I pretended that I did I

62:47

I just never did. It's a little bit like

62:49

writing documentation and writing tests

62:50

to me it was never a creative

62:53

expression. It is so good now like I I

62:56

would say for my last project I have

62:57

really good documentation and I didn't

62:59

write a single line myself like no I

63:03

don't write the test I don't write

63:04

documentation I explain the model the

63:07

trade-off so like why we did something

63:08

like this and then tell it like like

63:10

write that write the entrance section

63:12

beginner friendly and then add more

63:13

technical detail at the end and it is so

63:16

good I never had a project with that

63:18

good documentation just by every time I

63:21

design a feature this is a part of this

63:23

a part of the process And also like

63:24

testing I was like okay we built this

63:27

how are we going to test this? Yeah we

63:28

could do this and this and this. What if

63:30

we build it this way and oh yeah then we

63:32

can test it better. So it's like this is

63:34

now part of my singing because I I

63:35

always think like how do I close the

63:37

loop? How do I the model always needs to

63:39

be able to verify the work itself

63:43

um which automatically steers me to

63:45

better architecture. So why do you think

63:47

there's, you know, a bunch of like

63:50

experienced devs who are still pushing

63:52

quite a bit back on on just like the

63:54

idea that AI can do a lot of this?

63:57

>> That was a week ago. I I stumbled over a

64:01

a blog post by Nala Coco with love that

64:05

I deeply respect and learned a lot from.

64:08

And this blog post was just was a

64:11

dissing of the current way how models

64:14

work. And and what he did was he he

64:18

tested like five or six models including

64:20

some that make no sense like the the

64:22

Open EI 120 billion open- source one

64:25

that is not good enough to write good

64:27

code you know it's like and he just he

64:31

he wrote a prompt as far as I understand

64:34

it there was there was not a lot of

64:35

information on the website but to me it

64:37

sounded like he wrote a prompt he put it

64:39

on claude web and and he pressed send

64:44

and And then he took the output and ran

64:46

it and it didn't compile and he was

64:48

disappointed. But he's like, "Of course

64:50

it will not work. Do you think I can

64:52

write buck-free code on the first

64:54

attempt?" And those little those

64:58

models are ghosts of our collective

65:01

human knowledge. They work very similar

65:03

in many ways. Of course, you don't get

65:05

it right the first time. Like there will

65:07

be mistakes. That's why you have to

65:09

close the feedback loop. And also you

65:11

don't just send a prompt to the model,

65:14

you start a conversation. Hey, this is

65:16

what I want to build. It's like you he

65:19

complained that it used old API. Yeah,

65:21

you didn't specify the Mac OS version.

65:23

So it so so it made an assumption to

65:25

default to like old API because that

65:27

information was missing and it is it is

65:29

trained on a lot of data, not just the

65:31

last two years and there's just more old

65:33

data than new data. So this is like the

65:36

more you understand how those little

65:37

beasts think, the the better you get at

65:41

prompting. Um and then and then and then

65:44

he he spent maybe I don't know a day or

65:48

so on on playing with it and then just

65:51

decided that this technology is still

65:53

not really good. But to be effective you

65:57

have to spend significantly more time.

65:59

You know, it's it's like it's like you

66:01

know how to play guitar and I put you on

66:03

the piano and you tried a bit. It's

66:04

like, "Oh, this sucks. I go back to my

66:06

guitar." No. No. It's like it's it's a

66:09

different way of building. It's a

66:10

different way of thinking. You have no

66:12

idea how often I screamed at like 3:00

66:15

a.m. to cloud code because it did

66:17

something silly. I slowly started to

66:20

understand why those things do what they

66:22

do with like exactly the way I tell it

66:25

to do things. And sometimes you can

66:27

literally ask you can even even last

66:30

year like I for this project I the last

66:33

project like clotboard I feel like a

66:34

human merge button because the community

66:36

is like blowing off and all I do is like

66:37

reviewing PRs. I I I I have very little

66:40

time to actually write code myself

66:41

anymore.

66:42

>> And in the beginning it would often like

66:44

just cherrypick things and would close

66:46

the PR and I was like so annoyed. So was

66:47

I'm like why are you doing this? Yeah.

66:50

When you say this and this I interpret

66:51

this this and this. It was like ah like

66:55

I I learned the language of the machine

66:58

a little bit more. I tweaked my my

67:00

prompting and now I get exactly what I

67:02

want because it's it's a skill like any

67:05

other skill.

67:06

>> Yeah. And this is like Simon Wilson has

67:08

been saying the same thing even though

67:09

he's been using it for for years and I

67:10

think everyone I think once I start to

67:12

use it I also realize like I'm not I'm

67:14

okay at it but I I I I could do better.

67:17

What if we put this to a real test? cuz

67:19

I think it's fair to say that right now

67:21

you're building CloudBot which is a you

67:23

know it's not something that generates

67:25

revenue there's a lot of users and it's

67:26

blowing up and it's it's a really cool

67:28

tool but it's not PSPDF kit which is a

67:31

business that it's a lot of revenue is

67:33

hinging over it if today you know we

67:37

just wiped PSPF kit does not exist you

67:39

need to rebuild PSPDF kit you now have

67:42

these agents how differently would it

67:44

look how much would you trust it what

67:46

would you delegate what you would you

67:48

validate and and when you know you built

67:50

up a team around it because now it's a

67:52

profitable business at the very least

67:53

you need to hire sales people whatot how

67:55

do you think the team would look

67:56

different today with that same product

67:58

cuz you you know exactly what it took to

67:59

build it and you also know what these

68:01

tools can do today

68:02

>> I could easily run a company with

68:05

30% of the people it would probably be

68:09

quite difficult to find people

68:12

on that level but you you you want you

68:15

want to have really senior engineers

68:17

that really understand what they build

68:20

but that are also comfortable in in in

68:23

delegating and know which parts are

68:26

actually important to to work on and

68:28

which parts

68:30

I can vibe. That's still something I

68:32

don't see. I don't see a lot like like

68:36

especially in the AI world, there is so

68:40

much crap on Twitter, there's there's so

68:43

many people that are loud but clearly

68:47

have no clue what they're doing. There's

68:49

there's so many there's so many dumb

68:51

concepts around like I'm sorry, but the

68:53

Ralph Wigum one gh like this is again

68:57

another another silliness people use to

69:00

work around

69:01

uh model limitations of of of of Opus

69:05

that you don't even need when you use

69:06

Codex. There's there's maybe a few cases

69:09

where you have a really long list of

69:11

individual tasks that can be automated,

69:13

but that's usually not how software

69:14

building works. So there's these people

69:16

who I see so many people building up

69:18

this elaborated orchestration layers and

69:21

then you have like beats that

69:22

automatically creates tickets and then

69:24

your agent does tickets and then your

69:25

agent emails the other agent and then

69:28

you build up this this elaborate mess.

69:31

What for? Oh yeah, they did they design

69:34

the the spec for like a few hours and

69:36

then you just like the machine builds it

69:37

in the whole day. I don't I don't

69:40

believe this works. Like like this is

69:42

this is this is the waterfall model of

69:46

software building. This we learned long

69:48

ago that this doesn't work. Like

69:50

yes, people work differently and maybe

69:52

it does work for some. I just I just I

69:55

don't see how this

69:57

how this could work for me. Like I I

69:59

have to start

70:01

with an idea and often I purposefully

70:04

underprompt the agent so it would do

70:07

something

70:08

that would give me new ideas. You like

70:10

maybe like 80% of the things I assumed

70:13

were like crap but like there were like

70:15

two things like oh I didn't think about

70:18

that way.

70:18

>> Mhm.

70:19

>> And then I I I iterate and and and shape

70:22

the project and I have to I have to

70:23

click it. I have to like I have to feel

70:25

it. I feel I feel to make good software

70:27

I you know one thing those those things

70:31

often lack is taste. I have to feel like

70:34

how does this feature feel and and the

70:36

beauty now is that features are so easy

70:38

I can just like throw it away or like

70:41

reprompt it. My building model is

70:43

usually very much forward. It's very

70:45

rarely that I actually revert and have

70:48

to go back. It's just like okay no then

70:50

let's change this. No let's do this.

70:51

It's like it's like shaping. I I love

70:53

how this like you start with a rock and

70:55

then you like sisle away at it and like

70:58

pick different areas and and and then

71:00

slowly like this statue emerges out of

71:02

out of marble. That's that's how I see

71:05

that's how I see building something. I I

71:07

guess reflecting on how software engine

71:09

is changing. This seems like a change

71:11

because before before we had AI or any

71:14

of these agents, upfront planning did

71:17

make a difference. you know, writing at

71:19

PSPDF could you insisted I think to have

71:22

a proposal where people put a lot of

71:24

thought up front to specify and do all

71:26

because it was expensive to I guess to

71:28

to build to to do you think this is

71:31

changing because of the the cost of just

71:33

writing code is is going down or

71:36

>> I mean I still I still I still plan and

71:38

I but

71:40

>> you still do yes

71:41

>> but I don't put as much into it because

71:44

I it's now so much easier to just like

71:47

try and look at the results and then see

71:49

if oh yeah this this shape could work or

71:51

no we have to like the tweaking and even

71:53

even like oh no we have to like do it a

71:55

completely different way isn't so much

71:57

cheaper that it's to me it became much

71:59

more playful.

72:00

>> Yeah. Yeah. I guess cuz cuz like you

72:02

know when you're working even if you

72:03

have like a new grad on the team or an

72:04

intern you know you give them something

72:06

they work it for a day or two now you

72:08

give them another it's another day or

72:09

two you know and and we're not talking

72:10

days here we're talking minutes or like

72:12

if it's a longunning task like 10 20

72:14

minutes at at worst. Plus, you're not

72:16

just waiting on that thing. You have

72:18

parallel things running. So, it's not

72:20

that much of a waste, if you will,

72:22

>> in in in in in cloud.

72:24

At the beginning I had this assumption

72:26

of like one agent and then eventually

72:28

changed to multiple agents and there was

72:31

the assumption of like one provider like

72:34

WhatsApp and now it's multiple ones and

72:35

changing that was like such a pain would

72:38

would have been such a pain if I would

72:39

have written it myself because you have

72:41

to weave in literally everything through

72:43

the whole logic of the application

72:47

and yeah it took Codex like three hours

72:49

it would have taken me like two weeks

72:51

you know so so that upfront planning. I

72:54

I could have realized that in the

72:56

beginning, but now I I know that like I

73:00

can just change things and it's it's

73:02

much it's much easier to work down your

73:04

technical depth or your you know, you

73:06

evolve how you think about a project as

73:08

you build a project. That's why I don't

73:10

believe in I don't know things like Gas

73:11

Town where like you write up the spec

73:13

and then it builds itself and then it's

73:15

done. How can you even know what you

73:16

want to build before you built it? you

73:18

learn so much in the process of building

73:20

it that will go back into your thinking

73:21

of how this how the how the system

73:24

actually will end up being to me this is

73:26

very much it is very much a circle um

73:29

until I you don't I don't you don't walk

73:31

up the mountain like this you go you go

73:33

around and sometimes you like you you

73:35

you stray off a little bit of path but

73:38

but eventually you you you reach the top

73:40

that's that's how I feel so

73:42

>> then you know you've been building cloud

73:44

bot for what like two months three

73:46

months non-stop upish or or like like

73:49

how long?

73:50

>> Let me let me let's switch a little bit

73:51

gear. So, one of the ideas that got me

73:56

back was even even in in April May was I

74:00

I wanted to have this

74:03

hyper personal assistant and not like

74:07

not like one that sends you a good

74:09

morning email. Oh, these are your three

74:10

tasks. No, one that has a really deep

74:15

understanding

74:16

of me and doesn't just I don't know I

74:20

meet a friend and then and then when I

74:22

go home it would ping me, hey, how was

74:23

how was that meeting? Or one that would

74:26

wake me up one day and say, "Hey, you

74:28

haven't texted Thomas in 3 weeks and I

74:31

noticed he's he's in town right now

74:34

because I checked his Instagram account.

74:36

Do you want to say hi?" or something

74:38

that says, "Hey, I noticed every time

74:41

you meet that and that person, you're

74:43

sad. Why is that?" Like something

74:46

something that is deeply personal. Um

74:50

like almost the the anti-orem. It's kind

74:53

of like the movie Her, but but that's

74:56

where the technology is going. Those

74:58

models are really good at understanding

75:00

text. the the the bigger the context is,

75:03

the more patterns they see. And even

75:05

though they're like matrix calculation

75:07

without a soul, it very often feels

75:11

different. So this was like one of these

75:13

ideas and I even created a company I

75:15

called a mant machina like the loving

75:18

machine. But in summer when I explored

75:20

it, the models weren't quite there yet.

75:21

I got some results that it was like okay

75:23

this is like I'm a little too much on

75:26

the edge of what I need right now which

75:28

it was very exciting because I know that

75:30

that the the state of AI goes so fast

75:33

that oh I can just revisit that in like

75:34

a little later and and one of the ideas

75:37

also was is that I assume that all of

75:41

the big corporations right now are very

75:44

much working on personal assistance in

75:46

the future. Yeah,

75:47

>> everyone will have you will have your

75:50

best friend who is a a freaking machine

75:54

that will understand you, that will know

75:56

everything from you, that will can do

75:58

tasks for you, that will be proactive,

76:01

that will require a lot of tokens, but

76:03

everyone who can afford it will have

76:05

one. And of course, this will democ

76:07

democratize and and trickle down to like

76:09

more and more people as as we learn how

76:12

to build more efficient systems and and

76:14

and hook up on on on chips. No question

76:17

this is where the things are going. You

76:18

see like the first things with like

76:20

OpenAI who who launched pulse with some

76:22

productivity but we just don't have

76:24

enough compute yet to offer this as a

76:26

feature and also it's it's quite

76:27

difficult. My idea always was like ah I

76:30

kind of want something that runs on my

76:33

computer and where the data is

76:35

>> it's yours

76:36

>> is is actually mine and not and it it's

76:40

also quite scary that like you you give

76:41

openropic access to your email your

76:44

calendar your your dating apps I don't

76:47

know if you talk to to to your normie

76:50

friends but a lot of my friends in they

76:53

use that a lot to basically have a a

76:57

therapist

76:58

And it it does work incredibly well.

77:00

Like it's it's a really great listener.

77:02

It understands your problems and unless

77:05

like some of versions of 40 that are

77:06

like sure this is a great idea. I want

77:09

to put French fries into a salad. It it

77:11

works really well. And I did that too

77:13

like to like re I mean part of it just

77:16

is like the the act of reflecting

77:18

already is helping you. So it would even

77:20

work if the machine would only repeat

77:22

exactly what you wrote to a degree. But

77:25

it actually gives insightful questions.

77:27

It's actually it it got really good. So

77:29

I had this idea of this like assistant

77:32

but the tech wasn't there. So I did

77:34

other part and I I built a whole bunch

77:36

of fun stuff with like of course like I

77:40

built VIP tunnel this in your career to

77:43

become like an authentic engineer you

77:45

have this phase. It's a trap phase where

77:47

you you're looping and building your own

77:49

tools to like optimizing your own

77:51

workflow. But this idea of like this

77:54

hyper personal agent

77:56

stuck a little bit and then

78:00

over the last few months I I really

78:02

started I built it but finally

78:06

initially I didn't even had the the

78:09

scope that it has now. Like I called it

78:11

WhatsApp relay. I just I just I just

78:14

wanted to do to trigger stuff on my

78:16

computer with WhatsApp. So, I built like

78:17

a WhatsApp relay where I had an agent

78:20

that could do stuff with my computer and

78:22

then I I was traveling to Morocco for a

78:25

friend's birthday and

78:28

was out most of the day and just used

78:30

WhatsApp to to talk to my agent and I

78:33

was kind of hooked. It it it was guiding

78:35

me through the city. It was making

78:38

jokes. It could text other friends via

78:42

WhatsApp from me.

78:45

And I remember I I was blown away

78:47

because I in the beginning the tech was

78:49

very scrappy but I I built in something

78:51

where I could send it an image. Didn't

78:53

even use the proper thing to send an

78:55

image. I just gave the the

78:57

a string and it could do the read tool

79:00

to like read the string. And then I was

79:01

in Morocco and was just like just like

79:04

not seeing it and saying it a voice a

79:06

voice message but it didn't build that.

79:07

And then like like 30 seconds later it

79:10

replied to my voice message. I'm like,

79:12

"How the did you do that?" Oh, yeah. You

79:16

sent me a file and and then I looked at

79:20

the header and I found that it's OG. So,

79:23

I used FFmpeg to convert it. And then I

79:26

I looked for Visper on your computer,

79:27

but it's not installed. But I found the

79:29

OpenAI key. So, I did a curl to open

79:31

server, let it translate, and I'm like,

79:35

"Holy cow." like this was Opus 4.5 and

79:39

it's so incredibly resourceful like you

79:43

just did this you know other people say

79:45

oh you need a skill or some system no

79:46

just like it just figured it out I

79:48

slowly got hooked on the thing I I used

79:51

it I used it to wake me up and it was

79:54

running I it was running on my Mac

79:57

Studio in London and was connecting over

80:00

SSH to my MacBook in in Morocco and was

80:04

turning on the music and making it

80:05

louder louder is because I didn't reply.

80:08

And to make that work, I I added a

80:10

heartbeat. So, which which in a way is

80:13

insane from a security perspective. You

80:15

have a model that you prompt with do

80:17

something cool and surprise me that you

80:20

send every few minutes to make it

80:22

proactive and like go through your task

80:24

list. Uh like probably the most

80:27

expensive alarm clock ever. But it was

80:29

just hilarious. And also the text it

80:31

sends like cuz I I I was I had a balloon

80:33

fart and it it knew that I had to wake

80:35

up very early and I didn't reply and it

80:37

was like you could see the reasoning

80:40

Peter's not responding but Peter has to

80:42

wake up. No, no, no, no, no, no sleep.

80:45

Like I it was bitching to me and then I

80:49

I showed it to the the the friends I was

80:51

with and everybody was like hooked. Like

80:53

this is something magical and I was

80:55

hooked too. Um, and then I I I went on

80:59

Twitter and I got the most muted

81:03

responses cuz nobody would get it. I

81:05

feel it's somewhat of a of a new

81:07

category of products. Um, that a little

81:11

bit like your story with like you know

81:12

when you didn't get the iPhone uh from

81:14

the marketing campaigns on TV and

81:16

anywhere and then you had to use it.

81:18

>> Yeah. So I I worked on it but only the

81:20

last two months and it the name changed

81:22

from V relay to at some point a claude

81:27

uh said like then what is this name like

81:29

it doesn't fit the feature set anymore

81:32

because like I had like in there and

81:34

other features so I renamed it to to

81:36

Claudius because it's an inside joke

81:38

because I like Doctor Who. I felt

81:40

cloudbot is is a better name has a

81:42

better domain and explained the product

81:45

better. So I did on all the domains and

81:48

then I I also quietly built up my army

81:50

because to make this work you want you

81:53

want everything to be a CLI. So I was

81:55

just building CLI for everything like

81:56

for Google for my bed for lambs for

82:01

music.

82:02

>> Why CLIs? Why not why not MCPs? And what

82:05

do you think about MCPS anyway?

82:06

>> As a crutch it's it's I think that the

82:09

the best thing that came out of MCPS is

82:11

that it made companies reync to open up

82:13

more APIs.

82:14

>> Mh. But the whole concept is is silly.

82:19

You you have to pre-export

82:24

all the functions of all the tools and

82:26

all the explanations when your session

82:28

loads and then the model has to send a

82:31

precise blob of JSON there and gets JSON

82:35

back. But surprise, models are really

82:38

good at using bash. And like imagine

82:42

imagine you have a better service. So

82:44

the model could ask for

82:47

list of available cities and then get

82:49

like 500 cities back and then it has to

82:51

pick one city out of 500 city. But it

82:52

cannot filter that list because that's

82:54

not part of how MCP works. And then you

82:57

say, "Okay, give me the weather for

82:58

London." And you would get like the

83:00

weather, temperature, wind, rain, and

83:03

like 50 other things that I'm not

83:04

interested in because I just want to

83:06

know is it raining or not? Probably

83:08

raining because London. But the model

83:09

needs to digest everything and then you

83:11

have like so much crap in your context.

83:13

Whereas if it's a CLI, I could use just

83:16

it could use GQ and you could filter for

83:18

exactly what it needs. But does does not

83:21

seem like a limitation that everything

83:23

is loaded around the MCP in the context.

83:25

That seems a problem. Like it sounds

83:27

like it could work if MCPS were not in

83:29

the context and there was a way to

83:30

discover or decide which one to use.

83:33

>> That's what that's what companies are

83:34

building now. But there's still the

83:35

problem of that I cannot chain them. I

83:38

cannot I cannot easily build a script

83:40

that says, "Hey, get me get me like all

83:42

the

83:43

>> all the CDs that are over 25 degrees and

83:46

then and then filter out only that part

83:48

of information and like pack it in one

83:50

command." That's it's all individual MCP

83:52

calls. I cannot I cannot script it.

83:54

>> Yeah. But but I guess this is just a

83:55

matter of time because if we think about

83:57

like you know when when I'm building a

83:58

weather app right now, I know that you

84:02

know even without AI, I know I need to

84:04

build up this thing. I need to I needs

84:05

to fetch the data. So I will search what

84:07

kind of APIs are available, which one do

84:09

I like, which what kind of trade-offs

84:11

for pricing, for covering, etc. And then

84:13

I choose that API and I could chain APIs

84:16

because I I could get that result and

84:18

look up a etc. So I I guess this is, you

84:20

know, like it it sounds pretty much

84:22

we've solved this. So as free AI, we're

84:25

going to solve it. It'll just take some

84:26

time and who knows what the format for

84:28

it will be. I mean I mean I built make

84:30

porter which is a which is a a small

84:33

TypeScript thing that converts an MCP to

84:36

a CLI. So so you can you can just

84:38

package it up.

84:39

>> Basically you're saying CLIs right now

84:41

are a lot more efficient.

84:42

>> Yeah. Yeah. So so my in in in cloud but

84:45

I don't have MCP support but you can we

84:47

make portal you can use any MCP you can

84:49

you can literally be on your phone and

84:51

say hey use the use the versel MCP to do

84:55

this and this and it will go on the

84:56

website. It'll find the MCP. it will

84:58

load it and it'll use it all all on

85:01

demand. Even right now if you use MCP

85:04

you have to restart cloud code which is

85:05

like very user unfriendly. So I quietly

85:08

built up my army to like automate

85:10

everything which was a lot of work. Uh I

85:12

think t did a video a few days ago where

85:15

he told me like this guy is insane

85:18

because the list is really long by now

85:19

but like I I as I was playing with my my

85:22

my agent I just I want him to do more

85:24

and more stuff you know. I felt it

85:27

really hard to convey what it does. It's

85:30

still hard to me. In January, January

85:34

1st, just a week now, I did. Okay, let's

85:37

let's try something. Let's let's do the

85:39

ins really insane thing of like making a

85:42

Discord and then adding my agent to

85:45

Discord. There was somebody who

85:47

contributed Discord support to it. And

85:49

uh even though I wasn't sure if I should

85:51

merge it and I eventually did. So I put

85:54

on my agent who has full read write

85:56

access to my computer in a public

85:58

Discord.

86:00

>> What could possibly go wrong?

86:02

>> Yeah. It's like this is absolutely

86:04

insane. And then of course like some

86:06

people join the Discord and then they

86:08

saw me they saw me using the full power

86:10

of this thing like checking my cameras

86:13

doing home automation.

86:15

It playing DJ for me. Like I was in the

86:18

kitchen and I told him like look at my

86:20

screen and are my agents done cuz it has

86:22

full access of my clean and it can

86:24

click. So it can actually click into the

86:25

terminal and type for me and like it can

86:27

tell me your codex say this and this

86:29

because it just sees the screen. I mean

86:31

I'm working on optimizing that like I I

86:33

actually want to stream out it because

86:35

would be much would be much better if

86:37

it's text but it works already like it

86:39

it's it's in the background it look at

86:41

my screen and like make some rants if I

86:42

do some And everybody who

86:44

experienced it for a few minutes got

86:46

hooked. Like this was this was the

86:49

craziest blow up from 100 stars to like

86:52

what 3,300 stars in a week. Um and I

86:57

think I merged 500 pull requests

86:58

already. That's why I feel like I even

87:00

merge button. So, so that that's why

87:02

that's why I'm I'm a little I'm a little

87:06

all over the place these days because

87:08

this project is blowing off and and and

87:11

you know the beauty of it is the

87:13

technology

87:15

disappears.

87:16

You just you just talk to a a friend on

87:19

your phone that is infinitely

87:21

resourceful, has access to your your

87:23

email, your calendar, your files, can

87:25

build websites for you, can like do

87:27

administrative work, can scrape

87:29

websites, can call your friends or can

87:31

call a business. I'm just about to to to

87:33

merge the call feature. It literally can

87:35

call a business and like make make a

87:37

reservation for you and you don't have

87:39

to think about compactation or or any

87:43

all of that context blends away. I have

87:45

like a I have a memory system that will

87:47

remember um not perfect. Nothing's

87:50

perfect yet, but it's already feels

87:54

magical. cuz all cuz cuz now I I walk

87:58

around, I see like this event, I I send

88:00

Claude a picture, it will it will not

88:03

only tell me the reviews of this event,

88:06

if there's a conflict in my calendar, if

88:08

like friends talked about it or, you

88:10

know, it has so much context that it the

88:13

responses that it can give me are like

88:14

so much better than like what any of the

88:16

the current tools that live in their own

88:19

little box can give me. Well, sounds

88:20

like you built whatever Apple was hoping

88:24

Siri to do, but they've been unable to.

88:26

>> I honestly I built the best marketing

88:31

tool for Entropic to sell them more

88:33

subscription. I don't know how many

88:34

people signed up for the $200

88:37

subscription because of Cloudbot and

88:40

like many people already had one and

88:41

used a second subscription because of

88:43

that because it's so token hungry. It's

88:45

not is not that it's token hunter. It's

88:47

just that people love it so much that

88:48

they use it all the time. And because

88:50

the technology blends away, they don't

88:52

see that it spawns sub agents and does

88:54

like a whole bunch of things in the

88:55

background to just make it feel easy.

88:58

But like there's some actual engineering

89:00

like there's a lot of work in the back

89:02

uh to make it feel easy. You know, this

89:05

is like the hard part. Like you hide

89:07

complexity

89:09

to a degree that it it it feels magical.

89:12

Well, but yeah, but this is interesting

89:13

because like I I I can sense from we're

89:15

talking, you know, you put so much

89:17

thought into architecting this thing and

89:19

right now like you've been building this

89:20

for a few months and yes, it blew up,

89:22

but in your head like do you have a

89:24

structure of how CloudBot is structured

89:27

like what parts you need to modify, you

89:29

know, like like you kind of you can get

89:32

your your mindset into it and you you

89:34

know where modification needs to do. You

89:36

know what you want to refactor because

89:38

it's not going to be efficient. Are you

89:40

thinking about like things like memory

89:41

consumption, token consumption,

89:43

efficiency, those kind of things?

89:45

>> I mean, token consumption is more like

89:48

how do how do you structure the prompt

89:49

and memory?

89:51

It's it's TypeScript that shows Jason

89:54

around in the end. Let's be honest. Like

89:56

like like I get text from from an LLM,

90:00

>> I save text to to disk. I send text to

90:05

WhatsApp or to now we have like MS

90:08

Teams, Slack, Discord, uh Signal,

90:10

iMessage, WhatsApp, and there's there's

90:14

two more that are landing like Metrics

90:16

that will will expand this thing even

90:18

further. It's like it's it's really poly

90:20

by now. But but mostly I I again I I

90:24

move around text in different shapes and

90:26

maybe maybe it goes to different

90:28

providers or there's like now it's

90:30

different agents and there's like the

90:32

agentic loop and there's like a lot of

90:34

configuration and there's it's it's a

90:35

lot of plumbing but nothing's there's

90:39

nothing in there that is really

90:41

difficult. Yeah. Well, but it's it's a

90:43

lot lot of small things, right? Like I I

90:45

feel in software, right? Like we we know

90:47

for software even before AI there was

90:49

not much difficult. Of course, you need

90:51

to learn and understand the language and

90:52

all that, but

90:53

>> the difficulty is how do I how do I make

90:56

it so that it feels magical. So, so what

90:58

I worked on a lot is now you have you

91:00

have this oneliner that you type in that

91:02

you python your command. I will I will

91:04

check if you have node installed

91:05

homebrew installed. I'll I'll install

91:07

the mpm package. I do some check if you

91:10

have any existing stuff just to like y

91:12

>> just to make it work simple even if you

91:14

already used an older version and

91:16

everything. and then I I'll guide you

91:18

through uh setting up a model. But

91:22

again, I will I will predict

91:25

or or claude installed. So you can just

91:28

press enter. So you don't have have to

91:30

think about it. Mostly just press enter

91:33

and then you want a WhatsApp, you type

91:35

in your number, it will just work again.

91:38

And then and then I'll ask you do you

91:40

want do you want to hatch your bot? And

91:43

you can press yes. And then and then

91:45

like a TUI a TUI comes up because you're

91:47

still in the terminal, right? You want a

91:48

good experience.

91:49

>> Yeah. So just a toy basically for that

91:51

and where you where you to see wake up

91:54

my friend and then the the I programmed

91:56

the model I added a bootstrap file and

91:59

the to explain the model that it is now

92:01

being born to like create an identity

92:04

and a in a in a in a soul where like the

92:07

values of the user are in and then the

92:08

model will be like hello like stretches

92:13

who are you um who are who I am what's

92:16

my name you know and this this is is

92:19

like I've watched people do it and

92:20

that's where the magic starts. That's

92:22

where that's where they're like they no

92:24

longer think about I'm talking to to

92:27

GPD4.2. No, I'm now talking to my friend

92:31

created Vajorn like a a unicorn with

92:33

part of his name or like I'm talking to

92:35

Claude. Uh and then it's like what

92:38

what's important to you? What do you do?

92:40

It's like curious. I I programmed it to

92:42

be like curious and then go through this

92:44

bootstrapping phase and then it will

92:45

actually delete the bootstrap file and

92:46

create a a user.md with like information

92:50

about you a soul.md with like all the

92:52

core values and an identity with the

92:55

like what's his name what's his core

92:57

emoji what are the things that are like

92:58

inside jokes and and but it's like

93:00

evolving documents that it will maintain

93:02

and like tweak as you interact with it

93:04

and then you it will just like send you

93:06

a message on on WhatsApp and you just

93:08

like suddenly you talk on WhatsApp like

93:10

making this flow easy. That was hard.

93:13

Yeah. Also like even even get coming up

93:16

with the idea of you know you you're not

93:19

you're not editing the configuration

93:21

because the agent can edit its own

93:23

configuration. You don't have to update

93:26

anything because the agent can update

93:27

itself. You can literally ask your bot

93:29

update yourself and it will fetch itself

93:32

and update itself and come back like hey

93:34

I have new features. Planning the

93:35

technical giveaway so far that's the

93:37

magic. That's why that's why I

93:39

>> But it feels it's very similar to what

93:41

you would with PSP PDF cut, right? You

93:43

kind of blended away the complexity of a

93:45

PDF. So it was just there. You could

93:47

rotate, you could do.

93:48

>> Yeah. Yeah. Even at the API level back

93:50

then,

93:51

>> but it's a it's a bit bizarre like what

93:53

what you described reminds me of this

93:55

Black Mirror episode I just watched,

93:57

which is called Play Thing. uh where

93:59

it's a it's a digital little uh creature

94:03

that creates of course it's black mirror

94:04

so it has a black

94:06

>> bit bit of a dark ending but but it it

94:08

had it was also a game. It also kind of

94:10

feels you know we talked about how you

94:12

you don't play as much games cuz you

94:13

like but this also feels a little bit

94:15

like a game, right? But it it's it's

94:16

kind of like more connected with

94:18

reality. Just fascinating how we're

94:21

we're we're here pulling back into the

94:22

the realm of of software engineering. So

94:24

you built this this product and it's now

94:27

it's a production software you're

94:29

merging porocas people are using it now

94:32

thinking back to PSPDF kit and and

94:34

companies that are like that which which

94:36

have you know like like tens or hundreds

94:38

of developers working on on production

94:40

software knowing what you know with how

94:43

you're building cloudbot and the tools

94:45

that you're using how do you think

94:46

software engineering at those larger

94:48

companies could change because one one

94:50

thing I see is is for individual people

94:52

like you it's like AI I is really really

94:55

hitting a fit like you're making you way

94:57

more productive. You're in control at

94:59

teams or at companies that are you know

95:00

have existing code. It's just a lot kind

95:03

of slower. It's it's not really okay

95:06

people use it for this or that but but

95:08

it it seems a huge divide between the

95:10

two worlds. And you've kind of been you

95:11

know CEO for this company. What what

95:13

might that be or is it just more of a

95:15

timing thing where every new technology

95:16

often comes with with hobists you know

95:18

pick it up uh earlier? I think companies

95:20

will have a really hard time adopting AI

95:23

efficiently because this also requires

95:26

to completely redefine how the company

95:28

works. You know, you know, you know like

95:30

you know like at Google they they tell

95:32

you you can either be an engineer or

95:34

like a manager but or you want to also

95:37

like define how the UI looks. That role

95:39

doesn't exist because either you like

95:40

you you build it or you you design it.

95:44

But this new world needs people that

95:47

that have a a product vision that that

95:50

that can be able to do everything and

95:52

you need like far fewer of them, but

95:55

ultimately

95:56

just very high agency and and and high

95:59

competency people. But you can you can

96:02

like probably like trim the company down

96:04

to like 30%. Which is very scary because

96:06

like I mean economically this will all

96:10

this will all lead into a fiasco. Um,

96:13

and a lot of people will like have

96:16

trouble finding a a place in this new

96:19

world, but

96:21

I'm not the least surprised that current

96:23

companies cannot very successfully use

96:26

AI. I mean, they do to a degree, but you

96:30

you have to do a big refactor first, you

96:32

know, like not just on your codebase,

96:34

but also on your company. I design even

96:37

on code bases I design the codebase not

96:38

so it's it's useful it's easy for me so

96:41

that it has to be easy for the agent I

96:43

optimize for different things not always

96:45

the things that I prefer but the things

96:47

I know work the best and and and have

96:49

the the least friction for those models

96:52

because I just want to move faster and

96:53

ultimately they have to deal with the

96:55

code not me I had I deal with the the

96:57

overall structure and architecture and I

96:58

can still do that in the way that I like

97:00

everything has to be resold you know

97:02

pull requests uh I see them more as

97:04

prompt requests Now, like I don't I I

97:08

somebody opens a pull request, I don't I

97:11

lot I do say thanks and I think about

97:13

the feature and then with my agent we

97:16

start off with the PR and then I'll

97:17

design the feature as I see fit. The

97:20

agent rarely reuses like maybe I reuse

97:23

some code but it's more like it gives

97:25

the agent a good understanding of what

97:27

the goal is and sometimes it's very

97:29

useful because it's it's tricky bucks,

97:31

right? But I I basically rewrite every

97:33

pull request and and and v it in also

97:36

also a lot of people let's just say the

97:38

overall code quality of of PRs went down

97:41

a lot because people vibe code and and

97:44

building a successful feature still

97:45

needs a lot of a lot of understanding of

97:48

your overall design and if you if you

97:51

cannot do that you will have a harder

97:52

time steering your agent and the output

97:54

will be bad.

97:55

>> Yeah. And if you don't have the feedback

97:56

loop to close it etc.

97:57

>> Yeah. Yeah. So, so I found it highly

97:59

effective. Like I know at my at at PSVDF

98:02

kit sometimes a pull request was like a

98:03

week in the work

98:05

>> and you comment on it and then somebody

98:06

has to context switch and you wait for

98:08

CI for 40 minutes. No, I have the

98:11

discussion. I see okay how would this

98:12

affect something like I I I let the

98:15

model review. They will already bring

98:16

something up. I have some some ideas as

98:17

well. We're going to reshape it into a

98:19

form that fits my vision and then

98:22

we weave in the code. It's literally

98:25

there's so many new words I use for like

98:26

writing code now with those models which

98:28

is so funny like weaving in code into an

98:30

existing structure. Um and sometimes you

98:33

have to like change the structure so it

98:34

would fit. Now imagine that you would

98:36

hire one or two people to make it a

98:38

small team. How do you think in this

98:40

world and you keep want to keep doing

98:42

what you're doing? How do you think

98:43

things like code review CI CD would

98:47

change?

98:47

>> I don't I don't I don't care much about

98:49

CI. I

98:50

>> Why why not? you used to care a lot like

98:53

a PSPDF kid. You used to care a lot,

98:55

right?

98:55

>> And and I still do this. There's value,

98:58

>> but I I have local CI. I'm I'm a little

99:02

bit I'm a little bit of DAH now that

99:05

>> because because the agent runs the test,

99:07

right?

99:07

>> Yeah. And it's just way faster. I don't

99:09

I want to push on the on on the on the

99:12

back on the P and then wait for 10

99:13

minutes to wait for for CI

99:15

>> because you waited 10 minutes on the

99:16

agent already. I if if the tests pass

99:19

locally, we merge and then yes,

99:21

sometimes main slips a little bit, but

99:24

it's it's it's usually very close

99:25

because maybe sometimes I forget the and

99:28

the agents call it gate. I don't know

99:30

where that's coming from. Should I run

99:31

full gate? So now I call it gate with g

99:34

full gate is like linting and building

99:36

and and checking and running all the

99:38

tests. And I almost think it like

99:40

because it's a it's a wall, you know,

99:42

like it's like he calls the llinter and

99:43

like the builder and the tester. It's

99:44

almost like a gate before my code goes

99:47

out. So I know obviously like okay once

99:49

you're done like commit this run full

99:51

gate like I'm I'm slowly adopting their

99:53

language but but and if you hired like

99:56

one more person to work on this you

99:57

probably wouldn't do code reviews

99:59

either. That's what I'm sensing. You

100:01

would you'll probably trust this person

100:02

to run like like pick up your working

100:05

style, right?

100:06

>> Even in Discord, we don't we don't talk

100:08

code. We talk about architecture like

100:09

big decisions like you still need to

100:11

have style. Like there was like this one

100:14

pull request that adds voice calling. So

100:18

now like literally I can tell Claude,

100:20

hey, can you call this restaurant and

100:22

and and and reserve your seats and and

100:25

it it it can do that. But it it it's a

100:28

big it's quite a big new module that

100:30

like touches a lot of places. I'm like

100:32

you have to have this feeling is like

100:34

this like I got a little this is like I

100:37

want to merge this but oh this is

100:39

becoming bloatware. So I so I I had this

100:42

idea of like uh let's my typical way

100:45

let's make a CLI out of it and I already

100:47

had a project where I tried to solve

100:49

something like this but I'm finished. So

100:50

I opened up Codex and said, "Hey, look

100:52

at this PR. Look at this project. Could

100:53

we weave this feature in?" I again say

100:55

weave. I'm like, "So I'm

100:57

>> let's keep it.

100:58

>> Could we weave this feature into the

100:59

CLI? What are the up and downsides?" And

101:01

then would like tell me like, "Oh yeah,

101:03

I could do this and this and this." They

101:04

give me honest opinion. Would this to me

101:06

this sounds like it actually it would

101:08

fit into the project? I was like, and

101:10

was like, "Yeah, you would get this and

101:11

this benefits that we cannot do if the

101:13

next CLI." Okay, but I don't like this.

101:16

This is getting blowware. could we build

101:18

a plug-in architecture and then I will

101:21

and do you know like one of the the

101:22

secret hacks on on on

101:25

using effectively is you reference other

101:27

products like I constantly tell it look

101:30

into this folder because I solved it

101:31

there and I solved that there and all

101:33

the previous thinking I did to like

101:34

solve a problem well AI is so good at

101:37

this still to like read the code and

101:39

understand my ideas I don't have to like

101:41

explain it again uh or if I explained

101:44

again I might like make mistakes that

101:46

like wouldn't get across was exactly the

101:48

idea that I have in my head.

101:49

>> So in this case, I know that Mario who

101:51

does like shitty coding shitty coding

101:52

agent which is like a actually very much

101:55

not shitty coding agent. It's called Pi.

101:57

I know that he had this plug-in

101:58

architecture that would load

102:00

>> code via via GT and because it's all

102:03

TypeScript. So I was like, can you look

102:04

into this folder and this folder? And

102:07

then it just came up with this really

102:08

insanely good plug-in architecture again

102:10

by like being inspired by the people.

102:12

And then that's why, you know, I have

102:14

this feeling and then I I came up with

102:16

Yeah, that's what I built last night

102:17

basically. I mean, sounds like this is

102:19

going to be completely different like

102:21

you know PRs are are like in your

102:23

workflow, you're not using PRs that much

102:25

as CI is just different. It's it's tests

102:27

are still doing there's an more

102:29

important feedback loop. you're using

102:30

things more like weaving instead of

102:32

code. You're talking more about

102:34

architecture and taste. It sounds like a

102:36

pretty big shift to me. Now, in this

102:38

world, let's assume you get to the point

102:40

where you're going to you're hire the

102:42

next one and two and three developers on

102:44

this team. Let's imagine that this thing

102:45

gets a life of its own and you know,

102:47

maybe it's a business as well. What

102:49

skills would you look for? And what

102:51

would you advise a an experienced

102:54

engineer right now? Who would you be

102:56

excited to work with? kind of either

102:57

expertise

103:00

projects would you look for for someone

103:01

who sounds like who can work in this way

103:03

or can pick up this way of working?

103:05

>> Someone who's active on GitHub and does

103:07

open source and and someone where I have

103:10

the feeling that they they love the the

103:13

game. The way you learn in this new

103:16

world is by like trying stuff and it

103:20

very much feels like a game where you

103:22

improve your skills as you get better

103:24

like like a like a music instrument. you

103:26

have to like keep trying and I and I

103:29

that I'm now this efficient and this

103:30

fast and I don't know like I I think

103:33

like the other day I had like 600

103:34

commits in a single day. this is like

103:36

completely nuts and it works like it's

103:39

not it's not like there was there was a

103:41

somebody did a code review and said like

103:43

oh this is actually not slop and like

103:45

yeah uh

103:46

>> there's a lot of skill that went into

103:47

>> yeah it's it's it's it's a lot of hard

103:49

work but you need to play with the

103:53

technology and learn and then you will

103:55

get in the beginning it might be

103:57

frustrating I don't know kind of like

103:59

you you know you start going to the gym

104:00

it's going to suck it's going to be

104:02

painful

104:05

but very quickly you like you get better

104:07

and you and you feel that that your

104:09

workflow gets faster and then you feel

104:10

the improvements and then you slowly get

104:12

hooked. So So but yeah, play and and

104:17

yeah, also work hard.

104:19

>> Yeah, I I mean you're putting in more

104:21

hours into this thing.

104:22

>> I've never right now I've I've never I

104:25

never worked more even even when I had

104:28

my company. I I've never worked so hard

104:30

as I do now. Not because I have to, but

104:33

because it's so addictive and so much

104:34

fun, but also because right now I'm like

104:38

using the moment where where this has

104:40

traction and and there's a lot of people

104:41

who like are pushing me. Um, and I I

104:45

feel could it be cuz I think you have

104:47

pretty good business sense. Not not not

104:49

necessarily in the business business,

104:50

but seeing when there's an opportunity

104:51

there is an opening for to get traction,

104:54

right? Like what you said for people to

104:56

work in the open right now it seems

104:58

novel. You're telling me you don't think

105:00

you could, even if you wanted to hire,

105:02

you don't think you could hire people

105:03

cuz there's not many people working in

105:05

the open, clearly using these things.

105:08

Fast forward 2 or 3 years from now, once

105:10

a bunch of people start to do it and

105:11

everyone does it, it's kind of like moot

105:14

a little bit. So there there's also that

105:16

a group that a lot of lot of people are

105:18

worried about is the the new grads, the

105:20

the people with with no experience who

105:21

are either in school or about to

105:23

graduate because of course you've been

105:25

an experienced engineer by the time this

105:26

came around. you know, you have a lot of

105:28

things to build on. Putting that

105:30

yourself into shoes of of someone like

105:32

that and knowing what you know now, what

105:34

would you recommend of of activities

105:36

that they do, things that they build or

105:39

try and you know like do would you

105:41

recommend on focusing on the

105:43

fundamentals of software engineering on

105:45

this on the agents kind of mixing the

105:47

two?

105:48

>> I would I would recommend them to be

105:49

infinitely curious. Yes, it's going to

105:51

be harder to enter this market. It's

105:53

it's absolutely going to be harder and

105:56

you need to build things to like gain

105:58

experience. I don't think you need to

106:00

write a lot of code but you need to I

106:03

don't know you know there's a lot of

106:04

open source that is complex that you can

106:06

like check out and learn and you have an

106:08

infinitely patient machine that is able

106:10

to explain you all the things so you can

106:12

ask you can ask all questions why why

106:15

was it built this way to like gain

106:17

system understanding but it requires

106:19

real curiosity and I don't think

106:21

universities right now are set up to

106:23

teach you that in a in in a really good

106:24

way this is usually something you

106:26

discover through pain it's it's not

106:28

going to be easy for new people, but but

106:29

they have they have the benefit that

106:31

they are not tainted by all the

106:33

experience like they they they use

106:36

agents in ways that we don't even think

106:39

about again because they don't know that

106:41

it doesn't work and by then it probably

106:43

does

106:43

>> and also their friends use it all all

106:45

the time

106:45

>> especially like like the other day I I

106:48

have this little menu bar app for cost

106:50

tracking on on on on cursor and and and

106:53

cloud code and everything and it was a

106:55

bit slow. So I I was like, "Okay, let's

106:59

do let's do performance measurement."

107:00

And and my old way is like I open

107:02

instruments and click around. And it

107:04

would just call and do everything by the

107:06

terminal. It blew me away. I was like I

107:08

didn't even have to open instruments

107:09

anymore. And it just like made it

107:11

faster. And then did like some

107:13

recommendations. I'm like all of that

107:14

sounds good. Do it.

107:15

>> Yeah. I I think we might be

107:16

underestimating both like how

107:18

resourceful people entering tech have

107:21

been also how young people if I think

107:24

about some of the great companies

107:25

started they were very young and

107:27

obviously very inexperienced but had a

107:28

lot of passion so so that's there as

107:30

well yeah it's it's a big opportunity I

107:33

I'm especially taking in like it's I

107:35

have to take it in like but all the

107:37

things you mentioned about just your way

107:39

you know weaving code in not caring

107:41

about PR not caring about code reviews

107:43

it's a big change because these things

107:44

have been us with like again for like 15

107:47

plus years of your life they have been

107:49

in fact you know a lot of it has been

107:51

kind of you know solid building blocks

107:53

of PSPDF kit right yeah we need we need

107:55

a lot of new things even you know even

107:58

when I get a PR I'm actually more

108:00

interested in the prompts than in the

108:02

code I I ask people to please add the

108:06

prompts and some do and I I read the

108:09

prompts more than I read the code

108:11

because to me this is this is a way

108:13

higher signal of like how did you get to

108:15

the solution what did you actually ask

108:17

how much steering was involved then the

108:20

actual out to me this gives me more idea

108:22

about the output I don't have to read

108:23

the code or like if someone wants a

108:26

feature I ask for a prompt request like

108:28

write it up really well because then I

108:30

can just point my agent to the issue and

108:32

it will build it so because because the

108:34

the work is the thinking about how it

108:36

should work and what the details are and

108:38

if someone else does it for me I can

108:39

literally say build and it will work uh

108:42

and I and then yeah of course I think

108:44

about But it will will re really or if

108:47

someone sends me a PR that are just a

108:49

few fixes. I told people please don't do

108:51

that. It takes me 10 times more time to

108:53

to review that and just type in fix in

108:56

in in codex and wait a few minutes. So

108:59

there's there like all these insane

109:00

things that are like would have been

109:01

completely different

109:03

>> even even at the beginning. uh now we

109:05

have a oneliner but for the last two

109:08

weeks

109:09

like when it got really traction I told

109:11

people to just just point an agent at

109:13

the repository to configure it so so I

109:16

didn't had I didn't have an onboarding

109:17

but we had cloud codebased onboarding

109:20

where claude would like check out the G

109:21

repository read the things and write the

109:23

configuration for those people and set

109:24

everything up so it works like set up a

109:26

launch agent that didn't have the manual

109:28

setup because it was not a priority

109:29

anymore because because agents can now

109:32

do that for you and the and the and

109:33

since the the product was built by

109:35

agents. They structured it exactly the

109:37

way agents expect things to be named and

109:39

things. There's certain ways that are

109:42

encoded in in in the in the weights how

109:45

they expect things to be named and

109:47

everything exactly like how they expect.

109:50

So they are really good at navigating

109:52

their product. So it was not a priority

109:54

to work on onboarding as much. I mean

109:56

eventually I wanted this magical

109:57

experience but it was more important to

109:59

like make sure that your message arrives

110:01

and that things don't explode. So

110:02

onboarding was literally like type this

110:04

prompt into your agent. Um which is

110:08

would have been mind-blowing even a year

110:10

ago.

110:10

>> All right. So to to wrap up, we'll do

110:12

some rapid questions. So I'll just ask

110:14

and you tell me what's on your mind.

110:16

What's a tool that is not a CLI, not an

110:19

ID, it can be physical that you you use

110:22

you like you would recommend? I buy a

110:24

lot of gadgets and many of them dust

110:28

away. But there's this one kind of

110:32

crappy thing that was not expensive that

110:34

gives me almost unlimited amount of joy.

110:37

And it's like this Android powered photo

110:40

stand where I can upload pictures and

110:42

where like it has an email address and

110:43

friends can send pictures and it will

110:45

just show pictures. And I and I put a

110:48

few a few in in my house again. And I

110:51

mean even the animations are a little

110:52

croppy because it runs nward and it's

110:54

terrible from the technology but but it

110:56

gives me infinite number of joy because

110:57

it is low tech that just shows pictures

111:00

and reminds me of happy moments in my

111:02

life and it was like 200 bucks and I

111:05

don't know to be honest that gets me

111:07

more joy than the latest iPhone. I

111:09

bought the iPhone 17. I still haven't

111:11

unpacked it because I just in my head I

111:13

wanted it but then I couldn't get around

111:15

to it because it's just a hassle to like

111:16

move the Sims around and I said like

111:19

basically no no no no feelable benefit

111:22

but like this little this little device

111:24

gives me infinite joy.

111:25

>> What's something that helps you recharge

111:27

outside of tech like just or just moving

111:29

away from from tech and screens? What

111:32

keeps me sane, even if I work crazy

111:35

hours, is going to the gym, even better,

111:40

working with a a coach and leaving my

111:43

phone in the locker. And then I really

111:46

have like a good hour where

111:50

I just feel me and I and I'm like in the

111:54

moment and I'm not distracted by

111:58

notifications or tempted to like touch

112:02

my phone like we need more time for

112:04

this. Or even sometimes I I I go for a

112:07

walk and I I leave my phone at home and

112:10

it feels very scary. It's almost like a

112:12

it's almost like an organ now, you know?

112:14

It's like your your body knows where it

112:16

is and if you don't know where your

112:17

phone is, you freak out.

112:18

>> I I'm having I'm having a blast.

112:20

>> Love it. This is great, Pete. Thanks

112:22

very much. Well, this was a super

112:24

interesting conversation and it feels to

112:26

me that how one person teams built

112:27

software with AI is already completely

112:29

different to what we've been used to.

112:31

One thing that really caught my

112:33

attention is how Peter thinks in prompts

112:35

and not pull requests and how he weaves

112:38

in the code and no longer merges the

112:40

code. He doesn't find poll requests all

112:42

that useful and would rather get prompt

112:44

suggestions even on GitHub. I do think

112:46

we might have to rethink the importance

112:48

of prompts or at the very least sharing

112:50

of prompts in software development the

112:52

more we use AI and AI agents. Another

112:54

thing that struck with me was Peter's

112:56

emphasizing how important is to close

112:58

the loop. As Peter explained, the reason

112:59

AI is so good at coding but often

113:01

mediocre at writing is because you can

113:03

validate code. You can compile it, run

113:05

tests, check the output. So, the secret

113:07

to making AI system development work

113:09

well is to design your system to close

113:11

the loop and have the AI run the test.

113:13

Finally, I was wondering if Peter is in

113:15

the flow as much even when he's not

113:17

writing code. Turns out he is. He's in

113:19

the flow more than ever. And he told me

113:21

that it's mentally more exhausting to

113:22

juggle several AI agents in parallel

113:24

than it was just to write code. My

113:26

feeling is that someone who was a great

113:28

developer without AI can be an excellent

113:31

kind of code architecture or carding

113:33

person with AI. This is just a gut

113:35

feeling I've had so far, but Peter seems

113:37

to prove it. Finally, we should note

113:39

that Clawbot is more of a YOLO project

113:40

than most production apps. So, take the

113:43

approaches that we discussed with a

113:44

grain of salt. At the same time, I do

113:47

think that a lot of what Peter does

113:48

could well spread to building production

113:50

code, except review and validation will

113:52

become a much more important step in

113:54

those projects. If you enjoy this

113:55

podcast, please do subscribe on your

113:57

favorite podcast platform and on

113:58

YouTube. A special thank you if you also

114:00

leave a rating on the show. Thanks and

114:02

see you in the next one.

Interactive Summary

Peter Steinberger, the creator of PSPDF kit, discusses his return to software development after a three-year burnout-induced hiatus. He details his new AI-driven workflow for building his personal assistant project, Clawbot, which involves managing multiple AI agents in parallel. Peter explains why he believes traditional methods like code reviews are being replaced by "prompt requests" and emphasizes the importance of "closing the loop"—creating automated validation systems so AI can test and debug its own code. He also shares his preference for using CLIs over MCPs to maximize agent efficiency and taste in system architecture.

Suggested questions

5 ready-made prompts