HomeVideos

Building Codex with Tibo Sottiaux

Now Playing

Building Codex with Tibo Sottiaux

Transcript

2170 segments

0:00

A fun story that you recently shared on

0:02

X as well is how you were part of the

0:04

team that built this internal Google bot

0:07

that was Chad GPT but a year before Chad

0:10

GPT

0:10

>> that caught up like you know wildfires.

0:12

It felt more than a research [music]

0:14

project

0:14

>> for Codeex you built it in Rust and at

0:17

the time the model was not on

0:19

distribution for Rust.

0:20

>> Turns out it was quite clear that Rust

0:23

as a language would actually be quite

0:25

good for agents fairly quickly if we

0:27

decided to put some effort into it. When

0:29

someone joins the Codeex team, what do

0:30

you tell them? How do things get done

0:32

here?

0:32

>> The thing that they hear the most about

0:34

when they have a question is like, "Have

0:35

you asked Codex?" It still surprises new

0:38

starters that you can basically ask it

0:40

anything.

0:40

>> Building was the fun part, but then

0:42

maintenance was the painful.

0:43

>> So maintenance is really sort of like a

0:45

tax that you pay over time just to keep

0:47

things running. But where I think it

0:48

changes is like a lot of it is just

0:50

going to be automated.

0:51

>> So you still have the concept of code

0:52

review.

0:53

>> The role of code review is changing. And

0:55

the role of code review now is like I

0:57

think

1:01

Codex is one of the [music] most popular

1:02

AI coding harnesses today. But how did

1:04

it all start? Many of you will know

1:06

today's guest Tibo [music] from his

1:08

generous and pretty frequent Codex usage

1:10

resets. He was also there when Codex as

1:12

a product started and has led the

1:14

broader Codex team since. Today we cover

1:16

how Codex started and why it was built

1:18

in Rust and made open source. How

1:20

coderies are changing inside the Codex

1:22

team and open AAI. What it means when

1:24

maintenance and rearchitecting are

1:26

getting ridiculously cheap. what the

1:28

merge of codeex into chat GPC looked

1:30

like [music] and the many

1:31

underappreciated engineering challenges

1:32

of this project. If you want to

1:34

understand how teams inside of OpenAI

1:36

plan review and ship software, this

1:38

episode is for you. This episode is

1:40

presented by Turbopuffer, a ridiculously

1:42

scalable, fast and cheap hybrid search

1:44

engine built on top of object storage by

1:46

an engineering team that I've really

1:47

grown to like after spending time with

1:49

them. Turbopuffer is the tool that

1:51

companies like Entropic, Notion

1:52

Cognition, and Harvey all use to connect

1:54

their AI products to massive amounts of

1:56

unstructured data. When I've talked with

1:58

engineers who use Turbopuffer, the theme

2:00

that always comes up is reliability and

2:03

performance at scale. The reasons for

2:05

this have everything to do with

2:06

Turbopuffer's architecture. Turbopuffer

2:08

uses only object storage for state and

2:11

MVME SSDs with memory cache for compute.

2:14

Data in Turbopuffer is organized into

2:16

namespaces. You can think of a namespace

2:18

as a database table or a search index or

2:21

an S3 prefix depending on the world you

2:23

come from. When a namespace is not being

2:25

queried, it stays on cheap object

2:27

storage with no associated compute cost.

2:30

When a namespace is active, Turbopuffer

2:32

pulls it up into hot caching tiers, so

2:34

queries are very fast. This design

2:36

fundamentally makes it effortless to

2:38

scale to hundreds of millions of

2:39

namespaces. If you're building a

2:41

multi-tenant AI product, every user and

2:43

their agent can have their own dedicated

2:45

search index without any overhead. And

2:48

each namespace can hold hundreds of

2:50

millions of documents without any

2:51

special configuration. You can scale

2:53

Turbopuffer virtually without limit. And

2:55

the performance, reliability, and

2:57

operating model all stay the same. If

2:59

you need to connect AI to lots of data,

3:01

Turbopuffer should be your first choice.

3:03

Check it out at

3:04

turbopuffer.com/pragmatic.

3:07

Tibo, welcome to the podcast. So good to

3:08

have you here. Thank you for having me.

3:10

It's so good to see you again.

3:11

>> It's good to do this. Last time we did

3:13

it in person. Now, now we're doing our

3:15

video. First, I I wanted to ask you, how

3:18

did you get into tech? When did you

3:21

first know that you want to work with

3:23

computers?

3:25

>> It's a good question. It was a long long

3:27

time ago. Um my my parents actually

3:31

decided to move out of Brussels where I

3:34

was born and just just thought it was

3:37

great to um just buy a small house and

3:41

refurbish it. But it was in the middle

3:43

of the middle of a village with not much

3:46

going on. I think there was like roughly

3:49

200 people living there. Not many that I

3:52

felt like I wanted to talk to or you

3:54

know could make friends with. And so I

3:57

kind of got stuck uh this is like very

3:59

early like 8 8 years old. I kind of got

4:01

stuck cuz like you know computers and

4:03

you know it's like early days of like

4:05

the the for me the internet and you know

4:07

that was my way to learn about things

4:09

and so just the rest is just like you

4:12

know came from that. Um I sort of like I

4:14

owe it to my parents to you know have

4:16

moved into the middle of nowhere and

4:17

then you know I had no choice but to get

4:19

interested in computers. Once you you

4:21

finished high school like you went on

4:23

and went to university, right? Actually

4:25

studying it properly.

4:26

>> Yes. Uh I I studied mathematics, applied

4:29

mathematics at university. I I went

4:32

there quite quite early. Um and so I I

4:36

graduated early as well. Like I thought

4:38

for a long time um that I would actually

4:41

not make it and that I would drop out. I

4:43

had like small companies and small

4:46

consulting business like uh like while I

4:49

was studying uh I was like working for

4:51

banks. I was working for I was like um

4:54

very interested in supply chain and

4:57

applied mathematics problems and I sort

4:59

of like selling that and learning a lot

5:00

through that. Eventually ended up in the

5:03

startup world in Belgium. I did that for

5:05

for a little while and then moved to

5:08

London to work uh initially at Google

5:10

and then Deep Mind and then now you know

5:12

moved uh to be here at OpenAI like this

5:15

California. I love the California

5:16

weather. We can talk about that. Uh it's

5:18

been very good.

5:19

>> Right after university you started you

5:21

you've founded a startup right? You had

5:23

the startup bug in you or the

5:25

entrepreneur entrepreneurial bug.

5:27

>> Yeah. So this this startup was all about

5:29

uh pharmaceutical uh supply chain um

5:33

looking at the supply chain for uh

5:35

clinical trials and like try to optimize

5:37

and decide like hey you know should you

5:38

produce more medicine where should you

5:40

send it where should dispatch it like

5:42

how do you avoid waste and through that

5:44

making clinical trials more efficient

5:46

and this was using traditional like

5:49

nonML techniques um like traditional

5:52

like more optimization

5:54

solving Monte Carlo simulations these

5:56

kinds things stochastic multi-stage

5:58

optimization problem really and we also

6:01

applied it on steel industry and we

6:03

applied it to electrical grid as well in

6:05

Europe um it's like anything that sort

6:08

of had the shape of like an optimization

6:09

problem we sort of like get interested

6:11

in and you know to this day like this

6:13

this this company still exists and I

6:14

think they do some of the most

6:16

interesting work uh still but it's

6:18

changing a lot uh you know with with

6:20

modern AI for sure

6:21

>> but it's interesting because you kind of

6:22

said like oh yeah that wasn't ML it was

6:24

just the traditional stuff and then you

6:26

go into like Monte Carlo simulation and

6:27

optimization and this algorithm I get a

6:29

sense that you kind of just went deep

6:32

right that it was like okay like here's

6:33

a problem space like how can I use

6:35

mathematics stuff that I learned stuff

6:37

that I didn't learn to just go deeper

6:38

and deeper do I sense that correctly

6:40

>> yeah that's that's why I was obsessed

6:42

with applied mathematics is just really

6:45

this idea of you have theoretical

6:47

mathematics or you have theoretical

6:49

science and physics and like there you

6:51

just you you do it because there's

6:54

something to be discovered and something

6:55

beautiful about it and it's all about

6:57

patterns and pushing the frontier but

6:58

you don't necessarily always know like

7:00

how you're going to apply it and then

7:02

there was like the real world right this

7:03

like you know there's all these cool

7:05

problems that just lie around and I was

7:07

like very interested in seeing like you

7:08

know how can I make the world better and

7:10

so like how do I apply like you know

7:12

sophisticated mathematics you know to

7:14

just optimize the world around me and

7:16

that was like a lot of the thesis behind

7:18

that startup

7:19

>> yeah and then after a startup you ended

7:20

up at Google and first at Google London

7:23

it was in 2015 and I remember 2015

7:25

Google is a really really competitive

7:27

place to get into like maybe as

7:28

competitive as open AI is today in terms

7:30

of the industry or terms of prestige.

7:33

You worked on maps initially and then

7:35

you moved over to deep mind. Can you

7:37

talk a little bit what what you worked

7:39

on and and then why did you move on from

7:41

a already really interesting space that

7:42

you clearly loved you know like

7:44

optimization logistics and all these

7:46

things?

7:46

>> Yes. I I didn't I didn't start on Google

7:49

Maps. I started on a project that was

7:52

meant to make the web faster. uh and

7:55

make to me to uh make websites faster

7:58

especially on mobile. At the time you

8:01

know Google was kind of so like seeing

8:02

the transition from desktop to mobile

8:05

and like more and more traffic going to

8:07

like you know mobile phones and so like

8:09

wanted to get ahead of that. So funded

8:10

like a number of a number of initiatives

8:13

and projects. Um I was working on one of

8:15

them. This was like really really fun

8:17

because it was a small group um within

8:20

actually the ads organization. It was

8:22

meant to sort of like you know offset

8:24

the the loss uh for the ad revenue loss

8:27

because of the shift of traffic to

8:28

mobile and worked on it for roughly two

8:31

years. Um and then it was cancelled and

8:34

although it was like the most fun I've

8:35

had on, you know, solving hard technical

8:38

uh challenges. I learned a lot from not

8:40

having product market fit, not having

8:42

the right users, not having the right

8:43

feedback loop, not trusting your product

8:45

manager when they say the project is

8:47

going well when in fact it's not going

8:48

well at all. And then you know one day

8:50

it's just like this VP flew in uh from

8:52

California and then it was just like oh

8:54

yeah it's like you know we're canceling

