HomeVideos

From Chrome DevTools to AI Engineering, with Addy Osmani

Now Playing

From Chrome DevTools to AI Engineering, with Addy Osmani

Transcript

2580 segments

0:00

One area that you and the team push is

0:01

core web vitals.

0:03

>> If I'm on a page that has a bunch of

0:04

ads, I shouldn't start reading an

0:06

article and then suddenly everything

0:07

gets pushed down just because the ad is

0:09

finally loaded. And so that's where

0:11

cumitive layout shift kind of comes

0:12

from.

0:13

>> One question that comes up to from a lot

0:15

of people is this idea of cognitive

0:16

surrender.

0:17

>> The first is cognitive debt. The erosion

0:20

of your ability to have good memory.

0:22

Cognitive surrender is where you blindly

0:24

give in to whatever the AI says. Its

0:27

answer becomes your answer. software

0:29

factory meaning

0:29

>> instead of focusing [music] on the

0:32

prompting, you're building the system

0:33

that can do the prompting, but simply

0:35

having your loops build everything

0:37

without guard rails around the blast

0:39

radius is a recipe for disaster.

0:41

>> What do you think will be important in

0:43

the next couple of years to stay at the

0:45

front of the industry? What we are very

0:47

likely to see happen next with

0:49

engineering careers is

0:55

if you've ever opened Chrome dev tools

0:56

or optimize a page for core web vitals

0:59

you've used software built by Adi

1:00

Osmani. [music] Addie spent 14 years at

1:02

Google most of it on Chrome going from

1:04

software engineer to director of

1:06

engineering. And when starting out in

1:07

tech as a teenager in rural Ireland he

1:09

built his own web browser from the

1:11

ground up. Today we talk about the

1:12

inside story of Chrome Dev Tools. why it

1:15

became the closest thing Google has to

1:16

an IDE and the problems that are still

1:18

unsolved like memory debugging what

1:20

becomes different when you become a

1:22

director at Google and how at state

1:24

hands-on building software while

1:26

building an engineering org with more

1:27

than 50 people how AI is changing

1:29

software engineering cognitive depth

1:31

cognitive surrender loop engineering and

1:34

software [music] factories and many more

1:36

if you want to hear from someone who has

1:37

spent decades helping developers

1:39

understand the web and is now thinking

1:41

deeply about how AI changes software

1:43

engineering this episode is for for you.

1:45

This episode is presented by Antithesis.

1:47

If you work [music] with agents, your

1:48

job is no longer just writing code. It's

1:50

specifying and testing it. Antithesis

1:52

[music] is the most effective method of

1:54

verifying agentic code. Today, before we

1:56

get into Add's journey at Google, I

1:58

wanted to talk about a really cool

1:59

product at Google, Google Cloud Run, and

2:01

their recently launched Cloudr Run

2:03

Sandboxes. When you're building AI

2:05

applications or AI agents, you often

2:07

want to run untrusted programs like

2:09

execute some Python code the model

2:10

generated or run a headless browser to

2:12

fetch data from the web or even execute

2:15

code submitted by a user. But how do you

2:17

make this fast and secure? This is

2:19

exactly what Cloudr run sandboxes do.

2:21

Cloudr run sandboxes are ephemeral

2:23

isolated G Visor environments that spin

2:25

up extremely fast. They were built with

2:27

security in mind. They enforce

2:29

credential and environment isolation.

2:32

Basically, they have no access to your

2:34

services environment variables or

2:35

secrets. Sandboxes also opulate with

2:38

lockdown network egress. Deny by default

2:40

to the internet. Accelerate development.

2:42

Eliminate infrastructure toil and run

2:45

untrusted workloads with confidence on

2:46

Google Cloud Run. Try cloudr run

2:48

sandboxes today at cloud.run.

2:51

Addy, it's so nice to have you in person

2:53

on the podcast.

2:54

>> Oh, thank you for having me. And before

2:56

we kick off into your career and how you

2:58

got started, I wanted to ask just before

3:01

we started recording, we were talking

3:02

about how has your day-to-day workflow

3:06

changed recently a bunch thanks to all

3:08

these tools.

3:10

>> So agents have allowed me to take the

3:12

improbable and turn it into the possible

3:15

in ways that are kind of weird and

3:17

wonderful every day. I I I manage a lot

3:19

of my life now using agents. And one

3:22

example uh just from you know this week

3:25

we've got the AI world fair happening in

3:27

San Francisco. Um I'm doing a closing

3:29

keynote a couple of days in. And so I

3:32

wanted to make sure I wasn't repeating

3:34

any beats that other speakers had gone

3:36

into depth then. Um and I also wanted to

3:38

make sure there was good connective

3:40

tissue from my talk to a lot of the

3:42

other sessions that had happened. Now,

3:44

normally in the old days, you kind of

3:47

pray and hope that there was any content

3:49

from these sessions online and maybe

3:51

you'd look through the abstracts. I was

3:53

able to fire off a bunch of agents, you

3:55

know, go through everything that you can

3:57

find about the talks from the last

3:59

couple of days, look at the abstracts,

4:01

any social content, anything around that

4:03

that can be useful. And that was able to

4:06

help me kind of sculpt what I already

4:09

wanted to talk about into something that

4:11

I hope is refined and will give people a

4:15

way to connect from other parts of this

4:17

conference back to, you know, the way

4:18

that I'm going to close it up. That for

4:20

me just feels very empowering. You know,

4:23

something that would have taken a very

4:24

long time if it if I would have even

4:26

been able to do it at all is now very

4:28

much within reach. And then you

4:29

mentioned that it feels like and a lot

4:31

of people tell you like there's like

4:32

kind of like both fun and chaos at the

4:34

same time right now like everywhere,

4:36

right?

4:36

>> Yeah. Yeah. Absolutely. Fun and chaos. I

4:39

think that you know for many of us when

4:42

you have a lot of ideas or a lot of

4:44

vision you're often bounded by time or

4:47

how much can I actually do? And in some

4:50

ways agents have unchained us. Um, and

4:53

this is one of those reasons why, you

4:55

know, you keep hearing, "Oh, hey, what

4:57

what are you doing with all of that time

4:59

agents have freed up while I'm doing

5:01

more work?" I think for many of us, if

5:02

we didn't enjoy it, we wouldn't be

5:04

filling that time up with work. But

5:05

we're having fun with it. And so, it's

5:07

fun thriving in that chaos.

5:09

>> Yeah. But now, take me back to the very

5:11

beginning. A lot of us know you and I've

5:14

gotten to know you when through your

5:15

work at Google, through your books, but

5:17

I'd like to start from even before.

5:19

Where did you start out? How did you

5:23

have your first contact with computers

5:25

and how did you build a web browser in

5:28

when you were a teenager in high school?

5:30

>> So, I've always been fascinated with

5:32

understanding how things work and I grew

5:35

up in uh rural Ireland um which was at

5:39

times you know we didn't necessarily

5:41

have the best internet connectivity.

5:43

This was back in the days of Dialup. Uh,

5:46

and so my first contact with computers

5:49

was, uh, you know, I was probably eight

5:51

or nine years old. We were very

5:53

fortunate that my dad was able to get

5:54

us, uh, our first desktop machine. And,

5:57

you know, I'd play around with apps. I'd

5:59

play around with just like trying to

6:00

browse the internet. And it was always

6:03

fascinating to me like, how does any of

6:05

this work? I'm just typing in something

6:07

into an address bar and all this

6:10

information is just rendering somehow.

6:12

Um, I'm getting back text, photos,

6:15

videos. Like, how does any of this stuff

6:17

work? And so over time, like I would

6:20

build out websites. I'd start to get

6:22

into programming. My very first

6:24

programming language was Pascal. Um, so

6:27

I'm big big fan of the the Borland tool

6:30

suite. Uh I learned C++ uh when I was

6:33

fairly young and there was one year when

6:37

um I noticed that we had a a kind of

6:40

popular national science competition and

6:43

traditionally that competition was very

6:45

much about you know hey do students have

6:48

interesting breakthroughs or thoughts on

6:50

physics or chemistry or any of those

6:52

things but this the the year that I'm

6:55

talking about was the first year where

6:56

they actually started to really take

6:57

computing seriously and as I mentioned

7:00

um I didn't have the best internet

7:02

connection. Uh this was also during the

7:04

time when especially uh if you were a

7:07

teenager, you started to get into, you

7:10

know, learning about downloading stuff

7:13

>> and we didn't have fast internet

7:15

connections back then. If you cared

7:17

about, you know, checking out a song,

7:20

you could be waiting hours for that to

7:22

download. if you cared about trying out

7:24

a music video, man, that could be a

7:26

night, two days sometimes to download

7:29

it. And so I tried to to study how these

7:34

kind of download managers that were

7:36

popping up worked. And download managers

7:39

kind of offered this one hook. Well,

7:41

rather than making one connection to a

7:43

server, what if we spawned multiple

7:46

threads and made multiple connections to

7:48

a server and we kind of chunked content?

7:50

you know, it's classical computer

7:52

science, you know, break down problems

7:53

into smaller chunks. And so that was one

7:55

of the ways. And if the server

7:56

supported, you know, uh, chunking, you

8:00

were able to in some cases actually get

8:02

your file, uh, downloaded a little bit

8:04

faster. And so it dawned on me like,

8:06

hey, we're using this technique for

8:09

downloading individual files. Has anyone

8:12

applied this to how we browse the web

8:15

pages?

8:16

>> Yeah. And so obviously I can't I

8:19

couldn't you know do something

8:21

complicated before I you know took my

8:23

first baby steps. And so I thought okay

8:25

I'm going to try exploring how you build

8:27

a browser. I started to read uh you know

8:29

specifications. I was probably 15 years

8:32

old when I started this 15 16 but I

8:34

started to read specifications. Okay

8:36

HTML CSS JavaScript. One of the things

8:40

that I gained a great deal of respect

8:41

for and I still have a lot of respect

8:43

for is developers throw all kinds of

8:47

weird crap at browsers and yet they

8:50

still render something. Right? If you

8:53

ever want um you know if you ever want

8:55

an interesting uh experiment in in

8:58

therapy, if you're ever feeling bad

9:00

about your code, open up the dev tools

9:02

and just browse the web for 10 minutes.

9:05

the number of things that will go wrong

9:07

and yet you'll still be able to probably

9:09

interact with the site is just wild. And

9:12

I had that

9:12

>> and going wrong you can just look at the

9:14

warnings and errors honestly just that.

9:16

>> Yeah. And so that was one of the most

9:19

complicated things when I was trying to

9:20

build a browser. It was like, yeah, you

9:22

can parse HTML, you can parse documents,

9:25

you can load up images, but as soon as

9:28

you run into pages that stop following

9:31

those specs, and they take a very loose

9:34

interpretation of what's supported, you

9:37

have to really, you know, roll your

9:38

sleeves up and try to behave the way

9:41

that actual consumer browsers did. And

9:43

so I had my fun um building out a

9:46

browser. Adding interactivity and

9:49

JavaScript support was very difficult.

9:53

Uh managed to get it working and then

9:55

I'm a sucker for pain because I decided

9:58

well I guess uh applets and flash and

10:04

you know we had Windows Media Player

10:05

back then so people were like embedding

10:07

all kinds of interesting content. I told

10:09

myself, well, it's not a complete

10:10

browser if it doesn't support all these

10:12

other things. And so, I added support

10:14

for them. And then I could finally get

10:16

on to what I actually wanted to work on,

10:17

which was exploring if I could speed up

10:21

web browsing for this point in time when

10:24

you were kind of constrained by the

10:26

hardware and uh bandwidth that was

10:28

available locally. Back then, this was

10:30

this was a personal pain because before

10:32

um before I could get a good internet

10:34

connection, I would literally every

10:37

weekend I'd specially wear cargo pants

10:40

that had a lot of pockets and I would

10:42

fill my cargo pants with floppy discs

10:45

and I would walk down to our local

10:47

library that just happened to have a

10:48

slightly faster internet connection and

10:51

I would try to like save as much as I

10:54

could then go back home, check it out on

10:56

my computer. And so this was a personal

10:58

mission for me. I really really wanted a

11:00

faster internet connection. But I

11:02

finally got to explore this idea. It

11:05

worked and in some you know back then in

11:07

many cases there were servers that

11:09

supported this idea. Um it did make

11:11

things a little bit faster and so I you

11:15

know I ended up building something that

11:17

worked for me. I uh took it to this

11:21

national science competition. Um I was

11:23

nobody. I am nobody but I was nobody. I

11:25

