HomeVideos

Maintaining a codebase with AI | The Standup

Now Playing

Maintaining a codebase with AI | The Standup

Transcript

1334 segments

0:00

Welcome everybody to the standup. We

0:02

have quite the list today and we're

0:04

going to be talking about quite the

0:05

topic. It has been all over Twitter. The

0:08

new uh NextJS clone from Cloudflare V.

0:12

Next. And with us we have on we have DNE

0:15

from uh Cloudflare CTO. Correct. Uh we

0:18

have Steve. Steve, sorry I do not know

0:20

your position. And Dylan, of course,

0:21

most people here know Dylan, streamer

0:23

extraordinaire. Uh if you guys could

0:24

take a moment, maybe introduce

0:25

yourselves a little bit better, that

0:26

would probably be the best.

0:28

>> That would be better. That would be good

0:29

actually.

0:31

>> YEAH.

0:34

[screaming]

0:34

Uh anyways, sorry.

0:36

>> Yeah, thanks a lot for having me on. Uh

0:37

Dane Connect, uh I'm the CloudFare CTO.

0:40

I've been at Cloudflare for a little

0:41

over 14 years. Uh and uh uh trying not

0:45

to break the internet every day.

0:46

>> Reasonable. Yeah, because when

0:47

Cloudflare goes down, so does the

0:49

internet.

0:49

>> Uh I'm Steve Falner. I'm the director of

0:51

engineering for workers uh containers,

0:53

agents, SDK, bunch of other stuff, about

0:56

100 people. Um, so responsible for a

0:58

bunch of our like developer platform

0:59

products. Uh, I've been on it for two

1:01

years, so Dane's got got a few on me.

1:02

>> I guess we're going in order of

1:04

seniority. Dylan, go ahead.

1:05

>> I am the, uh, the least senior by far

1:07

here. Uh, [laughter]

1:08

I'm an engineer at, uh, Cloudflare. I've

1:11

been here for four or five months now.

1:14

Uh, and working one on one of our AI and

1:17

agent teams. And as chat knows, I do a

1:20

lot of streaming. Uh, so a lot of

1:22

familiar.

1:23

>> Also one of the founders of Tweet Mash

1:24

and the real humans. So I mean

1:27

>> Drew Dylan Mos

1:28

>> he was he was definitely not

1:30

moonlighting to be clear definitely not

1:32

there was no nothing during that time

1:34

period was involved in

1:36

>> I think there's a lot of ways we could

1:37

introduce this topic so uh I think it'd

1:40

probably be best just for everybody kind

1:42

of getting up to speed why don't you

1:43

kind of give like a pitch of what is V

1:45

next and what is or what was like the uh

1:48

goal for you going into this shall we

1:51

say experiment

1:51

>> the goal is pretty much everything we do

1:52

we do it we do it for customers uh it's

1:55

you know for almost 5 years now. been

1:57

one of the biggest requests is how do

1:59

you make next uh easier to deploy on

2:01

cloudflare uh and you know we we

2:05

recognize we have a slightly different

2:06

architecture uh uh you know we have

2:08

region earth deploy once goes everywhere

2:11

uh we that applies different constraints

2:13

to how you can build things on

2:14

cloudflare I mean there's always going

2:16

to be trade-offs uh so uh you know we we

2:19

understand that uh you know next was

2:21

built for more traditional environments

2:23

and uh uh no issue with that uh And so

2:26

uh you know we've we've always been

2:27

trying to figure out ways to make it

2:29

easier to deploy on Cloudflare because

2:30

that's what the customers are asking

2:31

for. Uh and uh actually last summer

2:35

Steve uh uh pitched uh the idea that uh

2:38

uh let's have one of the interns uh just

2:40

try this. Uh he kind of had the idea

2:42

that you know uh the next the light

2:45

surface area with with the next APIs

2:46

actually could work. Uh he thought it

2:49

through a little bit and uh uh we

2:50

brought on uh an intern who uh you know

2:53

he he gave it a good shot. uh you know

2:54

interns only here for three months. He

2:56

he got a lot of the page router uh

2:58

surface area done uh and and uh you know

3:01

we kind of put that on the shelf uh

3:03

because we realized it was going to be

3:04

quite an investment to actually

3:05

>> the lava lamp shelf or a different one.

3:06

>> I don't know. Probably probably more in

3:08

Steve's garage. Uh

3:09

>> okay. [laughter] Got it.

3:10

>> Yeah.

3:11

>> Yeah. Uh and and then I I guess Steve uh

3:13

uh uh you know a month a month month and

3:16

a half ago, two months ago was I guess

3:17

in his garage and uh said, "Hey, I have

3:20

a new I have an electric screwdriver

3:21

now. Uh, I'm gonna uh let's see if I can

3:24

give it give it a go. Uh uh and finish

3:26

this project out.

3:27

>> T production's down.

3:30

>> I don't concern myself with such

3:32

matters.

3:32

>> What do you mean production doesn't

3:33

concern you?

3:34

>> I've shipped 37 nay

3:38

38 features today.

3:42

Teach always makes [music] the mess and

3:43

I always clean it up. I'm better than

3:45

that. I don't have to be a janitor.

3:47

Someone has to be the adult around here.

3:50

>> Who Who is that? It's me, your Westerly

3:53

godfather.

3:54

>> John John Carmarmac.

3:56

>> What? No, it's me, Trash.

3:57

>> Oh, wait. Are you here to finally get

4:01

management to understand software?

4:02

>> What? I'm a West LA godfather, not a

4:04

miracle worker.

4:05

>> Oh, then why are you here?

4:07

>> I'm here to tell you about Seir by

4:09

Century, [music] the world's first AI

4:11

debugger that actually has access to all

4:13

of your logs, stack traces, code, commit

4:15

history, and more. Code breaks, but you

4:18

can get the fixed [music] faster with

4:19

Seir.

4:20

>> Who are you talking to? What? Back to

4:22

the standup.

4:23

>> Build with AI, fix with century.

4:26

>> Yeah, it was it was really for me it was

4:28

all about AI, right? I mean, next and

4:31

sort of applying it to VET was the

4:33

problem that I ended up picking, but it

4:35

was more about like how can I push all

4:37

AI in all these ways and these limits

4:38

and can I can I just take it further

4:41

than I've taken any other project. And

4:42

so it just sort of the the right problem

4:45

at the moment. Can

4:46

>> can we go back to the intern for a quick

4:48

second? What was the intern's reaction

4:49

when you're just like hey make Nex.js

4:52

for Cloudflare no mistakes like what

4:54

what was the [laughter] what was that

4:56

experience like?

4:58

>> He he was excited. It was one of our you

4:59

know interns was more ambitious uh than

5:02

most and he really wanted something big

5:03

and juicy to try. And so I said hey

5:06

here's a big juicy thing. Um you know

5:08