8:55

this project um you know unfortunately

8:57

you only have you know hundreds of users

9:00

and this is clearly not Google scale and

9:02

then uh it's unbelievable but people

9:04

were surprised um and I think there's a

9:07

lesson there um that I that I carry with

9:09

me of course is you know just always

9:11

always question always go to like always

9:14

you know deeply think about the impact

9:16

that you're having but also like the

9:18

importance of the overall project that

9:19

you're contributing. And then I moved

9:21

into Google Maps. Google Maps was super

9:24

fun. Worked on reviews. And then after

9:26

roughly a year, I couldn't ignore like

9:27

Deep Mind. It was just it was this

9:30

special place. Uh headquartered in

9:32

London. So many great things were

9:34

happening. This was like really the

9:36

early days, you know, with rumblings of

9:38

um things like AlphaGo and they just

9:41

seemed to be doing extraordinary things

9:42

and you know, just really tackling the

9:44

very very hardest problems that you can

9:46

tackle. And like with my background I

9:48

was obviously drawn to that started

9:50

there like I worked on uh a lot of like

9:52

the research infrastructure research

9:54

tooling. This is a theme that I carried

9:56

on for almost a decade and it's like

9:57

this is very much also the like how I

10:00

approach things is how can I build

10:02

tooling and products that help make

10:04

others more efficient and bring a lot of

10:06

utility to them. Initially I was doing

10:08

this for research and then like over

10:10

time you know I got like into thinking

10:13

about things in a much more like more

10:15

general and general and general way you

10:17

know eventually like you know ending up

10:18

where where I am now.

10:19

>> Yeah. And a fun story that you recently

10:21

shared on X as well is how you were part

10:24

of the team that built this internal

10:26

Google bot that was you know if you want

10:29

to say similar to Chad GPT but a year

10:32

before Chad GPT can you can you talk

10:34

about that? That's a that that is a new

10:36

story. I haven't heard it before.

10:38

>> This was part of deep mind. There were

10:39

like multiple efforts as well. There was

10:41

like brain as well that was separate at

10:42

the time. They had their own efforts on

10:44

large language models, but it was

10:46

definitely something that was being

10:47

explored. It was not the main thrust of

10:49

of deep mind. Deep mind was like very

10:51

much worried um and and busy like

10:53

thinking about grand challenges and

10:56

games and you know thinking about RL not

10:59

in the language sense. And so there was

11:01

like this group um that was pushing on

11:04

large language models and you know

11:06

thinking about you know think what what

11:08

if what if large text corpuses are

11:10

everything. What if uh you just pushed

11:13

language to its maximum and you just

11:16

scaled language models like you know

11:17

would that be enough to get to general

11:19

intelligence? That was like a hot debate

11:21

at the time and then one one group

11:24

decided to just really push on that and

11:26

then it it felt really natural like you

11:28

know as I was building tooling you know

11:30

with others for for research is like you

11:32

know obviously you're like hey you know

11:33

what can we do with this model like how

11:35

do we present it you know to the

11:36

researcher like how can they sort of

11:38

like you know debug the inputs outputs

11:40

and eventually you sort of like end up

11:41

with you know like a chat system. So we

11:43

built that internally. We had a lot of

11:45

fun. Uh initially the models were like

11:47

you know kind of like almost like a

11:48

little bit absurd like you know not very

11:50

coherent. Uh not super useful but it was

11:53

a lot of fun um to sort of like tinker

11:55

with them that caught up like you know

11:57

like wildfires like you know this

11:58

application is just sort of like you

12:00

know everyone uh was kind of like u

12:02

sharing little conversations within deep

12:04

mind. It felt more than like a research

12:07

project or like a research a project for

12:09

researchers. And so then there was this

12:11

desire over time to like launch it as an

12:13

external product. But Deepine was just

12:15

like not set up, you know, there was

12:16

like the the right way to launch

12:18

products at Google. There's like, you

12:20

know, the whole machinery of like, you

12:21

know, how you do that. Um, you know, the

12:23

whole like blessed production stack. You

12:25

obviously very very optimized over the

12:27

years to do things well. Um, but also

12:30

very very hard as an environment to

12:32

truly innovate. And then I I I wanted to

12:34

ask what made you you know look around

12:36

or or or maybe even consider open AI but

12:38

I feel you partially answered this

12:40

question just just putting myself back

12:42

into your shoes like you're you know if

12:44

it's it's 2024 or 2023 you're inside of

12:46

Google who are publishing amazing papers

12:49

doing really good research you're doing

12:50

super fun stuff right that pushing the

12:52

limits of what what's been done before

12:54

it's inside a company where you already

12:56

moved you know for people who are

12:58

feeling kind of comfortable or good

12:59

about where they are right now which I

13:01

imagine you must have been like what

13:03

made you still explore all right like

13:05

what else might be there? Yeah, I was I

13:08

was very comfortable uh at my it's it's

13:11

a good place, but really I had a I had a

13:15

desire to, you know, meet great people,

13:18

but also join a mission that I truly

13:20

believed in and that, you know, I felt

13:22

like the people were true to the mission

13:25

and cared deeply about impacting the

13:27

world in in a very in a deeply positive

13:30

way, but also in a direct way, not not

13:33

being like, oh yeah, it's just like, you

13:34

know, we just do this work over here and

13:35

then it's like it's the job of someone

13:37

else to figure out you know how to how

13:39

to make this useful. It's like I wanted

13:41

to join a group where you know like all

13:42

the parameters were sort of like

13:44

considered together where you know

13:45

research and product were like really

13:47

co-designing. Open was just like

13:48

crushing it. Uh I thought chatbt was

13:52

like you know taking off. I was like I

13:53

was uh I met a couple people from OpenAI

13:55

and then I was like wait what you know

13:57

you only have like 20 people working on

13:59

Chad like that is that is an insanely

14:03

small number that that must be like

14:05

extremely empowering like you know how

14:06

does that work? How do you manage to

14:08

maintain you know a product with that

14:11

level of scale um and with that level of

14:14

autonomy with you know only only 20

14:15

engineers and then you know as I kind of

14:17

dug and dug and dug and it's like it was

14:19

just a an amazing group of people

14:21

amazing mission you know super talented

14:23

super driven and like it was it was like

14:25

drew me in and then I joined

14:27

pre-ereasoning uh efforts immediately

14:30

like typical openi fashions like I

14:32

joined it was like oh yeah you know like

14:34

there's this thing going on like you

14:35

know we're going to launch reasoning

14:37

models like you know it's like some new

14:38

paradigm and then you know start

14:40

sprinting on that and like you know like

14:41

a month later like the company launched

14:43

01 uh 01 01 preview and that was

14:46

exhilarating to be part of I wanted to

14:48

be part of like a place that moves fast

14:51

cares about impact would be in tune with

14:54

the world and you know just really

14:56

listen um and sort of like that's also

14:58

to me like you know what I've carried

15:00

with me like when when building codecs

15:02

when building products is like having a

15:04

community listen to the community just

15:06

really focus on like a really intense

15:09

feedback loop uh and then building

15:11

something that is just like you know you

15:13

just really want to care about it and

15:15

like you know care about the utility of

15:17

it that it provides to the world

15:18

>> and then of course you started to work

15:20

pretty quickly on codeex. So you joined

15:22

in 2024. Can you take us back what the

15:25

thinking back there when you joined was

15:27

about AI or LMS and and code? I I know

15:31

there was this ASWE um effort back then.

15:35

The we talked about it in the deep dive

15:37

as well that we did in the pragmatic

15:38

engineer the autonomous software

15:39

engineer

15:40

>> AS3. Yeah, that's what it's it was

15:42

pronounced internally. Um we we don't we

15:45

don't

15:46

>> have an A3 effort anymore like you know

15:48

it's it's it's codeex. Um but really for

15:50

me it was I I joined I started building

15:53

infrastructure for research like my a

15:55

lot of what I did before was large scale

15:59

um data storage analysis and then tools

16:02

to understand training runs. I I I did a

16:05

lot of different things over my years.

16:07

Um, but it was always about building for

16:10

others and making them faster and just

16:13

really caring about, you know,

16:14

fundamentally doing that well and then

16:16

through tooling and infrastructure

16:18

making new things possible. And so when

16:20

I joined OpenAI, I was like with the

16:22

same idea and then with the re with with

16:25

one preview and like you know some some

16:27

of some some of the later models, it was

16:28

very clear that we had to use the models

16:31

themselves to help us go faster. And so

16:34

I just really got obsessed with this

16:35

idea of what were the limitations, how

16:37

were we going to use those models for

16:39

research itself. So got together with um

16:43

other folks in research. We started

16:45

training models. We started building

16:47

little agents. Those were truly the

16:49

precursor to to to Codex. And like this

16:52

was like we were training internal

16:53

models to be very uh proficient on the

16:57

Python codebase of OpenAI and then uh

17:00

very proficient with you know having

17:02

like good good taste in architecture,

17:05

good taste in you know like code style.

17:08

It was like Python only and then the

17:10

idea was like you know we would sort of

17:11

like use that to build infrastructure

17:13

very quickly and you know help

17:15

researchers code faster as well. uh and

17:17

then you know and then we would move

17:18

faster and then over time when you just

17:21

kind like push that and simplify it to

17:23

its core you're making a lot of uh you

17:25

know we found like you could make a lot

17:26

of progress very quickly and then learn

17:29

very quickly and then Greg and Sam are

17:32

you know people with they're immensely

17:34

supportive and also uh Greg was very

17:37

adamant that you know we would we would

17:39

not just focus on ourselves but we would

17:41

also focus on benefiting uh the world

17:44

and so he just sort of encouraged that

17:47

we would be thinking about this not just

17:48

as a tool for OpenAI itself but also as

17:51

something that we would actually make

17:52

into a product and this is when uh we

17:55

merged this research effort with this

17:57

AS3 effort um and we started building

18:00

one thing and then that led to a sprint

18:02

which was like the initial cloud codecs

18:04

that we launched which didn't really

18:06

have PMF because it was like a little

18:08

bit too high friction and then we also

18:10

launched the codeex CLI and we continued

18:12

to push but it was always this idea of

18:15

>> hey how do we get models to really help

18:17

here. You mentioned that first you

18:19

started to build this model to train on

18:21

the Python code and and actually help

18:23

build in for better but then you made

18:25

this interesting decision where for

18:27

codeex you built it in Rust and at the

18:30

time the the model was not on

18:32

distribution for Rust right it wasn't as

18:34

good as in Rust and it was in Python or