was just this kid and I was kind of half

11:28

expecting to just leave the competition

11:30

and go back home at the end of it and

11:32

say like, "Yeah, you know, I showed some

11:33

people some cool stuff." There was like

11:35

a big live audience at the tail end of

11:38

this whole event. It was, you know, on

11:40

live TV and everything. And when they

11:43

called out the overall winner, I was

11:44

shocked cuz I did not I didn't expect to

11:46

win this thing. And that was my kind of

11:49

first taste of media attention. It was

11:52

very strange. Um, uh, the weekend right

11:55

after, you know, you're a kid, you you

11:57

kind of like want to sleep in on a

11:59

Sunday morning. You don't really have

12:01

too many people back then like calling

12:03

your cell phone or whatever.

12:04

>> Yeah.

12:05

>> Um, and my my cell phone is just like

12:08

not stopping ring. The first call is

12:09

like from the Wall Street Journal. And

12:13

>> basically, you kind of like went viral

12:14

in a time where there was not even

12:16

Twitter, right? Like there was like none

12:18

of this just yet.

12:19

>> Yeah. It was like, yeah, it's Wall

12:20

Street Journal, CNN. I didn't really

12:23

understand what was happening, but it

12:25

was it was my first taste of that world.

12:28

One of the things that I learned from

12:29

that experience was I still didn't fully

12:33

understand everything that I was doing.

12:36

You know, you're a teenager, just

12:38

because you can build an app that runs

12:40

on your machine and accomplishes a goal

12:42

doesn't mean that you understand all of

12:44

those layers behind the scenes. And that

12:46

I think kicked off for me a

12:49

lifelong thirst for knowledge and

12:52

understanding how things work. In in

12:54

some ways I can call myself a one-trick

12:55

pony. I I care about understanding

12:57

problems and how you know how to fix

12:59

them, how they work behind the scenes.

13:01

Um I would go on to work at startups. I

13:03

worked at AOL at one point. Uh again

13:06

continuing this theme of of working with

13:08

with browsers. When I joined AOL um I

13:12

had a very AOL uh moment. my first day

13:16

uh my manager was was a very kind guy

13:19

said like hey yeah you know go help the

13:22

team just log into the browser go help

13:24

the team it's like okay cool I'll I'll

13:25

do that so I fire up um the AOL browser

13:29

app and I have my work machine this app

13:32

is loaded up and before I can debug

13:35

anything the first thing it asks me for

13:36

is my credit card I'm like sorry what I

13:39

need to enter in my credit card to even

13:41

start my work and my manager is busy so

13:44

I don't know if there was like some

13:45

workaround. I was like, "Okay, I guess I

13:47

guess this is what I need to do to to

13:48

get started with work."

13:50

>> Wow.

13:50

>> Different time. Very different time.

13:53

>> But few years later, I would join Google

13:55

and I would work on Chrome. But

13:57

something for me that's been very

13:58

interesting is, you know, if you treat

14:02

computing as this onion where you just

14:05

keep peeling back the layers, there's

14:08

always something interesting behind the

14:09

scenes. And the more of those layers

14:12

that you can peel back and understand, I

14:14

think in some ways the better you can

14:17

optimize for that world, you know, there

14:19

was a time when I maybe only understood

14:22

the surface of how things render. But if

14:24

you're talking about browsers, you know,

14:26

there is the network, there's

14:28

compositing, there's the JavaScript

14:30

engine, you go down another layer,

14:33

there's chips, there's memory, there's

14:35

GPU. And the more you understand about

14:38

all of these different foundational

14:39

pieces, the better you can then optimize

14:41

and build something that you know um can

14:44

serve people even on constrained

14:46

environments. So if you have a a

14:49

slightly slower phone, well, I

14:50

understand now why the phone is slower

14:52

and what constraints might require us to

14:55

think slightly differently about what

14:56

we're building there. So I'm always a

14:58

big fan of encouraging people to

15:00

understand how things work. And then in

15:02

the spirit of understanding one project

15:04

that you got involved on early on, you

15:07

know, you built your custom browser that

15:09

did some cool stuff and you understood

15:11

how to render, parse, do some of these

15:12

things and then you join into the jQuery

15:15

project. How did that happen?

15:17

>> Yeah. Um,

15:18

>> and in jQuery for a while after you

15:21

joined it, it it became for a while the

15:23

most used library in the JavaScript

15:26

ecosystem. So basically across the web

15:28

there there were a few years of that.

15:30

Yeah, I think full kudos goes to John

15:32

Ric, the creator of jQuery. Um, jQuery

15:36

was really my first contribution to a

15:39

big community open source project and

15:42

John was someone that was very welcoming

15:45

and created an environment where people

15:47

could, you know, learn and become better

15:50

open source contributors. Uh I started

15:52

off uh working with uh the team of

15:55

people that would deal with triage and

15:57

issues and then moved on to like working

15:59

on blog posts and contributing to code

16:01

and other ways. But you know as you said

16:05

it it was so widely used that you end up

16:07

with so many different use cases people

16:09

have. And a lot of the times back then

16:12

people would have very strong opinions

16:14

about like hey this thing should be in

16:16

the main library in core versus being a

16:19

plugin. And I got a lot of respect for

16:22

how you effectively like work with a

16:25

community while also holding a line in

16:27

terms of, you know, what decisions

16:30

should be made to optimize for long-term

16:33

maintainability, for example. But it was

16:35

a great experience. Um, and that helped

16:38

me kind of carry those lessons on when I

16:40

worked on my own open source projects. I

16:42

was very grateful for that opportunity.

16:44

>> Yeah. And one of your popular open

16:46

source projects back in the day was

16:47

called Tudu MVC. Yeah. Can we talk about

16:50

what it was and why you started?

16:51

>> Yeah, absolutely. There was um a point

16:54

in time back in the dark ages of

16:57

JavaScript when we didn't have

16:59

frameworks and we didn't have libraries.

17:01

Over time, those things started to pop

17:04

up and uh we began to have quite a few

17:07

of them and they all tried to accomplish

17:09

in some some cases overlapping goals,

17:12

sometimes adjacent goals. And we're

17:13

talking like Angular. We're talking

17:15

about Angular, Backbone,

17:19

YUI, X.js. And if you know, if you're

17:22

too young for any of these terms to mean

17:24

anything, that's also totally okay. Um,

17:26

but there were there was this burgeoning

17:28

community of libraries and frameworks

17:30

that were starting to pop up. And one

17:32

thing that I personally struggled with

17:34

was, well, how do these things differ?

17:37

you know, you can go and you can check

17:39

out the landing page for any of these

17:40

projects and they all say like, yeah,

17:43

we're going to help you build apps, you

17:45

know, easier, but um I was very big into

17:50

education and trying to understand how

17:52

these things worked. So I started off by

17:55

creating basically the same application

17:59

in every one of these frameworks and

18:01

tried to standardize the functionality

18:03

so that if you were in the same position

18:06

I was and you just wanted to get a sense

18:08

of okay well how does the architecture

18:10

philosophy change between these things

18:12

how does the syntax differ if they're

18:14

telling you to build a component or a

18:17

piece of UI what is the position they're

18:19

taking on it versus somebody else and so

18:22

I got a lot of personal value out of the

18:24

way that I was building this this thing

18:25

up. And so I put it out into the world.

18:29

I had no expectations of it being

18:31

useful,

18:31

>> but but basically it was you implemented

18:33

a to-do app or the same todo app with

18:35

the different frameworks and you could

18:36

kind of compare how they differ.

18:38

>> Yeah. Yeah. And the idea was I wanted an

18:41

application that was simple enough for

18:44

almost anybody to be able to use and

18:46

reason about, but it needed to have

18:48

enough interactivity and enough

18:50

functionality that you could really kind

18:52

of stress test at least some of that

18:54

functionality a framework offered. In

18:56

some cases, you know, that would be

18:58

state management or routing or other

19:01

things. And so I put this out into the

19:02

world. I was kind of shocked at how many

19:06

other developers were running into this

19:08

exact same challenge. And the project

19:12

quickly took off. It started to get a

19:14

lot of stars back in the day. It got

19:17

thousands and thousands of stars very

19:18

quickly. And I didn't quite know what

19:20

was happening. Um and before long, I had

19:23

people who were working on new

19:25

frameworks or new versions of frameworks

19:27

reaching out to me um saying like, "Hey,

19:30

this is cool. here's my pull request

19:32

with my framework. Can can you add it?

19:34

Can we work together on standardizing

19:36

it? I met some of my first um true open

19:39

source friends through this project. Uh

19:42

people who are now, you know, very well

19:44

established in their own means like

19:46

Cinder Sorhus who's written quite a lot

19:48

of node modules over time. This idea of

19:51

just giving people a simple enough

19:53

application

19:54

ended up becoming in some ways a

19:56

standard for a number of years. I began

19:58

to see that, you know, if a framework

20:00

was giving people a tutorial about how

20:02

to use them, they would actually use a

20:04

to-do MVC app as their baseline. It's

20:07

been so many years, that was at the

20:08

start of my career in many ways. Even

20:11

this last year, I still see labs

20:13

sometimes like showing off to do MVC

20:15

apps when they're trying to test out

20:17

features. And the longevity of this

20:19

thing has been um very surprising to me.

20:22

Another thing that was surprising was at

20:25

one point uh when the project was taking

20:28

off uh Apple reached out to me. Yeah,

20:31

Apple reached out to me uh and

20:33

specifically the people who are working

20:34

on Safari and WebKit and they said, you

20:38

know, hey, we're interested in working

20:40

on a browser benchmark

20:43

to help browser vendors understand like

20:46

are they doing a good job at being

20:48

responsive? And responsive here doesn't

20:49

mean responsive in the mobile sense, but

20:52

responsive in terms of interactivity and

20:54

are we responding to clicks and taps

20:56

quickly. They reached out to me and they

20:57

said, "Hey, would you like to

20:58

collaborate with us on this thing?" And

21:01

what that turned out to be um was

21:04

Speedometer. Speedometer uh over the

21:07

years uh has become the primary

21:10

responsiveness benchmark, web

21:12

application benchmark for all browsers

21:15

>> and has continued to be for a very long

21:16

time. and browser vendors now

21:18

collaborate together on it. They've kept

21:20

it um up to date. So as new frameworks,

21:23

as new architectural paradigms um have

21:25

come out over the years, uh they've kept

21:28

updating it and that in many ways is

21:30

like carried that the legacy of that

21:32

project through to today and I've been

21:35

just very happy that it's given people

21:36

value of any kind.

21:38

>> And you were building stuff on the side.

21:40

You were also working at at

21:41

consultancies, AOL at at different

21:43

startups. How did Google come along? So

21:45

Google was uh an interesting one. Um, I

21:49

remember one of my first uh longer

21:53

periods of time spent in the US was when

21:55

I was uh visiting my my wife and her

21:58

parents out in the Midwest and uh I was

22:02

uh sitting uh I remember uh in in their

22:05

room watching TV and there's this

22:08

documentary about Google that came on

22:10

and they showed like you know engineer

22:12

early engineers that have been working

22:14

there and why they enjoyed the

22:16

environment And I told myself, you know,

22:19

I would love to work in a place like

22:21

that someday. Um, I continued to put out

22:25

free education into the front end world,

22:28

JavaScript world, web app world over the

22:30

years. And, uh, at some point, I guess

22:33

Google noticed that it was useful to

22:35

some people. Um, and so they reached out

22:38

and wanted to interview me for, um, a

22:42

Devril and and builder role. Um, there

22:45

were there was a some tooling that they

22:47

were trying to build out at the time

22:48

that they thought could be a good uh use

22:50

of some of my skills, but also some just

22:53

general evangelism they wanted to do in

22:56

the tech community. Uh, and you know,

22:58

the stars aligned just happened to to

23:01

work out and I ended up working on the

23:03

Chrome team.

23:04

>> And then when you joined, can you tell

23:06

us a little bit more about when you

23:08

joined the Chrome team? What was what

23:09

was Chrome like? What kind of work did

23:12

you and the team do? Because now Chrome

23:16

is synonym for web browser. I know

23:19

there's other browsers and every now and

23:21

then of course they have some market

23:22

share but Chrome has largely won the

23:24

market but back then when you joined

23:27

this was not the case just yet was it? I

23:29

remember back when I joined uh it was it

23:34

was a period when we were very excited

23:37

about developers bringing their

23:40

creativity to the platform. So what can

23:43

you do to push on the platform and show

23:45

us both what's possible as well as the

23:48

gaps so that we can potentially help

23:50