see how far you get and and honestly

5:09

like we scoped it initially just to

5:11

pages. I didn't think he would even get

5:13

to touch app router before you know 3

5:14

months. And yeah, he he made a decent

5:16

amount of product on uh progress on

5:17

pages like it it did kind of work um at

5:20

least the basics and so yeah it at least

5:22

showed me that there was something there

5:24

like a thread to pull and then it was

5:26

sort of like okay now AI is here and can

5:28

actually you know do the rest of the

5:30

work.

5:30

>> How do you make the decision to put

5:31

something on the shelf at that point

5:32

because you have a somewhat working

5:34

version of it. you have a bunch of

5:35

customers wanting to use it and but you

5:38

have to maintain it afterwards like at

5:40

what point what was the line that said

5:42

okay we're willing to maintain things at

5:44

this point because obviously you did not

5:45

go forward with the interns work

5:48

>> yeah well first off this thing was just

5:49

pages router right which is you know

5:51

there's a bunch of people out there that

5:52

still are on pages router and love pages

5:54

router and want to keep using it so um

5:55

you know I I could see a world where we

5:57

would have just like done a pages router

5:58

only version um but again this is where

6:01

AI just kind of keeps coming back into

6:03

the story uh if you go look at the the

6:04

V-EX repo, we maintain it with AI,

6:07

right? We have AI bots that are doing

6:08

triaging. We have AI bots that are

6:10

reviewing all the PRs. We have AI bots

6:12

that are doing security reviews. We have

6:14

now AI bots that track the next.js repo

6:16

and then open up issues back into our

6:18

repo when we find commits that are

6:19

relevant. So, it's like part of why we

6:23

can keep doing this is because of AI,

6:25

too. It's it's why we could do it and

6:26

then it's why we can keep doing it.

6:28

I mean I I mean in some ways the fact

6:30

that we're also doing this uh as open

6:31

source uh it's a kind of a bigger

6:34

experiment on on how you make open

6:36

source work with in in the AI world you

6:39

know a lot of open source maintainers

6:40

are really struggling with uh um uh all

6:43

the pull requests to uh you know to have

6:47

to deal with the completely comments and

6:49

uh you know is there more sustainable

6:51

way u and so far this has been pretty

6:54

sustainable like I think there's over 50

6:56

committers uh who actually when we say

6:58

they're committers, it means they they

7:00

wrote a plan for an agent to uh

7:01

implement something. Uh you know,

7:03

they're still using all AI uh

7:05

implemented code, but you know, they're

7:07

still committers and they're helping

7:08

move the project forward. uh uh but then

7:10

uh you know then you have their agents

7:12

talking to the GitHub comments uh and

7:15

and so you know we don't have it all

7:17

figured out but I I I feel like there's

7:19

a model here where uh uh you know you're

7:22

applying uh uh AI in any sustainable way

7:24

to open source and and um yeah I think

7:28

that's and that's kind of the beauty of

7:29

open source

7:32

>> I had a so sort of like related to that

7:35

in terms of you know what so I did a lot

7:38

of stuff uh with Neo Vim and like

7:41

maintaining a fork that like still cared

7:44

about like we were trying to still make

7:46

it so that it wasn't like completely

7:47

different experience compared to using

7:49

Vim still applying like patches and a

7:51

bunch of other stuff. I think actually,

7:53

you know, Neovim is experimenting with

7:55

some stuff in some of the same vein of

7:57

figuring out like, hey, how do we not

8:00

have to spend all of our time like

8:02

merging over patches from Vim? You know,

8:04

like some people that's like their

8:06

thing, Dylan, I think, you know, like

8:07

like there's a few people who are like,

8:09

how does this person even do all this?

8:10

It's crazy. Um, but like how, you know,

8:13

deciding like, okay, we're going to have

8:15

this this fork and everything. Like how

8:17

do you decide what features from next

8:19

make sense to go into this? How do you,

8:21

you know, triage what things are most

8:23

important, etc. Like I, because that

8:24

that part for me is the really difficult

8:27

part about like having a fork of

8:29

something is not so much like, hey, we

8:31

have this new piece of code, but you

8:32

also need to, you know, decide how it

8:36

continues to be a drop interface, is a

8:38

drop replacement for certain aspects or

8:40

what? I'm interested on that like part

8:42

of the maintainership.

8:43

>> Well, I mean, I think that's part of how

8:44

you define the mission of it, right?

8:45

Like the mission is it to be it's to be

8:47

a

8:48

>> uh it's this not really a fork. This is

8:51

a you know it's just the the next API

8:54

service the official API surface put

8:57

over a different runtime really the

8:59

runtime. [clears throat]

9:00

So we actually are are not accepting uh

9:02

uh poll requests and feature requests

9:04

for things that fall out of that. Uh we

9:06

we are following Nodeex completely. um

9:09

versus today uh uh uh we launched uh uh

9:13

Mdash which is a I would call that you

9:16

know uh probably name these different

9:18

kind of forks you know I call that more

9:19

of a spiritual fork of WordPress where

9:22

you know uh it can import WordPress it

9:24

looks a lot like WordPress in a lot of

9:26

ways uh but you know it has a lot of

9:28

unique things that uh go off the

9:30

traditional path and it you know and I

9:32

think its road map over time will

9:33

diverge uh uh diverge more like more

9:36

like a traditional fork um you know I

9:39

mean there's a long history of how you

9:41

know different forks evolve like you

9:42

know you know you know webkit came out

9:44

of uh the you know Linux ecosystem and

9:47

then Chrome obviously uh made it you

9:50

know blink and uh sometimes they diverge

9:53

and I mean honestly if we didn't have

9:54

forks we would still be all on IE

9:56

probably right uh uh you know or the the

9:59

nodes ecosystem right in that case uh

10:01

node you know obviously had the fork to

10:03

IO and uh um you know it made some

10:06

points and uh it actually brought the

10:08

community back together in a better

10:10

place uh when it kind of reemerged back

10:11

together. Um uh so I mean in general I

10:14

think it's all healthy. I think uh uh it

10:17

just you can do it at such a different

10:19

rate uh and cost uh uh today that that's

10:22

really the the biggest part of the

10:23

story.

10:24

>> What are what are you guys going to do

10:25

if you have to kind of compete against

10:27

some sort of surface area that goes

10:29

against what you're doing? cuz I know

10:31

you made like uh building was one of the

10:33

big things where you made building work

10:34

better because it doesn't build every

10:36

single artifact if they have some sort

10:37

of static thing. Instead, it analyzes

10:39

your traffic. It's like, "Hey, we're

10:40

only going to build 10% of your assets

10:42

because if we do that, we're going to

10:43

cover 99% of traffic. It's super fast

10:45

and your build time's not 45 minutes."

10:47

What are are there things they could add

10:49

that you would have to say no to? Like,