18:36

Typescript why did you make that kind of

18:39

a decision was was it kind of like did

18:41

you expect that it'll catch up or or you

18:43

figure that performance is more

18:44

important or because it was very

18:46

counterintuitive most of the other

18:48

harnesses built were actually not built

18:50

in Rust. They were built on distribution

18:51

on TypeScript or Python or something

18:53

else.

18:53

>> Yes. From first principles like we very

18:58

early on we were thinking about the

19:01

product interface and the agent as

19:03

different things. So it was very

19:06

important um to build

19:10

the core of the agent in a way that was

19:14

robust, that was secure as well, that

19:17

was um you know engineered for

19:20

efficiency and scale and having worked

19:25

through projects over the years that go

19:27

from hey this is a fun thing to like,

19:30

hey, we need to scale this to the scale

19:32

of like the largest data center um is

19:35

the ear decisions early on are like

19:38

really turn out to be quite important as

19:41

long as you don't sacrifice too much of

19:42

the velocity and so it's like it's a

19:44

it's a trade-off but we had very

19:46

prolific and amazing Rust developers our

19:48

internal models were not bad at Rust um

19:51

and then you get a lot of uh validation

19:53

as well at compile time it's like you

19:55

know statically verified and all these

19:56

things and that is great for agents too

19:58

so turns out you know it was quite clear

20:01

that you know Rust as a language would

20:04

actually be quite good for agents fairly

20:06

quickly if we decided to put some effort

20:08

into it. But primarily we were focused

20:10

on correctness and we were focused on

20:12

efficiency as well.

20:13

>> Interesting. So you're saying you know

20:15

it's it's worth in your case it was

20:17

worth thinking ahead of where you want

20:19

this thing to be and for example thing

20:20

like a language choice. Obviously with

20:22

agents you can rewrite a bunch of stuff

20:24

and easier than in the past, but it's

20:26

still like you can say save yourself

20:28

reworking by putting in the right I

20:30

guess scaffolding or or or well the you

20:33

know the the baseline of of what you're

20:35

building on right

20:36

>> I think we could have been successful if

20:38

we had written it in Typescript or you

20:40

know maybe even Python and then it would

20:41

have fine and then you know we would

20:43

have rewritten it at some point but

20:45

having a very clean separation between

20:48

the agent itself which can exist

20:50

irrespective of the product. Um it was a

20:54

very important principle and if you

20:55

write everything in the same codebase in

20:58

the same language it's like inevitably

21:00

you're going to be a little bit sloppy

21:02

and um you're going to intertwine things

21:04

more than you should and then it's going

21:06

to prevent further innovation after

21:07

that. And so that was that was very

21:10

important like the rust boundary in a

21:11

sense like was very useful for that. One

21:14

interesting decision that you made which

21:15

is unique across all of the major labs

21:17

is having this built-in open source

21:20

right the CLI is open source the SDK and

21:22

the app server are all open source when

21:24

and why did you decide that it's not a

21:26

given especially you know there used to

21:28

be jokes about open AI having things

21:30

closed but this this is actually the

21:32

opposite where like this is open whereas

21:35

like some competitors would would ship

21:37

closed source harnesses which again I I

21:39

I think it's very easy to understand why

21:40

you would want something closed source

21:41

why did you want it open source There

21:43

was something really cool about the idea

21:46

of having the code open source because

21:50

fundamentally what you're building is

21:52

you're building a coding agent. And so

21:55

we were sort of like thinking about well

21:57

if you have that you know you're

21:59

obviously going to point it at itself

22:00

and you know maybe you know you can

22:03

build a community of you know

22:05

contributors that use it to improve it

22:07

and then you know you can learn a lot

22:08

from that. Also, it felt at the time is

22:11

like, you know, very clear to us that if

22:13

we were going to be successful, open

22:15

source itself would change and the role

22:18

of code itself would change and so being

22:20

part of that community seemed important

22:21

instead of divorced from it. I think,

22:23

you know, it's it's it's hard to solve

22:25

problems if you don't sort of like

22:26

witness them yourself. Uh, and then the

22:29

the other thing was just it still feels

22:32

like early, but it was very early at the

22:34

time. Um, it felt like we would have

22:37

some ideas for how to solve things well.

22:39

Um, and we were co-designing these, you

22:42

know, with with with with the training

22:44

and and and and the research and it's

22:47

it's all about expressing like the

22:48

capabilities of model in like the most

22:50

flexible and the best way, but also we

22:53

didn't have all the answers and sort of

22:55

being very open about, hey, this is what

22:59

a good harness looks like. This is how

23:01

we think about it. We did like a couple

23:03

of like very technical like deep dives

23:05

and blog posts and we talked about it a

23:06

lot and we thought you know hey it's

23:08

just like the world is vast out there's

23:11

like you know crazy smart people it's

23:12

like you know we're we're going to get

23:14

inspired by other open source project as

23:16

well and so let's just make this a level

23:20

playing field and sort of like encourage

23:23

a lot of tinkering um and exploration at

23:26

this stage. Now this has been now you

23:28

know like a a year later a year and a

23:31

half later which is a very long time in

23:33

right now in this AI time frame but

23:35

looking back or taking the experience

23:38

what are the benefits you've seen the

23:39

kind of engineering benefits the

23:41

engineering team's benefits from being

23:42

open source and just honestly what are

23:44

things that are kind of hard about being

23:47

open source right like there must be

23:49

downsides like just try trying to get an

23:51

honest take on both sides

23:52

>> yeah there there there are definitely

23:54

downsides it it it comes at a cost

23:56

Right. Um the the benefits are it's

23:59

almost something to build in the open.

24:01

Uh it's awesome to have like a small a

24:04

small repo as well. Like whenever we

24:06

hire uh someone and they join the Codex

24:09

team, it's like they've seen the repo

24:10

before. They've they've looked at PRs.

24:12

They're like

24:13

>> onboarding is done.

24:14

>> You know, it's it's it's done. Yeah.

24:15

It's like in onboarding is just like you

24:16

use Codex to look at the repo, you know,

24:18

with you and you ask them questions, but

24:20

it's like it's not it's not a secret

24:21

issue that you can get productive right

24:23

away. We get a lot of good

24:25

contributions. Although we get like you

24:27

know an a tsunami of like random stuff

24:30

as well.

24:30

>> Obviously you and everyone else right

24:32

open source is changing. I think this is

24:34

one of the examples.

24:35

>> That's right. And then to to me it just

24:37

and and to a lot of the team it just

24:39

brings a lot of energy to just be part

24:40

of the community and like be directly

24:43

contributing um not just saying that we

24:45

care about the community but actually

24:46

doing things that you know you can see

24:48

it's it's costing us effort right. U we

24:50

don't have to do it. the the downsides

24:53

are, you know, it's it's separate from

24:55

the rest of our code. Um so, you know,

24:57

sometimes we have to draw like

24:58

artificial boundaries and, you know,

25:00

work across multiple repos. Um when

25:03

we're working on something particularly

25:04

exciting, um and uh you know, we're

25:07

building it in the open then, you know,

25:08

at times we find that uh you know,

25:10

others copy it, you know, before we have

25:12

the time to release it. And it's like

25:15

it's just a little bit sad. Um, but also

25:18

it's like it's part of the game, you

25:20

know. It's it's like you're building in

25:21

the open. It's like, you know, that's

25:23

that's sort of like the contract that

25:24

you signed is like, you know, you can

25:25

copy it. Uh, we have a very permissive

25:27

license as well, but it does sting a

25:29

little bit when you're working on

25:30

something and you're like, you know, and

25:32

then uh the the third thing is just just

25:34

like everyone else is like, you know, we

25:36

are overwhelmed with, you know, random

25:38

contributions and, you know, we have to

25:39

deal with that additional tax. Um, but

25:42

then that pushes us to, you know, also

25:44

like try and solve for it, right? which

25:46

I think is good.

25:47

>> And on top of the open source, one thing

25:48

that surprised me about Codeex, and I

25:50

didn't even know about it until

25:51

recently, it's not tied to the OpenAI

25:54

models, you can use other models with

25:58

Codeex, you know, like putting myself if

26:00

in a vendor's shoe, it it might not be

26:02

very obvious because again, all the

26:05

other vendors I look at when they do a a

26:07

CLI, it's kind of use it with our

26:08

models. again what made you decide to be

26:12

this permissive about you know using or

26:15

allowing to use your harness with with

26:17

other models?

26:18

>> It it felt quite natural if if you are

26:24

part of this community and building an

26:28

excellent coding harness is like why

26:30

would you couple it to your model? That

26:33

that that felt like sort of like quite

26:34

disappointing to make that decision. So

26:36

it didn't it didn't feel right. Um and

26:38

in general it's like I think you know

26:40

it's like I kind of try to make

26:42

decisions that I'm like yes you know

26:44

just like I can just sort of like

26:46

explain it you know it is correct. It's

26:48

the same reasoning with you know it is

26:49

open source in the first place. It would

26:51

have been trivial for anyone to fork it

26:55

and then add support for another thing.

26:57

But then but then you're just

26:58

encouraging people to just like you know

27:00

go and use that fork and then now

27:01

suddenly you have overhead and the only

27:03

reason you have a fork is because you

27:05

know you wanted to change like 10 lines

27:07

of code to add support for like another

27:09

model provider that feels very silly. So

27:11

like you know why not just support it in

27:13

the first place. The other thing is we

27:16

benefit a lot from like being able to

27:18

just give optionality. So, you know,

27:20

it's like maybe today, you know, you you

27:22

you love using OpenAI models um and you

27:26

know, you're super productive with them,

27:28

but like tomorrow there's a new model

27:30

that comes out, you want to try that.

27:32

Why force you to go and completely

27:34

change your setup just to try a new

27:36

model and then we benefit from the

27:37

feedback that we didn't get uh which is

27:39

like, you know, maybe there's something

27:40

that you liked about that model. Maybe

27:41

it actually didn't work well. But it's

27:44

sort of like being nice to our users and

27:46

to the community is like you know feels

27:49

like the right thing to do here. Um and

27:51

then you know we also you we also try

27:53

like other models right so and you know

27:55

we try them in the same harness and you

27:57

know it's just all all good and then

28:00

this is all also often like um this

28:02

optionality is very important to

28:04

companies that we work with.

28:07

This is something that, you know, we we

28:08

absolutely lean into.

28:10

>> This last point, I think, you know, as

28:11

any serious company, you want to have

28:13

optionality and you want to use a tool

28:15

that gives you that optionality.

28:16