fill those gaps and build better APIs.

23:52

So, I remember there was this great

23:54

Chrome experiment site that we had back

23:56

in the day where we would, you know,

23:58

sometimes work with studios or work with

24:00

developers and just showcase like, hey,

24:02

here's here's a cool WebGL example that

24:05

maybe you wouldn't have otherwise come

24:06

across. And that served as inspiration

24:09

for some people to maybe even go and

24:11

then learn more about shaders or, you

24:14

know, different libraries. It was also a

24:16

period of time when I would say

24:18

front-end tooling was uh still very much

24:21

heavily evolving. you know,

24:22

>> we're talking 2012, 2013.

24:24

>> Yeah, we're talking 2012, 2013. Uh, this

24:27

was at a time prior to uh what what I

24:31

would now call meta framework. So, like

24:32

Nex.js for example, a meta framework,

24:36

you know, didn't exist. So, we we're

24:37

going all the way back to a time when we

24:40

didn't have the best build tools even

24:43

for front end. We didn't have

24:44

>> we didn't have things like ES.

24:46

>> Yeah. we didn't have um we didn't

24:48

necessarily have well standardized

24:50

JavaScript modules you know in all

24:52

browsers people were still using you

24:55

know um AMD and UMD CommonJS things like

25:00

that and uh you know the build tooling

25:03

and the scaffolding tooling was still

25:04

very much evolving and so this was the

25:08

period of time when you went through

25:09

things like Grunt for for anyone that

25:11

you know maybe we're dating ourselves

25:13

but Grunt as a as a built system

25:16

>> and also when you debug the browser, you

25:18

would use Firebug. You would open it in

25:19

Firefox and then hope that like in IE it

25:22

would work, but if it didn't, there

25:24

weren't many good debugging tools in IE

25:26

specifically. Later, they became better,

25:27

but back there was a time where there

25:29

was not.

25:29

>> Yeah. I And I think that, you know, back

25:32

back in the heyday, there was a lot of

25:33

workarounds people were trying to apply

25:36

um to still have a toolbox of some sort

25:38

before things got much better. We put uh

25:40

some some work into working with um you

25:43

know the folks who were building out

25:45

build tools and testr runners and

25:47

scaffolding tools. We worked on our our

25:49

own contribution uh called Yommen back

25:52

in the day. And Yman was really about um

25:56

I don't know that I'd call it you know

25:57

the first meta framework but I would

25:58

call it an attempt at trying to bring

26:02

just a little bit of organization

26:05

uh to your starting point. Yomen was a

26:07

scaffolding tool we created where you

26:10

would get a wizard in your CLI and you'd

26:13

kind of say, well, yeah, I'm trying to

26:14

build this thing and maybe I'm

26:17

interested in using uh this UI library

26:19

and this testing library and uh maybe

26:22

I'm interested in deploying to this

26:23

target. Now, for folks who are listening

26:26

in, those ideas might now sound very

26:29

standard and things that you will find

26:31

in all the tools you're regularly using.

26:32

Back then, they didn't exist. And I

26:34

wouldn't be surprised if many of the

26:36

modules we created back then are still

26:38

being used under the hood for some of

26:39

your favorite tools. So it was it was

26:41

very fun getting to be a part of that

26:43

moment where we were trying to like

26:44

figure things out and reduce friction.

26:47

But I will say that you know there was

26:49

this long period where we kept changing

26:50

tools what felt like every every once in

26:53

a while, right? you went from Grunt to

26:55

Gulp to Webpack to you know to to V

26:59

rollup all these all these things kept

27:01

evolving and I was happy to see the

27:03

evolution but I'm also happy that things

27:05

in some ways feel like they've

27:06

stabilized.

27:07

>> Yeah, there there was I think it's it

27:09

was turn but I mean that's when

27:10

innovation happens. Did you work on

27:12

Google Chrome dev tools?

27:14

>> Yeah.

27:15

>> How did that start? Because I I remember

27:17

in 2012 I'm not sure if there was dev

27:18

tools but again there was the

27:20

state-of-the-art was Firebug. It wasn't

27:22

I think it was open source. It it was

27:24

actually just superior debugging on the

27:26

web to anything before and I'm not sure

27:29

at what point but I do remember you know

27:30

Chrome Dev Tools slowly started to

27:32

emerge and it it started to bring a

27:34

bunch of new stuff like you could do

27:35

performance monitoring some of those

27:36

things. Can can you tell me from the

27:38

inside how how did it start?

27:41

>> What what you built how you figured out

27:43

what to build? Yeah. So I have to give a

27:46

shout out to um Pavle Feldman who was

27:49

the tech lead uh for Chrome DevTools and

27:51

and really played a very large role in

27:54

helping it um come to be originally.

27:56

There was this uh period of time when

27:59

you know uh Chrome was trying to figure

28:02

out how it differentiated its developer

28:04

tooling story from WebKit where we had

28:07

the you know Safari inspector the WebKit

28:09

inspector and I think there's a very

28:11

specific direction that was developer

28:14

centric um and cared about the ecosystem

28:16

that Pavle and his team uh were trying

28:20

to to help out with and I noticed that

28:22

they had a very good relationship

28:24

talking to not just developer

28:27

evangelist. So this was the time when we

28:28

had really sharp minds like Paul Irish

28:31

around also like working very heavily

28:34

with the creme dev tools team. We would

28:36

later have um folks like Paul Bouse who

28:39

uh is now known for things like

28:40

impeccable um the impeccable skill for

28:43

design and uh I feel like uh one of the

28:46

nice things about that period of time

28:47

was you had these people who were web

28:50

developer archetypes and were builders

28:53

on the side myself Paul the Paul's and

28:56

we would try to bring those insights to

28:57

the dev tools team and help them

28:59

understand well here are the areas of

29:00

friction that we're running into. In

29:02

some cases, you can't just build tools

29:05

to help you out with them because you

29:06

don't have the underlying

29:07

instrumentation.

29:09

Um, and so I was very happy to see

29:11

things like uh performance tooling

29:14

heavily evolve over the years. Like the

29:15

DevTools performance panel is just an

29:18

amazing piece of technology. The fact

29:20

that you can just hit record, start

29:22

interacting with your page, and you get

29:24

a flame graph, you get very deep tracing

29:27

about where all the time is being spent.

29:30

And that continued to evolve over time.

29:32

And then we had, you know, really hard

29:35

problems. Uh, you know, some of the

29:36

hardest problems have been around

29:38

memory, right? I would say sometimes, I

29:41

don't know if it's controversial, that

29:42

very few developers understand memory

29:45

management, and that makes it even

29:48

harder to debug memory problems. And so,

29:51

the state-of-the-art around memory

29:52

debugging hasn't evolved all that much

29:55

over the years, but it's a hard problem.

29:58

uh the dev tools team tackled a lot of

30:00

interesting hard problems. Can can we

30:02

talk about a part that where you brought

30:05

in something new cuz you know debugging

30:06

memory just back in the day it's pretty

30:09

much I mean if you have a language that

30:10

has let's say heap you can try to

30:12

visualize what's on there

30:14

>> you can attempt and maybe be successful

30:17

at allocating which variables there are

30:19

and then you can try to also I mean some

30:22

variables are are the easy part there's

30:24

also stacks and you know it gets a

30:27

little bit messy but you you you

30:29

basically have a memory and and you're

30:31

typically interested in what is growing

30:33

and there's a part that I I don't I

30:35

don't I don't know that we got too far

30:37

on that but you're kind of trying to see

30:39

is this is this getting bigger? What are

30:41

the loops? Where's my stack?

30:42

>> Absolutely. I would say that there are a

30:45

few interesting arcs where we were

30:48

seeing you know ourselves and developers

30:50

externally running into certain kinds of

30:52

friction and um you know work with the

30:54

dev tools team to try evolving some

30:56

tooling in that direction. One of the

30:58

the big arcs was embracing the fact that

31:01

developers were increasingly using

31:04

frameworks and libraries to build for

31:06

the web. Y

31:07

>> now um for anyone that remembers those

31:10

dark ages, imagine that you have a page

31:13

that's very interactive. It's using lots

31:15

of different libraries and you're trying

31:17

to debug what's happened. What part of

31:19

that code do you actually care about? Do

31:21

you care about the framework code that

31:24

is powering things behind the scenes? Do

31:26

you care about the plugins or the

31:28

components sitting on top of it that you

31:30

haven't written? Do you care about the

31:31

code you yourself have written? And so

31:34

you have all of these very nuanced

31:36

aspects of debugging that need a

31:38

solution. One of the things that we we

31:40

tried to introduce was just this respect

31:43

and understanding that yeah developers

31:45

are going to be using these different

31:46

tech stacks. You know, we had a source

31:49

maps story sitting there. Yeah. Where

31:51

potentially we can start to reason about

31:53

what's in

31:53

>> you map back to like what part of the

31:55

code

31:56

>> exactly

31:56

>> which is not trivial.

31:57

>> Exactly. Which is not trivial. And a lot

32:00

of kudos to the team because I think we

32:02

ended up on a source map story that

32:04

really helps you reason well about you

32:06

know even if you're using a long tool

32:08

chain of things like if you take a look

32:10

at any tools that developers for any big

32:13

site you know whether it's Uber or

32:15

Netflix or any large Twitter any large

32:17

site you probably underestimate the

32:19

complexity and the number of tools that

32:21

you're running at any one time for any

32:22

one task you know and being able to

32:25

still allow people to see well hey

32:27

here's actually the files that you care

32:29

about. It's a hard problem. I think that

32:32

allowing people to get that view was

32:34

part of the value that we we brought. We

32:37

introduced different kinds of blackbox

32:39

uh views over the years so that you

32:41

could say, well, hey, actually I know

32:43

that I don't care about you telling me

32:45

there's an issue with, for example, the

32:47

React library, but I do want you to tell

32:49

me that there's an issue with the React

32:51

code that I wrote. And so giving you

32:53

even those toggles, those controls I

32:56

think was very powerful for people.

32:57

Mobile was another big moment that

32:59

changed everything. Um, and you know, if

33:03

you think about mobile, um, today I

33:06

would say, you know, there's probably

33:08

established best practices around the

33:10

things to test, right? Like you want to

33:12

test out your viewport width, your tap

33:15

targets, like is, you know, if I'm

33:17

tapping on something exactly, is it big

33:19

enough?

33:20

>> Exactly. you know, there are all these

33:22

different kinds of sensors even that

33:23

mobile devices have. We didn't we didn't

33:26

have tooling around any of this stuff

33:28

originally. And so we ended up building

33:30

out a nice device mode in dev tools that

33:33

would allow you to preview, you know,

33:35

what your site would look like at

33:37

different um viewport sizes. You can

33:39

very quickly kind of toggle and say,

33:41

"Yeah, this is what it roughly looks

33:42

like on an iPhone or a Pixel device."

33:46

And of course, you know, um the the

33:48

absolute best kind of testing would be

33:50

trying it out on one of those app does

33:52

accurate devices, but even to quickly

33:54

get a sense of whether you're heading in

33:57

the right direction was was very

33:58

valuable to people. And we would evolve

34:01

that over time as more of those best

34:04

practices started to establish. I guess

34:06

the web apps growing up um so PWA,

34:09

progressive web apps.

34:10

>> Yeah. Uh there was a period of time when

34:13

you know people really wanted to make

34:16

the web uh competitive compared to

34:19

native. And so you think about well what

34:21

are the things that are missing? Well uh

34:23

you need a really good story for offline

34:26

caching push notifications background

34:29

sync all of these capabilities that you

34:33

know we didn't necessarily have a strong

34:34

story for. And because these are

34:37

non-trivial features, you need to have a

34:39

debugging story around all of them. And

34:40

so we help build out the application

34:42

panel so that you can go in and for any

34:44

of these features, whether it's

34:45

debugging service workers or it's

34:47

debugging your cache or debugging any of

34:49

these things, you're able to do that.

34:52

And so even though the tool set has

34:54

expanded over time for each of these

34:56

eras, I feel like DevTools has been able

34:58

to keep up, especially as the APIs in

35:01

the browser has also been evolving over

35:03

time to meet these moments. Well, that's

35:05

interesting because I I usually when I

35:07

look through different companies and

35:09

their strengths, Microsoft is amazing at

35:12

building ideides and so is for example

35:14

Jet Brains, but for Google, I never felt

35:16

that Google was any good at building

35:21

except for inside of Chrome. like

35:24

whenever I I have to debug a web

35:26

application, I always I the past like

35:28

many many years I use Chrome DevTools