10:52

is there a world where Vex is actually a

10:54

like a different fork? it no longer

10:56

maintains the same surface area or are

10:59

you like hard on same surface area

11:00

always?

11:02

>> I would say right now we're hard on same

11:04

surface area always, right? I'm I'm not

11:06

trying to create like drastically

11:08

different things. I would I would say

11:10

like never say never though, right? Like

11:11

I mean we're going to see where this

11:12

goes. If they introduce something that

11:14

completely you know is like against what

11:17

you know like we want to do or or

11:19

against you know maybe like what we

11:20

consider a best practice for

11:21

architecture. I mean we'll consider it

11:23

right. It's it's going to really depend

11:24

on the thing and what what is needed. I

11:26

I'll be honest, I've been surprised how

11:28

many people have come in asking for us

11:30

to fix bugs in Next or things that Next

11:33

has said it won't do, right? Um there's

11:34

actually a pretty active discussion

11:36

right now, a feature from Next 9 that

11:38

apparently a lot of people really liked

11:40

uh that they deprecated. There's a bunch

11:42

of people that

11:42

>> like eight versions ago or something

11:44

that is the feature like what is the

11:46

request going on? They they switched

11:48

from get initial props which ran on the

11:50

client and the server to get server side

11:53

props. I I think I'm hopefully getting

11:54

the details right there. And a lot of

11:55

people still like get initial props,

11:57

right, for various reasons. So there's a

11:59

a vocal community that wants us to add

12:01

get initial props. I don't know if we'll

12:02

do that one since it's it's deprecated

12:04

and we're we're still trying to keeps

12:06

true to next at least next 16 like where

12:08

next is at today. Um but it's the kind

12:10

of example of things that are coming in

12:11

that people are asking for. So there's

12:14

like smaller ones like little behavioral

12:16

tweaks where somebody maybe says, "Oh,

12:18

next should have always done it this

12:19

way. Will you just do it that way

12:20

instead?" Um, but so so far it's we've

12:23

been really holding the line of like,

12:24

"Let's just do it the way Next does."

12:26

Because we wanted to just, you know,

12:27

match one for one.

12:28

>> So there's there's a uh there's a kind

12:31

of a funny law that in programming. We

12:33

have a lot of laws in programming,

12:34

right? One of them is Hyram's law, which

12:36

is effectively that the internals, there

12:38

will eventually be features that aren't

12:39

documented that you rely on that people

12:42

rely on. How have you ran into any

12:45

Hyrams law that's like a non-documented

12:48

feature, but just the way that it was

12:49

programmed that people are like, "Hey,

12:51

this doesn't work." Like Verscell, I can

12:53

launch this on Versel, but I can't do it

12:54

on Cloudflare because of some funny

12:56

internal if statement that you just

12:58

don't have captured.

13:00

>> I'd say some of that's coming from the

13:02

community packages, right? So things

13:04

that are people have plugged into the

13:07

next internals, right? Like other

13:09

vendors, um other people supplying like

13:12

you know things that plug into your

13:13

next.js app automatically and hook

13:15

things in. That's where we've probably

13:16

hit the most friction is that they

13:18

either were knowingly plugging into

13:20

undocumented next internals or they

13:23

didn't know they were and now they're

13:24

finding out right when they try to come

13:25

use V- Next. Like when someone imports

13:27

like do not import this or you will be

13:29

fired or something like that and they're

13:30

like well bro but you guys aren't

13:31

supporting do not import this or you

13:33

will be fired. That's literally the key

13:35

to my workflow. [laughter]

13:38

>> You'll you'll see it ne if somebody

13:39

imports from next disc, right? Like

13:41

that's like next ex you know internal

13:44

distribution right that's where they

13:45

that's where they they usually end up

13:47

into trouble. So

13:48

>> do do you guys support importing from

13:50

vinexist or is that just a [laughter]

13:52

something that you're like no we will

13:54

not do internals.

13:56

right now. No, we have not done it yet.

13:58

But I again never say never. Um we D

14:00

said at the beginning like we're doing

14:02

what customers want. This whole thing is

14:03

about like how can we give people a

14:05

better experience uh running Nex.js like

14:07

everywhere and on Cloudflare. And so if

14:10

there's enough demand for something,

14:11

we'll at least think about it.

14:13

>> The the spike the spike on new new users

14:16

that day was, you know, one of the

14:18

biggest uh one day spikes ever. like uh

14:21

um I mean you can see that there's

14:23

there's pent-up demand uh and you know

14:26

that that's why we why we do things

14:28

here.

14:29

>> What's the like you know obviously right

14:32

now it can't do literally everything?

14:34

What's the path or like what would make

14:35

you guys feel like it moves out of like

14:37

an experiment into something that's like

14:40

not experimental or you would say is

14:42

like oh we're we feel good about this?

14:45

>> We're we're working through that now.

14:46

So, probably the big one you already

14:48

mentioned is is proper um uh

14:50

pre-rendering for everything. I mean,

14:51

some people still want that, right? They

14:53

don't want the percentage pre-rendering.

14:55

And so, uh we've got some stuff going on

14:57

right now for that. Um there's some ways

15:00

just some like a lot of little like

15:02

things that Next does a little

15:03

differently and we're trying to figure

15:04

out like do we want to do it a little

15:05

differently? You know, some of these

15:07

things don't map cleanly between Vit and

15:09

Turboac, right? So, there's stuff where

15:11

we're trying to still work out some

15:12

details. Um it's all small stuff where

15:15

like like a hard navigation might happen

15:18

in our case but it wouldn't happen in

15:19

next because you know they do some sort

15:21

of like soft navigation you know hijack

15:23

into what the browser is going on. So

15:25

there's a few examples of that but it

15:27

really mostly works right like if you

15:29

look at like the bulk of what people are

15:30

you know doing with next and that's sort

15:32

of the long tale of new API features but

15:34

you know routing and hydration

15:36

serverside rendering all works. I'm I'm

15:39

interested a little bit in sort of just

15:41

like you know you said a lot of it is

15:45

you know people with their AI agents

15:46

like I'm interested in knowing like how

15:48

do you guys manage that from like a hey

15:53

it's a fastmoving thing we're

15:54

experimenting people are running this in

15:56

production how do we make sure we don't

15:58

just like insify our entire like app or

16:01

release like yeah I mean I know that

16:04

it's all the rage these days to add 37k

16:06

lines of code a day and you're like if

16:08

you're not doing that, you're getting

16:09

left behind. But I'm wondering how you

16:11

guys, you know, prevent uh like that

16:13

situation from happening from some of

16:15

the stuff you said at the beginning.

16:16

>> Yeah. So, I'll give a couple examples.

16:18

Um I mean, number one, the we rely on

16:20

the tests, right? The, you know, we

16:21

ported a bunch of the next.js tests, not

16:23