>> But I kind of appreciate it cuz I feels

28:18

to me like it's kind of honest like look

28:20

like it forces the whole company to be

28:23

to compete the best in everywhere in the

28:25

model layer and the harness layer with

28:26

open source with with choosable models

28:28

and it kind of like doesn't doesn't

28:30

allow you to like kick back and say

28:31

like, "All right, we're done. We we can

28:32

we can we can hang back for a little bit

28:34

for now."

28:34

>> Yeah. I want us to win users by having,

28:37

you know, the best models, the most

28:39

efficient models, the best product, and

28:41

then, you know, if we do all of these

28:42

things, it's like we're going to have a

28:43

good time. If we sort of like force you

28:45

to use the product because, you know,

28:47

this one thing, it's just like then I

28:49

don't think that will attract, you know,

28:50

the the very best people to work on this

28:52

product either. And like, you know, it's

28:54

like we we're doing our best work here.

28:56

We care a lot about the experience. It

28:58

should feel delightful, you know, like

29:00

it doesn't irrespect of the model that

29:02

powers it, it should feel delightful. I

29:04

love the idea of winning based on merit,

29:06

not based on lockin. And this is a

29:08

perfect time to mention our season

29:09

sponsor, Entire, who also play by the

29:11

same rules. Like it or not, Git is

29:14

becoming a bottleneck for modern agent

29:15

heavy software development. Devs are

29:17

creating more code with agents. These

29:19

agents are pushing more code. Many devs

29:21

are running more parallel agents. These

29:22

are pushing even more code. GitHub is

29:25

clearly struggling to keep up and has

29:27

frequent outages. So what's the

29:29

solution? Entire was founded by GitHub's

29:31

last coza and he rebuilt git hosting for

29:34

the agentic era from scratch. Entire was

29:36

built to be very fast and to have your

29:38

repos regionally close to you to reduce

29:40

latency allowing for fleets of agents to

29:42

push in parallel. Some numbers they

29:45

published. Entire can handle 418 pushes

29:48

per second. That's up to 89 times faster

29:50

than every competitor on the market.

29:52

When GitHub is down, you can still keep

29:54

working and you don't even need to

29:56

migrate from GitHub. You just sign up to

29:58

entire and the platform mirrors your

30:00

repo. And one more neat thing, have you

30:02

ever wondered what prompt resulted in

30:04

this specific code being generated? I

30:06

find that the prompt and conversation

30:08

with the agent carries more information

30:10

than the PR itself, at least for me.

30:12

Entire captures all the prompt history

30:14

with your agent right in the repo easy

30:16

to check back and has a pretty

30:17

innovative UI to show all of this. If

30:19

you're looking for Git hosting that

30:21

works even when GitHub is down, head to

30:23

entire.io/pragmatic, io/pragmatic,

30:24

install the CLI, and mirror your repo

30:27

with a click. I've already done it. Oh,

30:29

and did I mention that it works with any

30:31

agent and it's open source? I'd also

30:33

like to mention our season sponsor,

30:34

Anticys. Tibo talked about how the

30:37

experience of the software you use

30:39

should feel delightful. Delightful

30:41

includes no annoying bugs. But when

30:43

you're using agents to write your code,

30:45

how do you avoid chipping bugs?

30:46

Reviewing every line of code is becoming

30:48

a challenge with the amount of code that

30:49

agents generate, which is why antithesis

30:52

goes well beyond code review. Antithesis

30:54

runs your whole system in a hostile

30:56

simulation. This simulation includes

30:58

both targeted testing and fuss testing.

31:01

By running this simulation, it finds

31:03

every bug before your users do. And

31:05

because the simulation is fully

31:06

deterministic, it doesn't only find

31:08

bugs, it gives you a perfect

31:10

reproduction of every issue, which makes

31:12

it much easier to fix issues. The first

31:14

thing I thought when I heard about

31:16

antithesis is that automated bug

31:18

discovery and fully deterministic

31:19

testing sounds like science fiction, but

31:21

it's actually hardcore engineering under

31:23

the hood. Jane Street, Fly.io, and the

31:26

Etscd community ship agent written code

31:28

with full confidence because they know

31:30

it's been verified by antithesis. To see

31:32

more case studies and details, head to

31:34

antithesis.com/pragmatic.

31:36

And with this, let's get back to Tibo

31:38

and why competition between tools is

31:40

great. Yeah. And I think as as an

31:43

engineer like I always see that whenever

31:44

there's competition as someone who's

31:46

using tools it's it's always amazing

31:48

like I remember like when Microsoft had

31:50

with Jet Brains the IDU wars and then

31:53

there's the clouds battling with each

31:55

other with all the features and now of

31:57

course we have the harnesses we have the

31:58

models and as a as a as a user it's

32:00

great because now we have more more

32:02

choice they just develop faster I guess

32:04

our voice gets heard a bit better. So

32:06

it's it's great to hear. Speaking of the

32:08

harness, can you tell me how it works

32:10

today in the sense of like when I

32:13

start a codeex task,

32:16

does it run always on my machine? Does

32:19

it choose the cloud? Does it use a

32:21

sandbox? And how do I control this or or

32:25

know this or how much should I know

32:26

about this as as an engineer?

32:28

>> Yes. So, by default, it runs uh in uh it

32:33

runs sandboxed. Um it everything that if

32:37

there is like an an a command that

32:39

should run with additional permissions

32:42

outside of the sandbox, it will ask uh

32:45

you as a user for permission, but

32:48

everything every tool execution happens

32:50

within the sandbox by default and it

32:52

runs entirely on the machine um your

32:55

local machine. And this has been the

32:59

case for you know more than a year now.

33:02

But it is something that is evolving and

33:04

shifting where like you can select to

33:07

run this um in the cloud which then runs

33:10

in like a managed VM uh where it's the

33:13

same VM that you get through chatk work

33:17

um and you can you can sort of like

33:19

inspect it but like it runs in a kata

33:21

container it's like a secure environment

33:23

and so everything runs inside of that VM

33:27

and it doesn't run on your machine and

33:28

then the only thing that happens on your

33:30

machine is like the the your input and

33:33

then the streaming back of the output

33:35

and so that you know obviously then uh

33:37

is like much nicer on your CPU and and

33:39

your machine and you can scale much much

33:42

um much more and this is like just a

33:44

step um it's going to be much more

33:48

seamless in the future um to like you

33:51

know use cloud machines and then you

33:53

know maybe have a combination of like

33:54

partial execution on your laptop partial

33:57

execution on on on cloud machines and

34:00

really The thing that we're thinking

34:02

about that is very natural is as models

34:04

just get better and uh more capable.

34:08

They can leverage so much more compute

34:10

and many more resources than are

34:13

available on your local machine and so

34:16

it would be a constraint at some point

34:18

to just limit execution on your local

34:20

machine.

34:21

>> Yeah. One thing that is great about it

34:23

running locally, and I think the reason

34:25

I I love it when it runs locally. Of

34:27

course, it's a pain because if I'm doing

34:29

some work, it's like, you know, I have

34:30

several agents, it's it's eating CPU. If

34:32

I want to close my laptop, I I I cannot

34:35

kind of leave it like half open, right?

34:37

When I was in one of the offices of an

34:39

AI company, I I had it half open and

34:41

they're like, "Are you running agents?"

34:42

I'm like, "Yeah, I have one running."

34:43

He's like, "I get it."

34:44

>> But the reason the reason I do it

34:46

because I have my local tools, I have my

34:48

local Postgress database. I have my my

34:51

this this and that. How are you thinking

34:53

about the cloud is amazing but it

34:54

doesn't have this setup or it's just a

34:56

pain to set it up. are you thinking or

34:58

or are you experimenting with you know

35:01

making the these setups and I'm kind of

35:02

reminded of a topic that we talked about

35:05

prea which is cloud development

35:06

environments and like 2022 23 they're

35:09

hot and then we talked about AI more but

35:12

>> yes I think outside of large tech

35:15

companies like cloud dev boxes really

35:17

never took off because there's a very

35:19

big upfront cost uh and then you need to

35:22

pay like a maintenance cost as well and

35:23

you just you know don't benefit from it

35:25

as like a a solo developer or like a

35:28

small team with the level of

35:29

capabilities that we have in agents now

35:31

is like the setup almost is free, right?

35:33

So like this the setup cost and this

35:35

maintenance cost is like if if your

35:37

agent is capable of doing it, you know,

35:38

it should just do it for you. So for

35:40

example, if you're saying like hey, you

35:41

know, I have like I have my local um

35:45

SQLite or I have a local server and MCPS

35:48

and whatnot. It's like how hard is it to

35:51

actually configure exactly the same

35:53

setup and keep it in sync on a cloud dev

35:55

box? Well, maybe it's not that hard if

35:58

the model just does it for you. And so I

36:00

think we're going to see a resurgence

36:01

of, you know, fully cloud orchestrated

36:05

uh machines which then frees you from

36:08

your laptop, right? It's like one thing

36:10

that we've seen a ton of success with

36:12

with chat work is like it's just

36:13

available on your mobile. I start my day

36:15

just dictating a bunch of tasks into it.

36:18

uh next to the coffee and it just does

36:20

it. It has access to my calendar. It has

36:22

access to my my email. Uh it has access

36:25

to Slack and it's just so awesome to

36:27

just be able to walk around and you know

36:29

get stuff done without having to you

36:31

know carry my laptop everywhere and I

36:34

think it's the same things like you know

36:36

we shipped like Codex remote where you

36:37

know execution is like still happening

36:39

on your laptop but it would be wonderful

36:41

if you know you didn't have to keep your

36:43

laptop open. Can you tell me a bit on

36:45

how in the past how did you improve

36:48

codecs? Because I remember when I first

36:50

used codeex this was one of the early

36:52

versions you know like you could talk to

36:54

it did stuff but for example I said like

36:57

all right make this change and it did

36:58

that change and I had unit tests and it

37:00

didn't run it and then later a few

37:02

months later I don't know exactly when

37:04

it just started to run it automatically.

37:06

were these things did you improve the

37:08

you know the the script that runs you

37:10

know the instructions I'm not sure how

37:11

exactly you call the you know the the

37:13

bootstrapping script or whatever that is

37:15

is it improving the model like as a dev

37:18

how can I imagine you making each

37:20

version better between the harness and

37:22

then between the model and like what's

37:24

the connection between the two

37:26

>> yeah this is a good question so the uh

37:30

the harness in a sense is always a

37:32

little bit ahead of the model

37:34

>> oh really how so?

37:36