35:31

because it it had I mean the kind of

35:33

debug functionality I'm used to having

35:35

Visual Studio have which is breakpoints,

35:36

conditional break points, all sorts of

35:39

so many debug options from as as you we

35:41

just said performance memory being able

35:43

to simulate some of those things. So

35:45

it's very interesting to for me to see

35:47

that it's almost as if I'm not sure if

35:49

this was you, your team or Google as a

35:51

whole, but they realized browser is very

35:54

important. And so so they built like

35:55

almost like an it's almost like an IDE

35:57

inside of it. You can you can edit the

35:59

things in line and I think as engineers

36:03

or as developers unless you work in

36:05

front end you never really notice this

36:07

but when you do it's fascinating how how

36:09

how it came together.

36:10

>> Yeah, it's really fascinating and I

36:12

think that uh are we an ID? Aren't we an

36:14

in ID? Is that a direction we want to go

36:16

in? Was always a hot topic uh for the

36:18

team. And I think that where things kind

36:21

of landed was, well, we want to meet

36:23

developers where they're at because

36:24

you're always going to have your

36:25

favorite, you know, editor. Now we're

36:27

talking about, you know, your your

36:29

control planes for your agents. You're

36:30

always going to have a different

36:31

surface, right, that you want to

36:32

primarily work in. And as long as

36:34

DevTools can meet you where you're at

36:36

and be useful, I think that that that's

36:38

been something the team has tried to do.

36:40

We continued having other eras. Um, Yong

36:42

Gao uh became uh our next tech lead uh

36:46

after after Pavle and helped us through

36:48

the era of trying to figure out AI is

36:50

now in the picture and we want to both

36:53

be able to help humans reason through

36:56

this massive amount of data that the

36:58

browser generates for you as well as

37:00

make it possible for you to connect your

37:01

agent up to Chrome and DevTools and be

37:04

able to have it just automate, you know,

37:06

a lot of these journeys for you. And so

37:09

I think that for the first of those

37:10

problems, uh, I remember anytime I would

37:13

work with a big site on their

37:15

performance problems, uh, you could

37:16

easily spend half a day, um, you know,

37:19

just looking at traces before you've

37:20

even written any fixes at all. And now

37:23

that we have LLMs, it's very quick to

37:26

like reason through massive stack traces

37:29

and actually be able to get down to

37:30

fixes you can make. And that's just been

37:32

really, really wonderful to see happen.

37:35

Addy just described using LMS to go from

37:37

massive tax issues to working fixes,

37:39

which is the perfect moment to talk

37:40

about our season sponsor, Sentry. You

37:42

probably already know what Sentry is

37:44

because you're a developer. If not, just

37:45

ask a dev and they'll tell you. I use

37:47

Sentry to monitor the back end of the

37:49

pragmatic entry for any and all errors.

37:51

Of course, Sentry doesn't only do

37:52

errors. They also have logs, replay,

37:54

spans, profiles, metrics, and more

37:56

because they're all connected by the

37:58

same trace. One new capability Sentry

38:00

has built that I'm really liking is the

38:02

ability to fix errors. Let me show you.

38:04

Here's the list of errors on my admin

38:05

back end. There's a recent error on O

38:08

that I want to check out. Let's have

38:09

Seir run an autofix for us. Seir is

38:12

Century's AI debugging tool. First, it

38:14

generates a root cause analysis. It's

38:17

finding some problem with HTTP versus

38:19

HTTPS URLs. Cool. Now that we know

38:23

what's going wrong, Seir can create a

38:25

plan on how to go about fixing it. I

38:27

could go and edit this plan, but I'm

38:28

happy with it. So, let's create an

38:30

actual code fix. Here's a code fix that

38:32

Seir generated. Assuming it looks good,

38:35

and in my case it does, let's draft a

38:37

pull request. And boom, the pull request

38:39

is created, ready to merge. What I love

38:42

about autofix is how Centry went from

38:44

showing a list of errors inside my

38:46

application to offering me a fast way to

38:48

fix it and close the loop while I stay

38:50

in charge of this bug fix the whole

38:52

time. Debugging just got a whole lot

38:54

faster and a whole lot easier. Check out

38:56

Sentry at centry.io/pragmatic

38:58

and start detecting errors, diagnosing

39:00

your root causes, and fixing issues and

39:02

regressions today. Addie mentioned

39:04

things that change when we work with

39:05

LMS. One thing is for sure, if you work

39:07

with agents, your job is no longer

39:09

writing code. It's specifying and

39:11

testing it. And this leads us to our

39:13

presenting sponsor, Antithesis. Anthesis

39:16

is the most effective method of

39:17

verifying agentic code today. Let me

39:19

explain how it works. Antithesis runs

39:21

your whole system in a hostile

39:22

simulation. By doing so, it finds every

39:25

bug before your users do. And because

39:27

the simulation is fully deterministic,

39:29

anticys doesn't only find bugs. It gives

39:31

you a perfect reproduction of every

39:32

issue. To create such a tool, the

39:34

antithesis team needed to invent new

39:35

kinds of debugging tools as well. For

39:37

example, here's what's called a buck

39:39

probability graph. The x-axis is virtual

39:42

time and the y-axis is probability. As

39:44

anticis runs the hostile simulations, it

39:46

plots time frames when the bug

39:48

probability increases, which greatly

39:50

helps with finding the root cause of

39:51

bugs. And anticysis also has a log

39:54

visualizer. Vertical lines going down

39:56

represent events branching off from the

39:58

same state. And the purple dots are

39:59

where the buck happens. Antithesis is as

40:01

good as it gets being able to ship agent

40:03

written code. It's what teams at Jane

40:05

Street, fly.io, and the Etcdity

40:07

community use to ship with full

40:08

confidence. Head to

40:09

antithesis.com/pragmatic

40:11

to learn more. And with this, let's get

40:13

back to Atti and talk about core web

40:15

vitals. And one area that you really

40:18

pushed you and the team, pushed the

40:20

industry together is core web vitals.

40:22

You know these are a standardized set of

40:23

metrics to just figure out the real

40:26

world experience of web pages and some

40:28

of the you know before this again you

40:31

would as a developer you would measure

40:33

like all right how quick does it render

40:35

or how quick does it download it was

40:37

very simple stuff but you introduced

40:39

things like LCP largest contentful paint

40:42

cls commumulative layout shift fie first

40:45

input delay and then in impaction to

40:48

next paint like you were there like how

40:50

did the team come up with these things

40:51

there. If you're not a web engineer,

40:54

there's still it takes a little time to

40:56

understand them. But but it does

40:59

actually explain like how users feel

41:02

like I feel you somehow inside of Google

41:04

managed to connect the kind of feel to a

41:07

number. I think that um the Chrome team

41:11

uh has always had an appreciation for

41:13

user experience research and um again

41:17

every every time there was uh a new

41:19

moment for the web would reconsult

41:24

well what are users expectations and how

41:26

can we help meet them. The way that we

41:28

used to reason about performance was

41:31

very much like hey is a page loading and

41:34

what does that even mean? Well, for many

41:36

people, is the page ready? But what does

41:39

ready mean? Does that mean that I see

41:41

it? Does it mean that I can click around

41:44

it and anything actually happens? Um,

41:47

and so I think for a very long time, we

41:49

had this this almost nebulous way of

41:52

thinking about page load times. And the

41:55

team felt like it was finally time to

41:57

come up with a more nuanced perspective

42:00

around how we reason about performance.

42:02

And so if you break it down, there are a

42:05

number of key moments across the user's

42:08

journey that they care about. Is it

42:10

happening? Is anything loading? You

42:12

know, do you see a header? Do you see a

42:14

spinner? Do you see anything at all? Is

42:16

there something useful there for you? So

42:19

>> maybe that's a header image. Maybe it's

42:21

a hero image. Maybe it is a hero video.

42:24

Maybe it's like the core piece of

42:25

content on the page. Is it useful? Is it

42:29

usable right there? And all of these

42:32

different moments can correlate to these

42:33

different metrics. So for things like

42:35

your hero image, you can think about

42:37

that as your largest contentful paint.

42:39

And that's not going to generalize

42:40

across every page. In some cases, the

42:43

image may not be the most important

42:44

thing. It might be, you know, the

42:46

article text. There may be cases where

42:48

uh you know, you want to be able to

42:51

interact fairly quickly with a page. I

42:53

can remember um many times over the

42:55

years when I might be shopping and uh

42:59

whether it's on my phone or on my

43:00

desktop, I will click like the add to

43:02

cart button and just crickets.

43:04

>> Yeah.

43:04

>> Nothing will happen

43:06

>> cuz the JavaScript did not load or the

43:08

event hand or or the or maybe the event

43:10

handler was not attached because not all

43:12

elements finished loading. We know as

43:14

engineers what's happening but as a user

43:16

it's like

43:16

>> yeah as a user like wait what's what's

43:19

happening

43:20

>> and then stuff can happen where you you

43:22

just tap tap tap the event handler gets

43:24

attached and now you're adding it like

43:26

twice or three times but you don't know

43:28

and yeah

43:29

>> humans are humans are are shockingly

43:31

simple. You know uh if you think about

43:33

the experience you have with somebody

43:34

that's just trying to cross the street.

43:36

If uh you know if the light doesn't turn

43:39

you know it doesn't say they can walk

43:40

fast enough they'll just keep hitting

43:42

that button. That's the same experience

43:43

they have on the internet. I think that

43:45

there were other aspects of user

43:47

experience that um I think we

43:50

acknowledged were actually kind of

43:51

problematic. One big one was over the

43:54

years obviously sites tried to monetize

43:56

as heavily as they could. And so you

43:57

would see not just banner ads but you'd

44:00

see modals, you'd see all of these

44:02

things thrown up in front of your face.

44:05

And you know, even if you set aside, you

44:08

know, maybe there's some validity around

44:10

a business needs to monetize, those

44:12

things shouldn't cause a really bad

44:14

experience. If I'm on a page that has a

44:16

bunch of ads, I shouldn't start reading

44:19

an article and then suddenly everything

44:20

gets pushed down,

44:22

>> right? Just because the ad is finally

44:23

loaded. And so that's where cumive

44:26

layout shift kind of uh comes from. It's

44:28

this idea that, hey, we should be trying

44:30

to keep that page stable so the user has

44:32

a good time. There was a lot of

44:34

iteration around how do we define these

44:38

metrics in a way that captures a few of

44:40

these different use cases that are very

44:41

nuanced because the internet is not all

44:43

that homogeneous. There are lots of

44:45

different ways that a person can think

44:47

about the value of a page and what's

44:49

important. And so the team did a lot of

44:51

experiments, experimented with lots of

44:53

different ways of thinking about these

44:55

metrics and worked very heavily with

44:58

both the standards community and

44:59

developers to validate like hey do you

45:01

actually believe that these things line

45:03

up with how you would say you think

45:05

about the value of your pages. One of

45:07

the things that I always find

45:09

fascinating is um there are some

45:12

companies where you know they they have

45:14

thought from the ground up like if you

45:16

start from a blank white screen what is

45:18

actually important to the user end to

45:20

end and then there are many companies

45:21

where they haven't for whatever reason

45:23

time or they just didn't think about it

45:25

they haven't gone through that journey

45:27

and so core vitals allowed them to

45:30

finally get a more nuanced conversation

45:32

going about like hey what's actually

45:34

important to us how can we make sure

45:35

that whatever key action the user has to

45:38

take, they can do it pretty quickly and

45:39

be guaranteed that they're not going to

45:41

have a bad time.

45:42

>> Now, you spent 14 years inside of

45:43

Google. You most of it was inside a

45:46

Chrome organization. Later, you moved

45:47

over to to cloud AI and work with Genai

45:51

as well. We've done research before on

45:53

Google's engineering culture, but can

45:55

you can you summarize like what it felt

45:58

working there in terms of what and

46:00

especially comparing to the startups

46:01

that you worked before? You also talk

46:03

with with companies now outside of

46:05

Google. what were things that were

46:07

uniquely Google?

46:09

>> As part of my Google journey, there was

46:10

a lot of work that I did on the

46:12

developer side. There's also a lot of

46:13

work that I did on the consumer side. So

46:15

working on um Chrome performance for

46:17

example and when you're working on

46:20

something that goes out to billions and

46:23

billions of users which is the case for

46:25

for many Google products now um the way

46:29

that you think about engineering culture

46:32

velocity experimentation is very very

46:35

different I think than sometimes how a

46:37

startup might approach things especially

46:39

if you're trying to move very fast when

46:41