all of them because they didn't all make

16:24

sense to port, but we ported a huge

16:26

suite of tests and we're still porting

16:27

more. So, it it's just having that

16:29

confidence that these tests are doing

16:31

what they think they do, so we're not

16:32

breaking users. Uh we have endto-end

16:34

tests, unit tests, and then we kind of

16:36

have a whole suite now of uh like smoke

16:38

tests that we run against production

16:39

deployments. Uh the other thing too is

16:41

there's been a couple times where I've

16:43

had to sort of go in and and unslapify

16:45

things with AI. So um probably the best

16:48

example is that there was a part that

16:50

was about a 2,000line uh template string

16:53

in there that was like a lot of logic

16:54

got like you know like clobbered into

16:57

this thing.

16:58

>> Mhm.

16:58

>> I'm I'm not going to lie, it was pretty

16:59

bad. And I and I just sat down one day

17:01

and I was like we cannot have this in

17:02

here. this is unmaintainable for humans

17:04

and AI.

17:05

>> So I spent I spent the weekend kicking

17:07

off a bunch of PRs and just bit by bit

17:10

got stuff out of there, split it out

17:11

into its own modules. Um and so like

17:13

just going through and finding where the

17:15

slop happens and then sort of saying no

17:16

no I'm going to spend time desopifying

17:18

that part.

17:19

>> I've actually seen that exact thing many

17:21

many times even using Cloudflare like

17:23

hono just saying like hey AI agent let's

17:25

go build out this thing. It's just like

17:27

gotcha dog. It's just one. It loves

17:29

giant HTML strings and or a JavaScript

17:32

strings and then it becomes impossible

17:33

to start debugging because then it's

17:35

just this crazy cycle of how do you

17:37

actually know it's it's tough. It's a

17:39

tough world.

17:40

>> It no linting, no type checking. It's

17:43

just like the wild west. Yeah. So

17:45

>> yeah, just interpolating strings. Yeah.

17:47

I'm like that's my favorite way to do

17:48

this. This is this is why I write full

17:50

stack JavaScript is so I can throw away

17:52

JSX and I can use template strings.

17:55

>> [laughter]

17:56

>> Steve, I actually have a a good question

17:57

for you because like you probably

17:59

>> Hey, Dylan, you're you're a guest here.

18:01

You're not an interviewer. What the

18:02

heck? No, I'm just kidding. I'm just

18:04

kidding. Go ahead, Dylan. I'll allow it.

18:06

We'll allow it. We'll allow I we've

18:07

talked about we talked about this a

18:09

little bit early when you started the

18:10

project, but I wanted to follow up and

18:12

ask the question again now that you've

18:14

like had you probably have more

18:16

experience than most people in driving a

18:19

large codebase with exclusively AI and

18:22

like finding slop like this template

18:25

string literal that you were just

18:26

talking about like have you found good

18:29

strategies for like building tooling for

18:33

either the repo CI/CD or like harnesses

18:36

to like prevent vent the same mistakes

18:37

over and over again or like what what

18:39

are like your tips for like like there's

18:42

a whole conversation to be had about how

18:43

to properly do like agentic development

18:45

like I'm I'm very much in the camp and

18:46

like I want to keep my work small I want

18:48

to keep it isolated and I want to review

18:50

every single line of code that goes in

18:52

but like

18:53

VX being like a good experimental repo

18:55

and like how can we like really maximize

18:57

this like what have you found to work on

19:00

putting good guard rails on the AI and

19:02

getting good results

19:04

>> I mean mentioned already test lint

19:07

uh stuff around well formatting matters

19:09

a little less but I think it still helps

19:11

right so some of the diffs aren't you

19:12

know ridiculous so we we've put a lot of

19:14

effort into that um I honestly like I

19:18

would say once a week I just go ask AI

19:20

like hey what's the sloppiest part of

19:22

this codebase and how can we fix it

19:24

right um I think that's an important

19:26

part we also I do have a a scheduled

19:28

process that updates agents.mmd every

19:31

few days so it goes and looks through

19:33

PRs looks through the comments on those

19:35

PR ours where we had AI uh you know

19:38

finding stuff and saying okay how can we

19:40

make sure we don't you know make these

19:42

same mistakes again. Um I this stuff is

19:45

pretty wild. Like every time I I think

19:47

I'm like oh I'm kind of hitting a limit.

19:48

This is like it can't figure itself out.

19:51

The answer just kind of seems to be

19:52

throw more AI at it and it it sort of

19:55

like rescues itself right from the

19:56

brink. Um

19:58

>> I don't know. So

19:59

>> and this has sort of become like a lab

20:00

for us for you know uh how we do things

20:02

internally. I mean internally you know

20:04

we are still very much in the you know

20:07

engineers write the code uh uh with AI

20:10

they commit it and you know much more

20:12

traditional still uh you know pull

20:13

request uh uh process via via human um

20:17

uh but with AI assistant of course um

20:21

and you know we have strict rules like

20:22

no vibe coding you have to read every

20:23

line of your code and you you basically

20:25

attest to it when you you do it um uh

20:27

but you know we obviously see that

20:30

things in this project where we want to

20:31

apply internally and try to think of how

20:33

you do the guardrails not on a you know

20:35

a project that has one main maintainer

20:37

and uh versus like you know a 2,000

20:39

person engineering org. Uh and the

20:42

things that we found that work real well

20:43

there is you know there's linting but

20:45

there's also uh uh you know how you

20:47

build and so like we've been working

20:49

internally a lot on what we call like

20:50

the engineering codeex which is a set of

20:52

RFC's that get kind of rolled up into a

20:54

kind of like a ten commandments of a lot

20:56

more than 10

20:59

on how you build everything and then uh

21:01

you know an AI reviewer internally uh

21:03

doesn't just do a security review

21:05

doesn't just do a uh you know

21:06

performance review uh um it actually

21:09

goes over the codec and says you know is

21:11

this how you build things at Cloudflare

21:12

and kind of reviews those and and some

21:14

of those things are are things like you

21:15

know kind of Steve you know no long HTML

21:18

strings uh you know obviously those of

21:20

things it would catch and uh hopefully

21:22

kind of put the the AI back to the the

21:25

PR reviewer back in you know back back

21:27

at it to to review it. Um, but you can

21:30

see that those things can kind of get

21:32

applied to more purogentic workflow in

21:33

the future as well too. Those kind of

21:35

guardrails, but I mean you have to treat

21:38

the AI like as if it was another

21:40

engineer. I mean, a AI is kind of just

21:42

making us all clean up a lot of the tech

21:44

debt that we had where we our readme

21:46

weren't up to date, our comments weren't

21:47

good, our code wasn't structured great.

21:50

Uh, um, you know, AI wants the same

21:52

things as, you know, any human developer

21:54

wants when they come into a project

21:55

really. Uh um so

21:58