>> Oh, what what I mean by that is that you

37:39

you have the model, it's capable of

37:41

certain things, but then you

37:44

set it up with like a couple of crutches

37:46

so that it can actually do the thing um

37:49

to a level of reliability and um in in

37:52

in a way um that is like efficient and

37:56

also with the behavior that you expect

37:58

as a user. And sort of like that's the

38:00

role of the harness, right? is like you

38:02

know provide guard rails like safety,

38:05

make it more efficient, make it more

38:06

like steerable, controllable and then

38:09

the harness usually is also responsible

38:11

for you know what we call like the the

38:13

developer um message which is sort of

38:17

like infected in the context uh at the

38:20

start of of each turn. And so that

38:23

affects obviously like the the purpose

38:25

of that to affect like the behavior of

38:27

the agent throughout uh throughout the

38:29

turn. A lot of what you have is like the

38:33

result of of the harness and the model

38:35

initially like maybe you're like oh it

38:37

doesn't run tests. So you know you have

38:38

to remind it to run tests and then you

38:40

know we train a battle model that is uh

38:43

just you know capable of like better

38:46

reflecting on what is it that you really

38:48

want when you ask for something uh and

38:50

then you know you don't actually have to

38:52

tell it anymore. So over time what we

38:54

see is like the system uh the the

38:57

developer message shrinks and then the

38:59

harness also shrinks

39:00

>> inside of the codeex team. Do you have

39:02

specific goals? Do you say like all

39:04

right now the the codeex as a hardness

39:07

and and model to combine is not very

39:10

good at this or it's kind of doing silly

39:12

mistakes or here or how can I imagine

39:14

how as the engineering team how you're

39:17

working on the next you know version of

39:19

of codeex is because the thing that I

39:21

don't really get as a as a dev is like

39:23

okay there's a model which to me is this

39:25

magical thing which will get better of

39:26

course I'm sure you have some feedback

39:28

channels but you also have the harness

39:29

which is the tools that you're building

39:31

like that's probably what the team is

39:32

responsible for how do set even your

39:34

goals right like in traditional software

39:35

you'll be like we will build this

39:36

feature and you build that feature

39:37

because you know how to do it but it

39:38

feels a bit more fuzzy to me this this

39:40

development process.

39:41

>> Yeah it is and it's why we we co-design

39:44

you know most things and it's it's a

39:46

process where it's a collaboration

39:48

between research and the engineering

39:51

team like primarily building the the

39:53

core the core agent harness. It's always

39:56

uh it's always a question of like okay

39:58

we see today that you know we are very

40:01

good at this but we're not very good at

40:03

this and you know we have a desire to do

40:05

like another thing because it would be a

40:07

very cool products feature and then you

40:08

know we always like look at it it's like

40:11

okay this should this be like a harness

40:13

change or should this be a model change

40:15

and if it's a model change like how soon

40:16

can we have it can we have it in a month

40:18

can we have it in you know three months

40:19

six months and we sort of like work

40:21

through that and then depending on you

40:24

know how soon we can just fix it in the

40:26

model at which level of training. Then

40:28

we might decide to not even do something

40:29

in the harness at all and not and just

40:32

wait for for for the model to to solve

40:34

it. You know, it's it's agents all the

40:36

way, right? So we use agents to analyze

40:38

like a lot of the feedback to like, you

40:40

know, come up with themes, you know, to

40:42

just help us have these conversations

40:44

and decide on priorities. But we analyze

40:46

it across all of coding. We analyze it

40:48

across like all of like know the other

40:50

domains like finance, coms, marketing,

40:53

you know, all the things where our users

40:54

are using these agents nowadays and

40:57

there's like you know subcategories

40:58

within those and then we roughly know

41:00

like you know how well we perform and

41:02

then we're always pushing the frontier

41:04

and there's a thing that is interesting

41:05

is like as we make you know as our

41:07

pre-training model gets better as we

41:09

make the overall model better like the

41:11

whole thing lifts up but then there are

41:13

sometimes things that we pay a little

41:14

bit more attention to. You mentioned you

41:16

know he analyzes agents all all the way.

41:18

Can we talk about the the software

41:20

development life cycle on codeex in the

41:23

sense of whenever a new engineer joins a

41:27

team any team it's like okay how are

41:29

things done here and you know back preai

41:31

it would have been you join the company

41:32

like Uber or Google and they would tell

41:34

you that cool the way it works is we

41:36

have an idea or the PM has an idea we

41:38

make a plan we get together we do some

41:40

estimations we break up the work we code

41:42

the work we do tests we do code reviews

41:44

we release we do feature flags and then

41:47

you know we we were on call that that

41:49

you know that's how it used to be when

41:51

someone joins the codeex team you know

41:53

they they've clearly been contributing

41:54

to the open source part but what what do

41:57

you tell them how do things get get done

41:59

here if they're like a brand total

42:01

newbie

42:01

>> I introduce them to great people um and

42:04

then the thing that they hear the most

42:06

about like when they have a question is

42:07

like have you asked Codex um and Codex

42:11

like is just by default at openi is like

42:14

plugged into everything so it has access

42:16

to slack it has access to all the

42:17

documents, access to all the code, and

42:20

it still surprises uh new starters that

42:23

you can basically ask it anything. Uh

42:25

and it will very often just like come up

42:28

with like a really good response. Um and

42:31

so the easiest way to understand the

42:34

state of a project or who's working on

42:36

something or why a decision was made is

42:38

like critics knows about it all

42:40

internally.

42:41

>> Um and so you just you just use all of

42:43

that. We do a lot of work in you know

42:45

for that reason we do a lot of work in

42:47

public channels. Um we open up uh

42:50

documents with like you know fairly

42:52

broad uh permissions and so that you

42:54

know everyone has access to this

42:55

information as well and so that you know

42:56

your agent can go through things and

42:58

like you know reason through things and

42:59

then you know we have a couple of other

43:01

things that are just really uh very

43:03

helpful for uh team productivity and

43:06

team collaboration that we haven't

43:07

released yet but are are going to come

43:09

like some of it at def day. All of that

43:11

just sort of like makes you very

43:13

grounded and in tune with the rest of

43:14

the team. Um, and allows you to like,

43:17

you know, just very very quickly like

43:18

understand the state of things and and

43:19

and produce things yourself. The general

43:22

recommendation is just like, hey, care

43:24

about the user, uh, care about the

43:26

coherence of the product, care about the

43:28

models and where they're going. Uh, if

43:31

you're doing something and you know

43:32

you're building like this 10,000 lines

43:34

of code crutch to work around the model

43:36

flaws, like you know, you're probably

43:37

doing the wrong thing. So, we have a set

43:38

of principles. Um but it's just really

43:42

um sort of like a team culture and ethos

43:45

at this point and you know it's just

43:46

very much so like carries on you know

43:48

when people join it's just like through

43:50

the rest of the team just like you know

43:52

sort like teaching the ropes and then

43:53

when I have an idea I think it's a good

43:56

idea I I talk it through with codeex

43:57

maybe I talk it through with some my

43:59

colleagues like here's a cool new

44:00

feature I'm going to build as my first

44:02

first contribution or first major

44:03

contribution at to codeex how do I go

44:06

about that obviously I I code it down

44:08

with codeex I obviously test it and make

44:10

sure that it works from there on what's

44:12

the process do you still have the

44:14

concept of code review or AI code review

44:17

of verification of rolling out of

44:18

verifying of stage rolled out you know

44:20

the things because codex itself it goes

44:22

out to millions of people like I just

44:25

crossed a big 20 million active user

44:28

mark but if it's chat GPT then it also

44:30

goes out to like even a lot bigger

44:32

number of people

44:33

>> yes um but it's it's surprisingly like a

44:36

similar process whether you ship on

44:38

codeex or chat

44:39

even though Chibd goes out to like a

44:41

billion a billion you know active users

44:43

and growing you can ship a PR um you

44:48

know you can make a change and you know

44:49

get it shipped like the next day or like

44:51

even the same day um and it just goes

44:52

out to a billion users and it's fine we

44:56

just really instill a sense of ownership

44:58

and care so you're like people are very

45:01

empowered to make changes even large

45:03

changes the general thing that is being

45:05

asked is like sort of like evidence that

45:07

it's going to be wellreceived D evidence

45:09

that is like a worthy addition uh

45:11

evidence that you know it's like it is

45:13

worth maintaining over time but also

45:15

like the cost of maintenance is like

45:16

just really as you know gotten done

45:18

significantly as well. So we we we think

45:21

about these things slightly differently

45:22

than you know say like two years ago or

45:24

3 years ago. The other thing as well is

45:26

like you know we automate as much as

45:27

possible. So like a lot of like the

45:28

process of like code review and deploys

45:31

and you know catching regressions is

45:33

like you know all of that is like pretty

45:34

much automated. Uh and so like you know

45:37

you get to just focus on just really the

45:40

idea and you know how it's going to help

45:42

our users and you care about you know

45:44

the coherence of it all and so like the

45:46

overall power of the agent um and making

45:49

things better and like we don't we have

45:50

a long long list of things that you know

45:52

we sort of like aspire to do and haven't

45:54

gotten to yet. And then there's like the

45:55

sort of like the northstar direction um

45:57

which is a delightful simple to use

46:01

personal AGI that you know knows

46:03

everything about you like you know that

46:05

it needs to know has access to the right

46:07

resources can take like you know

46:08

sometimes risky actions on your behalf

46:10

but then you know you get like the push

46:11

notification and then you know you can

46:13

verify that and it's like a thing that

46:15

you know you deeply understand as a user

46:17

but also it knows about your schedule it

46:19

knows about your goals it can be

46:20

proactive and it should be like

46:21

extremely natural it should be something

46:23

that you can control through like

46:25

natural language, voice, you know, like

46:27

maybe it should understand, you know,

46:28

your emotions like if it has like a

46:30

camera feed, it should be the most

46:31

natural thing on earth. It's like it

46:33

should not be like a thing with 10, you

46:35

know, different buttons and

46:36

configurations. It's like AGI should be

46:38

simple to use. Now,

46:40

>> you kind of mentioned just briefly the

46:42

review the code review, but I wanted to

46:44

go back to it. you you worked at Google

46:46

on a on a product used by you know like

46:48

hundreds of millions which is Google

46:50

maps and Google is very well known for

46:52

their culture of very strict code

46:54

reviews. They have I think two layers of

46:56

code reviews. There's a language

46:57

correctness review and they they've

46:58

taken I think they've really perfected

47:00

it across the industry for for a long