we try to make a change inside a browser

46:43

that has a global audience with a lot of

46:46

people. There's a lot of experimentation

46:48

that has to happen and a lot of

46:51

experimentation that also requires just

46:53

like testing out well hey does this

46:56

problem not have one solution but

46:58

actually a couple of different ones

46:59

depending on what market you're in and

47:02

how do you evaluate success when maybe

47:05

we have 20 other experiments or hundred

47:08

other experiments happening at the same

47:10

time and so the AB testing culture I

47:14

would say was a very big thing and could

47:17

to the Chrome team for having what is

47:19

now I would say a fairly um stable and

47:21

rigorous process for being able to try

47:23

those things out in the real world. I

47:25

also felt that even though sometimes

47:27

from the outside it didn't necessarily

47:29

always uh come across zoomed out at the

47:31

Google level, I did feel like there were

47:34

many people that cared a lot about

47:37

developer goodwill and developer

47:39

sentiment. But when you have, you know,

47:42

a very large company, obviously you're

47:44

not, you know, you're not, it's going to

47:46

be very challenging to have every group

47:47

talking to every other group.

47:49

>> Impossible. We always made best efforts

47:52

to try, you know, um, getting to a place

47:54

where we were doing the right things for

47:56

developers as best we could, but I was

47:58

glad to see that sentiment and that

48:00

level of care for the community and for

48:02

our users. I also appreciated that

48:05

Google was um, was open to change. So, I

48:10

would say if if I had to summarize my my

48:12

one big change contribution to Chrome's

48:15

culture, it would be meeting developers

48:18

where they're at. and that embrace of

48:21

people are going to use whatever tech

48:22

they want to use. You can't tell people

48:24

what to use very often. They're going to

48:27

use whatever they want and your job is

48:29

to help them be successful on your

48:31

platform and to help their users have a

48:34

great time. I think that there were a

48:35

lot of decisions we made over the years

48:37

that helped make that um a little bit

48:39

more possible and uh you know we had

48:43

good collaborations with different

48:45

framework teams. we took their feedback

48:46

about APIs they would like to see in the

48:48

platform. It became a lot more of a

48:51

collaboration with the community rather

48:54

than kind of guessing what we thought,

48:56

you know, the community needed to be

48:57

successful. And so I was very happy to

49:00

see that happen. I would also say that

49:03

>> Google was very good at allowing um

49:07

different parts of the company to share

49:09

their learnings towards some point of

49:11

convergence. Uh so for example the

49:13

software engineering at Google book one

49:15

of my favorite books.

49:17

>> I was very happy to see different

49:19

flavors of that over the years

49:21

internally at the company because you

49:23

work at such a big company. Um you're

49:26

always curious well what is best

49:28

practice right like is there a best

49:30

practice?

49:30

>> So so there were like internal writings

49:32

of like here's how this org is doing

49:34

some parts of software engineering or

49:36

building or experimentation or whatever.

49:38

>> Yeah. One of my favorite things to do

49:40

was um you know I was curious well my

49:42

team might have a perspective on testing

49:45

or user experience but how does the

49:48

YouTube team think about it and are

49:50

there parallels are there things that we

49:52

could learn from each other and there

49:54

certainly were you know even looking at

49:56

how other people think about the world

49:57

can sometimes lead to collaboration

49:59

opportunities. Um we actually worked

50:01

with uh the YouTube team um to improve

50:04

their core app vitals at one point you

50:06

know and they were they were excited to

50:08

see that there were just more refined

50:09

metrics and ways of thinking about

50:11

experience.

50:11

>> I mean I mean I guess it's just

50:13

important to point out that this

50:14

collaborative nature is not a given in

50:16

any all large companies. There are some

50:19

companies don't want to name names right

50:20

now but where organizations

50:23

don't feel that they're incentivized to

50:25

work with each other because they might

50:26

have different goals and it's not that

50:28

they hate each other. just like focus on

50:29

themselves and it can feel a lot more I

50:31

guess political in that sense. Yeah, we

50:33

talk a lot about high agency these days

50:37

and um I think that sometimes when you

50:40

see those collaborations happen, it's

50:42

because there are people with enough

50:44

agency on both sides that they want to

50:46

make it happen. Um and they see the

50:48

mutual value in collaborating because

50:52

exploring, you know, how to improve the

50:54

user experience for something like

50:55

YouTube, it was extremely nuanced,

50:57

extremely educational, very nuanced, but

50:59

also took a very long time. and we just

51:02

felt like the value was there. I was

51:04

glad that we could make it happen.

51:05

>> Yeah.

51:05

>> Can we talk about your specific career

51:07

path inside of Google? So, you spent 14

51:10

years there, which is a very long tenure

51:12

and I'm starting to develop a bias for

51:14

like it's nice to have long tenure

51:17

somewhere at some point in your career.

51:19

There's a lot of values. You were just

51:20

talking with uh with with Simon uh the

51:23

founder of Turbo Buffer about this

51:24

earlier. What level did you get in? How

51:27

was your career progression? At what

51:29

point did you become a manager? And how

51:31

did you think about things like career

51:34

compensation

51:36

growing?

51:37

>> Yeah. Um, so I started my Google career

51:42

uh back when I was living in the UK. Um,

51:44

actually,

51:45

>> so you joined Google UK. Yeah, I joined

51:47

Google UK originally and uh I believe I

51:50

joined at a level four like at the

51:52

>> Yeah, that was one the mid-level

51:54

software engineer

51:56

>> um back then and I was a developer

51:58

relations engineer. So a person that's

52:01

in Devril but you're a little bit more

52:02

focused on you know the builder side of

52:04

things. Over the years I kind of got

52:07

promoted in that role to like uh level

52:10

five and level six. I became a manager

52:13

within Devril and

52:14

>> when you were at level six at the staff

52:16

level.

52:16

>> Yeah. Yeah. And then I um was was

52:19

leading uh part of the Devril team uh

52:22

and at some point maybe five or six

52:25

years in um I started to feel like you

52:29

know I I loved doing developer relations

52:32

but I I I am very much a builder at

52:34

heart. I love I love engineering and I

52:36

love product. I love all of it you know

52:38

but

52:38

>> I get it. I was very curious, you know,

52:41

um what it would be like to be on the

52:43

other side of that because I'd been in

52:46

engineering prior to Google. I hadn't

52:47

been, you know, in an official Devril

52:49

position prior to that. And I was

52:52

interested in going back down that

52:54

direction. And so over the years, I

52:56

transitioned uh back into kind of

52:58

software engineering and specifically

53:00

like an engineering manager role. um

53:03

that gave me the flexibility to both do

53:06

like engineering work but also manage uh

53:09

teams.

53:10

>> But you just had a smaller team at that

53:11

point.

53:12

>> At the at the start um had a smaller

53:15

team and then it grew out. Uh I would

53:19

say the average at one point was

53:21

probably in the 45s to 50s. I I think

53:24

that depending on where you are in your

53:27

leadership or manager journey, you know,

53:30

success means different things. not not

53:31

success from a career perspective but

53:33

just success for the organization

53:35

because ultimately what you want to get

53:38

to is a place where ideally the team is

53:41

almost self-sufficient and uh I write

53:43

about this a little bit in um my book

53:45

leading effective engineering teams but

53:47

you want to get to a point where um you

53:50

know your your machine your org is

53:52

self-sufficient enough that you know you

53:55

just need to occasionally tap the blimp

53:57

make sure that things are working you

53:59

can course correct if it's Not, but that

54:01

frees you up to then focus on the next

54:03

important sets of problems that the org

54:05

needs to, you know, tackle heads on. And

54:08

that allowed me, for example, to um

54:11

really get deep into thinking about,

54:13

okay, well, model quality is starting to

54:15

get better. What does that mean for

54:17

developers? What does that mean for

54:18

developer tooling? What does it mean for

54:21

how we think about benchmarks and

54:23

collaborations with third party vendors

54:25

and all of these other things that are

54:27

part of developer success? And so I was

54:30

I was glad that I had that time and then

54:33

I could take those learnings back to the

54:35

team and work with them to evolve us

54:37

into this moment where we could you know

54:39

help developers maximize uh how useful

54:42

dev tools can be and dev tools and

54:43

chrome can be for agents.

54:45

>> So do I understand correctly that you

54:47

know you you were an indiv individual

54:49

contributor you were going up the career

54:51

ladder which is somewhat expected at a

54:54

at a large company like Google with the

54:56

right mentors and the right structure.

54:58

And then when you became a manager and

54:59

you switched but you decided to build a

55:01

bit more you then focused on you still

55:03

had a growing and increasingly large

55:05

team and 40 people that's that's not a

55:07

small team but you you tried to help the

55:10

team fix any issues help them mostly run

55:12

by themselves so that you would have

55:13

some time to actually do some individual

55:16

contributor like work so you can keep

55:18

your hands dirty but also help the team.

55:20

>> Yeah. So like it it seems like you do I

55:22

understand that you just prioritize to

55:24

have that time to build because of

55:26

course when you're a manager this could

55:28

easily suck up all of your time.

55:29

>> Oh yeah, absolutely. And I don't want to

55:32

make small of of all the work it takes

55:34

to get to that point because a lot of

55:36

management is trying to work towards

55:37

that point. You need to build out a team

55:41

structure like

55:43

>> and in some cases you have managers

55:45

managing

55:46

>> managers

55:46

>> managers right of other teams and we had

55:49

a global team of people of course that

55:52

comes with navigating time zones and

55:55

coordination overhead and communication

55:56

and all those things and so I think that

55:59

we were we were fortunate that we were

56:01

able to get to a place where the team

56:02

was um largely pretty effective and we

56:05

were able to create more of the space

56:06

and then I take those learnings and I

56:08

try to help some of my other managers

56:09

like how do you how do you create this

56:11

space now for you so that you can also

56:12

help us on this journey of modernizing

56:14

for the AI moment. Um so I went I went

56:17

from L6 to L7 um to director um in my

56:23

>> is L8 or L78. Director's L8.

56:26

>> Oh wow. So that that's kind of Well,

56:28

congrats. It's it's it becomes every

56:32

level becomes somewhat harder and harder

56:33

as I understand. But did you care too

56:35

much about the actual levels or was it

56:38

more about the work and things just

56:39

followed?

56:40

>> I think for a very long time um it was

56:42

about the work but also like as you as

56:45

you get to a point where you feel like

56:47

the organization is in a healthy place

56:50

um you do start thinking about okay well

56:52

next level of my career taking on

56:54

different kinds of problems like the

56:55

next challenge right? the next

56:57

challenge. And so I was very much um

56:59

wanting to go for a director kind of

57:02

promotion for for quite a while and I

57:04

was working towards that. And I think

57:06

that you know for anyone that's gone

57:07

through career changes or promotions,

57:10

you know, you know that you kind of have

57:11

to be doing the job for a while before

57:13

you get it. And

57:15

>> um what kind of got you where you are is

57:17

when it's what's going to get you to

57:19

that next level, right? It's a different

57:20

set of challenges. And so I was excited

57:23

to, you know, get to start experiencing

57:25

those kinds of challenges and and

57:26

working more across Google, you know,

57:29

working more with our VP and SVP layers

57:32

to try figuring out, well, yeah, what

57:34

what does the next couple of years or

57:36

what does the next year look like for

57:38

Android, for Chrome, for our different

57:40

platform teams as we're going through

57:42

these kind of revolutionary moments?

57:44

We're trying to rethink everything. I

57:45

did want to ask because we have a lot of

57:47

pretty experienced viewers and and

57:49

listeners what is the difference in

57:51

becoming a director at Google

57:54

specifically because director that's the

57:56

first executive level I mean different

57:58

companies call different but like it's

58:00

the first one which it might be included

58:03

in terms of responsibility

58:06

uh weight on your shoulder because it

58:07

does feel like that feels in the

58:09

management chain that is the biggest

58:10

jump at a large company like this

58:13

>> I think that a good way to think about

58:15

it is when I was coming up through the

58:18

ranks, uh, your director was very often

58:22

your first point of contact, as you

58:24

said, at the executive level. They would

58:26

be the ones who would be keeping you on

58:28

the hook for making sure that any of

58:31

your annual goals, quarterly goals, any

58:33

of that was on track.

58:35

>> They'd be the ones that you'd be looking

58:37

to sponsor any large programs, any new

58:40

projects, things like that. if things

58:41

were going like way off track and you

58:43

were, you know, being held accountable,

58:45

the directors were often the ones that

58:46

would be having review forums regularly

58:49

to make sure that that whole ship is

58:51