>> realistically you're obviously

22:00

approaching Vinex much different than

22:02

you're approaching everything you do

22:03

internally, right? Uh I forget I forget

22:05

the name of the the big the big edge.

22:07

You had a name for it. It was in Lua for

22:09

version one. It's now in Rust for

22:11

version two. I forget I read so many of

22:13

your blogs at this point. I know there's

22:14

a name for it. But uh could you ever

22:16

would you be okay with people trying to

22:18

take the same approach that you see in

22:20

Vext into that area? I think it I mean

22:23

today probably not quite just because I

22:25

mean uh but but I think you'd have to do

22:28

a whole different set of uh test suites

22:31

that that uh that uh just the level of

22:34

detail of writing something that is so

22:36

uh uh specific to our hardware so that

22:38

we get you know every CPU cycle is you

22:40

know perfectly timed. So we I mean I

22:42

mean it's the only way we can run at our

22:43

scale and offer so many free things is

22:45

if everything is kind of perfectly

22:46

aligned there. uh that takes uh um a lot

22:50

of innovation that uh you know that that

22:53

you know I think the AI is still good at

22:54

at at how you copy existing patterns and

22:56

you replace it. I still haven't seen AI,

22:58

you know, invent a new algorithm, uh,

23:01

uh, or invent a new way where like, you

23:04

know, building FL, we also have patches

23:05

that go all the way into the kernel that

23:07

changed how IPv6 hash look uh, IPv4 hash

23:10

looks ups happen, right? Like AI

23:13

wouldn't know that in order to build

23:14

this, we also need to do a kernel patch

23:16

uh, to uh, uh, to to change how we uh,

23:19

you know, do do these socket lookups,

23:20

right? Um, so I mean

23:24

I think the level of complexity and is a

23:27

little different in those cases.

23:29

>> Do you think any of it also is

23:32

different? Like for this one a lot of it

23:34

is there's already a welldefined like

23:37

shape and stuff that you're trying to

23:39

match against versus like hey we're

23:41

starting a brand new green field

23:44

project. Like I've seen it go off the

23:48

rails a lot more often when I'm like,

23:50

"Hey, like let's just write this." And I

23:52

say like, "Okay, go." And it spins for a

23:54

little bit and it comes back. I'm like,

23:55

"This is so bad. I can't believe that

23:59

this generated this as opposed." So I'm

24:01

wondering like your thoughts on I is

24:04

this like a particular kind of repo

24:06

where it's special that this kind of

24:08

strategy would work compared to like a

24:09

regular I'm driving my own product. I'm

24:12

driving my own thing. we don't have this

24:14

set of constraints like an API.

24:16

>> I I think I think today that it's still

24:18

very much that that is a different

24:19

process, right? Like I mean in some ways

24:22

there already is a spec for this out

24:24

there that AI knows how to kind of

24:25

follow and uh go through. Um I mean uh

24:30

uh you know I can think of a few

24:32

internal projects that uh have existing

24:34

shapes that we largely

24:37

can do that with but you know so many

24:38

things that we do are just uh you know

24:41

they they don't have comparables out

24:42

there right

24:45

I I I'll like middle ground this one

24:47

which is I I do think having the next

24:49

test suite was a really good starting

24:51

point but now now that we're into the

24:54

territory of having to really make

24:56

decisions about

24:58

sort of more architectural things where

25:00

maybe the the surface area is the same,

25:02

but like underneath the hood, what are

25:03

we doing? Are we doing things optimally?

25:05

Are we doing things that make sense for

25:06

VIT and not things that make sense for

25:08

Turboac? Like it's it's almost like

25:10

we've had to bring the human back in a

25:12

little bit more in the loop, right?

25:13

Where now we're actually having more

25:14

discussions about like, okay, is this

25:16

the right way to do it or not? And not

25:18

just letting AI go wild at the test

25:20

suite. So, um I definitely if there's

25:23

anything I've learned from this, it's

25:24

that humans, in my opinion, aren't going

25:25

anywhere in software development. Um but

25:28

our role is going to change.

25:30

>> I mean I still think there's going to be

25:32

over over the long term I mean more

25:33

engineers not less. Uh uh you know we

25:37

see people wanting to add engineers in

25:38

our legal department in our finance

25:40

department. Uh um uh you know uh uh the

25:45

number of places that you need engineers

25:46

to do you know the thinking the

25:48

architecture. I met with a bunch of

25:49

interns this this morning and I said,

25:51

you know, we talked about how like how

25:53

what they do versus what someone came in

25:54

five years ago is going to be different,

25:56

right? uh uh you know uh I encourage

25:59

them to work on their communication

26:00

skills, their their writing skills uh um

26:04

uh their you know their their problem

26:05

solving skills uh as opposed to just you

26:08

know expecting to be in front of a

26:09

computer and taking a jar ticket and and

26:11

and you know uh uh solving it like uh uh

26:15

you know you got to be ready to do high

26:17

higher higher level things. Uh but I

26:19

think that there's definitely going to

26:20

be a role and a need for that.

26:23

>> Yeah. I mean, very little of my career

26:26

has felt like I had a clearly scoped

26:28

piece of work that I could just take a

26:29

jer ticket off and like do it anyways.

26:32

That always seemed like I guess there

26:34

were people doing that, but I always

26:35

felt like that's weird. I've never had

26:37

that experience like at work where it

26:39

was just like, yeah, you just here's the

26:42

well- definfined task that's obvious

26:43

what it's going to do and how long it's

26:45

going to take. Like just go spend your

26:46

time on that and come back to us later.

26:48

Like that didn't I don't know. For me,

26:50

that was like not really part of any of

26:52

my jobs after like year one of working.

26:54

It felt like

26:55

>> I've had I've had that happen once and

26:58

uh I realize now like looking back on

27:00

that that's also the same thing that I

27:02

did uh TDD with is because it was so

27:06

well defined that we had to sit down for

27:07

so long to come up with it. It's like oh

27:10

TDD also works in this situation which

27:12

probably highly aligns with this type of

27:13

approach. is like, oh, we already can

27:14

build out all the constraints and the

27:16

interface and everything. Therefore,

27:17

everything just works and now it's like

27:20

if I had AI back then, I could just said

27:21

go now. Um, all right. So, I guess I

27:23

kind of want to switch gears a little

27:24

bit in the more interesting side of this

27:26

discussion, which is uh the receiving of

27:30

of this uh you know, library slash what

27:33

what do we call framework? I'm not

27:34

really sure. I never know when to call I

27:35

don't want to, you know, use the f word

27:36

when people get really offended about

27:38

it. Uh I know it's a or meta framework.

27:40

It's an MF. It's an MFER. Uh,

27:43

>> we do not say that on this podcast.

27:45

>> This podcast. So, with that with that in

27:47

mind, um, how how was the receiving of

27:50