47:02

time and they do believe that it it

47:03

works and they they use it. How do you

47:05

think that part is changing specifically

47:07

the human review? Because for a very

47:09

long time until maybe a year or two ago,

47:12

I would have said you code review has

47:13

all these benefits that knowledge

47:15

sharing the second pair of eyes removing

47:17

the bus factor because now someone else

47:19

understands and when that person is out

47:20

that they can jump in conversations are

47:23

happening about architecture not just

47:25

not just the code but now there's you

47:29

know there's a lot more code uh and what

47:32

was the value of code review? What in

47:35

what cases? And so on your team, because

47:38

you guys are so ahead of this, where do

47:41

you see humans still being or developers

47:43

being involved in the review stage

47:45

valuable? And and where is it fine? Did

47:48

you find it find it fine to uh hand it

47:50

off to an agent?

47:52

>> Yeah, the the the role of code review is

47:54

changing. One one of the early projects

47:56

that I did on Codex was like working

47:58

with research on developing a code

48:01

review model um that was

48:05

going to be to a level where it can spot

48:08

mistakes in logic and reasoning. uh to a

48:12

degree where it would require humans

48:14

like you know multiple like potentially

48:17

multiple hours to capture the same level

48:18

of mistake because it requires like

48:20

really digging like you know three four

48:22

levels deep into like the dependencies

48:24

and like you know understand that maybe

48:26

the documentation actually was wrong and

48:27

like the implementation of like this

48:29

third party dependencies like different

48:30

from what you expected and so therefore

48:31

your invarants are not upheld um and

48:34

these things it's just like you know

48:36

unless you're an expert in that library

48:37

you wouldn't know uh and therefore you

48:39

have a bug and so we developed like

48:41

these uh code review models and you know

48:43

we we we released them and now they're

48:44

like the same level of like capability

48:47

and like ability to spot these mistakes

48:50

by doing like you know deep verification

48:52

are like just part of the mainline

48:53

models like when we benchmark them it's

48:55

like they're like super human in code

48:57

review and this is not just true for

48:59

correctness. This is also true for

49:00

security for example where you're

49:02

capable of like reasoning across like

49:03

you know very very complex things and

49:05

then you know coming up with like hey

49:06

you know you have a critical security

49:08

vulnerability here which is now

49:10

mandatory across like all of OpenAI pull

49:12

requests like we block pull requests

49:14

from merging if you know we flag them

49:16

with like a a security issue and this is

49:19

like all automatic and the role of code

49:21

review now is like I think it was always

49:23

about correctness it was always about

49:25

you know ensuring that things worked but

49:26

it was also sort of like a little ritual

49:28

for information exchange and you know

49:30

bringing people on the same page and

49:31

like you know encouraging like a

49:33

discussion which ideally would have

49:35

happened before but sometimes it just

49:36

only happens like around the code

49:38

because once it merged it just actually

49:39

runs in production it's doing stuff

49:41

>> and then you have to maintain it so

49:43

there's like this social aspect to it as

49:45

well it's I think all of it is changing

49:47

like the correctness the cyber the the

49:49

security is like I think that will be

49:51

automated really what we see and I see

49:53

is there's a sort of um really

49:56

discussion around the intent that takes

49:59

place around the poll request. It's like

50:01

what are you even trying to do? Um and

50:03

is that a right thing to attempt to do?

50:04

I think you can have that discussion

50:06

outside of the poll request. It doesn't

50:07

have to be around code.

50:08

>> So, so maybe this helps crystallize the

50:11

you know like where a discussion needs

50:13

to happen versus versus where we we did

50:15

it because maybe we didn't have the type

50:17

the type of tooling that we have right

50:18

now. Yeah, I think this is going to

50:20

change and it was like a forcing

50:22

function because you know you have to

50:23

have that discussion where like it's

50:24

good to have that discussion before you

50:26

merge it and it becomes production code

50:28

but I I think there are other ways to

50:31

have these discussions and you know

50:33

design things together and make sure

50:34

that the intent is good uh and then the

50:36

code doesn't matter as much

50:38

>> and it's interesting because when I

50:39

think back of all my code reviews like

50:41

of course I have like memories where

50:43

like it was great we we had a good

50:44

discussion or I learned something really

50:46

interesting but a bunch of times

50:47

honestly It was such a pain in the ass.

50:50

Like I I was trying to get my stuff.

50:52

You're paying. Hey, could you remove my

50:54

code? And like, no, right now I'm busy.

50:56

No, I really need this to unblock me.

50:58

And then you context switch. And then I

51:00

feel it's always been like good and bad,

51:03

right? So I I feel whatever we do there

51:05

will be always upsides and and downside,

51:08

but there now they're just moving. So I

51:09

guess one upside is as an engineer you

51:12

might have to not give your attention to

51:15

just kind of basic stuff that doesn't

51:17

need your input per se. Yes, it saves

51:19

time and I think progressively what

51:22

we're going to see is also like you have

51:25

an agreement on you know the box and the

51:28

overall contract of what it's supposed

51:29

to do and then you know what is inside

51:31

the box as long as you have like strict

51:33

guarantees in terms of resource

51:35

utilization, data access, um security,

51:39

these kinds of things. It's like what

51:40

happens inside the box is you know it

51:42

could be literally anything. it's like

51:44

don't really need to care and like

51:46

really what you need to agree on is like

51:47

what does the box actually do and what

51:49

are the invariants that must be

51:50

satisfied and I think that is then

51:52

worthy you know having like a really

51:54

good conversation on you know maybe

51:56

assisted by by your favorite uh agent

51:58

but then once you have that and you have

52:00

that understanding it's just like

52:01

changing anything within the box is like

52:03

you know doesn't require for discussion

52:05

and it's like you know just really

52:06

preserves your attention

52:07

>> the cost of maintenance has gone down

52:10

you know maintenance is always such a

52:11

hot topic whenever we build thing uh

52:13

inside of all these companies like

52:15

Google, Uber, even startups like

52:16

building was the fun part but then

52:18

maintenance was the painful and that's

52:20

when we learned like okay it was not

52:22

we're building it etc inside of codeex

52:25

and open AAI what do you see maintenance

52:28

becoming cheaper changing in terms of

52:30

instead of what you're building what the

52:32

ambition is the I guess custom tooling

52:35

those kind of things

52:36

>> maintenance is really like sort of like

52:38

a tax that you pay over time just to

52:40

keep things running and it's It's it's

52:42

it's always been necessary. It will

52:44

continue to be necessary, but where I

52:45

think it changes is like a lot of it is

52:47

just going to be automated. So, you

52:49

know, it's like okay, you have you have

52:50

this third party dependencies like you

52:53

need to upgrade the version number. It's

52:55

like a like

52:57

[laughter]

52:58

you can fully automate this you know um

53:00

if you have good change log and you know

53:03

and the code is well documented and like

53:04

you know and and the model can just like

53:06

reason through it like you know you can

53:07

just like blast through your codebase do

53:09

it uh in a couple of hours and you know

53:11

previously you would have like punted on

53:14

it because it's not the most fun thing

53:15

to do but it's actually really important

53:17

for your business. So it's like really

53:19

important for your project, you know,

53:20

especially for security vulnerabilities.

53:22

You want to stay up to date, right? You

53:24

want to apply, you know, all these

53:25

patches.

53:26

Um I think that's just going to be fully

53:28

automated. So a large part of like

53:30

maintenance, it just kind of comes for

53:32

free, right? And then um I think it's

53:35

it's awesome to also think about before

53:37

like you know when you wanted to just

53:39

completely react re you have to do like

53:41

a new architecture because you're trying

53:43

to make space for like a new you know

53:46

different kind of trade-offs or you have

53:47

a new understanding of like the workload

53:49

or you're trying to fit a new feature

53:51

and like suddenly you realize like your

53:53

current system is just very limiting and

53:54

you need to completely rearchitecture it

53:56

that was like a really really costly

53:58

endeavor right so you know like

53:59

sometimes like multiple years and I

54:01

think this is also like super super

54:03

accelerated now. So you like the cost of

54:06

mistakes uh you know I would say like

54:08

you know is going down but then at the

54:10

same time the good old rules I would say

54:13

of software engineer of like you know

54:14

having good abstractions like really

54:16

help like you know is going back to this

54:18

like having the box with invariance like

54:19

you know if you sort of like draw the

54:21

right shape you're going to be able to

54:23

change things much more quickly within

54:24

the box and like not affect the rest of

54:26

the of the services or the rest of your

54:28

infrastructure

54:30

and I think it's important it's

54:31

important to design for very quick

54:32

iteration and I remember when I talked

54:35

with Peter Shamberger that was before he

54:37

joined OpenAI but about open claw and

54:40

how he thinks about it like you know he

54:41

told me that he doesn't read the code

54:43

but he kept thinking about like I could

54:45

see that he's holding the architecture

54:46

in his head and he was telling me how he

54:48

rearchitects a lot and he thinks about

54:50

how to make it modular how to allow 100

54:53

contributors to each build their thing

54:55

without stepping on each other's toes.

54:57

So I'm hearing what you're saying that

55:00

this this care this this planning this

55:04

this structuring has become maybe just a

55:05

lot more important to like which which

55:08

which was which which was something back

55:09

in the day you know it was like the

55:11

architect or the staff engineer or

55:13

experienced folks were doing this thing

55:15

and other engineers around them were

55:17

kind of building this you know smaller

55:18

parts but it sounds like now all

55:19

engineers need to be aware of when

55:22

you're building your software right and

55:23

plan for it

55:24

>> yeah and and the GP models are getting

55:26

better and better at this as well of

55:27

like you know thinking about long-term

55:29

maintenance and like good architecture

55:31

and like this is like a natural sort of

55:32

like next step right. It's like not just

55:34

about code quality in the sense of like

55:36

oh is this code clean within this file

55:38

but like you know is this like is the

55:39

architecture actually correct to reduce

55:41

maintenance burden over time and like

55:43

you know make space for like future u

55:45

product or feature extensions or changes

55:47

and just really this act of like you

55:49

know engineering over time that's uh

55:51

kind of like something that models are

55:53

starting to become capable of like

55:54

thinking about very well I think it's

55:56

just kind of fascinating to understand

55:57

that the software that we're building is

56:01

just going through the life cycle much

56:03

much faster. Right? Like you know before

56:04

you had you know you were you were

56:06

scaling you were starting it you know

56:07

maybe as like a small team of you know

56:09

yourself maybe a couple of engineers and

56:11

then you would add engineers like slowly

56:14