actually still steering in the right

58:52

direction. And so there is an increased

58:54

feeling of accountability at that level.

58:58

Um, you have to pay attention to the

59:01

details. I think that you can't be

59:02

successful in that role if you're kind

59:04

of just letting go. And when I say like

59:07

you you want ideally to have a self

59:10

running org, it's not about letting go

59:12

entirely at all, but it's about having

59:15

enough of a system in place where you

59:17

get the information you need. Any

59:19

decisions, any blocks that your teams

59:22

are running into are surfaced quickly to

59:24

you so you can help them unblock them. I

59:26

think that that's really one of the

59:28

biggest pieces like making sure that the

59:31

business goals get done and making sure

59:34

that people who perhaps sometimes don't

59:36

necessarily understand how to connect

59:38

the tech uh that's being done back to

59:41

the business goals like see that through

59:42

line very clearly. I remember that um

59:44

you know and I was doing the director

59:47

role through my time working on Gemini

59:50

and cloud AI. I was responsible for some

59:52

of our like one of our top goals for the

59:55

year. You're expected to report on that

59:57

every week or two and be held

59:59

accountable. So you need to do do to

60:01

make sure that everything happens to

60:02

keep those numbers and those goals

60:04

moving in the right direction. So

60:05

there's a lot of accountability I would

60:07

say that comes with. So, so it sounds

60:08

like it's almost like if you're juggling

60:10

stuff, you're given like two extra

60:11

balls, which is like now you both the

60:14

accountability, communicating upwards

60:16

with with exing the business goals while

60:18

doing everything else in terms of like

60:20

running now probably larger team being

60:23

able to deep dive into the details. So,

60:24

keeping yourself up to date. So, yeah.

60:26

Well, I guess it kind of makes sense

60:28

that there's a trajectory where if the

60:30

longer you work in an organization, the

60:32

more context you'll have, the more ready

60:34

you often become.

60:35

>> Absolutely. Absolutely. And and I think

60:36

an interesting um anecdote that I think

60:39

is worth sharing is and I don't think

60:41

this was specific to Google. One of the

60:43

things I found most exciting in the last

60:46

couple of years was seeing as model

60:50

quality's gotten better and and

60:51

harnesses and tools have gotten better,

60:53

how many people um that were directors

60:56

or VPs or SVPs or any of these levels

60:58

were actually rolling up their sleeves

61:00

and trying things out. Um, and that was

61:04

that was awesome to see because every

61:05

week you could then have conversations

61:07

with people like, "Hey, what did you

61:08

build at the weekend? What models are

61:10

you trying out? Like what are you

61:12

running into friction with? What

61:13

workflows are you using?" And that's not

61:16

something that was happening before.

61:18

Exacts were very typically, you know,

61:19

focused on big company problems or big

61:21

work problems. Yeah, but that's been

61:23

changing in the last couple of years

61:25

>> which lead us very nicely into the next

61:26

topic which is how AI in your

61:29

observation and experience is changing

61:31

software engineering right before we

61:33

start talking about one question that

61:35

comes up to from a lot of people and

61:37

you're also thinking about is this idea

61:39

of like cognitive surrender.

61:40

>> Yeah,

61:41

>> let's get into that.

61:42

>> Yeah. So there's two pieces here. Um the

61:45

first is cognitive debt. So the more

61:48

that you use AI, it's it's sort of the

61:51

erosion of your ability to have good

61:53

memory and have good understanding of

61:55

the problems that you're working on. And

61:57

the natural followup to that is

61:59

cognitive surrender, which is where you,

62:02

you know, you blindly give in to

62:05

whatever the AI says as your answer. Its

62:07

answer becomes your answer. And so you

62:10

start to really let go of critical

62:12

thinking and your ability to solve

62:14

problems just goes to the wayside. Um, I

62:17

think that that's something we want to

62:18

avoid because, you know, I'm I'm

62:20

personally I'm a I'm a big fan of the

62:23

evolution curve we're seeing with

62:25

harness engineering and loop engineering

62:27

and software factories and all of these

62:28

things. I'm very excited about them. Um,

62:31

but at the same time, I think that we

62:34

still need to understand enough about

62:36

how things work so that if something

62:38

does go wrong, we're actually able to

62:41

fix it and not just hope and pray that

62:43

the agent is able to figure things out.

62:45

And it was about a year ago where you

62:47

wrote about the importance of when

62:51

you're working with an agent and this

62:52

was before they were as capable as

62:54

today. But when you're working with an

62:55

agent, read through read through what it

62:57

it has, think through and then you know

62:59

when it generates the code, read through

63:00

that code, make sure you understand. So

63:02

like you're kind of like doing a review.

63:04

Now we have a lot more powerful agents.

63:06

Um we can now some people work like

63:09

multiple agents. What is your thinking

63:12

on the kind of the reading the going at

63:16

the same pace of the agent and and you

63:18

know like because there's this friction

63:19

of like it's now so much easier to like

63:20

not not let go because you want to let

63:22

go and have cognitive depth.

63:23

[clears throat] It's just like they're

63:24

faster and it's pretty good for the most

63:26

part

63:27

>> with many challenges people run into in

63:29

life. Um there's a lack of

63:32

intentionality around wanting to avoid

63:33

them. And that this is one of those

63:35

places where I see this happen quite a

63:37

lot. Um, and my thinking on this has

63:39

changed a little bit. A year ago, you

63:42

know, maybe you would have, you know,

63:44

like one thinking message from the agent

63:47

saying, "Hey, I'm I'm thinking in the

63:48

background." And you'd expand it and you

63:50

would see a trajectory and you'd see the

63:51

summary of like all the things that are

63:53

happening

63:53

>> and it was like in speed where you could

63:54

follow as well. It's like it's like

63:56

every few seconds something coming.

63:58

>> Yeah. And now if you're using cloud code

64:01

or codeex um it's very possible that 20

64:04

or 30 sub agents have fired. I am not

64:07

going to click through 30 of those

64:09

things to read through their

64:10

trajectories. But I do make sure that I

64:13

do two things. The first thing I do is I

64:16

try to make sure that if there is a

64:17

summary at the very end, here are all

64:19

the decisions that were made. I will

64:21

read through that end to end. If there

64:24

hasn't been, I will prompt for that

64:26

decision process. And you have to be

64:28

careful because you don't want a model

64:30

to kind of BS you about like the

64:32

decisions that were made because

64:33

sometimes it can just like make things

64:35

up, right?

64:36

>> But It run and and as we know it's not

64:38

deliberate necessarily but it runs out

64:39

of context window like there's

64:42

limitations to these things

64:43

>> exactly and there and that goes on to

64:45

the second thing I'm a really big fan of

64:48

this idea of mutual amplification

64:51

if you are working with an agent a

64:54

coding agent there are a lot of things

64:56

that you can do to make sure that the

64:59

agent is getting better every day and

65:01

you as an engineer are getting better

65:02

every day there are simple things that

65:04

can play into that things like even

65:06

within in this session or within this

65:07

project. Can you log your learnings from

65:09

the session? Can you log any decisions

65:12

that were made, any friction that you

65:15

ran into? Anything that you think is

65:17

unique about how you've approached this

65:19

problem that I should just keep in mind.

65:21

That's intentionality. That's like I I

65:23

want to understand how things work

65:25

behind the scenes. And as long as you

65:27

have that curiosity and that thirst for

65:30

at least being just a little bit

65:31

curious, I think that you know you can

65:33

work with models in a way where you're

65:35

still preserving a little bit of your

65:37

cognitive understanding about how things

65:39

work.

65:39

>> One new building block that's coming up

65:42

in genic engineering is this idea of

65:44

loop engineering and Peter Stainberger

65:46

wrote about it, Boris Churnney wrote

65:48

about it about running loops. A lot of

65:50

us are trying to figure out what loops

65:52

exactly are. You also wrote a post about

65:55

loops.

65:57

What do you think loops are? Or how

65:59

should we think of them or is is just

66:01

some something that is useful for a few

66:03

people? Where are you at with that? a

66:05

good way to think about so loops are

66:08

part of this journey we are on to

66:10

effectively create software factories or

66:14

you know some some people like

66:16

>> software factory meaning like a thing

66:18

where you know like it you give some

66:21

instructions you're like you in a

66:22

factory like I would like to produce a

66:24

car and then there's a fully automated

66:27

factory and the car comes out

66:30

>> so instead of focusing um on purely the

66:33

prompting towards getting an outcome.

66:35

You're building the system that can do

66:37

the prompting and generate the outcome,

66:38

[clears throat]

66:39

>> do the testing and verification for you.

66:42

And it's effectively

66:44

the next step of, you know, every phase

66:46

of of software evolution is just like a

66:48

rising tide of abstractions. This is the

66:50

next abstraction. And it comes with a

66:52

lot of nuance because I think that, you

66:55

know, if you tell someone, "Yeah, create

66:57

a create a system that will just do all

66:59

of your work for you." Anyone that's

67:01

been in the industry for a while are

67:02

going to have obvious questions like,

67:03

"What about quality? What are you

67:06

actually how are you making sure things

67:07

aren't going off the rails?"

67:09

>> And so, I think that you have to be very

67:11

intentional with, okay, well, what are

67:14

the parts of this where you're keeping

67:15

the human in the loop? Are you having

67:17

your system flag to you that, hey, there

67:21

are changes that were touched that

67:22

actually, you know, are hitting a pretty

67:24

critical part of the system? And you

67:26

probably do want human review on this.

67:28

But simply just having your loops build

67:31

everything without having some guard

67:33

rails around the blast radius, without

67:35

having guardrails around how you think

67:37

about quality, I think is a recipe for

67:39

disaster.

67:40

>> I hear the analogy of self fracture a

67:42

lot of places and again it and of course

67:44

dark factory as well. dark factory,

67:46

meaning it's a fully owned factories.

67:48

Lights are turned off because the robots

67:49

don't need to see and you save energy

67:50

and and money. But one thing that I I

67:52

keep thinking that is off on this

67:54

analogy is like, okay, in a factory, you

67:56

produce a thing. It could be a car, it

67:57

could be a screw, it could be something.

67:59

It's it's there and it's done. But with

68:01

software, specifically SAS and and most

68:05

software that we do, it's not done. We

68:06

like when it's finished, we release it

68:08

to production and that's where it

68:10

crashes, the bugs come out. So I wonder

68:13

if this this whole idea of like okay

68:15

we'll have a factory that produces the

68:16

software and it does all the testing if

68:19

in production it's not connected to how

68:21

it's running and having that feedback

68:23

that's you see what I mean like it's a

68:26

different type of factory that we're

68:28

talking about. So you hit you hit the

68:29

nail exactly on sort of the next phase

68:32

of that. You can if you can have a

68:34

system that can sort of decide uh what

68:39

needs to get built, how to verify, how

68:41

to test and all of those things,

68:43

>> there's nothing stopping you from then

68:44

connecting that up to your telemetry, up

68:47

to your other systems, up to user

68:50

feedback, up to any other signals that

68:53

can help build out the product. You can

68:55

connect it up to the product backlog and

68:57

you can potentially see a world where

68:59

you then have this system that has

69:01

access to all of these different signals

69:03

for how the product can be improved to a

69:06

point where maybe it even could get

69:07

proactive.

69:08

>> Yeah. And we're seeing there's so many

69:10

examples that you can plug it up. For

69:11

example, if you're using Sentry, uh,

69:13

Sentry has automations where like if an

69:15

error fires in Sentry that is net new,

69:17

you could have a hook that kicks off

69:19

your favorite coding agent where it

69:22

one-shots a fix and it puts you in your

69:24

review. Now, of course, you took it you

69:26

could take it further and you could

69:27

allow it to automatically do it, which

69:29

sounds like a bad idea today, but you

69:31

could do it. And I wonder is when we're

69:34

talking about loops, is this, for

69:35

example, a loop that we say? And maybe

69:38

the the loop is just not a good word for

69:40

it. Maybe it's I think I heard workflow.

69:42

I heard like or if I say feedback loop.

69:45

Okay. Like that might be a better word.

69:47

Maybe is it just a wording thing where

69:48

like we're a little bit confused with

69:50

the

69:50

>> Yeah. I mean I I think that given how

69:54

fast things are moving, we are very

69:56

likely to see new terminology sprout out

69:58

every month and some of them will be

70:00

good fits and some of them will continue

70:01

to require some refinement. So I could

70:03

totally see workflow being a better fit

70:06

um than loop. But from a visual

70:08

perspective, I do I personally do see it

70:10

as a loop. Workflow also also works.