it all because it's hard to kind of sus

27:52

out what people actually feel when you

27:54

just go on Twitter? And so, I'm actually

27:56

curious what that was like for you guys.

27:59

>> Uh, I I can go uh I honestly like I I

28:02

honestly I saw a lot of the Twitter

28:03

stuff, but I tried not to pay too much

28:04

attention to it. I think when we

28:05

launched this, I actually like just

28:06

turned off my phone and like went on a

28:08

walk with my kids or something like

28:08

that. I was like, I'm not going to pay

28:10

attention to that the rest of the day.

28:11

Um, I I want to build something that

28:14

people like. That's it. At the end of

28:15

the day, like I want to build software

28:16

that's useful for people. So, I've been

28:18

very focused on like the people that are

28:19

actually getting value out of this,

28:20

right? I mean, Dane said, you know, 50

28:21

plus contributors. I think at this

28:23

point, we've merged like 400 plus PRs in

28:25

a month. I mean, this is like an active

28:27

project. And so, the reception in my

28:29

mind has been really good because I see

28:31

people using it and getting value out of

28:32

it, right? And and people outside of

28:34

Cloudflow to be clear, right? I mean,

28:35

from day one, this has worked anywhere.

28:37

It's just a VIT plugin. So you can v

28:40

start and run it on any server in the

28:42

world and it just works. Um so I I think

28:44

I've been very focused on that aspect of

28:46

like if I can make software that people

28:48

enjoy using and I'm going to keep doing

28:50

that.

28:51

>> I mean as you said it does go back to

28:53

the customers for us. I mean uh uh

28:56

obviously I mentioned that uh it was you

28:58

know the number of new users new

28:59

customers came that day was it was a

29:01

just a huge spike uh so which you know

29:04

that's gratifying you know that people

29:06

are using it and uh uh you know the all

29:08

the different metrics on you know what

29:09

could be success there you know number

29:12

of active develop voters for us is

29:13

really important so you know that was a

29:15

success from that you know um uh all the

29:18

Twitter uh uh you know it is what it is

29:23

uh It's, you know, it can be a little

29:25

fun. Um, uh, you know, uh, uh, but, uh,

29:31

uh, you know, it's shortlived and you

29:34

move on and get back to work. Really,

29:37

>> the I think the interesting thing here

29:39

for for me too about like the reception

29:41

has been around like VIT, right? I mean,

29:43

basically all the frameworks except for

29:45

Nex have standardized on V. I mean, I

29:47

think that's just how it works now. And

29:48

so you you Nex has sort of been telling

29:50

everybody for years like well we'll use

29:51

Turboac because we have to because it's

29:54

you know whatever better or faster or

29:56

all these things and I think there's

29:58

just been like this pent up sort of

29:59

latent sense of [clears throat] like

30:00

well what if you had just used Vit and

30:02

this answers that question. So when I

30:04

built this I definitely did not spend

30:07

any time on performance uh or sort of

30:10

like making build times fast. That was

30:11

not what I was trying to do. I was

30:12

trying to get the breadth of coverage

30:14

with the API. So it's a testament to VIT

30:16

that just literally the first version of

30:18

this was six times faster, right? Like

30:20

that is like that that's how powerful

30:23

Vit is and how good it is as a bundler.

30:25

>> The I mean yeah I mean what Evan built

30:28

uh just the you know uh how many people

30:31

have been able to build great things off

30:32

of it. I mean uh including like you know

30:34

Astro right uh uh um is is this is

30:38

really more of a story about how great V

30:40

is right like none of this would have

30:41

been possible um without m you know

30:45

maybe it would have just you know been a

30:47

lot more tokens but uh uh you know I

30:49

think the fact that a design like that

30:51

has been able to uh kind of get you the

30:54

ubiquity and uh and still remain

30:56

performant and uh is pretty amazing.

30:59

We've got I would say like a wide a wide

31:01

range of devs that watch the pod. Can

31:04

you explain to people who are not in the

31:07

webdev world? Why is there a thing

31:09

called vit?

31:10

>> And then why is and also why don't

31:13

people use vit and they use other

31:14

things.

31:15

>> Oh, I thought for sure you were going to

31:16

say and why isn't it pronounced vite? I

31:18

was I saw I threw that up for you prime

31:21

because I knew that was your one and

31:22

then you didn't even go for

31:23

>> I'm trying to be polite. It's clearly

31:25

vit. Okay, keep on going.

31:28

>> All right.

31:29

So

31:31

it's it's funny you asked this question

31:32

for like people who don't understand

31:33

like webdev and then I'm like can do I

31:35

we have an hour for me to spend talking

31:37

about like the history of bundling on

31:39

the web because [laughter]

31:41

>> Grunt and then I want

31:43

>> okay go back to Grunt Browser Pie Gulp

31:46

>> I would love to start with Grunt

31:51

>> Gulp was one of the greatest build tools

31:52

of all time and I will die on that hill.

31:55

>> I agree with Dylan. Dylan is correct

31:56

about this.

31:57

>> Was a revolution.

31:58

>> We can't just use make for all this to

32:00

be quite honest.

32:00

>> I love

32:01

>> there's a group of people that agree

32:03

with that. [laughter]

32:04

>> Now we're cooking.

32:04

>> I do have a hot take about make. I think

32:07

make is overutilized in developer

32:11

ecosystems outside of webdab outside of

32:15

webdev and severely underutilized in

32:18

webdev. That's my make hot take.

32:21

>> All right. So for those that have no

32:23

idea what

32:23

>> you didn't you didn't want to follow up

32:24

on the hot take. Oh, we're not. We are

32:27

so far off. We need

32:28

>> Okay,

32:29

>> people are still like threearters of our

32:31

audience are going to be like, "Okay, so

32:33

what is Vite and why do they keep

32:34

talking about Gulp when I asked him

32:36

about V?" It's a very

32:38

>> That's what I'm saying. People actually

32:39

don't know.

32:40

>> I will do my best to do this. Okay, so

32:41

when you build a web application, you

32:43

need you have things that need to all

32:46

get bundled together and deployed,

32:48

right? So you have your HTML, your CSS,

32:50

and your JavaScript, right? papered over

32:53

like 10 other things, but like let's

32:54

just say most of it is that now you need

32:57

something that understands all of these

32:59

things and the relationships between

33:01

them and then is capable of basically

33:03

emitting something that is just here's

33:04

your deployable site and you can deploy

33:06

it to the internet on anywhere and it'll

33:08

just work right. So over the years there

33:10

have been many takes on this and for and

33:13

many iterations and things come and

33:15

replace the thing before it and the the

33:17

last big thing was Webpack, right? So

33:19

Webpack for a long time was sort of the

33:21

king and everybody was like, "Okay, you

33:23

use Webpack to take your raw source

33:25

files and turn it into something that is

33:28