and then you know maybe after a year you

56:15

know it's like if it's very very

56:17

successful you would have 50 engineers

56:18

on it or like a 100 engineers on it. You

56:21

would have time to see it coming. you

56:22

would have time to see like you know the

56:24

humans on board and you sort of like you

56:26

know you can think about the

56:27

documentation all of that stuff but now

56:29

it's just sort of like that explosion of

56:30

like you know suddenly you have like a

56:32

100 agents contributing to this thing is

56:34

like you know that can happen like you

56:35

know in a weekend and so you know you're

56:38

just going through it at you know major

56:41

major speed compared to before

56:42

>> okay but how do you and and the folks at

56:44

OpenAI like deal with this like does it

56:46

not mess with your mind like you know

56:49

what I mean in the sense of like you you

56:50

you've been in this business for quite

56:52

some time now like like decades or or

56:55

well over and there was a pace that we

56:57

kind of got used to and obviously is

56:59

it's now a lot faster but how do you get

57:02

your head around the fact that a it's

57:04

faster b the stuff that you've been

57:06

doing a year ago right now you're not

57:09

doing because now the model is is good

57:10

at it and you know like how do you kind

57:12

of reconcile that because there I'm sure

57:14

there's stuff that you've been really

57:15

good at uh related to software that now

57:17

you can hand off to the agent do you not

57:18

get a little bit of sting you know we

57:20

talked about it's stinging for your

57:22

features to be implemented open source.

57:23

But it can also sting that I've been

57:25

really good at like I don't know

57:26

refactoring or or or right now it might

57:29

be architecture but maybe the model will

57:30

be really good at that and now I'm like

57:32

uh okay damn like I'm glad but also like

57:35

uh it would have been nice for me to do

57:36

that.

57:36

>> Yeah, I think there's like a craft

57:38

aspect to it. Um which occasionally I

57:42

still you know pull up an editor and

57:44

like write some code. Um, and it's just

57:45

like it it it it feels nice and and and

57:48

it's sort of like I have fond memories

57:50

of like late nights sitting [laughter]

57:53

in uh in Vim and you know, just like

57:56

>> cranking it out,

57:57

>> you know, drinking

57:59

um Coke Zero and uh yeah, just not

58:03

having to think about anything else

58:04

other than like the problem in front of

58:05

me. But really, I think it's um it's all

58:10

about being in the flow and and solving

58:12

problems. And what I find is like you

58:14

know folks here and also like everyone I

58:17

talk to is just like adapting very

58:19

quickly and I think if you if you have a

58:21

mindset where it's all about code is a

58:24

tool to solve problems and you can solve

58:27

so many more problems. It's like before

58:29

you wanted to benchmark something and

58:30

you weren't quite sure where you were

58:32

going to net out. It's like you can just

58:34

do it. it's it's going to take you like

58:36

no more than 30 seconds, you know, to

58:38

launch something in the background and,

58:40

you know, get proper numbers and be able

58:41

to do like a better trade-off. It makes

58:43

you it should make you a better engineer

58:46

if you just really care about, you know,

58:49

the outcome and the system working well.

58:51

And so what it allows us to do at

58:53

OpenAI, it allows us to run, you know,

58:55

our inference much more efficiently. It

58:57

allows us to, you know, get like much

58:59

more like effective compute and, you

59:01

know, deploy that to the world. And so

59:03

like everyone's just like very focused

59:04

on that and solving important problems

59:06

at the speed that was not possible

59:08

before. And like I I haven't yet, you

59:11

know, encountered someone who's like,

59:12

"Oh, that's not that's not good. Um

59:14

that's not fun."

59:15

>> Do I understand correctly that it sounds

59:17

like if you have ambitious problems, if

59:19

you have way more problems than what you

59:20

can solve today or tomorrow or the next

59:22

week, sounds like this is not really a

59:24

problem because when you know you get

59:26

more efficient somewhere, you keep

59:27

going. Which which is a lot of startups,

59:30

right? like startups are always way more

59:31

ambitious than than what they're able to

59:33

do.

59:34

>> I don't we're not we're not out of

59:36

problems for sure, right? So, and and I

59:38

don't think we will be for a while. Um

59:40

we have a long long road ahead of us in

59:42

terms of like mathematical

59:44

breakthroughs, scientific breakthroughs,

59:46

you know, making the world a better

59:47

place like just really

59:50

building for humans and solving the most

59:52

important problems that everyone is is

59:54

facing and just doing it in a a deeply

59:56

human way. that's that's what we're here

59:59

for. Also, just going back to coding and

60:02

like you know these late nights, it's

60:03

like I think there's like it's also like

60:04

maybe like a glamorous version of it.

60:07

Just like I also had very a lot of late

60:09

nights where I was trying to refactor

60:10

something. Um and you know just like I

60:13

would be like three hours deep into the

60:14

refactor and then realize like actually

60:17

this is a dead end. Uh and I must

60:19

restart from scratch and it was like

60:21

very frustrating. Um, and so it's like

60:23

there was like there are like these very

60:25

very fun times, but there's also the

60:27

time where it's like it doesn't compile

60:29

and you're just like, why is this not

60:31

compiling yet? Like

60:33

>> I'm sure you had the time where you you

60:35

go you go later, it's now super late,

60:37

you need to go to bed cuz you need to

60:39

you need to get some sleep and then you

60:40

can't really sleep and you have this

60:42

thing where like you you have some some

60:44

task that is halfway and it upsets you

60:48

sometimes. I remember dreaming about the

60:50

code as well. And I guess one thing I

60:52

don't really have these days when I'm

60:54

working on my uh software for my

60:57

business is I don't really have

60:59

something that is halfway cuz I can just

61:01

tell it do this and then I can leave it

61:03

at a state where it's kind of like you

61:04

know done either finished it's either

61:06

working or it's I have proof that it's

61:08

failed. But it's interesting because you

61:09

know everything's sped up right.

61:10

>> Yeah. I may maybe like I I do have like

61:14

what what a lot of people do and I do

61:15

myself is like you know I have like

61:17

sometimes like bigger questions that I'm

61:18

asking myself like and I you know from

61:20

conversations I've had during the day or

61:22

like I haven't yet you know just like

61:24

had the time to just look into it and so

61:27

I you know I will send off codecs to

61:29

just like look at it overnight and then

61:31

I'm very excited to then wake up and

61:33

look at the results and so you know it's

61:35

always like an exciting morning. Well, I

61:37

feel there's an art to doing longunning

61:39

tasks. And of course, you can use the

61:41

slashgoal which will go and and and run.

61:44

You know, that's also something that was

61:45

recently added like a few months ago,

61:46

right? The /go goal command to codeex.

61:48

>> Yeah. And back to, you know, maybe like

61:50

the harness is a crutch, right? Is uh uh

61:54

slash goal was like necessary to allow

61:57

like no to keep the the model like on

62:00

track on like a singular goal for a very

62:02

long uh period of time. And it's like it

62:05

allows the model to literally run for

62:07

days or or weeks if it's like a really

62:09

really hard problem. But with the new

62:11

generation of models like what we're

62:13

seeing is like you know you don't

62:14

[clears throat] need SL goal anymore.

62:15

You don't need a harness around it. You

62:16

can just tell the model like you know

62:18

hey go and work for a week and you know

62:20

it will actually do it.

62:21

>> Speaking of hard problems and the fact

62:23

that you're not out of them. One of the

62:25

interesting things that you shipped from

62:27

the outside it I would say it it was you

62:30

know as an engineer it was moderately

62:32

interesting uh is the what you call the

62:35

merge which is codeex appeared inside of

62:38

chat GPC and the reason I say that as

62:40

engineers it's kind of moderately

62:41

interesting because we've been using

62:42

codeex like yeah it's there you can now

62:44

open it in the chat GPT app great like I

62:46

just went there and I just immediately

62:48

went to Codex cuz I don't I don't really

62:49

use Chad GBT in the app per se but I

62:53

talk with uh folks at Open AAI and

62:55

people in your team and you know they

62:56

were telling me like there was a lot of

62:58

preparation going on a lot of

63:00

engineering challenges. Can you give a

63:02

sense of how big this project was, what

63:05

you needed to do and why was it

63:07

difficult to pull off and and how you

63:08

know how did codeex and other tools help

63:10

you get it done in in ways that would

63:12

have been hard before cuz since you've

63:15

launched the merge the the numbers that

63:18

you keep sharing of how many people use

63:20

codeex it's like it's going up way

63:22

faster than before. So I assume I assume

63:23

there's a big scale uh problem you've

63:25

solved here.

63:26

>> A lot of things were

63:29

the challenging with the merge is first

63:31

of all

63:33

completely different stacks. Chbt is

63:36

like fully

63:37

uh managed cloud-based like you know you

63:41

run everything on our uh on our systems.

63:44

We we store things like traditional

63:47

traditional way of like building things.

63:49

Um built for scale, built for for

63:52

efficiency. Codex fully local. And so

63:55

the merge is just really like how do you

63:57

get the same uh the same benefits and

64:01

the same capabilities from this local

64:03

coding agent and then build a product

64:05

around it and build it in a way where it

64:07

can benefit like a much much broader

64:08

pool uh of people which is which is also

64:12

why you know all of us joined OpenAI is

64:15

like to benefit like this very very

64:18

broad population across the world and so

64:20

it was like a very exciting journey of

64:22

like figuring out like how do we build a

64:25

cloud version of this that in essence is

64:28

capable of like very very much the same

64:30

things um but is also built in a way

64:32

where you know we can serve it to like

64:35

tens and hundred millions of hundreds of

64:37

millions of users in a way that is still

64:39

like you know efficient so that we can

64:41

include it all the way into the plus

64:43

plan work is essentially like running uh

64:47

the full codeex harness in uh a cloud

64:51

like together with like a a cloud

64:52

computer it's It's a very powerful

64:54

machine actually like people have sort

64:56

of picked up on it and showed like you

64:58

know what you can do like you know if if

65:00

you are creative with the prompt is that

65:01

you know you can get um you can get

65:04

chatbt to like you know train another

65:06

model in there you know

65:08

>> wow [laughter]

65:09

>> there are some pretty wild things uh you

65:11

know you can get it to install blender

65:13

and you know do like 3D modeling it's

65:16

like very permissive it has like

65:18

internet access it's like a powerful

65:20

machine and then codex just works on it

65:22

and this is like what we ship through

65:24

cas work. a lot of system uh challenges.

65:27

We the team did it very quickly.

65:29

Obviously like Codex helped you know to

65:31