70:13

>> But but then can you give me examples of

70:15

loops that you've you've used or you

70:18

have seen people on your team or people

70:20

on the university use?

70:22

>> Yeah. So um I was just mentioning being

70:25

able to connect multiple signals up to

70:27

you know your software factory from

70:29

production

70:30

>> from production

70:30

>> and may that be logs or errors or all

70:32

those things. So, um I have one app

70:37

where um I allow people to submit issues

70:40

uh to it if they run into any problems.

70:43

And historically, yeah, like a bug

70:45

report. And historically, I would, you

70:48

know, manually go through everyone and

70:50

whenever I had time and then make a call

70:52

in terms of like, okay, well, I only

70:53

have time to address so and so and so.

70:55

Um I can't go through the full backlog.

70:57

You can now connect up so many other

70:59

sources of data. You can connect up your

71:01

Google Analytics. you can connect up,

71:03

you know, if you're deploying to a

71:05

certain hosting provider, there are all

71:06

kinds of logs that you might get from

71:08

those sessions as well. You can connect

71:09

it up to that and then you can end up

71:11

with a system where it's able to make

71:13

decisions and prioritization and then of

71:15

course do the implementation based on

71:17

not just one dimension of feedback. So

71:20

for example, if uh in my product it's

71:23

noticing that there is a particular view

71:25

that is really really slow but it now

71:29

knows that that's happening for users in

71:31

India but that I'm getting a lot of

71:32

traffic from people in India. It can

71:34

influence the priority of how much I

71:36

care about that. Now how much does

71:38

priority matter these days when an agent

71:40

can go through your whole backlog and

71:41

implement everything? I think it still

71:43

depends if you care about having to go

71:46

in and manually do some work to like

71:49

take a look. Okay. Well, you you said

71:50

you improved performance. What did you

71:52

actually change? How much do I have to

71:54

manually test this thing on these kinds

71:55

of devices myself? Because I can tell

71:58

you to go and, you know, do some

71:59

emulated testing. I'm sure it'll help.

72:01

But for me, it's just about being able

72:04

to make more refined product decisions

72:08

without having to sift through all the

72:09

different signals myself.

72:10

>> I I do see more and more people

72:12

experimenting, trying to put these

72:14

things in place again, like from from

72:16

the oneshotting, the buck fix. there's

72:18

really no excuse to like not act on

72:20

errors on on logs. Uh open source

72:23

projects, popular ones now have things

72:25

like when people submit an issue,

72:26

there's a bot that tries to reproduce

72:28

it, all of these things. So I I I see

72:30

them as loops. One question that does

72:32

come up though is okay well we are this

72:34

is a lot of stuff that software

72:36

engineers used to do and we didn't have

72:37

all the time for but we we did a lot of

72:39

it and what this means for the future of

72:41

the profession. Ryan Dah the creator of

72:43

no.js JS wrote and I I quote him. Uh

72:46

this has been said a thousand times

72:47

before, but allow me to add my own

72:49

voice. The era of humans writing code is

72:51

over. Disturbing for those of us who

72:53

identify as software engineers, but no

72:54

less true. That's not to say software

72:56

engineers don't have work to do, but

72:58

writing syntax directly is not it. And a

73:00

lot of our time spent I remember when I

73:02

interviewed people at Uber, I would tell

73:04

them like, well, we're going to spend at

73:05

least 50% writing code, so we're testing

73:07

you on writing code.

73:09

>> This is kind of vanishing.

73:10

>> Yeah.

73:11

>> What do you see replacing it? And what

73:14

what do you see the essence of software

73:16

engineers, builders, AI engineers,

73:18

however you call them be?

73:20

>> I always go back to what is alpha? So my

73:24

definition of alpha alpha meaning

73:25

>> so my definition of alpha is advantage,

73:27

right? So what what is the current thing

73:29

that models are not very good at doing?

73:32

Alpha is going to decay in some way with

73:36

every model release or every series of

73:38

model releases. So it's going to change

73:39

over time. So for software engineers, we

73:42

very often say that your alpha is in

73:45

taste in terms of are we building the

73:49

right thing? Where are we putting our

73:50

energy? Is the thing that we are

73:52

building actually good? And good, you

73:55

know, sometimes people will say, "Yeah,

73:57

but an agent can tell you if it's good."

73:59

I push back on that. An agent can tell

74:01

you if a thing looks correct, if it's

74:03

matching a spec, doesn't necessarily

74:05

mean it can tell you what's good. Um, I

74:07

think that good can mean good from a

74:10

user experience perspective, could be

74:12

delightful, could be something that a

74:13

person will actually want to come back

74:15

to. And it is still something that is

74:18

sufficiently nuanced that I think it's

74:20

going to take time for models to

74:22

actually catch up to a point where they

74:23

can replace that fully. We tell people

74:26

that judgment, verification, all these

74:29

other aspects continue to be important.

74:30

And I do believe that. But even if you

74:33

if you follow through and you say okay

74:34

well maybe a year or two from now models

74:37

will catch up these different aspects

74:40

we still need engineers to be answerable

74:44

for these different systems and

74:46

>> accountable right

74:47

>> yes accountable answerable and that's

74:50

something that doesn't just happen

74:51

overnight that happens when you

74:53

understand a system people trust you and

74:55

you have that expertise an example I've

74:58

been telling people this week is um back

75:00

when I worked on Chrome Chrome, you

75:02

know, Chromium is a massive codebase.

75:04

It's one of the largest code bases in

75:06

the world and it's sufficiently complex

75:08

that for every key part of that system,

75:13

you will have a directory with an

75:15

owner's file and that owner's file is

75:17

going to contain a small number of

75:19

people who are effectively accountable

75:21

for that part of the system. They not

75:23

might not have written all of the code

75:24

for it in the same way that you know we

75:27

may not have written all of the code.

75:28

Our agents may have written not, you

75:29

know, written some of the code, but

75:31

they're the person that's on the hook

75:33

for understanding, for gating, for

75:35

making sure that someone is deciding

75:37

what ships, what's blocked, what do we

75:40

defer, and so I think that that is

75:44

something that engineers are going to

75:45

continue to be valuable for. Um, and

75:48

that's going to help us to make sure

75:49

we're building stuff that is stable,

75:51

reliable, people can actually, you know,

75:54

use it with some confidence. I I do

75:56

agree with this because I I think

75:57

accountability is some that's why so

76:00

many businesses [clears throat] are are

76:02

working. That's why you know lawyers

76:05

always have a job because the the

76:07

regulation is there and you can look up

76:08

all the court cases and you could

76:10

understand how the law is interpreted.

76:11

But they've done this and they often

76:14

take some level of accountability. In

76:16

fact, if they grossly not do their job,

76:19

you actually have an option to, for

76:21

example, take legal action against a a

76:24

firm if they would have

76:26

>> be proven to like actually just like

76:29

ignore what they're doing. And I guess,

76:30

you know, like that's a good example

76:32

where like in in software and anywhere

76:33

where there's value, this will be

76:35

valuable. Like again, if you're

76:37

renovating your house,

76:38

>> if it's not a big deal, you might do it

76:40

yourself. If it's a big deal, you just

76:41

call a professional.

76:42

>> Yeah. Yeah. And I think there's there's

76:44

two related notes to this topic. Um, you

76:47

know, every time that we've made it

76:48

easier to create software, we've

76:51

exponentially created more of it. So,

76:53

the total addressable market for

76:55

builders

76:56

>> and it's happening right now in the

76:58

stats and iOS app releases, websites,

77:01

all of that.

77:01

>> Yeah, it's going through the roof. And

77:03

that's not without nuance. That's not to

77:05

say, you know, that every single app

77:07

that's being created has the same value,

77:10

right? Yeah,

77:11

>> we of course have these conversations

77:12

about like yes, if your app is like a

77:15

prompt away from somebody else copying

77:17

it, you know, it's a different world

77:18

that we live in, but that still doesn't

77:20

change the fact that we have a much

77:21

larger number of people that can build

77:23

now and that's a lot more potential

77:25

businesses and startups that could

77:27

potentially thrive.

77:28

>> Yeah,

77:28

>> I continue to be very excited um about

77:31

the profession from that aspect. I also

77:33

think that every point in time in human

77:36

history when automation or a form of

77:39

automation has come into the picture,

77:41

we've automated away certain kinds of

77:43

jobs and then replaced them with other

77:45

kinds of jobs. And so I think a big

77:48

question for the future is what are

77:50

those jobs going to be in this new

77:51

knowledge economy? Um we may not

77:54

necessarily have exact, you know, frames

77:56

for what they're they're going to look

77:57

like just yet, but I do think those are

77:59

going to come.

78:00

>> Yeah.

78:01

And I wanted to talk talk to you about

78:03

uh your writing as a fellow writer to a

78:06

fellow writer. You've been a really

78:07

prolific writer in terms of books

78:10

released just in the past few years. You

78:12

you've written the short book software

78:14

engineering the soft part a free book uh

78:17

about 50 pages a really good read.

78:19

You've written leading effective teams

78:21

two years ago and last year Vive coding.

78:24

I wanted to ask and on top of this you

78:27

regularly write long form on social

78:29

media LinkedIn X your blog your

78:32

newsletter you write a lot for someone

78:34

who actually has a full-time job and I

78:36

can tell you when my my full-time job

78:38

often involves writing.

78:40

>> How has your workflow changed in writing

78:43

when it comes to now especially you have

78:45

AI tools or or other tools? I would say

78:48

that um now that it is very easy for

78:52

anyone to use an agent to create a body

78:55

of text, I think it's more important

78:57

than ever for us to make sure that the

79:00

ideas we're putting out into the world

79:01

are actually worth people reading.

79:04

>> Um because if you're asking somebody to

79:06

spend 5, 10, 15 minutes reading a thing,

79:08

like actually put some effort into it.

79:10

My my workflow has changed quite a lot

79:13

in the last couple of years. I've now

79:15

published, I think, 18 books. I've

79:17

worked with O'Reilly on many, many

79:19

titles over the years. Um, I think the

79:21

agents have helped me the most probably

79:23

with just being able to reason about the

79:25

thoughts in my head. Um, and especially

79:29

try to connect those back to how other

79:31

people are thinking about related

79:33

problems. So, on any given week, um, we

79:36

can take loop engineering as one example

79:38

because I was re recently putting

79:39

together a piece on that. When I'm

79:41

working on a piece these days, uh, I'm

79:43

always curious like what are other

79:45

people thinking that it's related to

79:47

this? And so I can fire off a ton of,

79:49

you know, deep research agents to go and

79:51

check out, you know, Hacker News or

79:53

Twitter or other places and just give me

79:56

a sense of what are things people have

79:57

tried out, what are things where people

79:59

have particularly strong opinions either

80:01

either way. Um, what is considered

80:04

contentious? Where what are people

80:06

excited about? And what do they have big

80:08

questions around? And that's not to say,

80:11

"Hey, agents, now write the text for

80:14

me." It's it's about forming um a thesis

80:17

about what people are struggling with

80:19

and what educational content could be

80:21

useful for them around that. And so

80:23

agents have been very useful for me in

80:25

my research. When it comes to writing

80:28

itself, this is a very interesting one.

80:30

I think that a lot of people struggle

80:31

with like how should we be using agents

80:33

and these tools these days. I will very

80:35

often do two things when I've got an

80:38

idea for a piece. I will start to write

80:40

out a personal kind of handwritten

80:43

version of a thing and I'll also have an

80:45

agent or different models write out a

80:47

version of the text as well and I'll

80:49

compare sort of okay well I started out

80:51

with a thesis

80:53

how did those other agents reason about

80:55

this thesis did they take it in a very

80:57

different direction to what I was

80:58

thinking about or did did we all kind of

81:01

converge on the same thing roughly and

81:03

there's not really a lot of value

81:04

they're offering me once I actually feel

81:06

like I've got the ideas then pulled for

81:09

my piece. Um, for me, readability is

81:13

important. And so, even if I've

81:15

handwritten a thing, I will often put

81:17

that through a model to try improving

81:19

readability. And that's a hard thing

81:21

sometimes because I still feel like

81:23

models are sometimes not the best at

81:27

writing human looking, even if you're

81:29

editing something, writing humanlooking

81:32

text. I remember the other day I was

81:35

trying to play around with, hey, can I

81:36

can I improve my workflow and I feel

81:39

like I easily wasted three hours of time

81:41

because no matter what I did, um, one of

81:44

the models I was using continue to

81:46

generate text that looked like it had

81:48

>> triads and these patterns, you know,