optimized to be an actual website,

33:29

right? If we deployed raw source files

33:31

to the web, we would have all kinds of

33:32

problems, right? Which there's people

33:34

that think you should just do that, but

33:35

we're going to like ignore those people

33:36

for a second.

33:37

>> Let's go DH." All right, keep going.

33:38

Sorry. Sorry. [laughter] Keep going.

33:41

So then uh Webpack has got you knowh you

33:46

know again I'm like offending people

33:48

left or right there are people that

33:49

think Webpack got slow and you know was

33:51

hard to configure and had all these

33:53

problems right and so there was a next

33:55

generation of things that kind of

33:56

decided to try to replace Webpack. Uh

33:58

there's things like parcel RSpack

34:00

various things. Vit is one of those

34:02

things and vit and again I'm going to

34:05

just sort of like blanket statement this

34:07

kind of just one right. So Vit is the

34:10

underpinning bundler for most frameworks

34:13

today. I would actually say any popular

34:15

framework besides Nex.js uses Vit. Now

34:19

uh what Nex did was build their own

34:21

thing in Rust called Turopac that they

34:24

saw as like a spiritual successor to

34:26

Webpack. I think one of the original

34:27

Webpack maintainers is very involved in

34:29

Turopac and so they sort of had their

34:31

own take on what this has looked like

34:32

but nobody else ended up using it

34:34

besides Next. Um and so that is where

34:37

VIT comes into the picture. And so

34:39

there's been this like sort of very

34:42

simple fork in the ecosystem of whether

34:44

you use next and turbopac or whether you

34:45

use some other framework and you use vit

34:47

or you just use vit by itself. V is

34:49

actually very capable on its own. You

34:50

don't need a framework. You can just

34:51

like use vit has very good sort of

34:53

primitives and APIs. You can just deploy

34:55

a react app on vit and it works really

34:56

well.

34:57

>> Does that make it a meta framework?

35:00

Uh, I mean,

35:02

>> that MF talk Dane, we only have we only

35:04

have one rule, Dane, and you broke it.

35:05

We don't say that word here. Okay.

35:07

>> Uh, to put it maybe help color some

35:09

people's perspective. If you have a

35:11

language that was invented beyond 2008,

35:13

you typically the language itself also

35:15

provided all the tooling. So, Go has its

35:17

own tooling. Rust has its own tooling.

35:18

Zig has its own tooling and all that.

35:20

Some of the older languages, you don't

35:22

get all the tooling kind of also thrown

35:24

into it. So, it gets really complicated.

35:25

Everyone knows about, you know, Java.

35:27

Java was very, very difficult back in

35:29

the day. AC is very very difficult uh as

35:31

you get huge build systems devoted to it

35:33

and JavaScript is the exact same thing.

35:35

There is no you know committee that owns

35:37

the web HTML, CSS and JavaScript. These

35:39

are all individually you know developed

35:41

items all falling under the W3

35:43

consortium and some NTC39 multiple you

35:46

know multiple things are all doing it

35:48

and so

35:49

>> they get a lot of stuff done fast.

35:50

>> Yeah. So that means tools there's not

35:52

like a department of tools. So everyone

35:54

kind of makes up their own tool and then

35:56

some of them got popular. There in fact

35:57

was even snowpack at one time which I

35:59

think got renamed to parcel potentially.

36:01

I can't remember but there's been a lot

36:02

of a lot of bundling in the web world.

36:05

>> If I if we just make a new one do you

36:07

think everyone will use ours then?

36:08

>> Yeah if there's a there's a small chance

36:10

TJ [laughter]

36:12

>> I fully support it. So

36:13

>> just one more just one more framework

36:15

bro just one more framework.

36:17

If you do that, I will fork V- Next and

36:19

then I will rewrite V- Next in the new

36:21

thing.

36:21

>> V even next.

36:23

>> Nice.

36:24

>> Well, wait, we have to change the

36:25

prefix, right? Cuz the the VI port is

36:27

for V, I'm assuming, right?

36:29

>> Yes.

36:30

>> Be X next. We X a XNAD.

36:33

>> Y I know.

36:34

>> There you go. All right. So, uh how

36:37

about some of the sentiment? Like did

36:38

you have any uphill battles in the

36:40

sentiment change or did was there enough

36:44

social pressure that you had to did you

36:46

feel any of it like not just like hey we

36:48

put our heads down we moved on we had a

36:49

great customer day was there any fires

36:51

you had to put out or things you had to

36:53

take a little bit more time on kind of

36:54

explaining your positioning

36:56

>> so so I mean we have a ton of respect

36:58

for the nextjs team uh we we working

37:00

with them closely you know a blog

37:01

recently came out about next adapters

37:03

that uh uh uh we helped work with the

37:07

team on uh I mean they built a great

37:09

product. I mean the testament to just

37:11

the number of developers that use it.

37:13

>> Uh you know uh um obviously my tweet

37:16

with a little tongue and shake um you

37:18

know um it was not meant to uh offend uh

37:23

anyone because I mean we do have that

37:24

huge respect. So, you know, we did spend

37:26

a lot of time with the team and uh

37:27

making sure that, you know, they knew we

37:29

were committed to uh uh both the next

37:32

adapters um uh uh and that we were going

37:35

to be still committed to that because

37:37

we've been working with them on that. Um

37:39

and you know, uh uh and we're still very

37:42

excited for that to come. I mean, uh uh

37:45

and Steve and his team and uh Fred from

37:47

the Astro team all spent a lot of time

37:49

uh uh with with them on on that. Um and

37:53

and and we think they're doing you know

37:54

great work with the adapters and uh um

37:57

you know uh and you know a lot of this

37:59

is this is how open source works like uh

38:01

uh you know uh um and you know when

38:04

adapters gets there obviously then you

38:06

know maybe we won't we'll just support

38:08

VNEX and uh uh uh and pure next as

38:11

opposed to also uh there's a whole

38:13

another thing we haven't been talking

38:14

about open next uh but you know I think

38:17

this is the pressures and for forking is

38:20

how you kind of push back innovation

38:22

when there's not uh you know complete uh

38:25

community support for the direction that

38:27

you want to take something in.

38:30

>> All right. Uh and then I I did want to

38:32

talk a little bit more. I know TJ you

38:34

kind of alluded to it earlier kind of

38:35

about this whole like using AI on a

38:39

purely on the project. Has there been

38:41

any downsides besides for some

38:42

sloppification? Has there been any

38:44

downsides or things that you're finding

38:45

frustrating in this more purely AI

38:48

approach to building something that is

38:50

largely customerf facing?

38:51

>> I Yeah, I mentioned I I would say

38:56

sometimes I just feel like I'm a little

38:57

babysitting everything too much, right?

38:59

I've got like maybe 10 different

39:00

workspaces going and they're all kind of

39:03

going along in the background and then

