00:00.000 --> 00:03.052
So we actually came up with a new metric
which we call merge efficiency.
00:04.088 --> 00:07.770
How many builds on a branch does it take
before you can merge something to main?
00:07.770 --> 00:13.974
And the really successful companies are
seeing the same sort
00:13.974 --> 00:16.995
of merge rate or higher as they get
better,
00:16.995 --> 00:20.947
right? And everything is increasing
because they're applying AI,
00:20.947 --> 00:23.309
they're creating more PRs, they're
creating them faster,
00:23.309 --> 00:25.300
they're creating even bigger ones,
00:25.300 --> 00:28.542
yet still faster and still merging faster.
00:28.542 --> 00:32.704
The sort of median company is creating a
lot.
00:32.856 --> 00:37.201
more builds on a branch because their work
is broken and it fails and
00:37.201 --> 00:41.245
it fails and it fails and it fails and
then they finally get it merged into main
00:41.525 --> 00:44.118
or whatever your default branch is that we
assume goes to production.
00:43.556 --> 00:44.556
Sure.
00:44.483 --> 00:45.483
Yep.
00:46.186 --> 00:49.757
And your final productivity, you're doing
a lot more work.
00:49.757 --> 00:52.678
You're using more tokens and more energy
and whatever.
00:52.678 --> 00:55.879
But then the final output is kind of the
same.
00:55.879 --> 00:56.879
And so that's
00:56.356 --> 00:57.356
Mm.
00:56.839 --> 01:00.010
a really interesting gap. We've been
trying to help people solve the for that
gap,
01:00.010 --> 01:03.051
right? Like, how do you get more
confidence earlier?
01:03.051 --> 01:06.392
How do you steer your agent? Assuming
you're using an agent to build
01:06.412 --> 01:11.033
How do you steer your tools so that you're
getting good outcomes earlier?
01:11.033 --> 01:14.955
Rob Zuber is a veteran software leader
with over two decades of startup
experience,
01:14.955 --> 01:18.658
currently serving as the chief technology
officer at CircleCI.
01:18.658 --> 01:23.221
He joined the company back in 2014
following Circle CI's acquisition of
Distiller,
01:23.221 --> 01:26.283
a continuous integration and deployment
platform that he co-founded.
01:26.283 --> 01:30.366
Prior to that, Rob established a strong
track record as a serial entrepreneur,
01:30.366 --> 01:33.178
co-founding technology companies such as
Copius and Yoohoot
01:34.012 --> 01:38.135
Currently, he oversees product innovation
and leads CircleCI's globally distributed
01:38.135 --> 01:42.388
engineering team. And today, Rob Zuber is
our guest on the Engineering with
01:42.388 --> 01:43.388
AI podcast.
02:00.939 --> 02:03.120
cool. Rob, thank you so much for coming on
the show today.
02:03.120 --> 02:04.311
We really appreciate having you on.
02:05.315 --> 02:06.315
Yeah, thanks for having me, Kyle.
02:06.239 --> 02:07.239
I'm excited to be here.
02:07.523 --> 02:12.664
Yeah, awesome. Well it's I'm I'm really
keen to to find out more about your
specific
02:12.664 --> 02:14.895
position at Circle CI. ~ you know,
02:14.895 --> 02:18.536
I'm I'm on teams that use it. So I'm I'm
curious to know like
02:17.456 --> 02:18.456
Mm-hmm. Awesome.
02:18.536 --> 02:20.346
what you know about like what all's going
on.
02:20.346 --> 02:25.218
~ but let's start with you. you you caught
the little bit of a bio that I read back.
02:25.218 --> 02:27.449
what would you add to that? what do you
think about when you think about your
02:27.449 --> 02:28.680
career? What story would you tell?
02:28.680 --> 02:29.680
Yeah.
02:29.830 --> 02:31.631
Yeah, it's it's a great question.
02:31.631 --> 02:34.223
I mean I despite being forced to talk
about it all the time,
02:34.223 --> 02:35.223
I don't think about it that much.
02:35.173 --> 02:38.486
But I think, you know, w when what one of
the things that happens to me
02:38.486 --> 02:40.087
a lot is people ask me, you know,
02:40.087 --> 02:42.849
what advice do you have for me as sort of
someone entering software?
02:42.373 --> 02:43.373
Mm. Mm-hmm.
02:42.849 --> 02:43.849
And there's
02:43.519 --> 02:45.390
two reasons I have no advice for them,
02:45.390 --> 02:47.192
or I could say this is what I did,
02:47.192 --> 02:48.993
but you know, maybe I don't know if that's
gonna help you.
02:48.993 --> 02:52.335
One, obviously AI is changing everything
and I'm just having this conversation
02:51.291 --> 02:52.313
Yeah. Mm-hmm.
02:52.335 --> 02:55.117
with juniors all the time of like I don't
even know what you should
02:55.117 --> 02:56.568
be thinking about learning. Like,
02:56.568 --> 02:57.568
let's learn together.
02:57.842 --> 02:58.842
Which is really
02:57.927 --> 02:58.927
Mm-hmm.
02:58.362 --> 02:59.913
interesting and different. I can't just,
02:59.913 --> 03:04.366
you know, my my sage advice from 25 years
ago is totally useless at this point,
03:04.366 --> 03:09.270
right? And the other is I I came into
software after graduating college.
03:09.270 --> 03:11.341
So I didn't study, I didn't study computer
science.
03:11.341 --> 03:14.093
~ I studied engineering physics for
whatever that's for.
03:14.093 --> 03:15.464
So I mean I technical background,
03:15.464 --> 03:16.684
but but ~
03:16.085 --> 03:17.085
Yeah.
03:16.965 --> 03:21.057
sort of it was the late 90s, it was the
original dot-com boom.
03:21.057 --> 03:25.550
I mean, anybody kind of that was
interested in finding a job was was moving
into
03:25.572 --> 03:26.572
~ tech.
03:27.323 --> 03:28.984
But then continued that pattern.
03:28.984 --> 03:30.985
I spent some time doing product
management,
03:30.985 --> 03:32.495
some time doing business development,
03:32.495 --> 03:36.667
some time teaching. And so I think a lot
of that exploration,
03:36.667 --> 03:39.528
~ you know, I always came back to
software,
03:39.528 --> 03:40.528
~
03:40.177 --> 03:41.177
Mm.
03:40.529 --> 03:45.511
but helped me build a really good
understanding as an executive of what
03:45.511 --> 03:50.584
my my partners and my colleagues need from
me and a lot more empathy.
03:50.584 --> 03:51.974
Like I think it's pretty classic
03:51.548 --> 03:52.548
Mm.
03:51.974 --> 03:53.775
as a software engineer to be like,
03:54.331 --> 03:55.872
What do these salespeople even do?
03:55.872 --> 03:56.872
We build
03:56.336 --> 03:57.336
Yeah.
03:56.422 --> 03:57.422
everything,
03:57.023 --> 03:58.582
they just get paid for it. You know,
03:58.582 --> 04:04.617
like this kind of nonsense. Spend five
minutes watching a salesperson do their
job,
04:04.617 --> 04:08.179
and you'll be like, I wouldn't have the
slightest clue how to make this work.
04:08.179 --> 04:09.179
Right. Like I
04:08.453 --> 04:09.453
Yeah, yeah, yeah.
04:09.140 --> 04:11.301
would be terrified of every single part of
this.
04:11.301 --> 04:12.882
And I I I remember a few moments,
04:12.882 --> 04:16.685
both as an engineer supporting salespeople
in the field,
04:16.685 --> 04:19.028
and then as someone again doing business
development and sort
04:19.028 --> 04:20.267
of sales-related activities.
04:20.987 --> 04:23.168
~ just being like, no, I know what I'm
good at,
04:23.168 --> 04:26.179
and it's not this. And I'm so thankful
there are people who are good at this,
04:24.653 --> 04:27.117
Yeah. Yeah, yeah. They they do this all
the time.
04:26.179 --> 04:28.469
right? Like, cause then because then when
you go and build companies,
04:27.117 --> 04:28.696
Yeah. Yeah.
04:29.450 --> 04:31.720
you like early, you have to do all those
jobs,
04:31.720 --> 04:34.651
which is another great way to get that
rounded experience to allow you
04:34.651 --> 04:36.462
to become an executive that isn't just
like,
04:36.462 --> 04:37.632
I know how to write software now,
04:37.632 --> 04:38.632
how do I run a company
04:37.851 --> 04:38.851
Yeah, yeah.
04:38.422 --> 04:44.094
sort of thing? ~ but you're so thankful
when people show up with like tons
04:44.094 --> 04:46.795
of experience, you know, doing that job.
04:45.157 --> 04:47.480
Right. Know how it's actually done.
04:46.795 --> 04:47.825
~
04:48.314 --> 04:49.914
Yeah, exactly. Like, you know,
04:49.914 --> 04:52.266
ev even at Circle CI where I I joined,
04:52.266 --> 04:56.648
we were about ~ I think 14 people or
something when when three of
04:56.648 --> 04:59.630
us joined through that acquisition ~ that
you mentioned of Distiller,
04:59.630 --> 05:03.952
you know, we were doing sales for a long
time.
05:03.952 --> 05:06.874
And when the first, you know, proper
salespeople came in,
05:06.874 --> 05:09.185
I was like, thank you for being here.
05:09.185 --> 05:11.066
I'm so glad that I don't you know,
05:11.066 --> 05:14.158
like I I I'm okay. I'm not afraid to talk
to customers,
05:14.158 --> 05:15.939
but there's just, you know,
05:16.453 --> 05:18.204
The process, the steps you go through,
05:18.204 --> 05:20.945
the repeatability, all of it is just not
what what you do.
05:20.945 --> 05:23.726
Right. But I I do think dabbling,
05:23.726 --> 05:25.527
getting some experience,
05:24.335 --> 05:25.484
Mm-hmm. Breath.
05:25.527 --> 05:27.318
you know, playing a salesperson on TV,
05:27.318 --> 05:28.869
whatever, like it gives you enough,
05:28.869 --> 05:32.180
again, empathy and then understanding of
what those folks
05:29.713 --> 05:32.002
Yeah. Yep.
05:32.180 --> 05:35.932
need from you. Cause I think technical
people really get into like,
05:35.932 --> 05:39.984
I explain my technical details and it's
very logical.
05:39.984 --> 05:41.875
So I don't understand why you don't
understand.
05:40.913 --> 05:42.453
Mm. ~
05:42.247 --> 05:43.641
Do you know what mean? And learning
05:42.453 --> 05:43.470
right, right. Mm-hmm.
05:43.641 --> 05:46.751
how other people think and what they're
listening for and what they need
05:46.751 --> 05:49.048
out of a conversation or about out of your
information,
05:48.103 --> 05:49.784
It was different. Yeah.
05:49.048 --> 05:50.048
I think is is really
05:50.465 --> 05:51.916
Yeah. Yeah. For sure. For sure.
05:51.916 --> 05:53.307
I I I love that you mentioned that.
05:53.307 --> 05:57.489
I will never forget the day working as
this is when I was at Bindley,
05:57.489 --> 05:59.267
a little software as a service company.
05:59.267 --> 06:00.732
We ended up getting acquired by Workday.
06:00.732 --> 06:05.323
And ~ I I was sort of on the front line of
a team that had I
06:05.495 --> 06:09.878
you know involved somewhat in the sale and
was part of the conversations about what
06:09.878 --> 06:12.179
we did and didn't have and what they did
and didn't need.
06:12.179 --> 06:14.641
And and then later you get in there and
you realize,
06:14.641 --> 06:17.343
there there was things you didn't know you
needed to tell us.
06:17.595 --> 06:18.806
You know, like they're they're
06:18.236 --> 06:19.236
Mm-hmm.
06:18.806 --> 06:22.478
thinking about the current solution and it
pisses me off in the following two ways.
06:22.478 --> 06:23.898
So you better have it better than that.
06:23.898 --> 06:26.030
But they don't tell you the hundred ways
in which it's already fine,
06:26.030 --> 06:27.280
you know? And so they don't
06:26.768 --> 06:27.768
Right.
06:27.280 --> 06:31.643
necessarily think to check and and you
don't think to ask and yeah,
06:31.643 --> 06:34.524
it's all just like we're all just sort of
crashing into each other in terms
06:34.524 --> 06:37.526
of how all this works. ~ and we're all
doing our best.
06:36.337 --> 06:37.337
Yeah. Yeah.
06:37.526 --> 06:41.008
And I can remember being on the other side
when you're not involved with that
06:41.008 --> 06:42.269
and you're just like, What on earth?
06:42.269 --> 06:43.950
Who said yes to this deal? You know?
06:43.950 --> 06:44.960
And you learn some
06:44.165 --> 06:45.165
Right. Right.
06:44.960 --> 06:46.311
empathy of like, okay, actually.
06:46.531 --> 06:48.112
It's not as easy as it sounds,
06:48.112 --> 06:51.686
right? It it feels like you ought to just
be able to check all these details,
06:51.686 --> 06:53.457
but you kinda can't in the end.
06:53.457 --> 06:58.639
It's yeah, it's I mean, the kind of
asymmetry of hindsight,
06:58.639 --> 06:59.639
meaning
06:59.242 --> 07:00.242
Yeah.
06:59.979 --> 07:00.979
one
07:00.229 --> 07:03.771
person looked at it without the hindsight
and then another person comes along
07:03.771 --> 07:05.401
and looks at it, you know, after the fact.
07:05.401 --> 07:06.401
And
07:05.611 --> 07:06.611
Right.
07:06.081 --> 07:11.083
it's like it's every engineer walking into
someone else's code base is,
07:11.083 --> 07:13.980
you know, you don't even have to take it
to like selling a deal or whatever.
07:11.113 --> 07:13.097
Yeah, yeah. Everything's terrible.
07:13.097 --> 07:16.503
I hate all of this. Yeah. Yeah,
07:13.980 --> 07:16.685
You're like, why would anyone have ever
done this this way?
07:16.503 --> 07:17.503
yeah.
07:16.685 --> 07:17.685
But
07:17.846 --> 07:20.787
but someone very rational, right?
07:20.799 --> 07:21.799
Did. Yeah.
07:21.823 --> 07:24.066
Who would happily look at you some of your
stuff and be like,
07:24.066 --> 07:26.309
what on earth? Right. They they
07:24.681 --> 07:26.086
Yeah, for sure.
07:26.309 --> 07:29.583
had a different context. They were they
had half the information that you now
have,
07:29.583 --> 07:32.036
all those things, right? And ~ I yeah,
07:32.036 --> 07:33.548
I think there's a huge amount in there,
07:33.548 --> 07:36.272
even within our own domain, but then
especially across domains,
07:36.272 --> 07:40.167
to just say, wow, like there's so many
things about this that I don't understand.
07:36.755 --> 07:38.976
Hundred percent. Well
07:40.577 --> 07:42.477
and I like how you mentioned AI is
changing everything.
07:42.477 --> 07:44.628
That I mean that is partially what we're
here to talk about.
07:44.628 --> 07:45.919
And it is true, right?
07:44.970 --> 07:45.970
Yeah. Yeah.
07:45.919 --> 07:49.360
Like this this feels like one of the
biggest changes in my career.
07:49.360 --> 07:51.061
And it sounds like our careers are about
as long.
07:51.061 --> 07:54.143
~ so so let's get into that. Like when
you're using
07:53.707 --> 07:54.707
Mm-hmm.
07:54.143 --> 07:57.044
these tools, when you're sitting down to
do technical work,
07:57.044 --> 07:58.464
if you're keeping your skills sharp,
07:58.464 --> 08:01.276
~ or or you know, organizing, you know,
08:01.276 --> 08:04.087
strategy or anything else, like what what
tools are you reaching for
08:04.760 --> 08:07.562
~ as part of your day to day like
practitioner work these days.
08:07.562 --> 08:08.562
Yeah.
08:08.265 --> 08:11.297
Yeah. And ~ just before I talk about
specific tools,
08:11.297 --> 08:13.579
it's worth saying, because you you kind of
said if this or that,
08:13.579 --> 08:18.862
like I I am. I I'm thinking strategically
we're a software developer tool company.
08:18.862 --> 08:24.576
In order to do that, I can't not I for the
way my brain works and the
08:24.576 --> 08:26.207
way that I think about what our customer
needs,
08:26.207 --> 08:30.811
I can't not use the tools. if I'm just
reading blog posts and saying this
08:30.811 --> 08:32.452
is probably the direction we should go as
a company,
08:32.452 --> 08:33.972
I feel disconnected from my people.
08:33.972 --> 08:35.443
I just feel disconnected from my
customers.
08:35.443 --> 08:37.075
So I am a very hands-on learner.
08:37.772 --> 08:41.714
~ and so I'd say i the basics,
08:41.714 --> 08:48.264
right? I mean, I spend a decent amount of
time with both Claude and ChatGPT.
08:48.264 --> 08:49.266
It kind of depends on the day.
08:49.266 --> 08:50.327
I have funny stories about
08:49.941 --> 08:50.941
Mm-hmm.
08:50.327 --> 08:52.868
how they interact with me and their
personas that some days I'm just
08:52.868 --> 08:54.528
not comfortable with one of them versus
the other,
08:54.528 --> 08:57.039
but it doesn't matter. So a bunch of just
like,
08:57.039 --> 08:58.626
how would I go about this? You know,
08:58.626 --> 09:02.411
what what would be what tools are
available to me to try to achieve this
thing?
09:02.411 --> 09:03.562
What does good look like in this case?
09:03.562 --> 09:06.283
And I always end up in this weird
situation where then.
09:06.655 --> 09:09.797
You know, if I'm using one of the more
chat tools as opposed to like codex
09:09.797 --> 09:13.420
or claw code, they'll spit out some code
and I go,
09:13.420 --> 09:15.111
What am I doing with this tool?
09:15.111 --> 09:18.263
I should be, you know, in a terminal right
now.
09:18.263 --> 09:19.364
Like if you're gonna give me code,
09:18.901 --> 09:20.582
Right. Right. Right.
09:19.364 --> 09:20.595
let me go to and then I
09:20.595 --> 09:24.007
I let's say I'm in clo like Claude Chat.
09:24.007 --> 09:27.029
Then I'll go to Claude Code and say,
09:27.029 --> 09:30.792
Your friend Claude Chat told me and then
like paste some stuff.
09:30.419 --> 09:32.904
Yeah, yeah. huh. Yeah.
09:30.792 --> 09:32.413
I don't know why. I feel it's really
important.
09:32.413 --> 09:33.413
Like, I
09:32.993 --> 09:34.865
haven't been cheating on you, Claude Code.
09:34.865 --> 09:35.865
Like I'm
09:35.667 --> 09:38.218
I'm seeing your brother Claude on the side
or whatever.
09:38.218 --> 09:42.391
Like it's a very weird thing. And ~ I
don't know why.
09:42.391 --> 09:47.814
Like I it and I I try so hard in a way not
to personify
09:47.814 --> 09:49.895
or anthropomorphize like these tools,
09:48.159 --> 09:50.886
Yeah, I know. But it's hard. Yeah.
09:49.895 --> 09:53.197
but they try really hard to have me do
that.
09:50.886 --> 09:54.927
That's right. To anthropomorphize
themselves.
09:53.197 --> 09:55.118
And so there's like this weird
interaction.
09:54.927 --> 09:55.927
Yeah.
09:55.118 --> 09:57.329
Anyway, so so I, you
09:57.329 --> 09:59.190
know, codex and claude code I use,
09:59.190 --> 10:00.641
I wouldn't say interchangeably,
10:00.641 --> 10:03.593
but sometimes I feel like I'm going down a
weird
10:04.467 --> 10:07.820
rabbit hole or something or feel like I'm
off track and I I'll find opening
10:07.820 --> 10:11.783
up another one. ~ mostly because it's
going to give me a different model.
10:11.783 --> 10:14.536
Right. And then of course I've dabbled in
pi (agent SDK) and open weight models
10:14.536 --> 10:17.218
and other stuff just to kind of see where
the state of those
10:15.467 --> 10:17.820
Mm-hmm. Okay. Cool.
10:18.048 --> 10:21.702
because that matters to me in terms of
like everybody's talking about token cost
10:21.702 --> 10:24.284
management. Everybody's talking about like
the evolution of these tools
10:22.623 --> 10:25.393
Yeah, yeah. Yep.
10:24.284 --> 10:25.845
and whatever and optionality.
10:25.845 --> 10:32.821
And but I will switch between sometimes
just for like a fresh perspective.
10:33.344 --> 10:36.486
I guess, right? Like, hey, I got the you
know,
10:36.486 --> 10:37.746
this was built by something else.
10:37.746 --> 10:40.317
~ you know, what's your take on it?
10:40.317 --> 10:41.317
Is there another, you know,
10:40.757 --> 10:41.757
Mm-hmm.
10:41.108 --> 10:44.489
w look at or or you know, and sometimes
I'll do this with the same tool.
10:44.489 --> 10:46.630
Like, okay, cool, we built that together.
10:46.630 --> 10:49.467
One, we have some internal review tools
that we've constructed.
10:49.467 --> 10:52.253
I think everybody's built some review
tools of some point,
10:52.253 --> 10:54.824
right? But like now put your adversarial
hat on,
10:54.824 --> 10:56.095
right? Like if you were checking for this
10:55.637 --> 10:56.637
Mm-hmm.
10:56.095 --> 10:57.756
specifically, do you see
10:58.844 --> 11:02.656
You know, do you see patterns that don't
align with our coding standards?
11:02.656 --> 11:04.427
Do you see issues with security?
11:04.427 --> 11:07.749
Like we we have a bunch of tooling to kind
of force that cycle.
11:07.749 --> 11:09.987
~ a lot of this is is, you know,
11:09.987 --> 11:14.533
we're we're homegrowing and solving our
problems in an effort to build things
11:14.533 --> 11:16.274
we think will solve our customers'
problems.
11:16.274 --> 11:17.274
~
11:16.351 --> 11:17.351
Yeah, yeah.
11:17.294 --> 11:19.325
and so we're, you know, we're trying to
get stuff out there,
11:19.325 --> 11:22.067
but then we're also trying to push the
limits internally and see what what works
11:22.067 --> 11:25.859
and what doesn't. ~ but I think that like
both
11:27.051 --> 11:30.173
Fresh perspective, some and also
sometimes,
11:30.173 --> 11:34.495
you know, like the model providers are
having so many issues with capacity that
11:34.495 --> 11:37.797
sometimes it's just like who who's gonna
answer my query right
11:37.797 --> 11:44.551
now is another driver. So like we we as an
organization earlier this
11:44.551 --> 11:47.942
year, so funny, it feels like it was maybe
10 years ago at the rate that things
11:47.942 --> 11:49.543
are changing, right? But earlier this
year,
11:49.543 --> 11:56.117
we we had been in a place where we were
encouraging folks to go explore any tools.
11:57.045 --> 11:59.316
Pick any of the tool any of the AI tools
off the shelf,
11:59.316 --> 12:01.536
you know, we and we had subscriptions to a
bunch of different ones.
12:01.536 --> 12:03.117
Like we were doing the evaluation,
12:03.117 --> 12:04.627
are we comfortable with their terms of
service,
12:04.627 --> 12:06.177
that kind of stuff. But then saying within
this,
12:06.177 --> 12:09.558
within this pool, because we're a
developer tool provider,
12:09.558 --> 12:12.959
we want people to have experience with all
these tools.
12:12.959 --> 12:18.241
And we found two things. One, a number of
our folks might be trying these things,
12:18.241 --> 12:19.761
but not really giving feedback.
12:19.761 --> 12:21.782
So it wasn't actually valuable to us.
12:20.325 --> 12:22.366
Mm. Mm.
12:21.782 --> 12:22.782
So it
12:22.432 --> 12:25.603
was better to constrain down to a
particular tool set.
12:25.603 --> 12:26.603
And two,
12:27.263 --> 12:30.565
While we like to believe that every
engineer wants to futz about with
12:30.565 --> 12:33.366
all these different tools and is gonna be
really excited about them and whatever,
12:33.366 --> 12:35.288
a lot of people were just like,
12:34.271 --> 12:36.401
Yeah, right. I wanna get my work done.
12:35.288 --> 12:36.869
I have work to get done.
12:36.401 --> 12:37.429
Yeah. Mm-hmm.
12:37.809 --> 12:40.250
Either tell me how to use it and I'll use
it,
12:40.250 --> 12:44.543
or don't tell me and I won't try any of
this stuff because you told me I need
12:44.543 --> 12:46.274
to get this thing done by next week or
whatever,
12:46.274 --> 12:47.945
which is like whatever. It's a such.
12:46.678 --> 12:47.969
I love this. You're you're you're playing
12:47.969 --> 12:49.640
into my into my next set of questions,
12:49.640 --> 12:53.103
right? We we normally sort of open with
like what tools you like versus like what
12:53.103 --> 12:54.944
are you seeing in the time teams you
observe
12:54.739 --> 12:55.739
Yeah.
12:54.944 --> 12:55.944
and and
12:55.925 --> 12:57.006
and it's and it's interesting,
12:57.006 --> 12:59.758
Rob. I mean, you obviously as a tech
leader,
12:59.758 --> 13:01.129
you've got your own team, right,
13:01.129 --> 13:03.841
that you serve and you've got your own
observations there.
13:03.841 --> 13:06.804
But I wonder, like, given your role at
Circle CI,
13:06.804 --> 13:08.705
like you can kind of see what we're all
doing.
13:08.705 --> 13:10.026
what insight does that bring you?
13:10.026 --> 13:15.921
Yeah. And we do. ~ we we have this report
that we put out.
13:15.921 --> 13:17.251
We used to put out every year.
13:17.251 --> 13:18.251
I think
13:17.603 --> 13:18.603
~
13:17.932 --> 13:19.613
we still do like the annual version of it,
13:19.613 --> 13:21.334
right? It's called the state of software
delivery report,
13:21.334 --> 13:23.966
where we started from, you know,
13:23.966 --> 13:27.865
pre-AI era. I think we're in year seven or
eight or something.
13:27.865 --> 13:31.362
~ pre-AI era, you know, Dora metrics,
13:31.362 --> 13:34.134
what can we see about how you know PR
throughput and what
13:32.195 --> 13:33.996
Yeah. Yeah.
13:34.134 --> 13:36.005
like what's actually flowing through the
system?
13:36.389 --> 13:37.389
Mm-hmm.
13:36.389 --> 13:37.389
So a lot,
13:36.749 --> 13:39.842
a lot of what's out there is
survey-driven,
13:39.842 --> 13:42.074
self-reported, which is valuable for sure.
13:42.074 --> 13:46.948
And developers' perception of what's
happening is often more valuable than
what's
13:46.948 --> 13:48.219
actually happening, right? In some cases,
13:48.219 --> 13:52.392
as you're trying to diagnose, but people
don't have the best memories,
13:52.392 --> 13:53.903
right? I can't remember what I had for
lunch.
13:53.123 --> 13:55.029
Right. Right.
13:53.903 --> 13:55.164
So, like, can I remember how many
13:55.164 --> 13:56.906
PRs I got through last week? Like,
13:56.906 --> 13:57.906
not necessarily,
13:57.039 --> 13:58.039
Mm-hmm.
13:57.847 --> 13:59.348
but the systems will tell us, right?
13:59.348 --> 14:02.891
So we do this large analysis across our
entire customer base.
14:02.891 --> 14:05.623
And ~ and we've actually gone to
14:05.829 --> 14:09.911
putting out quarterly updates now because
the state of software delivery
14:09.911 --> 14:12.242
is changing so quickly that
14:11.909 --> 14:12.909
Yeah.
14:12.242 --> 14:14.394
comparing year over year numbers is just
like,
14:14.394 --> 14:15.954
wait, I what was happening last year?
14:15.954 --> 14:17.575
I don't even remember, right? So,
14:17.575 --> 14:20.626
one of the really interesting things that
we saw earlier this year
14:20.626 --> 14:22.198
and we've been seeing continue.
14:22.198 --> 14:25.119
I mean, unsurprisingly we see significant
spreads,
14:25.119 --> 14:30.502
right? Like the difference between median
and P95 is shocking.
14:30.502 --> 14:33.914
And ~ in particular something that shows
up in
14:34.233 --> 14:37.075
In CI numbers, that's been quite telling
is
14:37.636 --> 14:44.400
the difference between increased rate of
branch builds,
14:44.400 --> 14:46.762
which I'll explain why this matters in a
second,
14:46.762 --> 14:49.764
and the rate of main builds, right?
14:49.752 --> 14:50.752
Okay. Yep.
14:49.764 --> 14:50.764
So
14:51.386 --> 14:55.368
if I'm I'm we're seeing significant
increase in CI consumption,
14:55.368 --> 14:58.471
leading companies. So we actually came up
with a new metric which
14:58.471 --> 14:59.992
we call merge efficiency.
15:01.028 --> 15:04.710
How many builds on a branch does it take
before you can merge something to main?
15:04.710 --> 15:10.914
And the really successful companies are
seeing the same sort
15:10.914 --> 15:13.935
of merge rate or higher as they get
better,
15:13.935 --> 15:17.887
right? And everything is increasing
because they're applying AI,
15:17.887 --> 15:20.249
they're creating more PRs, they're
creating them faster,
15:20.249 --> 15:22.240
they're creating even bigger ones,
15:22.240 --> 15:25.482
yet still faster and still merging faster.
15:25.482 --> 15:29.644
The sort of median company is creating a
lot.
15:29.796 --> 15:34.141
more builds on a branch because their work
is broken and it fails and
15:34.141 --> 15:38.185
it fails and it fails and it fails and
then they finally get it merged into main
15:38.465 --> 15:41.058
or whatever your default branch is that we
assume goes to production.
15:40.496 --> 15:41.496
Sure.
15:41.423 --> 15:42.423
Yep.
15:43.126 --> 15:46.697
And your final productivity, you're doing
a lot more work.
15:46.697 --> 15:49.618
You're using more tokens and more energy
and whatever.
15:49.618 --> 15:52.819
But then the final output is kind of the
same.
15:52.819 --> 15:53.819
And so that's
15:53.296 --> 15:54.296
Mm.
15:53.779 --> 15:56.950
a really interesting gap. We've been
trying to help people solve the for that
gap,
15:56.950 --> 15:59.991
right? Like, how do you get more
confidence earlier?
15:59.991 --> 16:03.332
How do you steer your agent? Assuming
you're using an agent to build
16:03.332 --> 16:05.883
or s some version of that, right?
16:05.883 --> 16:10.744
How do you steer your tools so that you're
getting good outcomes earlier?
16:11.248 --> 16:12.248
Interesting.
16:11.290 --> 16:12.290
With less
16:11.800 --> 16:13.461
effort, less token spend, et cetera,
16:13.461 --> 16:17.022
so that your your merge ratio goes back
up,
16:17.022 --> 16:21.663
right? It takes me one or two builds to
know the thing is good to then merge it,
16:21.663 --> 16:24.444
right? Versus like I'm creating all of
this,
16:24.444 --> 16:27.094
you know, it's like all heat, but it's all
friction.
16:27.094 --> 16:29.975
So I, you know, all I've or like I've
dissipated all of that energy.
16:29.975 --> 16:31.516
This is where my physics background,
16:30.404 --> 16:32.470
Yeah. Yeah.
16:31.516 --> 16:32.866
like I always like to use physics
analogies.
16:32.886 --> 16:35.567
But like we had all this energy,
16:35.567 --> 16:36.917
and yes, energy was conserved,
16:36.917 --> 16:39.488
but it's been dissipated into the
environment as heat instead
16:38.830 --> 16:39.830
Yeah.
16:39.488 --> 16:40.488
of.
16:40.091 --> 16:41.824
Light. Yeah.
16:40.347 --> 16:41.878
Turning into actual, like, yeah,
16:41.878 --> 16:43.599
light and output output to our customers.
16:43.599 --> 16:48.222
Right. So ~ it's super interesting to see.
16:48.222 --> 16:52.865
And I would say the spreads are getting
bigger,
16:52.865 --> 16:57.658
not smaller. Right. And so if you if you
imagine,
16:57.658 --> 17:02.041
and lots of people have used exp
expressions like AI as an amplifier,
17:02.041 --> 17:03.902
right? Like if you're if you
17:02.810 --> 17:03.832
Absolutely. Yeah.
17:03.902 --> 17:05.443
have brokenness in your organization,
17:05.443 --> 17:09.224
you just see them brokenness in more stark
contrast than you
17:08.900 --> 17:09.900
Yep.
17:09.224 --> 17:10.224
did before.
17:09.887 --> 17:12.421
If you made messes before, you're gonna
make them faster now.
17:10.604 --> 17:13.345
And right.
17:12.421 --> 17:13.421
Yep.
17:13.405 --> 17:15.675
Really big ones. And you're still not
going to get stuff out.
17:15.675 --> 17:17.646
So, like, if you were really good,
17:17.646 --> 17:21.067
right? If we're all moving along the track
and like some of us are slightly ahead
17:21.067 --> 17:25.468
or whatever, the really good folks are
going way faster.
17:25.468 --> 17:29.809
And the people who were struggling are
still struggling.
17:29.809 --> 17:35.301
So their their velocity hasn't really
changed if you're talking about like
actual
17:35.301 --> 17:38.442
impact to customers, right? Like we could
debate story points all day long.
17:38.442 --> 17:39.442
But like
17:39.386 --> 17:42.307
the actual impact to customers that you're
delivering isn't really shifting
17:42.307 --> 17:46.410
and the folks that really have it dialed
or realized how they needed
17:46.410 --> 17:48.751
to get things dialed really quickly in
order to be able to take advantage
17:48.751 --> 17:52.273
of the tools, those folks are breaking
away from the pack.
17:52.273 --> 17:55.034
So the spread is is even bigger.
17:55.480 --> 17:58.791
That's really interesting. I I wondered I
if you would say something like,
17:58.791 --> 18:01.172
people are like starting stuff and
starting stuff and starting stuff
18:01.172 --> 18:03.093
and it's never finishing. That that was my
own,
18:03.093 --> 18:04.284
especially early on,
18:03.864 --> 18:04.864
Mm.
18:04.284 --> 18:05.824
you know, experience was like,
18:05.824 --> 18:09.076
you're so good at greenfield, I'm just
gonna greenfield all the greenfield.
18:09.076 --> 18:10.076
And and it's like, wait, wait,
18:10.053 --> 18:11.126
wait, I'm not shipping anything.
18:11.126 --> 18:12.847
But but I
18:12.249 --> 18:13.249
Yeah.
18:12.887 --> 18:13.887
I love what you're talking about.
18:13.784 --> 18:19.990
So so to your point, the the better
organizations ~ sort of have less time
18:19.990 --> 18:23.051
on branch then and and fewer builds before
it actually gets merged
18:23.051 --> 18:24.652
and and actually gets shipped and
deployed.
18:25.486 --> 18:26.486
Yeah.
18:25.498 --> 18:26.498
and
18:25.769 --> 18:29.263
one assumes released versus ~ there's
there's this other sort
18:29.263 --> 18:32.137
of set of organizations which you know
that they're spending more time
18:32.137 --> 18:36.312
on that feature branch. ~ and so were they
doing that before
18:36.312 --> 18:39.656
and now they're spending even longer or
did the other ones get faster
18:39.656 --> 18:41.238
or both or help me with that part.
18:42.085 --> 18:46.387
Yeah, I think we've seen an increase in
the kind of
18:47.067 --> 18:50.128
not great branch build.
18:50.128 --> 18:53.647
Although there's a second like thinking of
my own experience,
18:53.647 --> 18:56.691
there's a secondary factor there that I
don't know if we've been able to isolate.
18:56.691 --> 19:00.132
So, but we're seeing more total builds,
19:00.132 --> 19:05.574
right? Take that more total builds in a in
a leading organization,
19:05.574 --> 19:08.526
and more of those will be on main trunk,
19:08.526 --> 19:09.646
whatever you happen to call that.
19:11.150 --> 19:14.641
take a struggling organization and it'll
be more just piling up on branches.
19:14.641 --> 19:16.612
Right. One of the interesting,
19:15.322 --> 19:16.322
Yeah, yeah.
19:16.612 --> 19:20.934
like, because I personally ~ am working
had been working on something,
19:20.934 --> 19:23.825
but I was like, you know, I'm I I'm in a
bit of a tough spot.
19:23.825 --> 19:26.687
I spend a lot of time in meetings and then
a bit like a big week might come
19:26.687 --> 19:27.787
up where I don't have a lot of time.
19:27.787 --> 19:29.838
And so maybe I'm not a great example,
19:29.838 --> 19:33.990
but I know this is real for folks where I
I get something to complete.
19:33.990 --> 19:36.081
And then the next day I'm like,
19:36.081 --> 19:39.312
yeah, maybe I'll maybe I'll actually get
it put up in a PR today or whatever.
19:39.684 --> 19:43.125
But let me just rebase because so much
activity has happened.
19:42.874 --> 19:43.874
Mm-hmm. Mm-hmm.
19:43.125 --> 19:44.125
And it's not just
19:43.936 --> 19:47.007
a git rebase anymore because you can do so
much work.
19:47.007 --> 19:48.007
It's like,
19:47.396 --> 19:48.396
Yeah.
19:47.888 --> 19:53.700
cool, take this intent and reapply it to
main so that it's not a massive diversion.
19:53.700 --> 19:56.841
I'm looking for, you know, I'm looking for
merge conflicts that aren't just this
19:53.924 --> 19:57.452
Right. Right. Yep.
19:56.841 --> 19:58.232
line was changed in two places,
19:57.452 --> 19:59.116
Right.
19:58.232 --> 19:59.252
but this
19:59.252 --> 20:00.453
no longer makes sense together,
20:00.453 --> 20:03.734
or another capability was implemented that
we were leveraging.
20:03.734 --> 20:05.355
So we have to adjust our implementation,
20:05.355 --> 20:07.406
right? And so sometimes my merge
20:07.576 --> 20:12.858
Or my my branch build count is high
because every day I just rebased
20:13.018 --> 20:15.950
in hopes that maybe that day I would get
the thing done and actually be able
20:15.950 --> 20:17.160
to put it up. Or maybe I put it up
20:16.836 --> 20:17.836
Right.
20:17.160 --> 20:19.821
in a PR and it sat there and a different
thing got merged.
20:19.821 --> 20:21.942
And so like that, that kind
20:21.594 --> 20:22.594
Yeah.
20:21.942 --> 20:25.664
of ~ like merge conflict.
20:24.080 --> 20:26.101
But when you rebase, you found more
changes
20:26.101 --> 20:28.432
than you would have a year ago.
20:28.432 --> 20:32.194
~ a year ago there would have been like a
couple of new files,
20:32.194 --> 20:34.315
but you know, there wouldn't have been a
lot of wholesale change,
20:34.315 --> 20:38.117
but now it's like nope, it moves I'm this
is the assumption I'm making based
20:37.903 --> 20:39.754
Yeah, yeah, exactly. Like
20:38.117 --> 20:39.608
on what you're saying. Yeah.
20:39.948 --> 20:40.948
Yeah.
20:40.995 --> 20:42.855
and this is on I won't call it greenfield,
20:42.855 --> 20:44.636
but something we're building that's pretty
new.
20:44.636 --> 20:45.777
And so
20:45.136 --> 20:46.136
Yeah.
20:46.077 --> 20:50.219
we might one morning, like every every
stand up every morning is like
20:50.219 --> 20:53.391
a pretty deep discussion about where's the
market and what do we want
20:53.391 --> 20:55.131
to do today and what did we learn from
yesterday.
20:55.131 --> 20:57.323
Not like still working on this ticket.
20:57.323 --> 20:59.354
Like no one's still working on that
ticket.
20:57.838 --> 21:00.438
Yeah. Right. Yeah.
20:59.354 --> 21:00.354
You know what I mean? It's like
21:01.208 --> 21:02.208
I mean, other than me,
21:01.898 --> 21:03.199
because I got distracted by meetings or
whatever.
21:03.199 --> 21:04.380
But like it's like you you know,
21:04.380 --> 21:05.619
those were stand-ups back in the day.
21:05.619 --> 21:07.141
It's like, well, it's day four.
21:06.842 --> 21:07.842
Yeah. Yeah.
21:07.141 --> 21:08.141
I'm still working on
21:07.782 --> 21:09.181
this ticket. Maybe I don't know what I'm
doing.
21:09.181 --> 21:10.473
Could someone help me? Right. Like,
21:10.262 --> 21:11.262
yeah yeah yeah.
21:10.873 --> 21:12.764
and now it's like, well, I did those seven
tickets,
21:12.764 --> 21:15.736
right? And like, you know, Tuesday we have
a chat,
21:15.736 --> 21:17.276
we agree on something, and by Wednesday,
21:17.276 --> 21:20.078
we fundamentally re-architected some part
of the system.
21:19.876 --> 21:20.876
Yeah, right.
21:20.078 --> 21:21.078
And
21:20.739 --> 21:22.360
then that thing that we were stringing
along,
21:22.360 --> 21:23.360
we're like, you know, you're like,
21:23.210 --> 21:26.362
which of these two major re-architectures
can we land first?
21:26.362 --> 21:28.983
And then we'll rebuild the other one on
top of that,
21:28.983 --> 21:29.983
right? And
21:30.436 --> 21:33.818
That would be so frustrating five years
ago.
21:34.053 --> 21:35.053
Yeah.
21:34.439 --> 21:36.788
And now I'm like, hey, buddy, because I,
21:36.788 --> 21:40.083
you know, I totally have turned my agents
into friends now.
21:40.083 --> 21:42.665
Hey, buddy, hate to tell you, but you
know,
21:42.665 --> 21:44.946
Maine has totally changed. Can you just
21:44.324 --> 21:45.324
Ha ha
21:44.946 --> 21:48.789
reapply this? And Buddy, who might be
codex or Claude or whatever that day,
21:48.789 --> 21:52.211
is like, no problem. That's you you pay me
to do that.
21:50.446 --> 21:53.708
Yeah, yeah. Ego less, yeah.
21:52.211 --> 21:53.552
So I'm happy to do it, right? I'm
21:53.793 --> 21:57.265
I'm serving the goal of whichever
foundation shop is getting all
21:57.265 --> 21:58.746
the token money right now. So
21:58.384 --> 21:59.384
Yeah, yeah, yeah.
21:59.322 --> 22:00.663
Yeah, I'll have at it. And so,
22:00.663 --> 22:05.115
like that you yes, exactly. You're making
like
22:05.355 --> 22:09.818
big thematic changes and then reapplying a
different goal on top
22:09.818 --> 22:14.160
of those thematic changes as opposed to
like the little angle brackets
22:14.160 --> 22:15.541
to the right and left that say,
22:15.541 --> 22:17.562
someone changed this function call,
22:17.562 --> 22:19.537
they added this parameter, and you added
this parameter.
22:18.970 --> 22:21.750
Right. Right. Yeah.
22:19.537 --> 22:21.344
You're like, cool, I'll put both
parameters
22:22.025 --> 22:25.056
and find the two call sites, and now I can
merge it,
22:23.886 --> 22:25.568
Right. Right.
22:25.056 --> 22:26.056
right? Because
22:25.597 --> 22:27.828
that's the amount that someone else could
have done.
22:28.143 --> 22:29.143
In that amount of time.
22:28.812 --> 22:29.812
in
22:28.972 --> 22:30.302
the period where I was, you know,
22:30.302 --> 22:31.604
where we were sort of conflicting.
22:31.604 --> 22:32.604
And so I I think
22:31.844 --> 22:32.844
That's interesting.
22:32.495 --> 22:38.580
that that that whole area of of merging
intent
22:37.969 --> 22:38.969
There's like a hygiene
22:38.829 --> 22:43.752
now around ~ you need to get it into Maine
faster almost,
22:43.752 --> 22:46.813
~ somehow. You so working even smaller,
22:46.813 --> 22:49.955
even more atomically i is the solution
that pops into my head.
22:49.955 --> 22:50.955
I wonder what you think though.
22:50.935 --> 22:51.935
Yeah.
22:51.854 --> 22:52.854
Yeah,
22:52.224 --> 22:55.886
I think I think the reason we're driven is
22:54.756 --> 22:55.798
Well, yeah.
22:55.886 --> 22:59.048
that we can drive bigger changes in a
small amount of time,
22:57.902 --> 22:59.715
Yeah, yeah, yeah, yeah, yeah, right,
22:59.048 --> 23:04.651
right? Like if I can write a thousand
useful lines of code,
22:59.715 --> 23:02.080
right. So that's not gonna happen.
23:02.080 --> 23:05.367
~ Right.
23:04.651 --> 23:07.773
like good, productive, useful lines of
code in an hour or two,
23:05.367 --> 23:08.002
Right. Right.
23:08.293 --> 23:10.594
do you want me to ship you 10 of those at
a time?
23:10.594 --> 23:13.006
Right? Like, hey Kyle, here's another PR.
23:13.006 --> 23:15.147
Like, what you know, here's and here's
one,
23:15.147 --> 23:17.488
and here's one, and here's what like that
wouldn't actually make sense,
23:17.488 --> 23:20.402
right? Like, yeah.
23:18.160 --> 23:20.461
Well, okay, I've had two guests say that
23:20.461 --> 23:25.783
they do that on purpose. One said that
he's basically always telling Claude for
him,
23:25.783 --> 23:31.265
~ that like we what we do in this is going
to be ten lines of code or fewer.
23:31.265 --> 23:33.780
That'll be like a constraint that he'll
give it.
23:33.780 --> 23:34.780
and
23:34.117 --> 23:35.117
Mm-hmm.
23:34.687 --> 23:38.198
and another guest ~ said for s for similar
reasons,
23:38.198 --> 23:39.509
but it's a different approach,
23:39.509 --> 23:44.091
was like, Okay, tell me what pull requests
we're going to do.
23:44.091 --> 23:46.752
So like really thinking it ahead of time
in terms of
23:46.414 --> 23:47.414
Yeah.
23:47.172 --> 23:50.503
We're not just gonna this isn't just gonna
be this giant ball that we're we're gonna
23:50.503 --> 23:53.246
we're gonna plan this out. ~ but I'm with
you.
23:53.246 --> 23:57.869
I think y one is sort of like trying to
avoid and pretend it's not happening
23:57.869 --> 23:59.880
and and the other is sort of like trying
to well,
23:59.880 --> 24:01.381
it is happening, but let's deal with it,
24:01.381 --> 24:02.762
you know, let's let's plan for this.
24:02.244 --> 24:03.244
Yeah.
24:03.242 --> 24:07.425
~ but you're right though. Like the the
idea that we're all gonna be as atomic
24:07.425 --> 24:10.247
as we used to be, yeah, that was a naive
point on my on my point,
24:10.247 --> 24:11.478
I think. Yeah. Sorry, go ahead.
24:12.612 --> 24:14.774
I mean, we're all figuring it out.
24:14.774 --> 24:15.774
I think a little bit
24:15.172 --> 24:16.172
Yeah.
24:15.534 --> 24:18.597
depends on your on your code base,
24:18.597 --> 24:20.008
the maturity of that code base,
24:20.008 --> 24:21.008
the maturity
24:20.302 --> 24:21.302
Yeah.
24:20.619 --> 24:23.151
of your business. Although I would argue
that like it's
24:23.151 --> 24:26.037
not just software development that's been
threatened by AI or changed by AI.
24:25.998 --> 24:28.021
Yeah. Yep.
24:26.037 --> 24:27.504
Like everyone's business model
24:28.565 --> 24:30.407
is immature all of a sudden, right?
24:30.407 --> 24:32.509
Because it's like, what is my business
model in this world?
24:32.509 --> 24:35.611
And so like rate of change,
24:35.611 --> 24:39.014
ad adaptability, all of those things are
more important.
24:39.014 --> 24:41.096
and
24:42.725 --> 24:46.017
That means, I mean,
24:46.017 --> 24:50.230
one of the things that that means to me is
we have to not just be throwing stuff
24:50.230 --> 24:52.952
out like here's an enormous PR and here's
an enormous PR and it seems to work.
24:52.952 --> 24:58.175
So let's just keep going. Because we do
have to be capable of changing and
adapting,
24:58.175 --> 25:02.778
right? Which is one of the reasons we put
a lot of energy into our design,
25:02.778 --> 25:04.089
into small incremental change,
25:04.089 --> 25:06.240
into making sure that other people
understood it.
25:06.240 --> 25:08.501
So then if you go kind of first
principles,
25:08.501 --> 25:10.853
like those were our goals, right?
25:10.853 --> 25:12.314
But a lot of those were aimed at.
25:12.644 --> 25:17.176
The human developer, right? Like a book
that I read three years ago,
25:17.176 --> 25:18.546
four years ago, I can't remember,
25:18.546 --> 25:20.277
called The Art of Readable Code.
25:20.277 --> 25:21.277
I think that's the name of it.
25:21.124 --> 25:22.124
Mm, mm.
25:22.048 --> 25:27.050
Right. Super interesting. I I was super
passionate about readable code
25:27.034 --> 25:28.897
Sure. Yeah.
25:27.270 --> 25:28.931
for all the reasons that I
25:28.931 --> 25:32.232
I need humans to be able to make safe
future changes.
25:32.232 --> 25:35.714
Right. But I think, I'm not sure yet,
25:35.714 --> 25:36.754
we're trying to figure it out.
25:36.754 --> 25:40.866
Readable to a human and readable to an
agent are different.
25:40.856 --> 25:41.856
gonna
25:40.997 --> 25:42.234
be different thing. Yep.
25:42.508 --> 25:45.730
And so the goal was safe,
25:45.730 --> 25:48.182
continued, safe future changes,
25:48.182 --> 25:50.013
therefore adaptability and velocity,
25:50.013 --> 25:55.137
right? And if I assume that my tool is me
prompting an agent,
25:55.137 --> 25:59.280
then the things that I looked at
originally when I saw agents write code
25:59.280 --> 26:02.262
or LLMs or whatever, we weren't really
like agentic or whatever yet,
26:02.262 --> 26:05.785
I was like, that's terrible. And I would
delete all their comments,
26:05.785 --> 26:08.086
you know, this doesn't look like the way
that I want it,
26:08.086 --> 26:09.287
whatever. And I'm like, but if that
26:08.216 --> 26:09.278
Yeah, yeah.
26:09.287 --> 26:10.287
makes the agent
26:10.482 --> 26:11.482
Right. Right.
26:10.948 --> 26:11.948
Work better
26:11.539 --> 26:15.893
on the next pass and is gonna in like lead
to higher chances of success.
26:15.893 --> 26:20.807
Why do I care? I'm not I'm not the primary
sort of like reader and writer
26:20.807 --> 26:22.279
of the of the code at this point.
26:22.279 --> 26:25.241
And I think we're gonna continue to to
shift and sort of like
26:25.762 --> 26:29.265
an emergent property that we will discover
of software
26:29.906 --> 26:36.412
is what is software that is highly
maintainable.
26:37.473 --> 26:39.054
If maintenance is the right tool,
26:39.054 --> 26:41.605
like with you know, can we componentize
and then just throw things
26:41.605 --> 26:42.626
out and replace them at you know,
26:42.626 --> 26:45.997
whatever that is? What does it look like
for long-term,
26:44.059 --> 26:47.328
Phoenix architecture right. Right.
26:45.997 --> 26:47.488
ongoing, sustainable,
26:47.488 --> 26:49.379
high-quality development driven by agents?
26:49.379 --> 26:50.379
And it'll
26:49.679 --> 26:50.679
Yeah.
26:50.050 --> 26:52.061
be everything from, yeah, like design,
26:52.061 --> 26:54.982
language selection, tooling choices,
26:54.982 --> 26:57.744
documentation, repo structure,
26:57.744 --> 26:59.985
like I'm sure we're gonna have mono repo,
26:58.350 --> 27:01.159
Yeah. Yeah, yeah, yeah, yeah, yeah,
26:59.985 --> 27:01.776
multi-repo debates again. You know,
27:01.159 --> 27:02.242
yeah. Yeah.
27:01.776 --> 27:02.776
like
27:02.886 --> 27:05.938
how do we enable these tools? And I think
we're we're still discovering that
27:05.938 --> 27:06.938
and we'll
27:06.500 --> 27:09.971
We'll see based on who's most successful,
27:09.971 --> 27:11.256
you know.
27:11.100 --> 27:12.100
Okay,
27:11.490 --> 27:14.542
so Roll, I I don't know that you'll have
an answer to this,
27:14.542 --> 27:15.923
but it occurs to me that you might.
27:15.923 --> 27:20.925
~ can you do you have any sort of like
economic indicators around like growth
27:20.925 --> 27:22.606
of hiring or shrinking of hiring?
27:22.606 --> 27:25.478
My my own anecdot, which, you know,
27:25.478 --> 27:26.478
is is
27:25.488 --> 27:26.488
Mm-hmm.
27:26.128 --> 27:28.980
never much to go on, is that most of my
guests have reported,
27:28.980 --> 27:31.991
like, I we actually haven't hired anybody
since AI,
27:31.991 --> 27:35.183
but nobody has talked too much about
having laid anybody off.
27:35.183 --> 27:37.034
Now, of course, there are high profile,
27:37.034 --> 27:38.615
you know, CEOs of Bangor Corps,
27:38.615 --> 27:40.316
and you can kind of assume
27:40.526 --> 27:41.526
l
27:40.806 --> 27:42.418
that they would have lots of reasons to do
that.
27:42.418 --> 27:46.962
~ but you have non anek data. You you have
actual data,
27:46.962 --> 27:49.114
maybe? Like can you see much there?
27:48.130 --> 27:51.322
Yeah. ~
27:51.743 --> 27:57.446
I would say what we look at is I well,
27:57.446 --> 28:02.330
I mean, we we have we have both and we
don't always know like when we look
28:02.330 --> 28:03.741
at our data, we have to do some like,
28:03.741 --> 28:06.313
okay, but who's that company and what do
we know about them sort of thing,
28:06.313 --> 28:11.566
right? Like so you have organizations that
are raising enormous amounts
28:11.566 --> 28:16.400
of capital and you know, growing on like
very
28:16.963 --> 28:19.314
investment driven growth and they are
hiring.
28:19.314 --> 28:24.198
And then we see a lot of our base staying
the course,
28:24.198 --> 28:26.879
but growing their delivery velocity,
28:26.879 --> 28:30.317
right? Like they're again without judging
whether they're getting customer outcomes,
28:30.317 --> 28:31.753
we're seeing more builds, more throughput,
28:31.753 --> 28:32.753
more creation.
28:32.208 --> 28:33.208
Yep. Yep.
28:33.183 --> 28:39.608
And and so a lot of what we think about is
in the way that you calculate
28:39.608 --> 28:41.699
net dollar retention, I think is mostly an
engineering
28:41.977 --> 28:43.897
like audience, but so maybe I'll explain
it for a second.
28:43.897 --> 28:47.341
But like you take a cohort and say from
that cohort in the future,
28:47.341 --> 28:51.865
what is our revenue based on the s the
people that were here at this time
28:51.865 --> 28:53.686
a year ago, right? As like net dollar
retention.
28:52.922 --> 28:53.922
Uh-huh.
28:53.686 --> 28:59.551
~ and so you can think of like net
pipeline retention as a number almost like
28:59.551 --> 29:04.905
are we growing from the same number of
like projects and the same number
29:04.656 --> 29:07.097
Mm. Mm.
29:04.905 --> 29:06.996
of users sort of thing. Like so we can see
29:07.317 --> 29:09.518
some health in our business independent of
the other things we're doing.
29:09.518 --> 29:11.257
Like we're signing new customers and all
that kind of stuff,
29:11.257 --> 29:12.257
right?
29:12.098 --> 29:15.112
And we definitely see growth within a
cohort,
29:15.112 --> 29:17.975
despite not a ton of growth. I mean,
29:17.975 --> 29:19.247
again, it's different company by company,
29:19.247 --> 29:22.060
but like a lot of organizations are pretty
stable.
29:20.644 --> 29:22.677
Right. Right.
29:22.060 --> 29:23.060
Although
29:23.002 --> 29:25.064
we we had a really interesting as you
know,
29:25.064 --> 29:26.656
you can only trust your data so much.
29:26.656 --> 29:28.428
What we see is who's committing,
29:28.428 --> 29:31.108
right? So we see more.
29:33.444 --> 29:35.164
The GitHub IDs, let's call it,
29:35.164 --> 29:37.545
associated with a project over a period.
29:35.182 --> 29:38.300
Right, right. Mm-hmm.
29:37.545 --> 29:38.906
Right. And so we're like, cool,
29:38.300 --> 29:40.898
More humans, yeah.
29:38.906 --> 29:40.686
they hired engineers to do this.
29:41.146 --> 29:44.387
And I was in a conversation recently where
we said,
29:44.387 --> 29:46.308
~ you know, we were talking to a customer.
29:46.308 --> 29:47.888
We we see you've done a lot of hiring.
29:47.888 --> 29:49.149
Like, are you are you doing a lot of
hiring?
29:49.149 --> 29:50.829
And they were like, No, we haven't.
29:50.829 --> 29:53.830
And we're like, that's odd. Like,
29:52.058 --> 29:55.318
Hmm. Your count of GitHubes went up?
29:53.830 --> 29:55.651
and it what what we learned
29:56.431 --> 30:00.182
was everyone in the organization is now
committing.
30:01.284 --> 30:03.655
So they're designers and their PMs and
everybody.
30:03.655 --> 30:05.645
So they hadn't hired net new people,
30:05.645 --> 30:10.817
but they had fundamentally changed the way
they work such that to us,
30:10.817 --> 30:12.598
we're like, there's net new contributors,
30:12.598 --> 30:16.949
and our simple brains are like there's
more engineers in the organization.
30:16.949 --> 30:18.220
But what they explained
30:17.487 --> 30:18.487
No, it's not
30:18.220 --> 30:20.210
to us was actually happening, they had
hired some people,
30:20.210 --> 30:23.752
and then they had more people contributing
to the project,
30:23.376 --> 30:24.708
That's amazing. And you hear about
30:23.752 --> 30:24.752
right?
30:24.708 --> 30:25.960
that, you know, and you wonder,
30:25.960 --> 30:29.596
well, you know, the anthropic product
manager goes on a podcast
30:29.596 --> 30:30.908
and says that's happening and you're like,
30:30.908 --> 30:33.442
cool, but but but you're to your point,
30:33.442 --> 30:35.655
you're seeing actual proof of that beyond
just,
30:35.257 --> 30:36.257
Yeah.
30:35.896 --> 30:36.896
yeah.
30:36.398 --> 30:41.269
Right. And it's not like necessarily the
designer showed up and launched like
30:41.269 --> 30:44.541
50 PRs that week right next to the
engineer who put up 50 PRs
30:44.541 --> 30:45.961
or whatever the numbers are like these
days.
30:45.961 --> 30:49.710
But you know, we say, we we see people and
of course,
30:49.710 --> 30:52.024
you know, if you model it, you'd this is
30:51.512 --> 30:52.512
Interesting.
30:52.024 --> 30:53.694
a new engineer, therefore they've only,
30:53.694 --> 30:55.865
you know, they made a small amount of
contribution or whatever.
30:55.865 --> 30:59.557
But it's like at some point, we probably
could have done this a while ago.
30:59.557 --> 31:02.708
The designer is like, I mean, I don't know
if you remember the days,
31:02.708 --> 31:03.708
probably.
31:03.830 --> 31:07.221
they would like make a new Photoshop
image,
31:07.221 --> 31:09.181
right? With where the color and they want
you to
31:08.826 --> 31:09.826
Mm-hmm.
31:09.181 --> 31:11.942
like get the eyedropper and sample the
color and then change the color
31:11.492 --> 31:15.594
Yeah, yeah, yeah, yeah. Yeah. Yeah.
31:11.942 --> 31:15.023
on the button. I'm like, could you please
just edit the CSS?
31:15.023 --> 31:16.023
Like why why are
31:15.703 --> 31:18.424
we doing this? Right? Like this whole
process is ridiculous.
31:18.192 --> 31:22.505
Stop making me slice up PSDs. It is not
ninety-eight anymore.
31:18.424 --> 31:21.485
Right. my God. Yeah, exactly.
31:21.485 --> 31:24.726
Exactly. Right. I mean like slice
31:24.726 --> 31:27.206
it up into little images and try to place
them on the screen and whatever.
31:26.969 --> 31:27.969
Yeah.
31:27.206 --> 31:28.206
And
31:27.446 --> 31:31.228
and so, you know, we we absolutely have
that internally as well.
31:31.228 --> 31:32.888
Just like, just do it.
31:32.452 --> 31:33.452
Yeah.
31:33.230 --> 31:34.600
Right. And and
31:33.321 --> 31:34.551
Cool. Cool.
31:35.791 --> 31:36.841
yeah, I mean, we have the tools,
31:36.841 --> 31:38.552
we have the capacity. So we're we're
31:38.096 --> 31:39.096
Amazing.
31:38.552 --> 31:39.942
I mean, that's a little off of the hiring.
31:39.942 --> 31:42.743
We are seeing what you see on the news,
31:42.743 --> 31:46.105
you know, huge organizations thinning
31:43.236 --> 31:45.749
Yeah, yeah. Yeah.
31:46.105 --> 31:49.606
out, sometimes because they truly believe
AI is shifting things,
31:49.606 --> 31:52.517
sometimes because they're trying to come
up with a reason to justify what they're
31:52.517 --> 31:54.808
doing. And then we're seeing, you know,
31:53.304 --> 31:55.637
Zero interest rates over sure.
31:54.808 --> 31:55.808
yeah.
31:55.637 --> 31:57.310
I mean, yeah, all sorts of reasons.
31:57.310 --> 31:58.552
Yep. Interesting.
31:57.946 --> 31:58.946
company's taking
31:58.701 --> 32:00.011
off and and still hiring you.
32:00.688 --> 32:04.139
Cool. So okay, we ~ that that was really
fun.
32:04.139 --> 32:09.110
~ normally what we shift to ~ right after
like what tools you reach
32:09.110 --> 32:11.241
for is what you're seeing in teams that
you observe.
32:11.241 --> 32:13.612
And we've kinda had that nicely.
32:11.908 --> 32:12.908
Mm-hmm.
32:13.612 --> 32:14.612
You you've got all
32:14.282 --> 32:16.032
sorts of stories about sort of like all of
our teams.
32:16.032 --> 32:19.893
~ but let's let's zoom in a little bit and
to stu and into your
32:19.893 --> 32:21.284
own observations a little bit more,
32:21.284 --> 32:23.914
direct, ~ and less less just out of the
data.
32:23.914 --> 32:28.306
Wha how are you what are you seeing in
terms of how this well actually honestly
32:28.306 --> 32:29.626
you can answer from either position.
32:29.957 --> 32:30.957
But
32:30.167 --> 32:32.249
we'll we'll go through sort of S DLC left
or right.
32:32.249 --> 32:35.742
So how how what do you think you're seeing
change in terms of how
32:35.742 --> 32:37.783
we think about requirements? You know,
32:37.783 --> 32:40.671
in in the old days it might have been
epics and stories.
32:40.671 --> 32:43.108
~ for some organizations it might have
been B R D's,
32:43.108 --> 32:47.962
PRDs, whatever. are we just having the
agents write them now and
32:47.962 --> 32:51.345
the agents read them? Like what what what
are you seeing change in how
32:51.345 --> 32:52.866
all of that works here? Yeah.
32:53.540 --> 32:55.087
Yeah. So
32:57.464 --> 33:02.086
See the whole spectrum, ~ e even
internally,
33:02.086 --> 33:04.428
right? Even internally at Circle CI,
33:04.428 --> 33:06.809
I think the jury is very much still out.
33:06.809 --> 33:10.051
And part of that might be, you know,
33:10.051 --> 33:12.412
your background and the metaphor that you
cling to,
33:12.412 --> 33:15.374
and part of it might be like your
particular form of success that you've
33:15.374 --> 33:16.774
had with your tools that you're trying,
33:16.774 --> 33:22.277
right? And and we see,
33:22.277 --> 33:25.459
you know, like spec driven development,
33:25.459 --> 33:26.780
that whole sort of
33:27.674 --> 33:30.526
~ umbrella term, right, which means
different things to different people.
33:30.526 --> 33:33.568
And to your point, like sitting down and
hammering something out,
33:33.568 --> 33:36.991
maybe with with Claude or whatever you
happen to use,
33:36.991 --> 33:40.553
right? ~ can be really effective as a
thought partner.
33:40.553 --> 33:41.553
Like I think just saying, hey,
33:41.444 --> 33:43.255
I want to build a thing, can you write me
a spec?
33:43.255 --> 33:45.136
I might as well just say, hey,
33:45.136 --> 33:46.757
build me the thing. Right.
33:46.084 --> 33:47.084
Yeah, yep.
33:47.018 --> 33:48.759
But if I say, hey, okay, cool,
33:48.759 --> 33:49.880
let's go look at this company,
33:49.880 --> 33:51.031
I think they're very successful.
33:51.031 --> 33:52.031
They're one of our competitors.
33:52.021 --> 33:54.183
Like what's different about what they're
doing from what we're doing,
33:54.183 --> 33:55.874
right? And what
33:56.036 --> 33:57.557
What is no one considered, right?
33:57.557 --> 34:02.179
Like I I find these tools are really
helpful for giving me like my blind spots
34:02.179 --> 34:03.779
or like things I haven't thought of or
whatever.
34:03.779 --> 34:08.281
But I don't tend to find that sitting down
and like writing a long spec
34:08.281 --> 34:10.839
and trying to line it up and then we're
gonna do this and then we're gonna
34:10.839 --> 34:11.839
do this and then we're gonna do this.
34:11.822 --> 34:14.244
I mean, I'm like trying to waterfall my
agent at that point,
34:14.244 --> 34:15.244
right? That
34:14.543 --> 34:15.543
Right, right.
34:15.114 --> 34:17.804
doesn't that doesn't really work well for
me.
34:17.804 --> 34:23.547
I find that I can open up Claude Code or
Codex or like a coding agent,
34:23.547 --> 34:24.547
which
34:25.339 --> 34:27.909
Pretty much the chat bot plus writing code
better.
34:27.909 --> 34:31.132
And by the time I've figured out what I
want to build,
34:31.132 --> 34:33.413
I've built it. Right. I was like,
34:33.413 --> 34:36.295
if we should do that, then why don't you
go ahead and do that and I'll fire
34:36.295 --> 34:38.505
up another subagent or whatever and we'll
have a chat about
34:36.954 --> 34:38.357
Yeah. Mm-hmm.
34:38.505 --> 34:39.617
something else. It's like, cool,
34:39.617 --> 34:40.888
why don't okay, why don't you go do that?
34:40.888 --> 34:43.239
let's fix it like this. And so for me,
34:43.239 --> 34:46.501
like I'm often reasoning about the thing.
34:46.501 --> 34:48.141
If it's new, like if it's pretty novel,
34:48.141 --> 34:50.342
I'm reasoning
34:48.570 --> 34:49.748
Yep. Right.
34:50.342 --> 34:52.364
about it as I'm building it.
34:52.792 --> 34:55.263
Instead of reasoning about the document
that I'm going to write about
34:55.263 --> 34:57.623
how to build it, which then I'm going to
feed to some other agents,
34:57.623 --> 34:58.775
and then I'm going to come back and say,
34:58.775 --> 35:00.335
~ you all did it wrong, whatever.
35:00.335 --> 35:04.267
And so I I see people having success on
both ends.
35:04.267 --> 35:09.819
I lean towards the like, I think my whole
career I've thought about software
35:09.819 --> 35:13.031
by opening Vim. I know everyone's going to
yell at me and say that
35:13.031 --> 35:16.352
I should use Emacs or like get into the
2000s and get an IDE or whatever,
35:16.352 --> 35:19.684
but like opening and reading the code and
being like,
35:19.684 --> 35:20.684
okay, how does this work?
35:21.614 --> 35:24.165
What if I did it like this? Like make
little experiments and stuff.
35:24.165 --> 35:26.246
It's just the way that my my brain works.
35:26.246 --> 35:31.508
And so for me, I find there's less
ceremony up front,
35:31.508 --> 35:35.910
more like, and we ~ we're a a linear shop.
35:35.910 --> 35:38.151
So we, you know, we use linear tickets and
they're like
35:36.858 --> 35:38.295
Mm-hmm. Mm-hmm.
35:39.001 --> 35:41.552
half a sentence. We got distracted while
35:40.590 --> 35:41.590
Right. Right.
35:41.552 --> 35:42.783
we were writing the ticket, but someone's
like,
35:42.783 --> 35:44.013
Yeah, I think I was working on something
like that,
35:44.013 --> 35:47.645
you know? And and so because our space is
moving also,
35:47.645 --> 35:50.646
like in the and the part that I'm
particularly working on with the team that
35:50.646 --> 35:51.646
I'm working with.
35:51.644 --> 35:57.426
~ it's moving so quickly that like let's
lay out this plan for the next month
35:57.426 --> 35:59.367
or whatever. Like it just doesn't make a
lot of sense.
35:59.367 --> 36:02.729
It's very, you know, we're thinking it
through and we're trying things and
whatever.
36:02.729 --> 36:08.471
~ and so I I find that the spec is the
functioning code,
36:08.471 --> 36:10.072
you know, like and and
36:09.829 --> 36:10.829
Yeah, yeah.
36:10.642 --> 36:12.743
I find myself quoting the Agile Manifesto
a lot.
36:12.743 --> 36:16.064
Like back in 2000 or 2001, I think it was
2001,
36:16.064 --> 36:18.035
right? When that got written, you know,
36:18.035 --> 36:19.035
there's a statement,
36:20.613 --> 36:23.255
I I think it's functional software over
documents or something like that,
36:22.916 --> 36:26.059
Yeah. Mm-hmm. Mm-hmm. Working software
over documentation.
36:23.255 --> 36:26.667
right? And right,
36:26.059 --> 36:27.059
Yeah.
36:26.667 --> 36:28.848
right. Read it more recently than I have,
36:28.848 --> 36:33.001
or just have a better memory. And so that
like we can do that now.
36:33.001 --> 36:35.122
Right? We could do that in minutes.
36:34.458 --> 36:37.804
Yeah. Yeah, yeah. Yeah. Yep.
36:35.122 --> 36:36.323
Like, you want it to work like this here?
36:36.323 --> 36:37.384
Let me just try that real quick.
36:37.384 --> 36:38.384
And okay,
36:37.984 --> 36:40.376
let's try it. that's weird. It does have
this weird behavior.
36:40.376 --> 36:41.546
Well, we hadn't considered that.
36:41.546 --> 36:44.388
And to me, like that evolutionary,
36:44.388 --> 36:46.400
like that process of evolving software is
yeah,
36:44.941 --> 36:47.362
Immediacy is really addictive.
36:46.400 --> 36:49.952
is really right. But then go
36:47.362 --> 36:49.823
Yeah. Yeah. I I I work like you,
36:49.952 --> 36:50.952
ahead.
36:50.083 --> 36:52.844
for sure. I can relate to to what you're
talking about.
36:52.844 --> 36:56.616
Yeah. All the all the sort of spectrum
adherents are trying to convince
36:56.616 --> 36:58.147
me to to give up on my immediacy,
36:58.147 --> 37:00.047
but ~ but but that's a whole other show.
36:59.376 --> 37:01.758
Yeah, I do want
37:00.047 --> 37:01.328
Yeah. Okay.
37:02.018 --> 37:04.059
some things that will take a long time.
37:04.059 --> 37:05.059
Cause
37:04.549 --> 37:05.549
Yeah.
37:04.930 --> 37:07.462
I have this weird, like someone showed me
a chart of this that
37:07.462 --> 37:09.163
was that really resonated. But basically,
37:09.163 --> 37:13.686
like the feedback isn't immediate because
the agent goes and does something.
37:13.686 --> 37:15.247
But it's
37:14.062 --> 37:15.107
Yeah. Yeah.
37:15.247 --> 37:19.029
not far enough off that I can really get
engaged with something else,
37:19.029 --> 37:20.480
right? So I'm trying to find,
37:19.246 --> 37:20.331
Right, right, right, right.
37:20.480 --> 37:23.973
okay, can I give you a little and I have
built harnesses that
37:22.456 --> 37:23.819
Yeah. Right.
37:23.973 --> 37:27.775
are like goal seeking, like you'll know
you're done when you achieve this.
37:27.266 --> 37:28.397
Okay, yep. Mm-hmm.
37:27.775 --> 37:28.775
That
37:28.526 --> 37:32.978
That to me is I mean, it's different from
the like I write a like a markdown spec,
37:32.978 --> 37:33.978
but
37:33.306 --> 37:34.306
Mm-hmm.
37:33.669 --> 37:35.800
I will have an agent build up a harness,
37:35.800 --> 37:39.482
right? Which might just be my test suite
in a for loop,
37:39.482 --> 37:41.813
right? But like it's a little test driven
development.
37:41.813 --> 37:44.096
I think we started calling it harness
engineering because we didn't want
37:44.096 --> 37:45.645
to have any more debates about test driven
development.
37:45.645 --> 37:48.787
But like saying, Okay, like this is what
complete would look like,
37:48.787 --> 37:53.259
right? When you meet these w when this all
passes or this all works properly
37:53.259 --> 37:55.220
or whatever. And certainly I'll say things
like,
37:55.220 --> 37:56.501
Okay, what else haven't we thought of?
37:56.501 --> 37:57.892
What would break? And then
37:58.128 --> 37:59.628
Claude will this would break and this
would break.
37:59.628 --> 38:01.631
I'm like, Could you write tests that would
prove that that doesn't work?
38:01.631 --> 38:04.334
Absolutely. Great. Now can you make them
work?
38:03.246 --> 38:07.212
Yeah. Yeah. Yeah.
38:04.334 --> 38:06.586
Like that that cycle gets me longer
windows.
38:06.586 --> 38:07.586
And when I have longer
38:07.346 --> 38:10.009
windows, I open up another terminal and
start another agent kind of thing,
38:09.496 --> 38:11.207
And start another one. Yep. 100%.
38:10.009 --> 38:11.500
right? And it's like, Yeah. Yeah.
38:11.207 --> 38:12.207
Yep. Yep.
38:13.018 --> 38:18.440
Cool. Cool. Thank you. ~ the actual so
you've talked in there about
38:18.440 --> 38:20.732
we specification and thinking about
planning.
38:20.732 --> 38:23.433
And we talked about a little bit into the
actual development.
38:23.433 --> 38:24.804
You even touched on testing as well.
38:24.804 --> 38:28.245
~ any other changes in either I mean,
38:28.245 --> 38:31.447
obviously the the development itself is
the thing which has changed the most.
38:31.447 --> 38:32.447
So anything you
38:32.015 --> 38:33.015
Yeah.
38:32.017 --> 38:33.017
wanna say
38:32.337 --> 38:33.648
about that that isn't obvious.
38:34.229 --> 38:35.954
~ or or anything on the testing side.
38:35.954 --> 38:38.593
Like what what are you seeing there that
that as far
38:38.255 --> 38:39.255
Yeah.
38:38.593 --> 38:40.098
as change to our industry? Yeah.
38:40.815 --> 38:42.966
Yeah, so so probably two things.
38:42.966 --> 38:44.427
I would say on the development,
38:44.427 --> 38:49.460
like I just described designing and
interacting with the customer problem
38:49.460 --> 38:51.681
as the process of building. Like why I
might as well be built,
38:51.681 --> 38:53.632
right? By the time I figured it out.
38:53.632 --> 38:55.614
What's interesting to me about that,
38:55.614 --> 38:57.114
and I said this a little bit earlier,
38:57.114 --> 38:59.776
is our stand-ups with my team,
38:59.776 --> 39:03.118
which ranges from some other very senior
engineers down to like new grads.
39:03.118 --> 39:06.300
We talk every day about
39:06.862 --> 39:08.934
The business, the state of the business,
39:08.934 --> 39:11.797
the state of the market, what matters to
our customer.
39:11.797 --> 39:15.380
So that when those folks leave and spend a
day working on something,
39:15.380 --> 39:17.202
they can make those decisions as well.
39:17.202 --> 39:22.346
Right. So we're sort of like, and it's
probably a little weird because you're
39:22.346 --> 39:24.749
sitting with the CTO who like knows a lot
about the business or whatever,
39:24.749 --> 39:28.352
but but we're distributing the product
thinking.
39:28.352 --> 39:29.523
And we have a product
39:28.686 --> 39:29.686
Yeah, yeah.
39:29.523 --> 39:31.114
manager who's helping us as well,
39:31.114 --> 39:32.696
does a lot of the like,
39:33.454 --> 39:35.475
I went and looked at the metrics and it
looks like this is happening
39:35.475 --> 39:37.187
and whatever and brings that to our
discussions.
39:37.187 --> 39:41.161
but it's not like a product manager
writing tickets and handing them out to
people.
39:41.161 --> 39:42.492
Like if you move to this model,
39:42.492 --> 39:45.074
which is like we just we build and we
discover as we go,
39:45.074 --> 39:49.837
the engineers need to really understand
the problem we're trying to solve.
39:49.837 --> 39:51.309
We happen to build developer tools,
39:51.309 --> 39:53.821
which probably makes it a little easier to
have engineers that understand that.
39:53.584 --> 39:54.584
Right. Right.
39:53.821 --> 39:54.842
But junior
39:54.842 --> 39:59.066
engineers don't necessarily understand the
problems of like large engineering
39:57.914 --> 40:00.299
Yeah. That's right.
39:59.066 --> 40:00.487
systems, right? So we really have
40:00.487 --> 40:01.728
to bring those folks along.
40:02.364 --> 40:04.315
~ and I think it's I think it's a
worthwhile investment.
40:04.315 --> 40:06.786
I think that's how you build leaders in
your organization anyway.
40:06.786 --> 40:12.470
But I think we've had a split over the
last I always quote 25 years because it's
40:12.470 --> 40:13.987
kind of like I hell, I guess I've doing it
longer than that.
40:13.987 --> 40:19.163
my god. Anyway, ~ over that time into like
really product thinking engineers
40:19.163 --> 40:21.895
and then very sort of like ticket taking
engineers,
40:21.895 --> 40:22.895
right? And I think the
40:22.201 --> 40:23.201
Is it?
40:22.595 --> 40:25.497
ticket taking is is gonna be hard to
figure out in this world.
40:25.497 --> 40:27.978
So I think how we think about what we're
gonna build,
40:27.978 --> 40:30.810
it's not just that we don't necessarily
write out a long spec.
40:31.353 --> 40:35.614
It's that that requires an investment in
the people participating,
40:35.614 --> 40:37.955
that they really do have a good
40:37.092 --> 40:38.092
Yeah. Yep.
40:37.955 --> 40:40.566
understanding and are comfortable just
saying,
40:40.566 --> 40:42.436
like, hey, yo, I actually don't
understand.
40:42.436 --> 40:45.117
Like I did this and it doesn't seem like
it's working,
40:45.117 --> 40:47.367
or I went and talked to this other
engineer and they don't understand what
40:47.367 --> 40:48.828
I'm trying to tell them. I must be missing
something,
40:48.828 --> 40:51.418
like just creating that sort of that that
free flow.
40:51.418 --> 40:55.440
So then on the on the testing side,
40:55.440 --> 40:56.820
like, and we talked about this.
40:57.592 --> 41:00.723
you know, merge efficiency, like are my am
I getting all these failed builds
41:00.723 --> 41:04.425
on my branch, et cetera. ~ it is actually
part of what I've been working
41:04.425 --> 41:07.496
on with this team is like trying to shift
that earlier,
41:07.496 --> 41:14.239
meaning putting sort of what I would call
CI level validation into
41:14.239 --> 41:17.190
the hands of the agent. So as the agent is
working,
41:17.190 --> 41:18.951
we're saying, your test suite would pass,
41:18.951 --> 41:21.292
your test suite would pass. Actually your
test suite failed right now.
41:21.292 --> 41:22.822
Like here's some feedback about that.
41:22.822 --> 41:27.094
And then trying to build some tools around
that that increase the or val like
41:27.468 --> 41:30.550
check and then can help improve the
quality of the testing.
41:30.550 --> 41:32.912
Because I think one of the fears that we
have
41:31.693 --> 41:32.971
Mm-hmm. Yep.
41:33.372 --> 41:36.124
is if my agent writes the code and my
agent writes the test,
41:36.124 --> 41:37.986
like we've all been in this scenario where
the agent's like,
41:37.986 --> 41:40.157
well, this test passed, so I or this test
failed,
41:40.157 --> 41:41.458
so I deleted it. And you're like,
41:41.458 --> 41:43.600
that does get us to a green build,
41:43.600 --> 41:45.631
but it's not necessarily the green build
we wanted,
41:45.631 --> 41:48.163
right? Like well, we we needed to know
that that was failing.
41:48.163 --> 41:50.325
Let's fix the thing. Also,
41:49.828 --> 41:50.828
Yeah.
41:50.668 --> 41:54.458
you know, I for there's this like model
from the
41:54.896 --> 41:56.387
I think it was originally created in the
70s,
41:56.387 --> 41:58.919
like all cool things in software called
mutation testing,
41:58.919 --> 42:04.624
where you basically manipulate the
implementation and then check to
42:01.552 --> 42:06.819
Amen. Yep. Mm-hmm. I'll make sure it
actually fails.
42:04.624 --> 42:06.016
see whether your test would catch it,
42:06.016 --> 42:07.777
right? And it's
42:06.819 --> 42:07.819
Yeah. Yep.
42:07.777 --> 42:10.049
right. And it's like super expensive.
42:10.049 --> 42:12.822
And probably like these things were
invented in the 70s and nobody
42:12.822 --> 42:14.833
did them because it's like so much compute
power.
42:14.833 --> 42:19.087
But like we all have access to ridiculous
amounts of compute right now,
42:17.902 --> 42:20.740
Well, in the seventies we were probably
doing it by hand.
42:19.087 --> 42:22.276
right? So yeah, exactly.
42:20.740 --> 42:22.004
We're probably going in a l
42:22.285 --> 42:24.631
chain the
42:24.185 --> 42:25.185
What if I
42:24.665 --> 42:27.986
put some paper over this hole in the punch
card and I like punch
42:27.322 --> 42:28.322
Yeah, yeah.
42:27.986 --> 42:31.107
out this hole instead? So, so ~ yeah,
42:31.107 --> 42:33.107
we're, you know, we built some tooling
around that.
42:33.107 --> 42:38.168
and and trying to push all that to the
left and think about what else we could do
42:36.366 --> 42:38.165
Yeah. Yep.
42:38.168 --> 42:42.449
to improve the quality so that we have
really high confidence and we
42:42.449 --> 42:44.590
can get that confidence as early as
possible.
42:44.590 --> 42:46.850
So, so really like on the testing front,
42:46.850 --> 42:51.631
trying to create, again, improve the
quality of the testing and ensure that
42:51.631 --> 42:53.685
by the time we get to
42:54.190 --> 42:56.852
that place we're gonna run into the merge
conflicts and wait for the build time
42:56.852 --> 43:00.044
and all that stuff, that it's in really
good shape and we have really high
43:00.044 --> 43:03.336
confidence. And now we're just worried
about the merge as opposed
43:03.336 --> 43:06.118
to worried about like, does my thing even
pass the local test suite?
43:06.118 --> 43:09.911
Right. And I think for people with large
monoliths,
43:09.911 --> 43:11.312
which I think is a lot of people,
43:11.312 --> 43:13.493
right? Even people who have microservices
architectures,
43:13.493 --> 43:16.155
90% of their code is still in a giant
monolith somewhere.
43:16.155 --> 43:18.516
Those things are really hard to test,
43:18.516 --> 43:20.758
right? And they're really hard to test
locally usually.
43:20.758 --> 43:23.810
and so how do you kind of like
43:24.256 --> 43:26.617
We've built a bunch of different tools to
optimize testing.
43:26.617 --> 43:29.528
So, like the I guess the other thing when
we talk about testing that we're seeing
43:29.528 --> 43:31.539
we're feeling it, our customers are
feeling it,
43:31.539 --> 43:35.241
is like some fundamental queuing theory,
43:35.241 --> 43:41.124
right? Like your arrival rate of change is
escalating to the point where
43:41.504 --> 43:44.996
the the time spent executing or validating
that change,
43:44.996 --> 43:46.927
particularly if you have to serialize
that,
43:46.927 --> 43:48.647
right, as you get something out to deploy.
43:50.436 --> 43:52.237
You're gonna reach a point where the
arrival,
43:52.237 --> 43:58.161
like it's impossible to service the change
faster than the arrival rate.
43:58.161 --> 44:02.024
And as a result, you're going to
infinitely cue.
44:02.024 --> 44:07.008
Right. So then you have a real like you
have a real fundamental problem
44:07.008 --> 44:10.370
of the design of your system. And so then
it's like,
44:10.370 --> 44:11.911
okay, how fast can I get that?
44:11.911 --> 44:14.953
Like, how tight can I make that little
serialization point?
44:14.953 --> 44:18.906
Right. And how can I minimize the risk?
44:19.459 --> 44:21.400
Of us of something breaking at that point,
44:21.400 --> 44:23.722
right? Like, and there's there's
techniques that we have already
44:23.722 --> 44:27.534
and then other techniques that we're
introducing to try to to try to make that
work.
44:27.534 --> 44:30.036
And then that's where when I'm when we
talked about architecture,
44:30.036 --> 44:33.318
like yes, architecture for agents for them
to be able to reason about a system
44:33.318 --> 44:37.861
is is important. But then architecture of
the system in terms of how do
44:37.861 --> 44:42.204
I get that throughput, right, at some cost
optimized approach,
44:42.204 --> 44:44.325
in a way that I'm not just gonna
44:44.801 --> 44:46.475
know, queue all night and be waiting.
44:46.475 --> 44:48.068
Mm you know, I come in Tuesday morning,
44:48.068 --> 44:50.283
I'm still waiting for Monday night's
builds to go out so that we
44:50.283 --> 44:51.606
can start working again, sort of thing.
44:51.536 --> 44:52.536
I
44:51.626 --> 44:55.048
see. I see. Got it, gotta gotta 'cause I
was I was about to to ask you,
44:55.048 --> 44:57.829
like, okay, we we talked earlier about how
changes tend to be bigger now,
44:57.829 --> 45:00.440
but you're you're talking about optimizing
that loop and making sure that
45:00.440 --> 45:03.282
it doesn't but but to your point that's
sort of in the overnights then where it's
45:03.502 --> 45:06.483
going to the mutation extras and and all
these other things.
45:06.483 --> 45:07.483
Yeah.
45:06.628 --> 45:07.628
Well, I think I
45:07.148 --> 45:12.172
think it's all I I've I've met companies
where they're they're building
45:12.172 --> 45:14.634
up so much backlog over the course of the
day.
45:14.634 --> 45:17.172
I'm gonna say they're primarily not Circle
CI customers.
45:17.172 --> 45:21.140
They're building up so much backlog over
the course of the day that they're hoping
45:21.140 --> 45:22.781
that when they come back in the morning,
45:22.781 --> 45:24.592
yesterday's stuff will be done.
45:24.592 --> 45:27.525
And I'm just talking about like the builds
that were piling up waiting
45:27.456 --> 45:30.465
Mm. Yeah. ~ wow. Wow.
45:27.525 --> 45:30.187
to go through, right? And so, I mean,
45:30.187 --> 45:31.228
the the
45:30.465 --> 45:31.465
~
45:31.228 --> 45:33.300
goal of C D is the immediacy, right?
45:33.300 --> 45:34.510
Like, we just broke production.
45:34.510 --> 45:36.312
Awesome. That's 'cause I hit merge four
minutes ago.
45:36.802 --> 45:37.802
Right. Not
45:36.805 --> 45:37.805
Right.
45:37.974 --> 45:40.267
three o'clock in the morning, someone's
getting page 'cause their three
45:40.267 --> 45:42.600
PM thing finally made it to production.
45:42.600 --> 45:46.394
Right. So I there is some like just how do
we again,
45:46.394 --> 45:49.038
how do we optimize this and minimize it to
Yeah.
45:46.434 --> 45:49.265
Okay, no, I I get it. You're you're
45:49.265 --> 45:53.899
you're helping me flash back to client
sites I got to play with and sort
45:53.899 --> 45:56.101
of twenty seventeen, eighteen where yeah,
45:56.101 --> 45:59.013
t like QA wouldn't get something for,
45:59.013 --> 46:01.214
you know, like a month because they were
so queued up.
46:01.214 --> 46:04.266
and to your point, like all the jobs were
waiting on the other jobs in front
46:04.266 --> 46:05.737
of them in the c in the CI. Okay,
46:05.242 --> 46:06.242
Yeah.
46:05.737 --> 46:06.918
fine. Yeah, yeah, yeah, yeah, yeah.
46:06.918 --> 46:09.320
Right. Yes, fair points. Okay,
46:09.320 --> 46:10.320
cool.
46:09.946 --> 46:12.814
So yeah, sp speed matters a lot now.
46:12.984 --> 46:15.146
Yeah. Yeah. Yeah. For sure. Yeah.
46:15.146 --> 46:17.658
Otherwise it that that Q just grows even
faster.
46:17.658 --> 46:23.593
Hmm. W what do you think change in terms
of like infrastructure and and
46:23.593 --> 46:27.716
how we think about like how we ship ~ and
~ those kinds of things.
46:29.155 --> 46:33.976
Yeah. ~ AI begets AI.
46:33.976 --> 46:40.528
That's one thing I would say. Like we're
as we move faster with less less,
46:40.528 --> 46:44.059
I'm gonna say less comprehensive
understanding of every detail,
46:44.059 --> 46:48.210
right? Like we've got the same number of
humans with the same brains processing
46:47.150 --> 46:49.655
Yeah. Yep. Mm-hmm.
46:48.210 --> 46:49.760
way more change, right? So
46:49.760 --> 46:53.001
the likelihood is higher that we put
something into a production environment
that
46:53.001 --> 46:58.262
we don't fully understand. ~ and we are
building all the tools that I mean we are
46:58.436 --> 47:00.226
Building it for ourselves, but like as a
software industry,
47:00.226 --> 47:03.197
there's a ton of investment going into the
tools to make that as safe as possible.
47:03.197 --> 47:06.468
Right. And in many cases, it's gonna be
safer than what we did before.
47:06.468 --> 47:10.149
Like, you know, we could spend a sidebar
on humans reviewing PRs,
47:10.149 --> 47:12.350
like, were you even paying attention while
you're reviewing that?
47:12.350 --> 47:14.211
Like, so so there's that,
47:12.424 --> 47:13.985
I know. huh.
47:14.211 --> 47:16.231
but then but then you so you get stuff
into production.
47:16.231 --> 47:18.752
I mean, ~ like telemetry, observability,
47:18.752 --> 47:21.823
like pick your favorite word is gonna be
critical,
47:21.823 --> 47:26.074
right? Because and what I will say.
47:26.368 --> 47:31.379
Think about debugging production systems
is I know people,
47:31.379 --> 47:36.711
I know engineers who are not great at
debugging the thing they just wrote.
47:37.136 --> 47:38.136
Mm-hmm.
47:37.691 --> 47:41.932
And I know engineers who are great at
debugging a system they've never seen
before.
47:41.932 --> 47:42.932
So
47:42.192 --> 47:43.192
Mm-hmm.
47:43.913 --> 47:47.414
we're gonna be probably more in that
latter category,
47:47.414 --> 47:50.245
right? Like this notion that we can't put
something into production that
47:50.245 --> 47:54.096
we don't understand. Like I I've watched
people parachute into someone else's
47:54.096 --> 47:55.606
environment and be like, it's right there.
47:56.026 --> 47:58.049
Yeah. Yeah.
47:56.590 --> 47:58.251
That's the problem. And that
47:58.251 --> 48:02.215
takes good tooling, right? Like either
they work really hard and it's slow
48:02.215 --> 48:06.909
to get to that understanding, or they have
really good tooling.
48:06.909 --> 48:11.062
~ and specifically, I'm thinking about
like traces and understanding like
48:11.062 --> 48:12.473
how is stuff flowing through the system.
48:12.473 --> 48:15.496
And here's the full stack trace when
something goes wrong.
48:15.496 --> 48:20.060
and here's the source that I can reference
back to so I can go look at it.
48:20.060 --> 48:22.042
And and now when I said AI begets AI,
48:22.042 --> 48:24.824
like I'm going to use, first of all,
48:25.723 --> 48:27.154
To find that in the first place,
48:27.154 --> 48:29.615
right? Debugging production systems,
48:29.615 --> 48:31.006
particularly distributed systems,
48:31.006 --> 48:36.218
is an exercise in pattern matching and
correlation across enormous data sets.
48:36.442 --> 48:37.442
Yeah. Mm-hmm.
48:37.339 --> 48:38.760
You know what's really good at that?
48:38.760 --> 48:41.501
Is AI. Like way better than humans,
48:39.448 --> 48:41.997
AI. Mm-hmm. Mm-hmm.
48:41.501 --> 48:42.501
right?
48:42.151 --> 48:43.442
Like you may not have written it,
48:43.442 --> 48:46.714
but just saying this all appears to be
this is related to that,
48:46.714 --> 48:49.425
and this is related to that. Like that was
my sound of a computer anyway,
48:49.425 --> 48:50.786
is like my modem from when I was kid.
48:50.786 --> 48:54.908
Anyway, like that connection exists.
48:55.320 --> 48:57.581
And this is likely this. And I went
through this code,
48:57.581 --> 48:59.922
right? Like I have access to all the repos
and I have access to all this data.
48:59.922 --> 49:02.503
Like that will be a remarkable
improvement.
49:02.503 --> 49:05.145
I think people have nibbled at the edges
of that so far,
49:05.145 --> 49:06.965
but I think it's we're gonna see more of
that.
49:06.965 --> 49:11.708
And there's going to be a greater need,
49:11.708 --> 49:17.350
I think, for the humans to really be able
to do that large scale thinking.
49:17.350 --> 49:19.011
It'll be it'll be tool assisted,
49:19.011 --> 49:21.092
right? But
49:21.358 --> 49:22.649
You know, the systems will be complex,
49:22.649 --> 49:25.610
they'll be fresh. You won't you won't
actually know what the structure of
49:25.610 --> 49:28.810
all of it is. But I mean, I've been doing
this a long time.
49:28.810 --> 49:31.634
I've been to a lot of incidents where I
had nothing to do with the code that
49:31.634 --> 49:35.596
was acting badly, and I still was able to
figure out what what was happening.
49:35.596 --> 49:36.916
And I know peop lots of people like that,
49:35.952 --> 49:37.515
Yeah. Yeah.
49:36.916 --> 49:37.916
right? So
49:37.548 --> 49:42.379
I I think I mean, well, we responded to
49:42.379 --> 49:47.562
a Linux CVE recently that we were trying
to fit how does this impact us?
49:47.562 --> 49:50.894
And we got four people on a call reading
the Linux kernel.
49:51.652 --> 49:55.175
very claw-assisted, right? But and then
building,
49:55.175 --> 49:57.697
you know, tests to validate, you know,
49:57.697 --> 49:59.019
whether or not it impacts us kind of
thing.
49:59.019 --> 50:01.081
And like that's that's going to be the
world that we're in,
49:59.707 --> 50:01.911
wow. Yeah. Yeah.
50:01.081 --> 50:02.081
right? And that's like that was
50:02.021 --> 50:03.803
not the Linux kernel wasn't written by AI,
50:03.803 --> 50:05.264
but it also wasn't written by us.
50:04.430 --> 50:06.966
Right. Right. Right.
50:05.264 --> 50:06.996
Right. And so
50:06.996 --> 50:09.098
like a very let's it's not a distributed
system,
50:09.098 --> 50:12.851
but a very large scale application that's
extremely complex,
50:12.851 --> 50:16.725
where I can be guided to a point and then
make rational decisions about
50:16.725 --> 50:18.136
how that impacts my system.
50:18.905 --> 50:21.587
Right, I think is is going to be a real
part of the job.
50:21.587 --> 50:25.851
And so I think being really comfortable
leveraging the tools that we have,
50:25.851 --> 50:31.636
but also like I don't I'm sad to say I
don't know how to get people
50:31.636 --> 50:34.168
to be great debuggers. It's not something
I've spent a lot of time on,
50:34.168 --> 50:35.780
but I think about it. ~
50:35.016 --> 50:36.016
yeah, yeah.
50:35.780 --> 50:39.314
as I s, you know, I've spent time in
incidents like anybody else that runs
50:39.314 --> 50:45.548
a distributed system. And I I was I was
working with one group at some point
50:45.548 --> 50:46.548
and I was like,
50:47.108 --> 50:49.313
I want you all to spend the next week
playing Wordle.
50:51.524 --> 50:53.115
And then I want you to tell me at the end,
50:53.115 --> 50:57.907
like how you thought about reducing the
problem space.
50:57.907 --> 51:01.800
Right? Like, how do you take because I've
got the alphabet and I've
51:01.800 --> 51:02.920
got every word that's ever ex well,
51:02.920 --> 51:04.181
every five-letter word that exists,
51:04.181 --> 51:05.181
right? I think it's five letters.
51:05.111 --> 51:06.111
I haven't played Wordle in a while.
51:05.986 --> 51:06.986
It is. It is fine.
51:08.113 --> 51:10.354
And I've got a fixed number of guesses,
51:10.354 --> 51:14.527
right? I mean, anyone that's listening to
this doesn't know how to play Wordle,
51:14.527 --> 51:15.837
just look it up. Like, I know why I'm
explaining.
51:15.837 --> 51:20.660
But like the the I have this broad problem
space and I use techniques.
51:21.306 --> 51:25.318
To analyze, to probe the space to try to
determine likelihoods,
51:25.318 --> 51:28.969
right? Of where I'm going. And of course
the game is kind of designed
51:28.969 --> 51:30.080
to drive you through that, right?
51:30.080 --> 51:31.236
But that was like part of the.
51:31.236 --> 51:34.522
And so I think like that kind of
reasoning.
51:34.522 --> 51:37.283
There's also this other thing that I'm
totally obsessed with.
51:37.283 --> 51:38.823
I'm so sorry. This is totally off the
rails.
51:38.823 --> 51:40.964
But it's my God, I'm gonna forget the name
of it.
51:40.964 --> 51:43.946
I think it's called the Matson Consensus
Protocol.
51:43.946 --> 51:47.447
And it's used in wilderness search and
rescue,
51:47.447 --> 51:49.328
where
51:50.018 --> 51:52.809
so someone is missing or an aircraft is I
think it came from aircraft originally.
51:52.809 --> 51:56.140
And someone is missing or an airplane is
missing or whatever,
51:56.140 --> 51:57.911
and you get together a bunch of experts,
51:57.911 --> 52:04.513
and they all get points to allocate to
search areas based
52:04.513 --> 52:07.794
on their expertise and understanding of
likelihood.
52:07.794 --> 52:12.546
And that's how you decide with a limited
search party where you should go look.
52:13.326 --> 52:15.628
Right. And one of the things I love about
software is we always have
52:15.628 --> 52:17.029
to invent everything for ourselves.
52:17.029 --> 52:20.361
Like there are so many industries and
disciplines where people have solved these
52:20.361 --> 52:24.594
things, right? And so this notion that
like we have a bunch of experts on
52:24.594 --> 52:27.706
a call or whatever, like in like talking
about production debugging.
52:27.706 --> 52:31.299
Sorry, this is all built from the
assumption that AI is gonna make
52:31.299 --> 52:32.553
a mistake and then we're gonna put
something in production.
52:32.553 --> 52:36.312
We're gonna try like having tool and you
could automate that too,
52:36.312 --> 52:41.276
right? Like having tools and techniques to
say to drive towards
52:41.637 --> 52:44.539
the likely cause of the problem instead
of,
52:44.539 --> 52:46.861
I don't know, AI built all of this.
52:46.861 --> 52:50.863
Let's start at line one and read through
to line fifty million
52:50.863 --> 52:52.905
and maybe somewhere in there we'll see
something that's wrong.
52:51.236 --> 52:53.579
Yeah. Yeah, yeah.
52:52.905 --> 52:53.905
Right. And so I think
52:53.785 --> 52:56.687
I think we'll be forced to build,
52:56.687 --> 52:59.549
you know, better tooling, better
approaches,
52:59.549 --> 53:01.951
better practices. Again, I assume this
will
53:01.110 --> 53:02.110
Mm, interesting.
53:01.951 --> 53:03.652
all show up in software because that's how
we solve things.
53:04.526 --> 53:07.428
I I like I like how you're talking about
we we talked earlier about
53:07.428 --> 53:11.340
how you were saying that like we all need
to have more of a product lean these days.
53:11.340 --> 53:13.461
and lots of guests have talked about like,
53:13.461 --> 53:15.922
yeah, we we're all closer to the product
now.
53:15.922 --> 53:18.233
~ that that shows up in my life,
53:18.233 --> 53:23.827
you know. ~ I I advise people talk to the
AI about the domain.
53:23.827 --> 53:26.098
If you're talking to it about the curly
braces and the semicolons,
53:26.098 --> 53:28.199
you're missing the point. Tell it about
53:27.600 --> 53:28.600
Mm-hmm.
53:28.199 --> 53:29.860
the business problem you're trying to
solve,
53:29.860 --> 53:32.831
right? And and it will be better at
helping you solve that business problem.
53:32.831 --> 53:33.831
So I think
53:34.074 --> 53:35.074
There's
53:34.334 --> 53:37.136
a there was a whole category of software
developers who really wanted
53:37.136 --> 53:41.169
to make sure that, you know, each line was
perfectly idiomatic and you know that we,
53:41.169 --> 53:45.713
you know, and I'm not sure that skill set
is as important as it used to be.
53:45.713 --> 53:51.838
But to your point, this I can debug
something ~ skill set
53:51.838 --> 53:55.721
is still quite valuable, especially in
these complex distributed systems that
we've
53:55.721 --> 53:57.863
created. So I think for a lot of us,
53:57.863 --> 53:59.183
like we're just gonna ask Claude to do it,
53:59.183 --> 54:00.183
you know.
53:59.970 --> 54:03.801
~ it's funny when when I'm doing that with
my own sort of smaller systems,
54:03.801 --> 54:07.172
~ if this is part of my solo work,
54:07.172 --> 54:09.423
like I will it's not that I'm racing it,
54:09.423 --> 54:11.603
but I will I will get it kicked off and
say,
54:11.603 --> 54:12.734
start looking at this production issue,
54:12.734 --> 54:14.964
please, right away. And then I'll go do
the same thing.
54:14.964 --> 54:17.845
And it's it's not so much that I think I'm
going to win,
54:17.845 --> 54:19.876
but that I might spot something that I can
share with it,
54:19.876 --> 54:21.706
you know, to to to help it along.
54:21.706 --> 54:23.226
And every now and again I win,
54:23.226 --> 54:25.387
but it's pretty rare. Usually Claude gets
there first.
54:25.387 --> 54:28.778
But I I I think the point you're making is
a different one though.
54:28.869 --> 54:33.291
Which is that like the if you've tapped
out the agent's ability to figure
54:33.291 --> 54:36.903
out what's going on, then that other skill
set of being the human who
54:36.903 --> 54:41.566
can jump on that, you know, severity one
call and like spot something that might
54:41.566 --> 54:45.318
help d also continues to be an important
skill set,
54:45.318 --> 54:47.189
you know. That maybe the idiomatic
54:46.478 --> 54:47.478
Yeah.
54:47.189 --> 54:51.491
code guy or or or or developer is less
useful than they used to be,
54:51.491 --> 54:55.133
but the being able to spot the issue in a
large distributed system needle
54:55.133 --> 54:56.724
in a haystack is still quite valuable.
54:56.724 --> 54:57.724
Yeah.
54:57.828 --> 55:00.289
Yeah, I mean, I would describe it as
systems thinking,
55:00.289 --> 55:01.410
right? Like
55:00.622 --> 55:01.622
Yeah, yeah.
55:01.710 --> 55:04.792
understanding this thing over here impacts
this thing over here,
55:04.762 --> 55:05.762
Mm-hmm.
55:05.112 --> 55:08.674
right? And you could allow your agent to
build up that context.
55:08.674 --> 55:13.957
And like we'll probably build more
permanent memory and context around these
systems
55:13.957 --> 55:17.209
so that it isn't, hey, could you read all
this code right now like
55:17.209 --> 55:19.431
you know nothing about our code base and
start from scratch and here's
55:19.431 --> 55:22.382
the error kind of thing? Like I think
that's a thing we'll we'll advance.
55:22.382 --> 55:24.954
But I also think the the
55:26.148 --> 55:30.960
The fun and terrifying thing about
prompting is we pass on our human biases,
55:30.960 --> 55:32.591
right? Like we we we had
55:31.760 --> 55:32.760
Course. Yeah.
55:32.591 --> 55:35.092
an incident recently where a couple of us
were trying to
55:35.092 --> 55:37.853
use some production debugging agent tools.
55:37.853 --> 55:41.275
And after the incident,
55:41.275 --> 55:44.216
in our review of like what what could we
have done better,
55:44.216 --> 55:46.738
we both kind of independently went and
retried,
55:46.738 --> 55:49.529
knowing what had happened, right?
55:49.529 --> 55:51.550
No now we know, so it's a little bit of a
cheat,
55:51.550 --> 55:52.550
but like.
55:52.324 --> 55:54.916
What could I have asked that would have
got me there sooner?
55:54.916 --> 55:59.889
And you could see the questions we
initially asked were so burdened with bias
that
55:59.889 --> 56:03.392
we sent our agents off on wild goose
chases instead
56:01.220 --> 56:03.189
Down the wrong direction. Yeah.
56:03.392 --> 56:05.093
of giving them the freedom to be like,
56:05.093 --> 56:07.675
I don't know, I think it might be over
here.
56:07.675 --> 56:08.749
You know what I mean? Cause it was like,
56:08.749 --> 56:10.427
what you know, what is causing X to
happen?
56:10.427 --> 56:12.138
But X was a symptom, not a cause,
56:12.138 --> 56:13.138
sort of thing, right?
56:12.196 --> 56:13.196
Right, right.
56:13.259 --> 56:17.341
And ~ and so I think it takes both,
56:17.341 --> 56:21.024
right? I I one, I need to guide the agent
in the right direction.
56:21.601 --> 56:25.562
Or spin up a bunch. I mean, in that that
whole sort of like search protocol idea,
56:24.590 --> 56:26.447
Yeah. It does. It does.
56:25.562 --> 56:26.573
the thing is I kind
56:26.573 --> 56:28.964
of have unbounded agents if I want them,
56:28.964 --> 56:31.865
assuming you know, if soon of my
foundation model is actually
56:31.865 --> 56:33.125
up and servicing requests right now.
56:33.125 --> 56:34.125
And
56:33.252 --> 56:34.252
Yeah.
56:33.635 --> 56:37.377
so if it's their incident, they're they
probably I wonder if they
56:37.377 --> 56:41.398
use other people's models just let's not
talk about that.
56:41.398 --> 56:44.590
Okay, so ~ yeah,
56:42.528 --> 56:43.630
It turtles all the way down.
56:44.590 --> 56:49.641
yeah, exactly. So ~ they pr they have like
some someone has a like open source model
56:49.641 --> 56:51.112
under their desk that they just point all
that at.
56:51.364 --> 56:56.206
So you, you know, you have kind of this
unlimited capacity and you
56:56.206 --> 57:01.307
can but but knowing how to seed not random
57:01.307 --> 57:04.869
but multi-path investigation, like that's
what a good IC does,
57:03.834 --> 57:05.738
Yeah. Right.
57:04.869 --> 57:05.869
right? You go
57:05.869 --> 57:07.610
look at this, you go look at that.
57:07.610 --> 57:10.311
In in a less well managed incident,
57:10.311 --> 57:12.671
12 people are looking at the same thing
when the
57:12.324 --> 57:13.324
Yeah.
57:12.671 --> 57:13.822
real problem is somewhere else,
57:13.822 --> 57:14.822
right?
57:14.125 --> 57:15.366
It's funny when when you say that,
57:15.366 --> 57:16.745
what what occurs to me is like,
57:16.745 --> 57:20.599
yeah, I feel like it goes better if I
describe to Claude,
57:20.599 --> 57:23.210
inevitably, ~ in my world anyway,
57:23.210 --> 57:25.971
what I'm observing and not try to,
57:25.390 --> 57:26.390
Mm.
57:26.112 --> 57:28.193
you know, just just for observations.
57:28.193 --> 57:29.483
Like even
57:28.996 --> 57:29.996
Yeah.
57:29.483 --> 57:32.205
something as dumb as is down can be really
helpful.
57:32.205 --> 57:35.817
I mean, i because it'll just go go start
doing getting its own observations,
57:35.817 --> 57:36.817
you know, and it might be
57:36.421 --> 57:37.421
Yeah.
57:36.777 --> 57:41.220
faster at it than I am. So I will have had
an observation that pulled me to it.
57:41.970 --> 57:42.970
so maybe
57:42.029 --> 57:43.029
Uh-huh.
57:42.430 --> 57:44.761
it's like an AWS Cloud Watch alert or
something.
57:44.761 --> 57:48.153
I might like copy the cut text of that and
just paste it in and say go.
57:48.153 --> 57:52.325
~ and I I don't bother to do much
theorizing at that at that stage.
57:52.229 --> 57:53.229
Yeah.
57:52.765 --> 57:55.486
But but I also wanna there there's
something you said about how like,
57:55.486 --> 57:56.727
Kyle, that's just systems thinking.
57:56.727 --> 58:00.259
And and I think you're right, but I have
known people that I thought
58:00.259 --> 58:03.770
of as good systems thinkers forward in
terms of like designing a system,
58:03.770 --> 58:05.191
but weren't necessarily
58:04.496 --> 58:05.496
Mm.
58:05.191 --> 58:07.432
the person you would call when it all
breaks.
58:08.142 --> 58:12.877
Right. I think there there were other
people that were really good at like
gisting
58:12.877 --> 58:18.302
a situation very quickly. ~ that were and
and they might also have been good forward
58:18.302 --> 58:20.975
systems thinkers, who knows? But sometimes
people who I think of
58:20.975 --> 58:24.288
as very good forward systems thinkers were
not good at the quick gist.
58:24.288 --> 58:27.111
~ so yeah, I mean, you're right.
58:27.111 --> 58:28.392
It is a kind of systems thinking,
58:28.392 --> 58:30.715
but I still think that there's like
specializations on it,
58:30.715 --> 58:31.876
I guess, if that makes any sense.
58:32.996 --> 58:35.703
Yeah yeah. I think
58:38.191 --> 58:44.213
Di yeah, diagnosing is different than ~
than building a system.
58:44.213 --> 58:47.039
and I th I think
58:49.200 --> 58:51.391
I don't know. Yeah, the other the other
big thing that I think about there
58:51.391 --> 58:53.031
in there is is this pattern matching.
58:53.031 --> 58:55.182
And maybe that's not quite systems thing.
58:55.182 --> 58:56.182
And it's like
58:56.250 --> 58:57.250
Yeah.
58:56.723 --> 58:57.833
it's like thinking fast and slow.
58:57.833 --> 58:59.684
We run into the like, well, we've seen
this before,
58:58.638 --> 59:01.356
Right, right. Right.
58:59.684 --> 59:01.404
therefore it must be this. That's the
worst kind
59:01.404 --> 59:07.046
of pattern matching, right? As opposed to
that thing there feels like
59:07.046 --> 59:08.697
it might be related to this thing over
here,
59:08.697 --> 59:09.837
even though no one's seeing that.
59:09.837 --> 59:11.568
And it's it's ~
59:10.372 --> 59:11.843
Right. That
59:11.843 --> 59:14.514
that story about the firefighter who runs
into the building and just says
59:14.514 --> 59:17.505
get out and does can't really explain why
or how he knows,
59:17.505 --> 59:19.135
but like just get out. Yeah,
59:17.912 --> 59:18.999
Yeah. Yeah.
59:19.176 --> 59:22.587
and that is useful, right? And and
sometimes thinking fast is not what you
need.
59:22.587 --> 59:23.947
It's thinking slow that you need.
59:23.947 --> 59:26.819
But yeah. Wow. We are really
59:25.805 --> 59:26.805
Right.
59:26.819 --> 59:27.919
solving the world's problems now,
59:27.919 --> 59:28.919
Rob. Sorry,
59:28.802 --> 59:30.583
Well, I mean, I I do
59:28.879 --> 59:29.879
keep going.
59:30.583 --> 59:32.714
think someone is gonna build a really good
version of this,
59:32.714 --> 59:34.755
right? Which is like, you know,
59:33.801 --> 59:37.091
Mm. Mm. Yeah.
59:34.755 --> 59:36.156
I said, Well, that's a good IC.
59:36.156 --> 59:37.257
But do I
59:37.537 --> 59:42.259
like being a good IC, like there there are
these things I I always joke about this,
59:42.259 --> 59:43.540
or at least joke about it recently,
59:43.540 --> 59:46.492
like in the late nineties, I think it was
the late nineties,
59:46.492 --> 59:48.873
we were really into this concept of expert
systems,
59:48.873 --> 59:49.873
which is like we're
59:49.072 --> 59:50.072
Mm-hmm.
59:49.472 --> 59:51.894
gonna take all the world's knowledge and
build it into computers and then
59:51.894 --> 59:53.525
we can just ask it and it'll solve
anything.
59:53.525 --> 59:56.587
And we obviously gave up like so many
other things,
59:56.587 --> 59:58.388
that in the unified email inbox.
59:58.722 --> 01:00:02.216
And like in 2026,
01:00:02.216 --> 01:00:04.508
we're accidentally building those things,
01:00:04.508 --> 01:00:06.150
right? We're taking all of our knowledge.
01:00:05.550 --> 01:00:08.569
Mm, yeah. Hmm.
01:00:06.150 --> 01:00:07.251
And every time we have a conversation,
01:00:07.251 --> 01:00:08.652
we're like, cool, write a markdown file,
01:00:08.652 --> 01:00:11.425
write a markdown file. And we just have
these enormous markdown files.
01:00:11.425 --> 01:00:16.170
But we can give like useful direct
guidance and direction to an LLM
01:00:16.430 --> 01:00:21.395
and have it execute on something based on
our learned experience,
01:00:21.395 --> 01:00:22.395
right? Like
01:00:21.668 --> 01:00:22.668
Yeah,
01:00:22.041 --> 01:00:23.041
yeah.
01:00:22.287 --> 01:00:23.287
Here's
01:00:22.537 --> 01:00:24.569
how you review code. We talked about
everyone building their
01:00:24.569 --> 01:00:27.931
own code reviewers because we've done the
same review over and over.
01:00:27.931 --> 01:00:32.034
Like the way that we built ours was we
just pulled from all of our existing
repos.
01:00:32.034 --> 01:00:36.227
We said, go read all the reviews and find
the authors that comment the most
01:00:36.227 --> 01:00:38.297
and that people trust, and then figure
01:00:37.818 --> 01:00:38.818
Hmm.
01:00:38.297 --> 01:00:42.511
out what they say over and over and over
and just say it yourself.
01:00:42.511 --> 01:00:45.053
Right? Because every every senior engineer
is like,
01:00:45.053 --> 01:00:47.534
why am I telling you the same thing again
today?
01:00:47.534 --> 01:00:49.916
We talked about it yesterday. So let's not
bother.
01:00:50.170 --> 01:00:51.170
Nice.
01:00:50.810 --> 01:00:53.261
Giving that broken thing to the senior
engineer to say,
01:00:53.261 --> 01:00:54.541
again, like
01:00:53.520 --> 01:00:54.520
Yeah, yeah.
01:00:54.721 --> 01:00:56.302
we talked about this, do it this way,
01:00:56.302 --> 01:00:57.942
right? Like we we can encode all that
stuff.
01:00:57.942 --> 01:01:03.882
And like when it became really easy and
and the the
01:01:03.882 --> 01:01:08.275
f the ris return on investment for that
engineer became really clear,
01:01:08.275 --> 01:01:10.786
like, wow, I can stop having this
conversation because like,
01:01:10.786 --> 01:01:13.526
you know, cute little Claude told you not
to do that.
01:01:13.526 --> 01:01:14.667
And like you listen to Claude,
01:01:14.667 --> 01:01:16.927
great, like I can move on and do higher
value things.
01:01:16.927 --> 01:01:19.068
And I think, you know.
01:01:19.492 --> 01:01:22.333
These things like being a great incident
commander,
01:01:22.333 --> 01:01:24.603
I keep saying I see, but incident
commander is what I mean,
01:01:24.603 --> 01:01:26.355
where you
01:01:26.071 --> 01:01:27.071
Yep.
01:01:26.615 --> 01:01:31.337
where it's encoded knowledge that you've
built through reps,
01:01:31.337 --> 01:01:34.679
and then you try to train up a new person,
01:01:34.679 --> 01:01:38.881
right? And like I think, I think we could
build the tooling with
01:01:38.881 --> 01:01:42.742
all of the knowledge that we have to guide
you through that process.
01:01:42.742 --> 01:01:44.603
And it would be some combination of like,
01:01:44.603 --> 01:01:46.234
I fed it, you know.
01:01:47.246 --> 01:01:50.999
Pager duty or incident IOs, like how to be
an incident commander training guide.
01:01:50.999 --> 01:01:54.641
And then I fed it all of our historical
incident reports.
01:01:54.641 --> 01:01:58.894
And then I fed it access to honeycomb,
01:01:58.894 --> 01:02:02.547
data dog, grafana, like whatever your tool
is.
01:02:02.574 --> 01:02:03.574
All the things.
01:02:04.248 --> 01:02:08.261
And now it's like paging the right person
at the right.
01:02:08.261 --> 01:02:10.022
~ this looks like it's a problem over
here.
01:02:10.022 --> 01:02:11.103
Like, you know who's the expert on that?
01:02:11.103 --> 01:02:12.984
Because I read all of the Git history,
01:02:12.984 --> 01:02:15.086
right? And I know that this is the person
who knows that.
01:02:13.860 --> 01:02:15.346
Yeah. Yeah, yeah, yeah.
01:02:15.487 --> 01:02:16.487
Yeah.
01:02:15.960 --> 01:02:19.211
Let's call them, right? And I I don't
know.
01:02:19.211 --> 01:02:21.322
I mean, it's some someone's probably
someone's building that already.
01:02:20.388 --> 01:02:22.503
Hundred percent. It probably happening,
01:02:21.322 --> 01:02:24.724
But like I I think that it and right.
01:02:22.503 --> 01:02:25.250
yeah. Somebody's vibe coding it right now,
01:02:24.724 --> 01:02:27.105
Yeah, that might
01:02:25.250 --> 01:02:26.250
in fact.
01:02:27.105 --> 01:02:28.245
not be the version I think. Yeah,
01:02:28.245 --> 01:02:30.586
well, whatever. Vib coding doesn't I don't
even know what that means anymore.
01:02:30.586 --> 01:02:34.778
But like huge amounts of data to process,
01:02:34.778 --> 01:02:38.569
right? Like this is it's such a fantastic
application of of this tooling.
01:02:37.636 --> 01:02:39.094
Love it. Love it.
01:02:38.569 --> 01:02:39.569
And I think
01:02:39.194 --> 01:02:42.871
it it will it will force us to have to
build it and it will make
01:02:42.871 --> 01:02:45.242
it possible to build it. And I think
that's a that's like a weird.
01:02:45.787 --> 01:02:46.787
Yeah.
01:02:45.923 --> 01:02:48.740
Interplay of a lot of scenarios with AI.
01:02:46.785 --> 01:02:47.790
Yeah, yeah, yeah, yeah.
01:02:48.879 --> 01:02:49.879
Yep.
01:02:49.222 --> 01:02:51.427
Right now it's important, but now it's
possible.
01:02:51.427 --> 01:02:54.646
Right? Yeah. Yeah.
01:02:51.458 --> 01:02:53.810
And we can afford it. Like you were
talking about mutation testing earlier.
01:02:53.810 --> 01:02:54.810
It's like we couldn't afford
01:02:54.680 --> 01:02:56.341
it before and we maybe didn't need it.
01:02:56.341 --> 01:02:58.113
We do now. Yeah. Yep.
01:02:57.220 --> 01:02:58.220
Right, right.
01:02:58.193 --> 01:02:59.203
And suddenly we can afford it,
01:02:59.203 --> 01:03:03.106
which is great. Okay. What one more
question on the what you're observing
01:03:03.106 --> 01:03:04.837
and then we need to sort of start,
01:03:04.837 --> 01:03:05.908
you know, windy down the hill.
01:03:05.908 --> 01:03:07.428
You've been very generous with your time
so far,
01:03:07.428 --> 01:03:10.201
Rob. Thank you. ~ but but one more
question.
01:03:10.201 --> 01:03:13.083
We we've talked a little bit about
industry trends and what you're seeing
01:03:13.083 --> 01:03:16.385
and what you can grok about what's
happening with hiring and economics
01:03:16.385 --> 01:03:18.737
and those kinds of things. And you talked
a little bit about how,
01:03:18.737 --> 01:03:20.268
you know, everybody's committing now and
01:03:20.612 --> 01:03:22.073
Really, really good insightful stuff.
01:03:22.073 --> 01:03:24.315
Anything else that you're seeing around,
01:03:24.315 --> 01:03:26.016
you know, how teams are built,
01:03:26.016 --> 01:03:30.100
right? I think especially in the
consultancy world that I've that I've
lived
01:03:30.100 --> 01:03:33.443
in for a lot of my career, we got really
used to like,
01:03:33.443 --> 01:03:34.894
okay, you're gonna need, you know,
01:03:34.894 --> 01:03:38.917
sort of call it six software developers
and a project manager
01:03:38.917 --> 01:03:40.238
and a business analyst, you know,
01:03:40.238 --> 01:03:42.570
especially sort of pre-Eric Reese,
01:03:42.570 --> 01:03:45.493
you know, ~ lean thinking, like maybe
after that it would have been
01:03:45.493 --> 01:03:47.754
a product manager and not so much a
business analyst,
01:03:47.754 --> 01:03:49.596
but you got used to certain shapes.
01:03:49.912 --> 01:03:50.913
teams, right? And
01:03:50.469 --> 01:03:51.469
Yeah.
01:03:51.093 --> 01:03:53.544
and of those six developers, like you
needed a couple of front end and
01:03:53.544 --> 01:03:55.816
a couple of back end, they all really
needed to be full stack,
01:03:55.816 --> 01:03:57.337
but you still needed some specialists,
01:03:57.337 --> 01:03:58.584
you know, and and
01:03:58.042 --> 01:03:59.042
Yeah.
01:03:58.584 --> 01:03:59.738
maybe depending on the domain,
01:03:59.738 --> 01:04:01.339
you needed something else and something
else.
01:04:01.339 --> 01:04:05.041
But you know, there was sort of a a shape
that you could almost just stamp out,
01:04:05.041 --> 01:04:08.604
you know. Are you seeing that change any
like
01:04:10.748 --> 01:04:16.190
Yeah. I yes. But I don't know what the
destination is.
01:04:16.190 --> 01:04:19.350
I just know it doesn't feel right anymore.
01:04:19.350 --> 01:04:20.679
Right. So there's like you know,
01:04:20.679 --> 01:04:26.671
we already talked about kind of giving
more product thinking to the engineers.
01:04:26.671 --> 01:04:28.383
And maybe that's what that was a path
01:04:27.108 --> 01:04:28.257
Yeah. Mm-hmm.
01:04:28.383 --> 01:04:30.703
we were on anyway, but it was just more
clear,
01:04:30.703 --> 01:04:34.454
right? I think the if you think about
01:04:35.155 --> 01:04:38.386
the cycle, right?
01:04:38.386 --> 01:04:39.908
The life cycle of
01:04:40.357 --> 01:04:42.708
Let's call it a feature, doesn't really
matter.
01:04:42.708 --> 01:04:44.199
Pick big project, small project.
01:04:44.199 --> 01:04:48.351
And the time horizons to execute on a
thing,
01:04:48.351 --> 01:04:50.342
call that unit of work, you know,
01:04:50.342 --> 01:04:56.525
X, X amount of work. The handoffs between
multiple parties within that
01:04:56.584 --> 01:05:00.247
X amount of work might account for 10%,
01:05:00.247 --> 01:05:01.247
right?
01:05:00.687 --> 01:05:01.687
Uh-huh.
01:05:01.188 --> 01:05:02.882
Maybe 20. I mean, I'm being really
generous.
01:05:02.882 --> 01:05:08.881
It's probably like 80, but and then take X
and make it achievable in
01:05:08.881 --> 01:05:09.952
one tenth of the time.
01:05:10.640 --> 01:05:11.640
Mm-hmm.
01:05:10.720 --> 01:05:11.720
Or like
01:05:11.501 --> 01:05:12.801
one one hundredth of the time.
01:05:12.801 --> 01:05:13.922
If
01:05:13.327 --> 01:05:14.327
Mm-hmm.
01:05:13.922 --> 01:05:18.845
that what was twenty percent time spent on
handoffs would now become
01:05:19.426 --> 01:05:23.929
two hundred percent, right? Like we could
probably use real numbers
01:05:23.929 --> 01:05:25.430
and model this out, but it's not that
important.
01:05:25.430 --> 01:05:29.393
200% of your time spent handing things off
is completely unacceptable,
01:05:29.393 --> 01:05:33.255
right? So you want in my mind,
01:05:33.255 --> 01:05:38.159
you want to take more of the roles and
capabilities of the team
01:05:38.539 --> 01:05:40.040
and consolidate them.
01:05:40.746 --> 01:05:45.998
Into fewer actors. Now that doesn't mean
like all PMs don't have jobs now,
01:05:45.998 --> 01:05:52.660
right? Like people bring strengths to
teams in ways that others
01:05:52.660 --> 01:05:53.980
are not capable of picking up,
01:05:53.980 --> 01:05:55.961
right? And sort of saying, well,
01:05:55.961 --> 01:05:58.502
well, everyone's just an engineer and
they'll just do all the other stuff,
01:05:58.502 --> 01:06:02.813
right? Like I've I've designed apps before
and been like laughed out of the room.
01:06:02.813 --> 01:06:04.974
So like someone needs to do some design
thinking,
01:06:04.974 --> 01:06:06.184
right? And so
01:06:07.022 --> 01:06:10.815
I but how we structure that, like what is
what is the ratio,
01:06:10.815 --> 01:06:14.425
right? Like it's like we kind of need less
because the engineers are doing
01:06:14.425 --> 01:06:16.730
a lot themselves, but we need more because
they can get so much done.
01:06:16.730 --> 01:06:21.374
Like, I think that's the part that we we
can't quite figure out just yet.
01:06:19.748 --> 01:06:22.153
Yeah. Where it's gonna go. Yeah.
01:06:21.374 --> 01:06:24.506
It's gonna be it's gonna be something that
will evolve and we'll see emerge,
01:06:22.153 --> 01:06:25.410
Yeah. Yeah.
01:06:24.506 --> 01:06:25.537
right? And different
01:06:25.537 --> 01:06:29.450
teams will be different. If you are a
startup before people like that
01:06:29.450 --> 01:06:32.673
was always just the engineers doing it and
you accepted that their design was crap,
01:06:32.673 --> 01:06:34.454
or they just lifted it off some site.
01:06:34.454 --> 01:06:36.596
I mean now they're using claw design or
whatever to make it.
01:06:36.869 --> 01:06:42.273
It can happen. And so, like, everyone has
to do more yet less.
01:06:42.273 --> 01:06:46.827
We can all get more done. Everyone's tools
are assisted,
01:06:46.827 --> 01:06:48.438
right? Like the PM can generate,
01:06:48.438 --> 01:06:50.974
you know, perspective that can analyze the
data.
01:06:50.974 --> 01:06:53.302
The designer can create designs that can
do all these things,
01:06:53.302 --> 01:06:59.007
also augmented and faster. And so I think
then
01:06:59.069 --> 01:07:04.571
I do think overall team size is gonna
trend smaller.
01:07:04.571 --> 01:07:05.571
That's my gut.
01:07:06.448 --> 01:07:08.589
purely based on just communication
overhead,
01:07:08.589 --> 01:07:10.392
right? Like ~
01:07:08.940 --> 01:07:10.721
Mm-hmm. Yeah, right.
01:07:11.413 --> 01:07:12.865
was every, you know, whatever,
01:07:12.865 --> 01:07:16.439
every node I add is I I forget if it's
like factorial or whatever.
01:07:14.800 --> 01:07:16.874
Two to the end. Yeah. Mm-hmm.
01:07:16.439 --> 01:07:17.439
Yeah, exactly.
01:07:17.180 --> 01:07:18.180
So
01:07:19.758 --> 01:07:22.969
We want to reduce that, which then means,
01:07:22.969 --> 01:07:28.610
you know, principles like team topologies
and how do I create independence between
01:07:28.610 --> 01:07:30.491
teams so they can execute, you know,
01:07:30.491 --> 01:07:32.912
on their own value stream or whatever
terminology you want to use.
01:07:32.784 --> 01:07:33.784
Mm-hmm.
01:07:32.912 --> 01:07:33.912
I
01:07:33.272 --> 01:07:36.653
think that becomes important. But then
it's like,
01:07:36.653 --> 01:07:39.163
I could literally touch every system in
five minutes.
01:07:39.163 --> 01:07:41.404
I like I I spent four weeks working
01:07:39.780 --> 01:07:41.259
Yeah. Yeah.
01:07:41.404 --> 01:07:43.794
on something in a programming language
that I still don't understand.
01:07:43.794 --> 01:07:47.556
Because I know enough about programming
that I can tell roughly if it's right,
01:07:43.918 --> 01:07:45.873
Right, right. Yeah. Yeah.
01:07:47.556 --> 01:07:48.556
but
01:07:48.528 --> 01:07:49.528
I
01:07:49.424 --> 01:07:52.104
Couldn't sit down and handwrite that
because I've never taken the time
01:07:52.104 --> 01:07:53.148
to learn that particular language,
01:07:53.148 --> 01:07:55.586
but it doesn't like like the ability to
kinda
01:07:54.222 --> 01:07:55.679
And the last thirty percent doesn't matter
as
01:07:55.679 --> 01:07:58.110
much as it used to because machines are
maintaining it now,
01:07:58.110 --> 01:07:59.436
not us. So yeah, yeah.
01:07:58.488 --> 01:07:59.508
Yeah. I mean, I
01:07:59.508 --> 01:08:03.369
know if it's well tested. I know if it
does what I wanted it to do.
01:08:03.369 --> 01:08:06.880
I have security scanner. Like have all
this other automation to make sure that
01:08:06.880 --> 01:08:08.041
I'm not making massive blunders.
01:08:08.041 --> 01:08:10.101
I have other people. We have all these
review tools we build.
01:08:10.101 --> 01:08:14.972
Like we have the machinery to make that
happen in a way that then allows me to be,
01:08:14.972 --> 01:08:18.754
you know, to move independently across a
system as opposed to like I'm tucked
01:08:18.754 --> 01:08:20.304
in my little corner and I just do this
thing.
01:08:20.304 --> 01:08:21.634
So ~ it feels like
01:08:20.622 --> 01:08:21.622
Yeah, yeah, for sure.
01:08:21.634 --> 01:08:24.635
the greatest non-answer. Like I it's
absolutely changing,
01:08:24.635 --> 01:08:27.656
but like you can see factors that are
pushing.
01:08:28.185 --> 01:08:33.837
In both directions, and maybe we end up
after all of that push and pull with
01:08:33.837 --> 01:08:36.827
the exact same team that just functions
really differently.
01:08:36.827 --> 01:08:39.388
I don't know. I I really think though,
01:08:39.388 --> 01:08:43.549
the ~ you know, I am the one person who
does this part.
01:08:43.549 --> 01:08:48.029
I think that is gonna ~ be less.
01:08:48.029 --> 01:08:49.371
I think we're gonna see less of that,
01:08:48.899 --> 01:08:52.528
Yeah. Yep. A hundred percent. Hm.
01:08:49.371 --> 01:08:53.721
right? ~ and if you're really focused.
01:08:52.528 --> 01:08:53.831
Are we all generalizing more
01:08:53.831 --> 01:08:57.198
again? Interesting. It's a
regeneralization almost.
01:08:57.198 --> 01:08:58.198
Yeah. Go ahead.
01:08:58.551 --> 01:09:01.263
Yeah, yeah. I mean, well, one,
01:09:01.263 --> 01:09:04.774
we we already talked about the fact that
like knowing the intricacies
01:09:04.774 --> 01:09:10.477
of the curly braces, right? Like I
remember my my one college course
01:09:10.477 --> 01:09:13.398
and programming, like I was why why?
01:09:13.398 --> 01:09:15.629
Why is there a semicolon on this line and
not this line?
01:09:15.629 --> 01:09:18.229
Like someone make that make sense to me,
01:09:18.229 --> 01:09:21.401
right? Like, no, no kid is worried about
that anymore.
01:09:21.401 --> 01:09:22.962
It's just not a thing, right? Like,
01:09:22.810 --> 01:09:23.810
Yeah, yeah.
01:09:22.962 --> 01:09:23.962
like it just
01:09:23.652 --> 01:09:27.524
it just doesn't happen. And so like that.
01:09:28.416 --> 01:09:33.296
Specific component is dialed back in terms
of the role of an engineer,
01:09:33.296 --> 01:09:35.298
right? So the engineer has a lot more
capacity.
01:09:34.200 --> 01:09:36.224
For sure. For sure.
01:09:35.298 --> 01:09:36.328
It might just be I'm
01:09:36.328 --> 01:09:38.698
going to build more, but it might be I'm
going to think more strategically
01:09:38.698 --> 01:09:40.457
and I'm going to have like these questions
about the customer.
01:09:40.457 --> 01:09:42.220
I'm going to spend that time thinking
about product,
01:09:42.220 --> 01:09:46.531
which maybe up-levels the PM or the PM can
support more teams,
01:09:42.234 --> 01:09:46.069
Something else. Yep. Yep. Mm-hmm.
01:09:46.069 --> 01:09:47.069
Yep.
01:09:46.531 --> 01:09:47.531
or the PM
01:09:47.060 --> 01:09:52.893
writes some code. Like, and a lot of that
is going to be individual aptitudes
01:09:52.893 --> 01:09:55.203
and and skill sets, right? Like,
01:09:53.678 --> 01:09:56.822
Yeah. Interests and rewards and yeah.
01:09:55.203 --> 01:09:56.356
yeah,
01:09:57.064 --> 01:09:58.064
I think.
01:09:57.884 --> 01:10:00.605
You it's interesting because you talked
about like stamping out the teams.
01:10:00.605 --> 01:10:03.686
Right? Well, we know it's exactly looks
like this.
01:10:03.686 --> 01:10:07.847
But I I've always been I don't know about
skeptical,
01:10:07.847 --> 01:10:12.548
but curious about that. Because on any
given team like,
01:10:12.548 --> 01:10:15.439
sure, we could have two front end
developers on this team and two on this
team
01:10:15.439 --> 01:10:18.310
and two on this team. But this one over
here is basically a designer.
01:10:18.310 --> 01:10:22.131
This one over here is great at getting the
pixels that the designer told
01:10:19.866 --> 01:10:23.082
Yeah. Yeah. Yeah, yeah.
01:10:22.131 --> 01:10:24.057
him to get into place, right? So like they
kind
01:10:23.082 --> 01:10:24.082
Yep.
01:10:24.057 --> 01:10:26.832
of look the same, but they don't.
01:10:26.832 --> 01:10:27.832
And like I
01:10:27.749 --> 01:10:30.560
You know, pick your f I watch a lot of
soccer in my family.
01:10:30.560 --> 01:10:32.920
It's World Cup summer, so maybe that's
topical.
01:10:32.920 --> 01:10:36.651
~ NFL football starting, or maybe CFL's
already underway.
01:10:36.651 --> 01:10:37.751
I don't know if you're a CFL, whatever.
01:10:37.562 --> 01:10:38.562
I don't know.
01:10:37.751 --> 01:10:39.492
Pick pick your favorite sport.
01:10:39.492 --> 01:10:40.502
Okay, you a basketball behind
01:10:40.502 --> 01:10:43.113
so maybe but like, right? Well,
01:10:43.113 --> 01:10:44.353
okay, so I live in the Bay Area.
01:10:44.353 --> 01:10:46.263
I guess we kind of invented small ball,
01:10:46.263 --> 01:10:48.514
right? Like everybody had a giant center,
01:10:48.514 --> 01:10:50.764
and then one day we're just like,
01:10:50.764 --> 01:10:51.835
you know what? What if we didn't?
01:10:51.835 --> 01:10:55.075
Right? Like what if what if the structure
of our team,
01:10:55.075 --> 01:10:56.326
right, was
01:10:55.866 --> 01:10:56.866
Yeah.
01:10:56.326 --> 01:10:57.326
such that
01:10:57.246 --> 01:10:58.246
Yeah.
01:10:58.180 --> 01:11:00.322
That isn't actually the best way to play,
01:11:00.322 --> 01:11:05.368
right? Because we we these are individual
humans with individual interactions,
01:11:04.570 --> 01:11:05.793
Yeah. Mm-hmm.
01:11:05.368 --> 01:11:06.368
the way they interact
01:11:06.078 --> 01:11:08.971
with other humans, the skills that they
bring to the table,
01:11:08.971 --> 01:11:10.313
you know, whatever that might be.
01:11:10.313 --> 01:11:13.396
And so, like that, like,
01:11:13.396 --> 01:11:15.258
how do we take full advantage of that?
01:11:15.258 --> 01:11:16.339
Right. And then that becomes a thing,
01:11:16.339 --> 01:11:18.301
and suddenly everyone in the NBA is
throwing threes.
01:11:18.301 --> 01:11:19.301
But like
01:11:18.832 --> 01:11:19.832
Mm-hmm.
01:11:20.223 --> 01:11:21.223
that.
01:11:22.198 --> 01:11:25.849
Is someone right in their particular place
stopping to say,
01:11:25.849 --> 01:11:28.810
like, what are the strengths that I have
at the table right here?
01:11:28.810 --> 01:11:29.810
And so
01:11:29.188 --> 01:11:30.188
Yeah, yeah.
01:11:29.711 --> 01:11:32.852
I think I particularly as we go through
this evolution,
01:11:32.852 --> 01:11:33.852
and I'm just like, I don't know,
01:11:33.622 --> 01:11:37.624
it could be anything. Like we have
multiple different teams at Circle
01:11:37.624 --> 01:11:39.625
CI and they're all shaped differently,
01:11:39.625 --> 01:11:43.396
right? Because that yeah.
01:11:39.642 --> 01:11:40.963
Differently. For sure. No, yeah.
01:11:40.963 --> 01:11:42.756
I I don't mean to overstate that.
01:11:42.756 --> 01:11:43.756
But but
01:11:43.456 --> 01:11:46.220
it but it does feel like that the like you
said,
01:11:46.220 --> 01:11:49.363
~ the whatever we were doing before is not
quite right.
01:11:49.363 --> 01:11:54.529
~ so so maybe maybe my preamble there was
a bit of a you know oversimplification.
01:11:54.529 --> 01:11:57.332
But but but the basis of the question I
think is still interesting,
01:11:57.332 --> 01:11:59.835
you know, which like whatever we were
doing it this feels,
01:11:57.672 --> 01:12:00.444
Yeah, no well, it's super interesting
because I
01:11:59.835 --> 01:12:00.835
yeah.
01:12:00.444 --> 01:12:05.576
think what we love in engineering is
cookie cutter patterns,
01:12:05.576 --> 01:12:06.576
right? We're
01:12:06.000 --> 01:12:07.000
Yeah.
01:12:06.427 --> 01:12:08.858
like, let's, you know, this is the job of
a PM.
01:12:08.858 --> 01:12:12.000
And you're like, okay, but that PM's not
very good at that part of the job.
01:12:11.852 --> 01:12:14.023
No, yeah. Everybody does it their own way.
01:12:12.000 --> 01:12:16.843
But this this other thing, this other this
team member who's like a junior
01:12:14.023 --> 01:12:16.556
Yeah. Yeah.
01:12:16.843 --> 01:12:18.704
engineer is actually really great at that
thing.
01:12:18.704 --> 01:12:21.048
Could they do that instead of the PM doing
it right like?
01:12:21.048 --> 01:12:24.647
And I think it it's it takes a it's taken
me a long time,
01:12:24.647 --> 01:12:26.318
I would say in my in my career.
01:12:26.779 --> 01:12:28.150
To get to the point where I'm like,
01:12:28.150 --> 01:12:34.614
yeah, I'm like, I'm a CTO and other people
are CTOs and they do the job away
01:12:34.634 --> 01:12:38.797
and I do the job differently. And that's
not because one of us is a bad CTO,
01:12:35.992 --> 01:12:37.094
A different way. That's right.
01:12:37.094 --> 01:12:39.466
Yep. No. Yeah.
01:12:38.797 --> 01:12:39.818
but like
01:12:40.158 --> 01:12:43.220
at some point you you realize you're a
member of a team.
01:12:43.220 --> 01:12:45.091
And ultimately
01:12:44.292 --> 01:12:45.292
I love that.
01:12:45.091 --> 01:12:46.562
the goal is the success of the team,
01:12:46.562 --> 01:12:48.584
not your success, right? And
01:12:46.842 --> 01:12:48.575
Yep. Yep.
01:12:48.584 --> 01:12:54.067
so other people on my executive team bring
strengths to the table that I don't have,
01:12:54.067 --> 01:12:55.067
and vice versa.
01:12:55.308 --> 01:12:59.050
And my role might look a little bit
different than the way someone else does
it,
01:12:59.050 --> 01:13:04.253
right? As a CTO, like a very classic
distinction would be someone who's can't
shut
01:13:04.253 --> 01:13:08.796
up, right? Versus someone who like never
wants to talk in front of other humans.
01:13:08.796 --> 01:13:10.687
That's those are two
01:13:09.370 --> 01:13:10.411
Yeah, right?
01:13:10.687 --> 01:13:13.808
totally valid and useful and contributing
CTOs,
01:13:13.808 --> 01:13:14.808
right? And then you just ask
01:13:14.224 --> 01:13:15.224
That's right.
01:13:14.609 --> 01:13:16.300
the question, like, okay, in our
organization,
01:13:16.300 --> 01:13:18.091
who fills in this role and who fills in
this role?
01:13:18.091 --> 01:13:21.673
So I think you know, if if anyone were to
take anything about out
01:13:21.673 --> 01:13:23.704
of this ramble about teams, like,
01:13:24.120 --> 01:13:29.183
Now is a great time to really assess who
on your team brings what to the table.
01:13:29.183 --> 01:13:30.344
And that may be
01:13:29.562 --> 01:13:30.562
Yeah. Yep.
01:13:30.344 --> 01:13:32.125
across multiple teams in your
organization.
01:13:32.125 --> 01:13:37.168
And how can you build a team that's gonna
be successful given
01:13:37.168 --> 01:13:38.749
the constraints of this environment?
01:13:37.456 --> 01:13:39.796
I love it. I love it.
01:13:38.749 --> 01:13:39.960
Right. don't take my
01:13:39.960 --> 01:13:42.071
like it's gonna be two of these and one of
these and one of these.
01:13:42.071 --> 01:13:43.212
Like, don't know.
01:13:43.844 --> 01:13:46.729
Yeah. So we actually have three questions
left,
01:13:46.729 --> 01:13:48.732
~ believe it or not, and
01:13:48.516 --> 01:13:49.516
Look at us.
01:13:49.113 --> 01:13:51.126
and we've come to the end of our time
also.
01:13:51.126 --> 01:13:55.243
~ so I'm gonna I'll call an audible and
and just ask one of them.
01:13:55.243 --> 01:13:58.038
what's something that's keeping you joy
right now?
01:13:59.502 --> 01:14:03.224
Giving me joy. Okay, this is I know you're
from Toronto,
01:14:03.224 --> 01:14:04.494
so hopefully you'll appreciate this.
01:14:04.494 --> 01:14:07.475
This is totally random. ~ but Rush,
01:14:07.475 --> 01:14:11.267
the band from Toronto, right? ~
01:14:10.298 --> 01:14:11.298
Mm-hmm.
01:14:11.267 --> 01:14:14.268
is on tour. I have to confess I have not
gone to see them,
01:14:14.268 --> 01:14:15.839
but I've seen like every YouTube video.
01:14:15.839 --> 01:14:18.770
And ~ for anyone who doesn't know the
band,
01:14:18.770 --> 01:14:20.701
they have this very famous drummer,
01:14:20.701 --> 01:14:23.042
Neil Peart, who like changed drumming,
01:14:23.042 --> 01:14:27.423
right, for the better. And he passed away
in I think twenty sixteen.
01:14:27.423 --> 01:14:28.684
Twenty sixteen, twenty seventeen,
01:14:28.684 --> 01:14:29.684
somewhere there.
01:14:30.052 --> 01:14:31.672
So they're back on tour. Actually,
01:14:31.672 --> 01:14:33.633
it was later, my bad. But whatever.
01:14:33.633 --> 01:14:36.884
You can look it up. They hadn't toured
since 2016.
01:14:36.884 --> 01:14:38.544
And then they found a new drummer,
01:14:38.544 --> 01:14:41.395
Anika Neele, I think is how you pronounce
her name.
01:14:41.395 --> 01:14:44.916
And went out on tour. And the fan,
01:14:44.916 --> 01:14:50.618
it's like the hardest job in the world is
to fill in the seat of this man,
01:14:50.618 --> 01:14:52.218
Neil. And she is
01:14:51.736 --> 01:14:52.736
Mm.
01:14:52.298 --> 01:14:56.849
absolutely crushing it. And the Rush fan
base absolutely loves her.
01:14:56.849 --> 01:14:58.500
And
01:14:57.454 --> 01:14:58.454
nice.
01:14:58.500 --> 01:14:59.500
it is like
01:14:59.726 --> 01:15:01.467
When I first started seeing the videos
rolling,
01:15:01.467 --> 01:15:03.138
because it shows up in my YouTube feed or
whatever,
01:15:03.138 --> 01:15:04.138
I was
01:15:03.631 --> 01:15:04.631
Yeah.
01:15:04.018 --> 01:15:08.070
like, finally something just wholesome and
happy in the world right now.
01:15:07.866 --> 01:15:08.866
Yeah, yeah.
01:15:08.070 --> 01:15:09.070
You know what I mean? Like there's
01:15:08.858 --> 01:15:10.322
there's so much angst out there.
01:15:10.322 --> 01:15:14.064
And like there's like on the internet in
like YouTube comments,
01:15:14.064 --> 01:15:16.505
like it's so easy to be a bad person.
01:15:14.446 --> 01:15:17.751
Yeah. It'd be dark. Yeah.
01:15:16.505 --> 01:15:17.916
And the amount
01:15:17.916 --> 01:15:21.898
of joy generated by something that could
have easily been a very,
01:15:21.898 --> 01:15:26.951
very bad outcome, right? There's all kinds
of sort of skepticism and whatever.
01:15:24.142 --> 01:15:27.630
I love that. Yeah. Sure.
01:15:26.951 --> 01:15:27.951
~
01:15:27.751 --> 01:15:29.432
and it is like
01:15:29.636 --> 01:15:31.517
They're obviously having a huge amount of
fun.
01:15:31.517 --> 01:15:33.128
The fan base is having a lot of fun.
01:15:33.128 --> 01:15:36.329
And you know, when you ask the way that
you asked the question just landed,
01:15:36.329 --> 01:15:38.901
like it's lately I've been saying there's
01:15:38.160 --> 01:15:39.160
Perfect.
01:15:38.901 --> 01:15:42.662
like the one thing that's giving me great
joy right now is just that people
01:15:42.662 --> 01:15:45.064
are so happy about this about this
situation.
01:15:45.064 --> 01:15:46.064
So yeah, it's awesome.
01:15:45.252 --> 01:15:46.252
I love it.
01:15:46.015 --> 01:15:47.469
I love it. Okay. One more thing.
01:15:47.469 --> 01:15:49.666
~ you mentioned earlier the name of the
newsletter.
01:15:49.666 --> 01:15:52.355
so let's hear it one more time and I'll
make sure it's in the show notes.
01:15:52.758 --> 01:15:56.932
~ our the state of software delivery
report ~ is a thing that we publish
01:15:56.932 --> 01:15:59.435
and then we have a newsletter actually
called the confident commit
01:15:59.435 --> 01:16:02.328
and a podcast called the confident commit
is like a umbrella for some
01:16:02.328 --> 01:16:03.499
of the other material that we put out.
01:16:03.499 --> 01:16:04.499
So you can look for
01:16:03.952 --> 01:16:04.952
Cool.
01:16:04.310 --> 01:16:05.310
too.
01:16:04.856 --> 01:16:07.010
Cool. Rob, thank you so much for coming on
the show today.
01:16:07.010 --> 01:16:08.010
Really appreciate you.
01:16:08.483 --> 01:16:09.916
Yeah, you bet, Kyle. It's really fun.