81:51

>> patterns

81:52

>> of of AI written text. And

81:54

>> I really struggled with that because it

81:56

feels like, you know, is it diminishing

81:58

returns trying to use these readability

82:00

>> specific specifically on on loop

82:02

engineering. So Na'vi aka Neat code he

82:05

did a video where he he looked at the

82:07

loop engineering specifically your post

82:08

as well and he was reading it. He was

82:10

reading the part automations. This is

82:12

the heartbeat. And he kind of read a few

82:14

paragraphs and he was saying it felt

82:16

abstract. it felt that there were like

82:18

terms that an AI would have done and he

82:20

said that well either this is AI

82:21

generated or it might be someone's

82:24

thoughts but then an AI put it out and

82:27

>> and when I also read it in in that

82:29

specifically that loop engineering piece

82:30

like I missed the specifics right now we

82:33

talked about like all right here's the

82:34

things that you have been doing

82:36

>> and I was wondering on like how did you

82:39

write this and and how do you feel about

82:42

that that that specific piece now

82:44

>> for that piece specifically So I started

82:47

off with a handwritten piece. Um I did a

82:51

number of like editorial passes myself.

82:55

I then handed it off to a model to try

82:57

improving the readability pass. And

82:59

that's where I start to struggle because

83:02

I'm a fan of structured writing.

83:03

>> Yeah.

83:04

>> Um I know you know I'm I'm a big fan of

83:06

very structured writing. Um I am not a

83:08

fan I I remember the kind of writing I

83:10

was writing 10 years ago maybe even. And

83:12

I remember, you know, you were

83:14

mentioning people who like to write

83:16

struggle with time. I would very often

83:19

write articles in the 15 minutes I had

83:21

before, you know, my next meeting. And I

83:23

just just try to add more paragraphs in.

83:25

It wasn't as structured or as high

83:27

quality as I'd like.

83:28

>> And so I sometimes struggle with are

83:32

people looking for authenticity even

83:35

when it's not that structured. So for

83:38

example,

83:39

I might have the the version of loop

83:41

engineering I started out with even

83:43

after a few iterations. Did it have a

83:47

good enough um line through or thread

83:50

through the whole thing if that made

83:52

sense? Um probably not. At least that's

83:54

how I felt at the time. But using an

83:57

agent to try helping rework that so it

84:00

did have a clearer line through it, I

84:02

felt better about the piece. But

84:04

somebody else reading it may have felt

84:06

like okay well actually I would have

84:07

been I would have felt better if it

84:09

wasn't a structure

84:10

>> if it was a bit more raw that you did

84:13

not feel that good about.

84:14

>> Yeah. Yeah. And you know that you you

84:16

can you can say the same thing about you

84:18

know typos about oh well hey is the

84:22

article following a consistent structure

84:24

or beats uh compared to a final piece.

84:27

So that's something I struggle with.

84:28

Yeah, because the final piece, don't get

84:29

me wrong, like it uh you know, when when

84:31

we look at views and comments, a lot of

84:33

people appreciate it. And when you read

84:35

through, again, I'll link it in the the

84:36

show notes below to to read it. It did

84:38

have a a clear top level structure. To

84:41

me, it felt that it was maybe more wordy

84:45

than it needed to be and it just lacked

84:46

the specifics.

84:48

But I I do see by other people

84:50

experimenting with this as well. Um, I I

84:52

talked with Michael Novati who was

84:54

criticized for a post which he actually

84:56

worked a lot with but it sounded very AI

84:58

because in the end he did it and later

85:00

he wrote another post which which looked

85:01

a lot better and I asked him what he's

85:03

changed. He said like oh I'm actually

85:04

just like tweaking the output a lot more

85:06

because he's also a big fan of of

85:08

dumping his thoughts getting some help

85:10

for structure and actually you know like

85:13

behind the scenes spending a lot of time

85:15

like will this be worth reading?

85:17

>> Yeah. And I think that even even with

85:19

access to better tools these days, very

85:21

often if people see an article that I

85:23

put out, I very likely spent probably at

85:26

least three to seven days just trying to

85:29

work through it.

85:30

>> Just kind of like brewing the ideas.

85:33

>> Yeah. If something comes out very very

85:35

quickly, it's probably because I had a

85:38

very clear a surprisingly clear vision

85:41

for what I wanted to say, but very often

85:43

it takes a while for something to bake

85:44

well. And I do end up going through

85:47

every line of text very often before

85:51

publishing it a few times. And I think

85:54

that for those of us that are working

85:56

with tools um with with AI tools,

85:59

>> you start to question, well, am I being

86:01

influenced by the way

86:03

>> Yeah.

86:03

>> that the models cuz the models are going

86:05

to in some cases, I think, provide a

86:06

homogeneous take on what writing looks

86:08

like.

86:09

>> Yes.

86:09

>> And you start to feel like, wait, what

86:11

was my writing style? you know,

86:13

>> you feel you're kind of in this middle

86:14

right now a little bit.

86:16

>> Yeah, I very much do. And um there's a

86:19

part, you know, you you take it to the

86:22

experimentation phase and there will be,

86:24

you know, maybe there are people who

86:25

will say, hey, you should train a custom

86:27

model on your old writing. I was a

86:29

different person when I did my old

86:31

writing and I had a different set of

86:34

perspectives or different set of nuances

86:36

that I cared about. And so I wouldn't I

86:38

would feel I would feel a certain way

86:40

about that person writing you know these

86:42

new pieces too. So I think that we're

86:44

still learning um what the best

86:47

practices around this are. And I also

86:49

you know I started I remember um the

86:52

other week I was just curious like if

86:54

people are checking out these posts

86:56

using Pangram or GPTZ or any of these

86:59

things how does that change my workflow?

87:01

And I was just getting very frustrated

87:02

because I would literally type out like

87:04

human sentences or human paragraphs and

87:06

I'd paste it in to Pangram and be like,

87:08

"No, this doesn't look human written." I

87:09

was like,

87:10

>> "Wow." Okay.

87:11

>> And that's not to say anything bad about

87:12

Pangram. That's just to say that I I

87:14

don't I think that there's opportunity

87:17

for tools to help writers, you know,

87:20

flag

87:21

>> flag things and then help them

87:22

understand like, okay, well, how do you

87:24

get back to your human way of writing?

87:26

>> Yeah. So, as as closing, you've just

87:29

closed down 14 years at at the Google.

87:31

You've announced the big decision that

87:33

you're leaving. Congratulations. I I

87:34

know it must have been like a, you know,

87:36

like a big one to decide on. What is

87:38

next for you? What are you looking at?

87:41

What are you excited about?

87:43

>> What I am most excited about right now

87:46

is helping developers and businesses

87:49

kind of meet this next moment of

87:52

software engineering changing. Um, I

87:55

think that there are a lot of open

87:56

questions. Every every single company I

87:57

talk to has got so many questions about

87:59

what the future's going to look like,

88:00

but there's also a lot of opportunity in

88:03

there to to help and to figure it out

88:05

with them. Um, so I'm I'm excited about

88:07

that. Um, I'll be sharing, you know,

88:10

next couple of months what what what my

88:11

next thing is, but I'm definitely going

88:13

to be staying very much in this space

88:15

and, um, I'm I'm someone that enjoys

88:18

working with developers, working with

88:19

the ecosystem. So, I will very much

88:22

still be staying in a role that allows

88:23

me to do that.

88:24

>> So, right as you're exploring your next

88:26

career step, you know, may that be

88:27

joining another company, an exciting

88:29

role, who knows if you'll do something

88:31

yourself. Clearly, you're thinking a lot

88:33

about your own career. What advice would

88:36

you have to someone who has some

88:37

experience in the industry working as a

88:39

software engineer or engineering manager

88:41

and they might be in a similar shoe

88:42

where they are like all right it's time

88:44

for me for a change I want to set myself

88:46

up for success looking ahead what skills

88:50

would you uh advise that they invest in

88:52

what activities how to think about their

88:55

network what do you think will be

88:57

important in the next couple of years to

88:59

stay at the the front like the meat of

89:01

the industry

89:02

>> what we are very likely to see happen

89:05

next with engineering careers um as well

89:07

as product and other roles is the

89:09

unbundling of these careers. You know

89:12

where we unbundling where we begin to

89:14

see more of these roles converge. So the

89:17

engineer that also has product sense the

89:20

product person that also has engineering

89:22

sense or UX sense the UX person that

89:24

also cares about product. So the

89:26

guidance that I would give people is

89:29

think beyond just that narrow lens of

89:32

engineering. There are many people

89:33

especially if you're a senior that have

89:35

already had to think about these

89:37

different aspects of success. Um if you

89:40

are not someone that has had a chance to

89:42

think about you know product or

89:45

technical evangelism or about any or go

89:48

to marketing or any of these other

89:50

aspects that are generally different

89:52

puzzle pieces how businesses are

89:54

successful. Think about the

89:55

non-engineering things. I think there's

89:57

a lot of value there. And if you can

90:00

show employers that you are not just a

90:03

builder, but you're someone that can

90:05

help them as these roles start to become

90:08

a little bit fuzzier, I think that you

90:10

can be successful um in these times.

90:12

Don't just be an engineer. And

90:14

>> so sounds like it's one of your core

90:16

values. Go back to being curious, learn,

90:18

and see where you can help beyond just

90:21

building.

90:21

>> Yeah. Be a lifelong learner. Be

90:23

endlessly curious. and I think that

90:25

there will be roles for you in the

90:26

future.

90:27

>> Addy, thank you very much. This was

90:28

great.

90:28

>> Thank you so much. This was great. Thank

90:30

you for having me.

90:30

>> I really enjoyed this chat with Addie

90:32

and I hope you did as well. I do feel

90:34

that Add's career shows that working

90:36

hard and always going a layer deeper

90:38

pays off over time. When he was a

90:40

teenager, Addy already built a web

90:42

browser from scratch, which is a massive

90:44

project. He never stopped being curious

90:46

about web browsers, then developer

90:48

tools, and today he brings his same

90:50

curiosity to AI [music] agents. The

90:52

concept I like that Addy mentioned was

90:53

this idea of cognitive surrender. The

90:56

more capable AI agents become, the

90:58

easier it is to let them do what they

91:00

do. For example, a year back, you could

91:02

still follow along how an agent worked

91:04

step by step. [music] But today, if you

91:06

run multiple sub agents in parallel,

91:08

there's no way you'll keep up with every

91:10

step. This creates this weird paradox.

91:13

AI makes it easier than ever to build

91:15

software, but it also makes it easier

91:17

than ever to lose understanding of the

91:19

software that we're building. Addie had

91:21

a really good counterpoint to this,

91:22

which was mutual amplification. You want

91:25

to amplify your own understanding as the

91:28

agents get better. So, have the agents

91:30

record decisions, document what it

91:32

learned, [music] and explain unusual

91:34

choices. It's just no longer feasible to

91:36

understand how or why every single token

91:39

was generated, but you [music] want to

91:40

keep understanding the important

91:41

decisions that any of your agents make.

91:44

Finally, I liked our conversation about

91:45

what [music] happens to software

91:46

engineers when writing code is a smaller

91:48

part of the job. Patty's answer is that

91:50

accountability remains the job. For

91:52

example, inside of Chromium, specific

91:54

software engineers owns parts [music] of

91:56

the codebase. They obviously have not

91:58

written every line of code in that part

92:00

that they own, but they understand the

92:02

area. They decide what matters and what

92:04

doesn't, and they are accountable for

92:06

their part working well. I think it's

92:08

reasonable to assume that AI will push

92:09

this kind of accountability to be more

92:11

visible [music] for any and all software

92:12

engineers. Do check out the show notes

92:15

for related the pragmatic engineer deep

92:16

dives on Google's engineering culture

92:18

and AI engineering. If you've enjoyed

92:20

this podcast, please do subscribe on

92:22

your favorite podcast platform and on

92:23

YouTube. A big thank you if you also

92:26

leave a rating on the show. appreciate

92:27

it and see you in the next

Interactive Summary

This episode features Addy Osmani, who reflects on his 14-year career at Google, primarily within the Chrome and engineering organizations. He discusses the evolution of web development, his work on Chrome DevTools, and how he approaches AI engineering. The conversation explores key concepts like 'cognitive surrender'—the danger of blindly trusting AI—and the shift toward 'loop engineering' and software factories. Addy emphasizes that even as AI takes over coding tasks, software engineers must remain accountable for the systems they build, focusing on 'taste,' user experience, and critical decision-making.

Suggested questions

4 ready-made prompts