39:05

I'm I'm losing track of what's doing

39:07

what and then I go check in on it and

39:08

I'm like, "Oh, like what did you do

39:10

here?" You know, you just went down some

39:12

weird path. And so it it it definitely

39:14

feels like right now I'm I'm sort of

39:16

this glorified AI babysitter. And I and

39:19

I want to believe that like as these

39:20

agents get better, the agents can do

39:22

more of their babysitting for

39:23

themselves, but right now it feels very

39:25

much like I still have to be like

39:27

sitting there like minding them every

39:29

day. Um

39:30

>> I describe managing your own team,

39:32

Steve.

39:34

>> [laughter]

39:34

>> It's uh it it it's sort of interesting

39:37

because like I I gave a talk at a at an

39:40

event in SF about this and and sort of

39:42

the contrasting the difference between

39:43

managing humans and managing AI. I mean

39:45

AI is better at taking feedback than

39:47

humans are, right? I mean you can just

39:49

tell an AI it did a bad job and it it

39:51

won't get mad at you, right? Um but also

39:55

like so it it's somebody asked me they

39:58

were like oh you know is your management

39:59

skills translated and I said not really

40:01

right? Like I mean humans h humans are

40:05

like squishier, right? And we need like

40:06

sort of more like thoughtful feedback

40:09

and AI you can just kind of say like

40:10

this this sucks. Just do it again,

40:12

right? You know, and it'll just do it

40:13

again. Um so it's been interesting.

40:15

There's less overlap there than I

40:17

thought there would be. We were just

40:19

laughing about this recently. Prime and

40:20

I were working on something and he like

40:23

told like, "Hey, move this thing to the

40:25

left." And then it did it. He's like,

40:26

"No, put it back on top."

40:28

>> [laughter]

40:28

>> And I'm like, I'm just imagining if it

40:31

was a person on the other end and you're

40:33

like yelling at some junior dev and it's

40:36

like move the couch over an inch to the

40:37

left. No, your other left kind of

40:39

situation. [laughter]

40:41

But the AI doesn't care. It doesn't

40:42

care. Doesn't care at all. It'll it'll

40:44

just, okay, I'll put it back on top. No

40:46

problem. [laughter]

40:48

It It's interesting to see the range of

40:49

outcomes, right? Like like if I if

40:50

somebody writes a document for me and

40:52

then, you know, I say, okay, this isn't

40:54

very good. You need to make it better.

40:56

You know, maybe it'll get a little

40:57

better, right? But somebody's not going

40:58

to like rewire their brain overnight.

41:00

But AI really kind of can, you know, you

41:03

can literally say like, "No, this is

41:04

entirely wrong. Start over and and it

41:07

can do something entirely different,

41:09

which hard humans are they it's hard for

41:11

them to make that level of adjustment in

41:13

relative to feedback." So, um,

41:17

>> it's a bit rambly, but like there's

41:18

there's like I don't have a takeaway

41:20

other than I'm still trying to figure it

41:21

out too, right?

41:23

there's this kind of process where you

41:24

know they they say that writing like how

41:26

you write is how you kind of express

41:28

your opinions or how you think through

41:29

stuff like it's kind of like one of the

41:31

big signs of intelligence is your

41:32

ability to write out your thoughts uh

41:34

because you have to organize them and

41:35

actually go through stuff without the

41:37

actual activeness of programming and

41:39

then a lot of more and more feedback

41:41

about say the interfaces and all that of

41:43

how you interface with stuff kind of

41:45

just also just being vibed out where

41:47

people can't really actively know what

41:49

the interfaces are. Maybe you're not as

41:51

familiar with them because a lot of it

41:52

is vibed out. How do you kind of come up

41:54

with better ways to work when these

41:58

layers are becoming more and more fuzzy

41:59

because you don't look at them every

42:01

day? You kind of look at them well, we

42:03

can all agree we look at them less than

42:05

we ever would say 5 years ago. So how do

42:08

you know that you're even building the

42:09

right direction at this point without

42:11

like that constant daily everyday

42:13

thinking about it like in the trenches,

42:14

not just from an eye level view?

42:17

that that's where like experience

42:18

probably comes in, right? Like I it I'm

42:21

almost at a bit of an advantage there

42:23

where I've I've been in this space and

42:25

working on these problems for so long

42:26

that I have a lot of strong opinions

42:28

about what should be done and how it

42:30

should be done even if I'm not writing

42:32

code every day, right? Like it hasn't

42:33

been my job for a while, but I still

42:35

have opinions about the JavaScript

42:37

ecosystem and how things should be

42:39

working, right? And so there has been

42:41

times where the AI will happily go off

42:43

and build something that is wrong if you

42:45

just let it. and we've had that happen

42:47

on this project and then I have to step

42:49

in and say like no no no no I am 100%

42:51

sure that we should do it this way

42:53

because I have you know 15 years of

42:56

experience that tells me that's the way

42:57

we should do it right and that's where

42:59

honestly some of the other people who've

43:01

been involved in the project I think

43:03

have you know like we we have some

43:04

fantastic contributors but I think

43:06

there's been a couple cases where

43:07

they've just went and built a thing

43:09

because somebody asked for it or AI just

43:10

said oh just do it this way and they

43:12

don't have that like depth of experience

43:14

to say like no no no this is wrong.

43:16

We're not going to do it this way.

43:18

>> How do you think people are going to get

43:20

that experience it like in the in the

43:23

future?

43:24

>> I think I think about this a lot and I

43:26

don't know the answer, right? Like I I

43:29

>> I have thoughts on this. I So I have uh

43:32

a more mid-level junior dev.

43:34

>> Oh, sorry. We're out of time. Uh no,

43:36

[laughter]

43:37

>> hey guys, if you like this episode, you

43:39

can watch the rest of it on Spotify. And

43:42

don't forget to LIKE AND SUBSCRIBE. WOO!

43:45

SEE you later.

43:46

>> Boot up the day.

43:49

Voting [music]

43:50

[singing] errors on my screen.

43:54

Terminal coffee

43:56

and

43:58

living [music] the dream.

Interactive Summary

Cloudflare's V-Next, a Next.js clone, was developed to simplify Next.js deployment on Cloudflare and address customer demand. Originating as an intern's project, its development and maintenance heavily rely on AI for tasks like triaging, pull request reviews, and security checks. V-Next aims to mirror the Next.js API surface, leveraging VITE as its bundler, which initially demonstrated significantly faster build times compared to Next.js's Turbopack. While AI accelerates development, it introduces challenges like code "sloppification" requiring human oversight. The project explores a new model for sustainable open-source development with AI, signaling a shift in engineers' roles towards higher-level architecture and problem-solving, with experience remaining crucial for critical architectural decisions. The project's reception has been positive, marked by a surge in new users and contributors.

Suggested questions

5 ready-made prompts