make it more efficient look at and and

65:34

build a lot of the infrastructure

65:37

and then you know help resolve a lot of

65:39

the little differences as well that you

65:41

know had been occurring between between

65:43

Codex and CHBT like merging plugins

65:46

architecture um you know merging library

65:49

and like so like really really working

65:50

towards like unified system which is

65:52

really the goal is like you shouldn't

65:53

feel like you know you can do something

65:55

in Codex that you can't do in TAB or

65:57

vice versa like what we're trying to

65:59

build is like one unified product that

66:01

gives you access uh to the same

66:03

intelligence but in the way that you

66:04

want to use it. And so it was very fun

66:07

as well because Codex throughout the

66:09

whole journey also acted as a journalist

66:11

to sort of like document all the steps

66:13

and the debates and the discussions that

66:15

the teams were having. And it was very

66:17

animated debate you know of how we

66:19

should do it and how we should name the

66:20

thing and you know when to introduce it

66:22

in what way and like what to merge into

66:24

what. there were like many different

66:26

permutations considered and so there's

66:28

like a very fun journalistic element to

66:31

it where we like we have a full

66:32

recounting that Codex did over time uh

66:36

and uh yeah it's just it's kind of

66:38

become known as well as like the toggle

66:41

arc of uh OpenAI where you know we

66:43

introduced like the work toggle um which

66:46

there was also a lot of debate around of

66:48

like you know whether this was like the

66:49

right thing and then you know just like

66:50

we kind of grew to to just really like

66:52

it um but over time we're going to merge

66:55

things further. So it's like we're

66:57

really headed into this direction of

66:59

like full unification and you know we

67:01

kind of view this as like um a temporary

67:03

state uh where you know you have like

67:06

you have better stronger capabilities

67:09

when you're in work mode but over time

67:11

we're bringing this you know all all the

67:14

way to like you know everyone that uses

67:15

CHP. And how do you personally use

67:18

codeex? Like what's your what's what's

67:21

your working setup in terms of agents,

67:22

in terms of task, in terms of what you

67:24

what what you manage uh with it. And

67:26

related to this, I asked Peter

67:28

Stainberger what I should ask about you

67:30

and he said like you I I you need to ask

67:33

him how do you deal with the fact that

67:36

you're involved in all these projects?

67:38

Uh your calendar is like Tetris, but

67:40

usually you show up pretty cheerful.

67:43

>> My calendar is fine. Um um and it's just

67:50

I am capable of doing so many more

67:52

things nowadays because I have the

67:55

technology like CEX and I actually

67:58

shifted a lot of like my my my work on

68:01

uh on mobile using tab work where

68:05

whenever I have something that I want to

68:07

take note of I just like fire that off.

68:09

I use dictation a lot. Um, whenever I

68:12

have a question, instead of like writing

68:14

it down to look into later or delegating

68:17

to someone, I just like fire it off in

68:18

charge of your work and I get like a

68:20

report. It has like a whole bunch of

68:22

like custom skills and um custom uh

68:26

instructions where it's now like very

68:28

very tailored to like you know produce

68:29

the kinds of reports and slide decks and

68:32

uh code explorations you know in the

68:34

style that I can consume effectively.

68:36

And so every time I'm like between

68:38

meetings or like you know you'll kind of

68:39

like see me like you know I was just

68:40

like dictating to my phone. As I said

68:42

before it's just like we do a lot of

68:45

work in public channels. We have like a

68:47

lot in Slack. We have a lot in in in

68:49

notion and Google Docs as well. And so

68:52

there's pretty much like there's no

68:53

question really that I feel I cannot ask

68:55

that you know Codex will be able to sort

68:57

of like do at least a first pass of

68:58

thinking through whether it is like

69:01

public sentiment on a feature um looking

69:03

at production logs for you know how much

69:06

usage we have on a certain thing making

69:08

a list of things that we should

69:09

deprecate because they're not getting

69:11

traction uh understanding what a certain

69:13

team is up to. It's like any question I

69:15

have I can get an answer to like you

69:16

know within 30 minutes. And so that's

69:18

how I use it. I use it for everything.

69:20

It's like my personal uh agent in in

69:23

like all the ways. And then oftentimes

69:26

on on weekends as well, I do some like

69:28

code explorations or like I build some

69:31

prototypes and I have fun like sort of

69:33

like imagining the future of the product

69:34

in some ways. And I do that with others

69:37

on on on on the teams. It's not always

69:38

the same team. And it's just like in one

69:42

day I can build things that I sort of

69:44

like I had it in my system, right? It's

69:46

like it's like I woke up one day I was

69:48

just like we should explore what it

69:50

means to build this and then I can just

69:52

sort of express all of that and get like

69:54

something in front of people in a day so

69:56

that they can think through it and

69:58

criticize it and hopefully get inspired

70:00

by it. It's like by no means you know we

70:02

need to ship it but it's more like okay

70:04

I flush it out of my system and then you

70:06

know I go on and like you know do other

70:07

things. So it's just like so I know it's

70:10

such a magical time and it's like so

70:12

empowering. And as closing, what would

70:14

your advice be for a software engineer/

70:17

AAI engineer, someone who builds

70:18

software who would want to get the skill

70:22

set and the experience to have the

70:24

opportunity to work at a place like the

70:26

Codeex team, like OpenAI or like an AI

70:28

startup. So like you know just become

70:29

this really great builder with with

70:32

these tools because the question that

70:34

comes up is often like should I start

70:36

with the theory? How important are the

70:38

basics? Should I just get really good at

70:40

using the tools?

70:41

>> Yeah. I think there are two things that

70:43

are important is a deep deep curiosity

70:46

for how things work um and an ability to

70:49

like you know train yourself to

70:51

understand things very quickly and so

70:53

it's it's it is the case that things

70:55

will continue to change but people that

70:57

do extremely well at OpenAI are like you

71:00

know people that just sort of like are

71:01

able to like gro uh a system quickly and

71:05

like you know also dive into like a new

71:07

code base and sort of like know make

71:08

sense of it. Um but obviously like all

71:11

of that is helped with agents um

71:13

nowadays, right? So just like there's so

71:15

much information that you need to absorb

71:16

and like you know being able to

71:17

understand and reason through it and a

71:19

lot of that is asking good questions

71:21

really about you know how do things work

71:23

and just like going into like the five

71:25

W's which I think you know you can just

71:26

kind of keep digging and digging and

71:28

digging and you know you're learning

71:29

very very fast through that. The other

71:31

thing is being in tune with the

71:33

community or you know the people that

71:36

you're trying to solve a problem for.

71:37

It's like not everything is like solving

71:39

a direct problem. Sometimes you're

71:40

solving a problem that will be useful,

71:42

you know, to like another group of

71:43

people in the pursuit of like solving a

71:45

problem for humans. But just being crisp

71:48

about the taste or the needs or the

71:50

requirements uh and being able to think

71:52

clearly and like you know exercising

71:53

through this clarity of thought feels

71:56

really important to me. Like if you

71:57

can't explain what you're trying to

71:58

achieve, if you can't explain your

72:00

intent, if you don't have a tie to a

72:02

community, if you don't have the taste,

72:04

it's it's um it's going to be much

72:05

harder to do great work.

72:07

>> Awesome, TB. Well, thanks a bunch for

72:09

this conversation. This was awesome.

72:10

>> Thanks for having me.

72:12

>> I've always wanted to get together with

72:13

Tibo, and I'm glad that we finally made

72:15

it happen. I appreciated how Tibo talked

72:18

about not just the upsides of open

72:19

source, but also the downsides. most

72:21

notably how competitors can copy

72:23

features you [music] are just working on

72:24

in the open right now and then ship it

72:27

right before release and just how

72:29

[music] much this stings. Plus, you get

72:30

a lot of low-quality contributions that

72:32

you still need to somehow deal with.

72:34

Another interesting one was Tibo was

72:35

saying how the harness [music] is always

72:37

a step ahead of the model. From the

72:39

inside, the Codex team see their job as

72:41

building clutches for the model with the

72:43

harness, [music] the tools, and the

72:45

setup instruction. And then the next

72:46

version of the model will be trained to

72:48

need fewer of these clutches. I'll be

72:50

honest, as a dev, this sounds a little

72:52

demotivating that the stuff I build in

72:55

the next version of the model, it'll

72:56

[music] just know and we can get rid of

72:58

it. Plus, I do suspect that it's not

73:01

just about building these clutches, but

73:04

also building tools that models will

73:06

use. And it's not like the next version

73:07

of the model will reinvent an MCB

73:09

protocol or scales or plugins. At least

73:11

I hope not. I also enjoyed hearing what

73:14

the merge merging chat GPC and codeex

73:16

look like from the inside. It was

73:18

merging a previously fully local coding

73:20

agent, Codeex, [music] into a managed

73:22

cloud-based stack and doing it efficient

73:24

enough so that it can be included in

73:26

OpenAX $20 per month plan when $20 is

73:29

not all that much in terms of compute

73:31

purchase. It was pretty amusing to hear

73:34

how CODC itself acted as a journalist of

73:36

the whole project [music] as it was

73:37

present in all the Slack conversations

73:39

and all the documents and so it could

73:40

capture all the important debates and

73:42

decisions. I'm not going to lie, [music]

73:44

this part felt a little bit of a big

73:46

brother feel to it where the AI is

73:48

always watching, but it could well

73:50

become the new normal in startups in the

73:52

future. [music] I've not yet decided how

73:54

I feel about this. And finally, I

73:56

appreciated Tibo's advice for engineers

73:57

to succeed. Be curious, [music]

74:00

understand symptoms quickly, and be in

74:02

tune with the group you are building

74:03

for. It's reassuring to hear from Tibo

74:05

as well how much the fundamentals

74:06

[music]

74:07

still matter. Do check out the show

74:09

notes below for deep dives on how

74:10

codecs, clock code, and cursor were

74:12

built and other related topics. If you

74:14

like what you heard, please hit a rating

74:16

on a podcast player that [music] you're

74:17

using. It means a lot to me and to the

74:19

show. Thanks, and I'll see you in the

74:21

next

Interactive Summary

This episode features Tibo from the OpenAI team, discussing the origin, evolution, and engineering philosophy behind Codex. The conversation covers why the team chose to build in Rust, the strategic benefits and downsides of building in the open, the process of merging Codex into ChatGPT, and how the role of human code review and maintenance is shifting as AI agents become more capable. Tibo also provides insights into how the team uses Codex to plan, review, and ship software.

Suggested questions

4 ready-made prompts