1
00:00:07,832 --> 00:00:12,245
Welcome back to Adventures in DevOps, where we deep dive with expert guests.

2
00:00:12,245 --> 00:00:20,491
Today's adventure focuses on infrastructure as code, which is, guess, as specific as
asking an author if their next novel will be written with words.

3
00:00:20,491 --> 00:00:29,608
Our expert has done the systems administration thing, the founder thing, the AWS
consulting thing, previously the director of cloud architecture at CBS, but here today,

4
00:00:29,608 --> 00:00:36,012
due to their work maintaining what I think is the world's largest repository of open
source IEC modules,

5
00:00:36,076 --> 00:00:38,663
the CEO and founder, Eric Osterman.

6
00:00:38,663 --> 00:00:39,352
Welcome.

7
00:00:39,352 --> 00:00:41,262
Thanks Warren, glad to be here.

8
00:00:41,930 --> 00:00:45,656
I mean, that was probably one of the longest intros I've done so far.

9
00:00:47,063 --> 00:00:49,937
Well, it's a long track record, know, been at this for a while.

10
00:00:49,937 --> 00:00:56,537
I mean, I can't believe that I've been doing this since 2015, just terraform, terraform,
terraform, terraform.

11
00:00:56,537 --> 00:01:02,572
But that laser focus on like one thing, I guess, you know, I found enjoyment in going
deep.

12
00:01:02,572 --> 00:01:07,514
Well, I think that laser focus also really helps sell it as like, this is my niche.

13
00:01:07,514 --> 00:01:08,905
I am the foremost expert here.

14
00:01:08,905 --> 00:01:11,707
And like you said, it's been over a decade now.

15
00:01:11,707 --> 00:01:18,936
And I want to believe almost any engineer who has worked with any sort of infrastructure
as code, IAC knows about your company as well.

16
00:01:18,936 --> 00:01:21,188
You know, I like to think that and it keeps me going.

17
00:01:21,188 --> 00:01:29,680
uh But, you know, whenever I've gone to like AWS re-invent, I get very humbled ah because
I'll be saying, yeah, I run cloud posting there.

18
00:01:29,680 --> 00:01:30,556
Oh, interesting.

19
00:01:30,556 --> 00:01:31,206
What's that?

20
00:01:31,206 --> 00:01:32,017
we do Terraform.

21
00:01:32,017 --> 00:01:33,337
What's Terraform?

22
00:01:33,358 --> 00:01:37,221
And it's like, you're at an AWS conference, you don't do Terraform.

23
00:01:37,221 --> 00:01:38,742
How are you managing your infrastructure?

24
00:01:38,742 --> 00:01:46,649
Well, it turns out that actually I believe something like the large majority of IAC is
actually cloud formation and not Terraform.

25
00:01:46,649 --> 00:01:48,513
But in my bubble, that's in...

26
00:01:48,513 --> 00:01:50,505
That's sacrilegious.

27
00:01:50,540 --> 00:01:58,172
Well, I can play you into the dirty secret here of that we also use CloudFormation, but ah
we don't use the CDK.

28
00:01:58,172 --> 00:02:07,135
We generated our own programmatic wrappers to dynamically generate CloudFormation because
doing it straight in JSON or YAML is so atrocious.

29
00:02:07,135 --> 00:02:19,078
ah We did that earlier before Terraform really picked up and the other ones out there,
which I want to ask your opinion about uh at some point in this episode.

30
00:02:19,150 --> 00:02:21,290
would love to go into all of those things.

31
00:02:21,290 --> 00:02:30,830
And I was recently posting on even just how, you know, I don't think languages as it comes
to ISE and as it comes to a product are what make or break the success.

32
00:02:30,830 --> 00:02:37,170
There's so much more than the language choice, but I think what you did makes total sense.

33
00:02:37,170 --> 00:02:45,210
And there's part of me that has some FOMO on cloud formation because it does make some
things easier and it has improved over the years.

34
00:02:45,210 --> 00:02:47,374
yeah, writing raw cloud formation.

35
00:02:47,374 --> 00:02:52,474
That was like the one of the first contracts they did like in 2010 or something.

36
00:02:52,754 --> 00:02:56,334
Actually, that is part of the origin story of Cloud Posse.

37
00:02:56,334 --> 00:03:06,514
I built this system for a company, Lookout Security, and it was an exploration into
managing infrastructure as code.

38
00:03:06,514 --> 00:03:09,474
In its infancy, cloud formation had just been announced.

39
00:03:09,474 --> 00:03:15,414
So we built out, we did kind of like a spike on this and I called the project the Insane
Cloud Posse.

40
00:03:15,502 --> 00:03:25,798
And you can see where that five years later after traveling the world for a few years, I
founded Cloud Posse as the company in that name.

41
00:03:26,246 --> 00:03:30,888
When you're telling that story, feel like I'm already seeing trauma when CloudFormation
originally came out.

42
00:03:30,888 --> 00:03:34,209
There was a dedicated UI for moving components around.

43
00:03:34,209 --> 00:03:39,692
I think their goal was you would define your architecture using a graphical user
interface.

44
00:03:39,692 --> 00:03:44,734
And this interface is literally the worst thing of any service that AWS offers.

45
00:03:44,734 --> 00:03:46,765
And it memorizes location and stuff.

46
00:03:46,765 --> 00:03:48,596
It was very programmatically done.

47
00:03:48,596 --> 00:03:52,777
And just the output was just absolute garbage to store in any way.

48
00:03:52,777 --> 00:03:54,778
I think very quickly, everyone's like,

49
00:03:55,009 --> 00:03:56,107
No, thank you.

50
00:03:56,110 --> 00:04:03,510
Yeah, I don't know if we missed that part because this was something we did in Ruby, which
was the language du jour at that time.

51
00:04:03,510 --> 00:04:06,410
And then generated the templates.

52
00:04:06,550 --> 00:04:19,778
this is kind of like, this is a sore point for me a little bit because it is the state of
IAC a decade later or 15 years later.

53
00:04:19,778 --> 00:04:25,892
I mix it up 2004 or 2006 is when I started using AWS and these things weren't around then.

54
00:04:25,892 --> 00:04:31,945
And at that point you're using, oh whatever that Python package is to manage cloud.

55
00:04:31,945 --> 00:04:32,986
uh

56
00:04:32,986 --> 00:04:34,057
I don't even know what that is.

57
00:04:34,057 --> 00:04:45,817
I'll tell you, I got my journey started accidentally when the company I was working for
wanted someone to orchestrate the deployment of their thousands of Windows services to

58
00:04:45,817 --> 00:04:53,024
individual hardware machines, like not even virtual machines in their production data
centers where they had a list.

59
00:04:53,024 --> 00:05:00,586
It was like pretty much a CSV list where this server had these services running on it at a
time and to consume that and

60
00:05:00,586 --> 00:05:09,812
At the exact same moment I was doing this, the worst thing that ever happened was that
Puppet came out and said, this is the way we'll do it.

61
00:05:09,812 --> 00:05:13,554
And so my company was like, amazing, let's do that.

62
00:05:13,686 --> 00:05:17,938
And then soon after everyone was like, that's the worst thing in the world.

63
00:05:17,938 --> 00:05:19,208
We should use Chef instead.

64
00:05:19,208 --> 00:05:21,320
But my company kept on using Puppet.

65
00:05:21,320 --> 00:05:23,661
So that's its own sort of trauma.

66
00:05:23,661 --> 00:05:25,019
eh

67
00:05:25,019 --> 00:05:26,720
Oh, yeah.

68
00:05:26,720 --> 00:05:28,972
We're kicking a hornet's nest here.

69
00:05:28,972 --> 00:05:34,807
So that's actually good that you said that because, put a pin in that briefly.

70
00:05:35,408 --> 00:05:41,473
What I was going with that is the interesting thing with IAC is it's foundational.

71
00:05:41,473 --> 00:05:52,032
The tooling for it is often pretty unopinionated in that sense and basic to do anything
with any of this stuff.

72
00:05:52,076 --> 00:05:55,228
The first thing you reach for is a tool of some kind.

73
00:05:55,509 --> 00:06:02,296
your case, something, you don't want to write walls of YAML, of CloudFormation with
conditionals and logic in that.

74
00:06:02,296 --> 00:06:03,051
Totally get it.

75
00:06:03,051 --> 00:06:05,319
I totally get CDK also on top of that.

76
00:06:05,319 --> 00:06:06,981
If some use it, I know you're not.

77
00:06:06,981 --> 00:06:08,622
But yeah, some template engine.

78
00:06:08,622 --> 00:06:09,903
So you do that.

79
00:06:09,923 --> 00:06:11,485
And then the next company does it.

80
00:06:11,485 --> 00:06:17,142
And every developer, when they approach these things, they, this is super cool, but I know
what I'm going to do.

81
00:06:17,142 --> 00:06:23,325
I'm going to build yet another uh factory around this or something to systematize it.

82
00:06:23,426 --> 00:06:28,288
And then sometimes you get these things like you said, puppet, chef, and that's the sore
point, right?

83
00:06:28,288 --> 00:06:35,533
Because those are relics of the past of where we came from and there's so much investment
in them and they are no more.

84
00:06:35,533 --> 00:06:38,334
And then there's Kubernetes and then there's

85
00:06:39,118 --> 00:06:40,061
Don't say crossplane.

86
00:06:40,061 --> 00:06:42,444
uh

87
00:06:42,444 --> 00:06:45,176
Yeah, that's an interesting one, cross-playing.

88
00:06:45,176 --> 00:06:54,121
ah I want to love it, have FOMO, but I never speak to anybody actually using it in
production except for companies who are moving off of it.

89
00:06:54,121 --> 00:06:55,462
ah

90
00:06:55,538 --> 00:06:56,719
I got one.

91
00:06:56,719 --> 00:06:57,480
did happen.

92
00:06:57,480 --> 00:07:07,807
There was one company I was advising that actually was in it, except what had happened was
some engineers from like ex-engineers from Google had joined the company, started spinning

93
00:07:07,807 --> 00:07:08,938
up everything in Kubernetes.

94
00:07:08,938 --> 00:07:10,489
No one else knew anything about it.

95
00:07:10,489 --> 00:07:17,734
And then of course with that, they're like, wouldn't it even be better if Kubernetes
deployed all of our infrastructure for us, you know, because it wasn't complicated enough

96
00:07:17,734 --> 00:07:18,675
before that.

97
00:07:18,675 --> 00:07:22,107
And so they wrote all their infrastructure uh was deployed through crossplane.

98
00:07:22,107 --> 00:07:23,668
And then as a result,

99
00:07:23,758 --> 00:07:25,200
They're like, oh, this is boring.

100
00:07:25,200 --> 00:07:27,644
I've automated everything time to leave.

101
00:07:27,644 --> 00:07:36,598
And these like, I was like five engineering teams now had Kubernetes and crossplane
running as their only IAC and their whole architecture was run like that.

102
00:07:36,598 --> 00:07:39,895
And no one had any idea really what the heck was going on at that point.

103
00:07:39,895 --> 00:07:44,118
It's, you know, I could believe they were on GKE, you said?

104
00:07:44,118 --> 00:07:44,909
Yeah, they will.

105
00:07:44,909 --> 00:07:46,060
Well, no, actually.

106
00:07:46,060 --> 00:07:48,593
Oh, yes.

107
00:07:48,593 --> 00:07:50,845
These were the days and it actually wasn't so long ago.

108
00:07:50,845 --> 00:07:53,768
They were running Kubernetes on top of the virtual machines directly.

109
00:07:53,768 --> 00:07:55,390
They weren't using GKE.

110
00:07:56,794 --> 00:07:58,575
Yeah.

111
00:07:58,575 --> 00:08:05,818
And this is kind of, you know, we come at this from an interesting perspective at Cloud
Posse and me in particular.

112
00:08:06,098 --> 00:08:10,340
there are so many, like the whole problem space of DevOps has gotten so large.

113
00:08:10,340 --> 00:08:16,082
think it's almost impossible to claim to be a domain expert uh top to bottom on all of it.

114
00:08:16,082 --> 00:08:25,280
We have been laser focused at like day zero, like going from bare

115
00:08:25,280 --> 00:08:29,041
AWS account, for example, and then where do you build up from that?

116
00:08:29,041 --> 00:08:30,442
And what is the architecture of that?

117
00:08:30,442 --> 00:08:31,662
And how do you scale those systems?

118
00:08:31,662 --> 00:08:33,402
And how do you manage that with infrastructure's code?

119
00:08:33,402 --> 00:08:36,503
And then how do you build the software delivery patterns on top of that?

120
00:08:36,503 --> 00:08:38,084
And how do you get the team on?

121
00:08:38,084 --> 00:08:38,602
How do you know?

122
00:08:38,602 --> 00:08:39,694
It just goes on and Okay.

123
00:08:39,694 --> 00:08:40,514
Right.

124
00:08:40,515 --> 00:08:48,297
And cross-plane to me is really interesting, but everything I just said cross-plane is
almost after that.

125
00:08:49,057 --> 00:08:52,682
And that is the conundrum is that we simply that like it's

126
00:08:52,682 --> 00:09:01,550
If it's OPP, other people's problems to manage everything I just said, absolutely agree,
cross-playing sounds really awesome all day long.

127
00:09:01,550 --> 00:09:06,073
And if you're running on GKE and you have autopilot, I guess you're closer to that.

128
00:09:06,073 --> 00:09:16,422
But then there's still everything else that has to go on there that is more than just this
one little cute thing of deploying apps and infrastructure with that for your applications

129
00:09:16,422 --> 00:09:21,866
because it's like an iceberg where the rest of your infrastructure is underneath the
surface.

130
00:09:22,034 --> 00:09:22,935
I love the picture.

131
00:09:22,935 --> 00:09:31,802
I think there is this aspect that exists in the industry, especially in the infrastructure
as code space that evolved from we want to automate this thing because we know it's

132
00:09:31,802 --> 00:09:36,546
dangerous or I have more than one machine I have to SSH into to make a thing happen.

133
00:09:36,546 --> 00:09:41,610
And you get to this place where now, okay, what is the right tool of choice?

134
00:09:41,610 --> 00:09:45,993
And everything looks better than what you had before.

135
00:09:46,446 --> 00:09:52,026
It's good to take a step back sometimes and look, reflect on where we're at.

136
00:09:52,246 --> 00:09:55,186
And boy, I don't know when you got started on these things.

137
00:09:55,186 --> 00:10:03,126
I remember when Capistrano was like the silver, the holy grail of automated deployments
and things.

138
00:10:03,126 --> 00:10:05,126
This was a little tool built in Ruby.

139
00:10:05,166 --> 00:10:10,366
I remember doing a contract on this probably in 2008 or something in 2007.

140
00:10:10,586 --> 00:10:12,870
Gosh, that's almost 20 years ago at this point.

141
00:10:13,056 --> 00:10:16,068
So, but yeah, things were simpler back then.

142
00:10:16,068 --> 00:10:21,371
And you, we wonder like, what have we dug ourselves into here on all of it?

143
00:10:21,371 --> 00:10:35,448
And the one mea culpa that I would say that I've had over the last year or two softening
is recognizing that there are practical limits to IAC and automation where the ROI is not

144
00:10:35,448 --> 00:10:35,708
there.

145
00:10:35,708 --> 00:10:40,301
And it's not going to be, there's no universal rule for it.

146
00:10:40,301 --> 00:10:42,304
It will be different depending on the enter, the

147
00:10:42,304 --> 00:10:48,410
organization, for example, in enterprises, what I've seen is like for whatever reason, you
know, they have to use service now.

148
00:10:48,410 --> 00:10:53,805
They have to have this way that they provision OUs and accounts and things like that.

149
00:10:53,805 --> 00:10:56,708
And it doesn't make sense to introduce ICE.

150
00:10:56,708 --> 00:10:59,891
mean, fundamentally, think it still makes sense to introduce ICE.

151
00:10:59,891 --> 00:11:03,814
I understand why they say that they're not going.

152
00:11:03,886 --> 00:11:07,819
I mean, I think the message is it doesn't make sense to try to convince them to use IAC.

153
00:11:07,819 --> 00:11:11,222
It should still make sense to use IAC, but you know, try to have that conversation.

154
00:11:11,222 --> 00:11:12,512
That's the challenge.

155
00:11:13,373 --> 00:11:14,924
Yeah, obviously.

156
00:11:14,924 --> 00:11:17,196
I mean, it's like not worth it in any way.

157
00:11:17,196 --> 00:11:26,313
Like they're still paying me to do the consulting or advisory that they've asked for, but
that conversation is not like maybe I have to sacrifice a little bit on my principles, but

158
00:11:26,313 --> 00:11:29,826
realistically at the end of the day, like no one's going to care.

159
00:11:30,092 --> 00:11:38,819
I do need to ask about that though, because I feel like there is this area and maybe it's
worth going into it that basically you've mentioned is one of the cornerstone problems of

160
00:11:38,819 --> 00:11:39,120
IAC.

161
00:11:39,120 --> 00:11:48,560
I think it says bootstrapping and I think it was like, uh historically it was like, how do
I even get onto the machine in the first place to do the deployment?

162
00:11:48,560 --> 00:11:53,141
Well, I need to SSH, but I want that requires username and password and I don't want that.

163
00:11:53,141 --> 00:11:53,982
So.

164
00:11:54,002 --> 00:11:59,914
Obviously I need my authorized keys there in order to even remote in, but then how do I
get the key there before the first time?

165
00:11:59,914 --> 00:12:07,738
Well, like, oh, and then there's like a whole bunch of system administration, like
activities that, technologies that no one ever wants to talk about ever again, like pixie

166
00:12:07,738 --> 00:12:08,668
booting.

167
00:12:09,028 --> 00:12:11,369
But the same problem exists in the cloud, right?

168
00:12:11,369 --> 00:12:22,124
Like you still have to, for your very first AWS account, like sign up and like start
clicking some things in order to even deploy uh a deployer from your CICD platform or

169
00:12:22,124 --> 00:12:23,458
whatever you're going to utilize.

170
00:12:23,458 --> 00:12:26,922
to even grant it the permissions to get in and start doing that.

171
00:12:26,922 --> 00:12:29,534
What is the state of the art solution today?

172
00:12:29,534 --> 00:12:36,020
Or is it just basically admitting that what we have is just not good enough, but there's
no alternative?

173
00:12:36,398 --> 00:12:44,234
would say off the shelf from the cloud providers themselves, it's all an exercise left up
to the end user.

174
00:12:44,234 --> 00:12:49,569
And here's medium, go read the posts and you figure it out.

175
00:12:49,569 --> 00:12:55,453
I would say there is, depending on who you ask, you'll get wildly different answers.

176
00:12:55,453 --> 00:13:02,049
And I come at this, first and foremost, with major imposter syndrome.

177
00:13:02,049 --> 00:13:05,281
That's why we open sourced everything, because I want to do like,

178
00:13:06,478 --> 00:13:11,478
Who am I to do these things, maybe if I open source everything, know, believe me.

179
00:13:11,478 --> 00:13:17,458
But the other one is now I have the curse of knowledge because I've done all of this so
many times and we've just been focusing on that.

180
00:13:17,458 --> 00:13:23,958
So the example that you bring up here is I think how so many organizations approach the
problem.

181
00:13:23,958 --> 00:13:25,438
Okay, we need to deploy our apps.

182
00:13:25,438 --> 00:13:31,618
We need something, a deployer, we need something that does that, code build, GitHub
actions or something like that.

183
00:13:31,618 --> 00:13:33,898
And okay, so what do we need?

184
00:13:34,124 --> 00:13:36,705
Okay, we're going to need, I guess, a platform to run our apps.

185
00:13:36,705 --> 00:13:38,376
These days we would pick a container thing.

186
00:13:38,376 --> 00:13:40,778
So let's do ECS or Kubernetes or something.

187
00:13:40,778 --> 00:13:43,679
So many teams pick Kubernetes for the wrong reasons.

188
00:13:44,160 --> 00:13:47,501
And then they spin that up and you're successful with it.

189
00:13:47,501 --> 00:13:51,983
Like for the demo that you needed to do and it's all throwaway.

190
00:13:52,064 --> 00:14:02,209
it is like, if this is for a actual organization, an actual business, you got to ask
almost like the five whys and you got to go deeper and deeper and deeper and deeper.

191
00:14:02,209 --> 00:14:03,840
And it starts down to...

192
00:14:03,906 --> 00:14:08,270
fundamental questions that we ask, for example, like, all right, so what regions are we
going to be in?

193
00:14:08,270 --> 00:14:13,074
What namespace are we going to use to organize our resources?

194
00:14:13,074 --> 00:14:18,608
What IP ranges are we going to pick so that we can grow and expand and not overlap?

195
00:14:18,608 --> 00:14:20,440
How are we going to do service discovery?

196
00:14:20,440 --> 00:14:21,701
What are the DNS names?

197
00:14:21,701 --> 00:14:29,447
And it's like, there's, we call these design decisions and these are the things that are
not done by teams before they just start to go build out.

198
00:14:29,447 --> 00:14:33,558
So most of our engagements are companies that started in...

199
00:14:33,558 --> 00:14:40,843
A single account that grew and grew and grew, churned and churned and churned, one DevOps
engineer left, left it to the next guy who's keeping track of this thing.

200
00:14:40,843 --> 00:14:44,906
Then they realized, we need one more account because we shouldn't have everything in one
account.

201
00:14:44,906 --> 00:14:46,567
I'm just going to add a dev account.

202
00:14:46,567 --> 00:14:48,883
That's kind of cool, except for then they rushed something out.

203
00:14:48,883 --> 00:14:55,813
So now dev is kind of in production and not, and then it's not reproducible and everything
just grows organically.

204
00:14:55,813 --> 00:15:02,397
But this is why, like, if you ever built a modern software application, you don't do it
this way.

205
00:15:02,397 --> 00:15:03,360
oh

206
00:15:03,360 --> 00:15:07,332
It's like start, it's like, I'm going to build the next billion dollar company with bash.

207
00:15:07,332 --> 00:15:08,593
You don't do that.

208
00:15:08,593 --> 00:15:12,855
Point is you go more importantly with a framework for how to do these things.

209
00:15:12,855 --> 00:15:18,628
You don't go, I'm going to go pick up a book on JavaScript and then just go build my
billion dollar SaaS company.

210
00:15:18,628 --> 00:15:26,163
No, you're going to pick next JS and deploy it on a modern platform like for sale or, you
know, serverless functions or Kubernetes things.

211
00:15:26,163 --> 00:15:29,184
You're going to build on things that exist and not start from scratch.

212
00:15:29,184 --> 00:15:32,664
And this takes me back to what we started the conversation with.

213
00:15:32,664 --> 00:15:33,616
CloudFormation.

214
00:15:33,616 --> 00:15:36,850
is so fundamental and so basic and it sucks to use.

215
00:15:36,850 --> 00:15:43,029
So the first thing everybody does is reach for their templating system or reach for
something like this, but they're not reaching for a framework.

216
00:15:43,029 --> 00:15:45,863
And that's what everyone else does for every other language.

217
00:15:45,863 --> 00:15:46,684
I don't get

218
00:15:47,378 --> 00:15:58,884
I gotta tell you, realistically from our standpoint, one of the things that caught us very
early on is when we have a multi-account set up in AWS, we see the OU stack set as a

219
00:15:58,884 --> 00:16:09,751
strategy where realistically, AWS has a built-in mechanism to automatically deploy across
all your AWS accounts in your entire organization without having to know the account IDs,

220
00:16:09,751 --> 00:16:13,492
without needing permissions already set up in some specific way.

221
00:16:13,493 --> 00:16:16,014
And you can throw cloud formation at it, but...

222
00:16:16,014 --> 00:16:18,674
You can't throw open tofu out.

223
00:16:18,674 --> 00:16:20,134
You can't throw a Pulumi at it.

224
00:16:20,134 --> 00:16:22,294
I don't know if we're calling a terraform anymore.

225
00:16:22,294 --> 00:16:26,958
If system initiatives still exists as a product, you can't throw that at it.

226
00:16:26,958 --> 00:16:29,138
I think you need to close down.

227
00:16:30,144 --> 00:16:39,981
We can now we can officially talk about that and I think it really does help some part of
the bootstrapping story It is a little bit of a framework, but it doesn't get you to any

228
00:16:39,981 --> 00:16:51,610
real, you know final point one of the problems here though is is I think a lot of people
end up in a situation where as you mentioned the or the people who had constructed that

229
00:16:51,610 --> 00:16:57,714
architecture of their deployment story are no longer present at the company and so you're
coming into a scenario where

230
00:16:57,740 --> 00:17:04,941
Some people believe it's all working correctly and other people know the truth and those
people don't work in the company anymore.

231
00:17:05,710 --> 00:17:07,051
Exactly.

232
00:17:07,311 --> 00:17:11,355
And I've seen this too many times.

233
00:17:11,355 --> 00:17:17,760
When the tough gets going, the going gets, or how do say, going needs to get tough, but
they just get going.

234
00:17:17,760 --> 00:17:20,621
uh We'll leave it to the next person.

235
00:17:20,712 --> 00:17:21,932
Why would you stay?

236
00:17:21,932 --> 00:17:23,291
Like you fixed it.

237
00:17:23,291 --> 00:17:24,364
You know it works.

238
00:17:24,364 --> 00:17:25,578
Yeah, exactly.

239
00:17:25,578 --> 00:17:28,503
And then they write a post about high scale to, you know...

240
00:17:28,503 --> 00:17:29,613
How was so great, right?

241
00:17:29,613 --> 00:17:39,675
How we completely re-architected the deployment story at, know, insert uh some giant
multi-billion dollar company and then they get hired because of that story of which you,

242
00:17:39,675 --> 00:17:42,015
like, it was not a long-term viable.

243
00:17:42,015 --> 00:17:43,636
And maybe I'll ask this question.

244
00:17:43,636 --> 00:17:47,636
Like, what is it here that really solves the problem for us?

245
00:17:47,636 --> 00:17:57,120
Like, how does an engineer or a team lead or a director who comes into a company and sees
the current state, how do they get from that to...

246
00:17:57,120 --> 00:18:02,136
something that we would consider a viable long-term infrastructure strategy.

247
00:18:02,136 --> 00:18:02,926
Yeah.

248
00:18:03,027 --> 00:18:04,728
that's a really good question.

249
00:18:04,728 --> 00:18:10,253
I like to think that we solved it, but let me not answer it from how we approach it and
just more generically.

250
00:18:10,253 --> 00:18:18,520
I think any conversation on this would be incomplete if we didn't also factor in how the
landscape has changed as well today.

251
00:18:18,520 --> 00:18:20,641
And I'm going to get to where I'm going with that.

252
00:18:20,762 --> 00:18:21,542
AI.

253
00:18:21,542 --> 00:18:22,823
Let's face it.

254
00:18:22,823 --> 00:18:31,500
But what has, what the key thing about AI is it rewards best practices and brutally
punishes.

255
00:18:31,786 --> 00:18:33,007
bad practices.

256
00:18:33,007 --> 00:18:35,588
Now there is no canonical best practice.

257
00:18:35,588 --> 00:18:39,440
There's golden paths or recommendations or conventions.

258
00:18:39,440 --> 00:18:41,712
So that's where I would like to take it.

259
00:18:41,712 --> 00:18:51,107
So if we go into this organization and they're in this position and they're going to
approach this from the ground up, one thing is what are all the practices that they're

260
00:18:51,107 --> 00:19:00,460
missing that mean that they can't institute these systems and things like that have done
really well for us are architectural design records along the way.

261
00:19:00,460 --> 00:19:10,516
Because oftentimes decisions made were the best at the time, given what was available,
what is uh the time, budget, money, all these other factors.

262
00:19:10,516 --> 00:19:17,380
But the problem we as engineers have when we go into one of these problems is I know
exactly how we solve this.

263
00:19:17,380 --> 00:19:20,862
I'm going to do exactly what I did the last company, but I just left.

264
00:19:20,862 --> 00:19:24,884
I didn't stick around to manage it or maintain or see what it was going to be in one or
two years.

265
00:19:24,884 --> 00:19:28,126
But I get to now advise the next company exactly what I'm going to do.

266
00:19:29,257 --> 00:19:34,618
And hence, we're just recycling advice for more than it's worth.

267
00:19:34,618 --> 00:19:35,438
it's worse and worse.

268
00:19:35,438 --> 00:19:43,478
So what I wanted to say is seek to understand what the problems are before we seek to fix.

269
00:19:43,838 --> 00:19:49,878
In one of these enterprise environments, think it's too often they just start, we're just
going to build new, we're going to create a new account where you're going to repeat all

270
00:19:49,878 --> 00:19:56,038
the same mistakes all over again, not learning from what we did because it's as engineers,
it's what we do.

271
00:19:56,078 --> 00:19:57,418
We engineered.

272
00:19:58,136 --> 00:19:59,567
I mean, I like the business focus.

273
00:19:59,567 --> 00:20:05,850
I think it's one of the things that's often missed and realistically when you're focusing
on this, is that conversation.

274
00:20:05,850 --> 00:20:08,952
It's why do we think what's currently there is broken?

275
00:20:08,952 --> 00:20:17,656
uh Why do we think the new thing is gonna be so much better than what we currently have
and not really worrying about the cost or the transition to get there?

276
00:20:17,897 --> 00:20:24,886
I have been coming around to the alternative argument though, is if we have to always, let
me say this differently.

277
00:20:24,886 --> 00:20:27,542
I've seen a lot of companies say, we're data-driven.

278
00:20:28,046 --> 00:20:38,065
I think that's a dirty thing to say because it means that basically we don't make any
decisions unless we have data, but there are certain things that you'll never have data

279
00:20:38,065 --> 00:20:38,495
for.

280
00:20:38,495 --> 00:20:41,527
So you're basically saying we're never going to go down that path.

281
00:20:41,527 --> 00:20:49,815
And I think this is one of those areas where it's very difficult to prove that an
architectural strategy that drives your infrastructure as code or your overall

282
00:20:49,815 --> 00:20:56,430
infrastructure uh would be better if it were totally different without already having that
in place.

283
00:20:56,430 --> 00:21:00,830
is just like, oh, it's like this one, like, oh, I love when executives do this.

284
00:21:01,010 --> 00:21:09,010
We're gonna transition to Azure or GCP because we're getting millions or tens of millions
of dollars in credits and it will be so much better, right?

285
00:21:09,010 --> 00:21:10,390
The clouds are interchangeable.

286
00:21:10,390 --> 00:21:15,030
And then of course, all your enterprise architects stand up and say, no, please don't do
that.

287
00:21:15,030 --> 00:21:16,130
This is a huge mistake.

288
00:21:16,130 --> 00:21:18,390
This is a reason why they're throwing money at you.

289
00:21:18,390 --> 00:21:20,570
But, know, good thing we're using Kubernetes.

290
00:21:20,570 --> 00:21:22,330
We can just transplant everything.

291
00:21:22,330 --> 00:21:25,666
And then you go through it and you realize, okay, you know,

292
00:21:25,666 --> 00:21:28,207
five years later, this was such a mistake.

293
00:21:28,207 --> 00:21:29,628
maybe there is a good, or maybe not.

294
00:21:29,628 --> 00:21:31,129
Maybe it was the best decision ever.

295
00:21:31,129 --> 00:21:35,712
But you only have the benefit of that after the fact.

296
00:21:35,712 --> 00:21:43,967
so I do want to ask, so you said, you know, there's the generic answer and then maybe
there's also the specific answer because you've been in this uh advisory position where,

297
00:21:43,967 --> 00:21:50,620
of course, you are now the de facto expert because you've written the open source modules
because your name is attached to them in some capacity.

298
00:21:50,620 --> 00:21:52,171
uh You know, you run the company.

299
00:21:52,171 --> 00:21:53,832
Oh, of course, Eric.

300
00:21:54,104 --> 00:21:56,057
Foremost expert in the area.

301
00:21:56,219 --> 00:21:59,750
How do you work with these clients to actually transition them specifically?

302
00:21:59,750 --> 00:22:03,373
I mean, you did talk about the questions you asked, but there's obviously more to it than
that.

303
00:22:03,714 --> 00:22:12,528
You know, the interesting thing, the position that we're in for it is that we put out a
lot of material, a lot of modules, a lot of posts.

304
00:22:12,528 --> 00:22:14,579
We have our own IAC framework.

305
00:22:14,579 --> 00:22:19,541
So if you don't not hear the subtle message here, you need a framework and we have
something called Atmos.

306
00:22:19,541 --> 00:22:20,791
So it's an open source thing.

307
00:22:20,791 --> 00:22:21,351
Go check it out.

308
00:22:21,351 --> 00:22:21,612
No.

309
00:22:21,612 --> 00:22:22,082
Okay.

310
00:22:22,082 --> 00:22:23,532
So back to this question.

311
00:22:23,532 --> 00:22:32,180
The thing is we self, we, we find people who self-select that they know the problem by
communicating that these things are problems.

312
00:22:32,180 --> 00:22:34,471
so much throughout posts and everything.

313
00:22:34,612 --> 00:22:43,237
the hardest thing, you can't like going back to this thing with, you know, click ops for,
or control tower or managing organizations or things like that.

314
00:22:43,237 --> 00:22:47,899
It's like, you're not going to convince certain organizations that they need to make that
change.

315
00:22:47,899 --> 00:22:49,971
And dude, they got a lot more money than I have.

316
00:22:49,971 --> 00:22:50,871
They're doing something right.

317
00:22:50,871 --> 00:22:55,944
So it's not going to make it or break it, even though, you know, fundamentally I disagree.

318
00:22:55,944 --> 00:22:59,614
My point is you have to first accept that you have this problem.

319
00:22:59,614 --> 00:23:03,957
seek, understand what your problem is, then seek solutions and see what's out there.

320
00:23:03,957 --> 00:23:10,462
So for customers that approach us, they've already identified based on the material we put
out that they have these problems.

321
00:23:10,462 --> 00:23:22,450
We just nudge them now, like, all right, so you only have three accounts, but therefore
you have no ability to control uh the boundaries uh between services effectively.

322
00:23:22,811 --> 00:23:26,776
people so much think, one of them, I would say one of the biggest misconception is like,

323
00:23:26,776 --> 00:23:29,467
We just need three accounts, dev, staging and production, right?

324
00:23:29,467 --> 00:23:30,477
Yes, you are right.

325
00:23:30,477 --> 00:23:34,379
You only need three accounts for an SDLC for software development life cycle.

326
00:23:34,379 --> 00:23:45,323
But that neglects the other, that iceberg underneath the surface of everything else you're
managing from uh audit logs and security products and network management and centralized

327
00:23:45,323 --> 00:23:54,957
ingress, egress and the automation uh where that runs and the list just keeps going and
going and going.

328
00:23:54,957 --> 00:23:56,620
So for these companies,

329
00:23:56,620 --> 00:23:58,752
We, we paint first.

330
00:23:58,752 --> 00:24:05,938
think one of the things Amazon has done a great job on, they have this framework where
it's kind of assess, mobilize, migrate.

331
00:24:05,938 --> 00:24:09,861
And it sounds like buzzwords, but I've learned to internalize it.

332
00:24:09,861 --> 00:24:13,444
Assess means that seek to understand, know what your problems are.

333
00:24:13,444 --> 00:24:15,645
And then, I guess I skipped one step.

334
00:24:15,645 --> 00:24:16,746
It's modernize.

335
00:24:16,746 --> 00:24:23,552
So then show what the future could look like, mobilize, show that you, your stuff can do
that way.

336
00:24:23,552 --> 00:24:26,690
And now think about how we migrate, but that's dangerous.

337
00:24:26,690 --> 00:24:37,618
I've seen so many things where now, you know, we built this shiny new uh panacea, but you
never, you know, it just remains that way because now you have two problems.

338
00:24:37,618 --> 00:24:40,360
You can't move off of the old and now you have the new one.

339
00:24:40,360 --> 00:24:45,483
And by the time you move on to the new one, now there's a new one.

340
00:24:45,483 --> 00:24:48,785
And God help you if you've been naming these environments new.

341
00:24:49,710 --> 00:24:53,361
Well, there's like, know, legacy, legacy, know, 2000.

342
00:24:53,361 --> 00:24:56,016
mean, my thing is always just put the data in it.

343
00:24:56,016 --> 00:25:06,055
so I do need to ask, though, especially in today's climate, I'm wondering what the field
looks like from your perspective now, because I think it's going to be unavoidable for you

344
00:25:06,055 --> 00:25:12,044
to be seeing environments that were partially or completely set up by the recommendations
from LLMs.

345
00:25:12,044 --> 00:25:13,024
Yeah, yeah, yeah.

346
00:25:13,024 --> 00:25:20,396
And I think this is where a lot of uh valid concerns are, but a lot more FUD, fear,
uncertainty and doubt.

347
00:25:20,396 --> 00:25:26,018
And I like to always bring it back down to applications and application architecture and
so forth.

348
00:25:26,018 --> 00:25:34,000
They, you will have a much worse outcome if you are just saying, Hey, spit me out some
JavaScript and reinvent React for me.

349
00:25:34,000 --> 00:25:38,422
And don't use a framework and just do that and see where that gets you.

350
00:25:38,422 --> 00:25:39,468
And that's what people are.

351
00:25:39,468 --> 00:25:40,034
That's what

352
00:25:40,034 --> 00:25:49,323
What you're hinting at, think leading at is that that's what some companies are doing is
that they approach infrastructure as code as though they were approaching JavaScript

353
00:25:49,323 --> 00:25:52,425
basic, not even TypeScript, just JavaScript.

354
00:25:52,766 --> 00:25:55,849
And that's why uh there'll be this problem.

355
00:25:55,849 --> 00:25:59,293
I don't know what the solution is for fixing that.

356
00:25:59,293 --> 00:26:04,957
I know what the solution is to avoid it, which is golden paths, best practices.

357
00:26:05,134 --> 00:26:09,576
codified decisions, architectural design records, requirements.

358
00:26:09,576 --> 00:26:12,898
And this is catnip for AI.

359
00:26:12,898 --> 00:26:19,351
And when you start with that from the foundation, now you can start every new thing
follows those conventions.

360
00:26:19,351 --> 00:26:25,083
And in your use case here, you have your own in-house framework and there's no shame in
that.

361
00:26:25,363 --> 00:26:30,346
You define the skills, you define the agents around that that know what to do.

362
00:26:30,346 --> 00:26:31,468
And that...

363
00:26:31,468 --> 00:26:37,883
That's what's going to ensure a successful uh contributor process throughout your
organization for everyone else.

364
00:26:37,883 --> 00:26:41,066
What do I mean when I say agents and skills?

365
00:26:41,066 --> 00:26:43,648
Not everyone is familiar with these concepts yet.

366
00:26:43,648 --> 00:26:47,630
So Claude, think has done the best job evangelizing it.

367
00:26:47,650 --> 00:26:51,394
And let's face it, prompt engineering is all marked down.

368
00:26:51,394 --> 00:26:56,998
And that thing we used to call WikiOps, a pejorative, now is

369
00:26:57,542 --> 00:26:58,411
Don't say it.

370
00:26:58,411 --> 00:26:59,677
Don't say it.

371
00:26:59,842 --> 00:27:02,023
But that now is what enables the AI.

372
00:27:02,023 --> 00:27:09,707
So an agent is basically an instance of AI running with some instructions with a prompt in
its own context.

373
00:27:09,707 --> 00:27:13,760
And a skill is basically a prompt that you have.

374
00:27:13,760 --> 00:27:15,990
So you have a library of prompts.

375
00:27:15,990 --> 00:27:17,752
Those prompts have front matter.

376
00:27:17,752 --> 00:27:21,434
The front matter is kind of like the yaml at the beginning of the markdown.

377
00:27:21,434 --> 00:27:27,457
And that's what the AI looks at to say, hmm, should I care about this bit of uh knowledge?

378
00:27:27,457 --> 00:27:29,408
Should I care about this bit of knowledge?

379
00:27:29,408 --> 00:27:31,219
It finds the skills it needs.

380
00:27:31,219 --> 00:27:35,581
It finds the agents that can do the job and then it executes it and it'll do well.

381
00:27:35,581 --> 00:27:41,963
And this you can implement today and you your organization, if you haven't already, this
is what we're doing at our organization.

382
00:27:41,963 --> 00:27:47,385
And it's been amazing because we have this IAC framework because we have the Terraform
modules.

383
00:27:47,385 --> 00:27:48,986
We have all the context.

384
00:27:48,986 --> 00:27:50,967
We have the ADRs.

385
00:27:50,967 --> 00:27:52,748
We have the requirements.

386
00:27:52,748 --> 00:27:55,943
Dude, it's like, I'm talking to my digital twin.

387
00:27:55,943 --> 00:27:57,440
I don't mean like cloning environment.

388
00:27:57,440 --> 00:27:59,110
Like I have my...

389
00:27:59,520 --> 00:28:03,500
my assistant here who knows exactly what I want, how I want it, and it implements that.

390
00:28:03,500 --> 00:28:05,574
And this is what enterprises need.

391
00:28:05,802 --> 00:28:08,973
I think you've hit it on it very specifically.

392
00:28:08,973 --> 00:28:16,145
Actually, a couple episodes ago, we talked with Dan Walleen from Azure about skills
specifically.

393
00:28:16,145 --> 00:28:24,578
But I think what we actually landed on as sort of a definition, and I think there is an
aspect here that a lot of less technical people, or even those that just haven't really

394
00:28:24,578 --> 00:28:28,689
explored agents as much, are really understanding what skills are.

395
00:28:28,709 --> 00:28:33,194
And after a long time, I think where we landed is this idea.

396
00:28:33,194 --> 00:28:42,006
that historically you had to write a README file and in that README file for open source
repositories, was like 100, like basically a hundred pages long of how to build and deploy

397
00:28:42,006 --> 00:28:44,370
that piece of software to your infrastructure.

398
00:28:44,370 --> 00:28:47,053
And often it didn't have handling.

399
00:28:47,053 --> 00:28:47,974
What?

400
00:28:49,477 --> 00:28:49,647
right.

401
00:28:49,647 --> 00:28:50,067
That's the point.

402
00:28:50,067 --> 00:28:50,574
It's like.

403
00:28:50,574 --> 00:28:55,134
Oh yeah, it like probably had explanation for like how to deploy it with Docker swarm
only.

404
00:28:55,134 --> 00:28:56,434
There's no Kubernetes.

405
00:28:56,594 --> 00:29:07,354
And if you're not using you want to, you know, bare virtual machine, there was only Ubuntu
server version 2016 and that's it because the maintainers didn't decide to actually go any

406
00:29:07,354 --> 00:29:14,314
further because there's so many flavors of stuff and on the end there's just and there's
going to be a new one all the time and managing that was just going to be too complicated.

407
00:29:14,314 --> 00:29:17,952
And on the flip side, in order to even understand those instructions, you would have to.

408
00:29:17,952 --> 00:29:19,223
also be an expert.

409
00:29:19,223 --> 00:29:27,287
I feel like historically now, you know, in last few years, the agents would have to know
how to handle each of those pieces individually.

410
00:29:27,287 --> 00:29:34,530
And when we look at what's available in the training data for for agents, like half of it,
least half of it is definitely garbage.

411
00:29:34,530 --> 00:29:36,246
And this is what you're pulling into your organization.

412
00:29:36,246 --> 00:29:41,806
And I think this is where you were going realistically, is that you don't want to trust
what's in the agent.

413
00:29:41,806 --> 00:29:50,806
Specifically or the LLM the foundational model to understand how to deploy everything
correctly you want to use what's in the repository But that's incomplete and historically

414
00:29:50,806 --> 00:30:01,226
you could write some sort of bash script that had like if Mac OS if Windows if Windows
Server You know 2007 if Windows Server, you know, 27 or 2012 etc, etc You don't do that

415
00:30:01,226 --> 00:30:09,126
anymore because some of that's included in them in the LLM model But you also don't want
to trust that so you would install the skill for deploying in your infrastructure in

416
00:30:09,126 --> 00:30:11,348
kubernetes in docker swarm Whatever you're

417
00:30:11,348 --> 00:30:15,781
and also the skill from that repository for deploying that specific open source.

418
00:30:15,781 --> 00:30:19,623
And now hopefully those two pieces together would be sufficient for actually deploying.

419
00:30:19,623 --> 00:30:26,707
I do like your perspective of if you don't do the ADRs, you don't write any documentation
for your internal stuff.

420
00:30:26,707 --> 00:30:29,748
You're pretty much just pulling whatever garbage is in the LLM.

421
00:30:29,748 --> 00:30:36,942
And so if you do write ADRs, if you do write readmeets, that's like incredibly valuable
stuff because that's exactly going to be the instruction.

422
00:30:36,942 --> 00:30:37,903
So you can call it whatever you want.

423
00:30:37,903 --> 00:30:38,663
You can call it skills.

424
00:30:38,663 --> 00:30:40,568
can call it prompts, et cetera.

425
00:30:40,568 --> 00:30:50,728
But that's going to be the thing that actually causes the right thing to happen when you
ask your LLM, hopefully not an internal one, one of the foundational models, how do I

426
00:30:50,728 --> 00:30:53,110
write this script to deploy to my infrastructure?

427
00:30:53,134 --> 00:30:54,265
Yeah, I think that's it.

428
00:30:54,265 --> 00:30:56,196
that's, you know, so garbage in, garbage out.

429
00:30:56,196 --> 00:30:59,898
So if you're only starting with just a pure LLM, it's amazing.

430
00:30:59,898 --> 00:31:03,430
The first time you do it on the surface, it was perfect.

431
00:31:03,430 --> 00:31:04,090
Just what you asked for.

432
00:31:04,090 --> 00:31:05,641
And then you dig in and you see it.

433
00:31:05,641 --> 00:31:06,812
And then here's the kicker.

434
00:31:06,812 --> 00:31:09,503
And anybody who's been playing with these things knows this.

435
00:31:09,503 --> 00:31:10,373
You delete that.

436
00:31:10,373 --> 00:31:11,804
You ask the same thing again.

437
00:31:11,804 --> 00:31:13,985
You didn't get exactly the same outcome.

438
00:31:13,985 --> 00:31:15,546
You got something kind of similar.

439
00:31:15,546 --> 00:31:17,467
And that's disconcerting.

440
00:31:17,467 --> 00:31:22,410
So uh you need an imperative artifact from this, right?

441
00:31:22,850 --> 00:31:24,392
I actually don't mind.

442
00:31:24,392 --> 00:31:32,461
One thing I get so triggered when people say it's not deterministic because that has like
from an engineering background for me, that has a completely different meaning than how

443
00:31:32,461 --> 00:31:33,936
people are utilizing it.

444
00:31:33,936 --> 00:31:42,292
I get the same prompt, different output potentially, but there's like seeds and
temperature you can change and stuff like that that you're just not like directly exposed

445
00:31:42,292 --> 00:31:42,753
to.

446
00:31:42,753 --> 00:31:44,488
So, you know.

447
00:31:44,488 --> 00:31:49,551
between my machine and your machine and the ice system and

448
00:31:50,136 --> 00:31:51,387
Yeah, so that's definitely one thing.

449
00:31:51,387 --> 00:31:53,329
And I think there's a lot we can potentially talk about there.

450
00:31:53,329 --> 00:32:04,718
But the one thing that it doesn't line up for me is there still all these potential
pitfalls that exist in IEC development that we just assume go away as soon as we utilize

451
00:32:04,718 --> 00:32:08,220
like repositories or golden paths and therefore LLMs.

452
00:32:08,220 --> 00:32:09,681
But I still feel like are there.

453
00:32:09,681 --> 00:32:15,616
And the one that comes to my mind most readily is that there is this aspect where

454
00:32:15,616 --> 00:32:20,268
a cloud provider or tool that you're utilizing can know that a resource should not be
deleted.

455
00:32:20,268 --> 00:32:28,952
An example could be a database that is currently have open connections to, or has been
read or written to in the last hour, day, week.

456
00:32:29,092 --> 00:32:33,314
And I feel like there's very few protections in place without pulling in something.

457
00:32:33,314 --> 00:32:35,855
Someone said check off uh a little while ago.

458
00:32:35,855 --> 00:32:38,916
I don't even know if that really does what you would want.

459
00:32:38,916 --> 00:32:43,498
And I feel like there are these pitfalls and I really would like that problem to be
solved.

460
00:32:43,680 --> 00:32:50,484
It's not like cloud providers don't offer this level of protection for little mistakes
that come into your pipeline.

461
00:32:50,484 --> 00:32:58,069
So maybe if I'll take the devil's advocate perspective here, it's so great to have the
LLMs auto-generate all the code.

462
00:32:58,069 --> 00:33:05,573
I don't care if it's not the same every time because I'm going to commit it to the
repository, but man, it's going to accidentally change one of those parameters that causes

463
00:33:05,573 --> 00:33:10,316
the whole piece of infrastructure, the database to be destroyed and recreated
accidentally.

464
00:33:10,316 --> 00:33:10,766
Yeah.

465
00:33:10,766 --> 00:33:14,427
So hearing what you said, I think, I think we are more or less in alignment.

466
00:33:14,427 --> 00:33:18,909
I think that the key thing here is you are committing that artifact at a point in time.

467
00:33:18,909 --> 00:33:21,409
And that's what you're building on and continue.

468
00:33:21,630 --> 00:33:25,441
It's this goldfish approach where we don't even to commit it anymore.

469
00:33:25,441 --> 00:33:26,591
We can just commute.

470
00:33:26,591 --> 00:33:29,622
We're just going to have a library of what we need and requirements.

471
00:33:29,622 --> 00:33:32,433
And we expect every time we do it to have the same outcome.

472
00:33:32,433 --> 00:33:33,493
And that's what you know.

473
00:33:33,493 --> 00:33:35,680
So you need to have an artifact.

474
00:33:35,680 --> 00:33:42,735
of what it is you're working with and you're building on that artifact, you're mutating,
you're improving it.

475
00:33:42,836 --> 00:33:49,041
So on the security side, I think these things are, there's no silver bullet, they're going
to be layers.

476
00:33:49,041 --> 00:33:57,347
So uh adding a layer that lets you look for maybe, you mean to do this thing?

477
00:33:57,347 --> 00:33:59,829
It's good, but it's not a guard rail.

478
00:33:59,829 --> 00:34:01,098
It means that.

479
00:34:01,098 --> 00:34:10,464
It's a little bit fungible, it's a little bit flexible, and it might see something else
that makes it, what you wanted, you didn't, you didn't want to delete that thing.

480
00:34:10,464 --> 00:34:13,006
And the guardrail wasn't there when you actually needed it.

481
00:34:13,006 --> 00:34:18,882
But having adversarial agents that kind of counteract each other is working well.

482
00:34:18,882 --> 00:34:27,827
So are you seeing like LLM as judged here, like where the guardrails are just like another
LLM that is validating what infrastructure is being changed and using that to make

483
00:34:27,827 --> 00:34:37,152
decisions or are we really talking about like some sort of programmatic and I'll use the
term that I hate deterministic here that can actually evaluate what's happening and make a

484
00:34:37,152 --> 00:34:39,886
real decision of whether or not that change is a good thing to do.

485
00:34:39,886 --> 00:34:43,726
Going back to this idea, I think it's defense in depth or layers.

486
00:34:44,406 --> 00:34:57,046
I think at the state we are at today with LLMs, using it for like a compliance level
guardrail or like black or white, I don't think it's 100%.

487
00:34:57,046 --> 00:35:03,926
What is though, is using that same LLM to generate the policy that is 100%.

488
00:35:03,926 --> 00:35:07,026
And that is closer to where we're going.

489
00:35:07,026 --> 00:35:08,044
And that's what I've seen.

490
00:35:08,044 --> 00:35:11,197
a lot of security startups focus on.

491
00:35:11,197 --> 00:35:15,961
Then there's the, like the, the, side of that, which is just the code review piece.

492
00:35:15,982 --> 00:35:19,105
And there's a lot of products in this space.

493
00:35:19,105 --> 00:35:27,984
The one that we've been using, uh we would not have been able to get to where we are in
the past year if it wasn't for CodeRabbit.

494
00:35:27,984 --> 00:35:31,116
Like CodeRabbit has been amazing.

495
00:35:31,137 --> 00:35:32,536
Technically speaking,

496
00:35:32,536 --> 00:35:33,427
There's not a lot there.

497
00:35:33,427 --> 00:35:43,655
And I'm pretty sure your engineering team can vibe code that on the weekend to do the same
exact thing minus the insane amount of training data and specializations and optimizations

498
00:35:43,655 --> 00:35:49,699
they've done to actually give really good reviews, at least from our perspective.

499
00:35:49,800 --> 00:36:00,188
So speeding up the code review process, getting better code into the system, having the
policies in place, simplifying the process to create those policies.

500
00:36:00,188 --> 00:36:02,370
So you're not, you don't have to know OPA.

501
00:36:02,370 --> 00:36:10,430
by heart, but you can express it, then it's effectively applied imperatively through the
policy.

502
00:36:10,444 --> 00:36:12,086
I want to break that down for a moment there.

503
00:36:12,086 --> 00:36:22,247
It sounds like what you're actually suggesting is that on top of whatever I see you have,
it makes sense to write policies about validating the changes, maybe what can be changed,

504
00:36:22,247 --> 00:36:27,102
what is allowed to be changed from an organizational ownership standpoint and open policy
agent.

505
00:36:27,102 --> 00:36:31,567
think that's what you meant by OPA is one way that you could potentially do that.

506
00:36:31,567 --> 00:36:32,780
just for as far as

507
00:36:32,780 --> 00:36:40,867
you know, should this person even be allowed to make this change or the permissions you're
granting to a service client be allowed to be granted and which services get access to

508
00:36:40,867 --> 00:36:42,039
which databases.

509
00:36:42,039 --> 00:36:49,064
And then on top of that, uh I actually don't know a lot about CodeRabbit, but I believe
it's the one that looks at your pull requests and gives you pull request reviews

510
00:36:49,064 --> 00:36:53,490
basically, and then also suggest changes and stuff like that to improve what you've got.

511
00:36:53,490 --> 00:36:54,440
Is that right?

512
00:36:54,506 --> 00:36:56,047
Yeah, it's like GitHub Copilot.

513
00:36:56,047 --> 00:37:02,970
uh Our experience with GitHub Copilot from a code review standpoint, look, these things
change monthly.

514
00:37:05,892 --> 00:37:06,943
And thank you GitHub.

515
00:37:06,943 --> 00:37:08,794
I am actually not a hater.

516
00:37:08,794 --> 00:37:11,916
I appreciate everything you do for open source and everything we do.

517
00:37:11,916 --> 00:37:23,566
Copilot uh reviews have been frustrating because I feel like they're either pedantic or
false positive or they haven't helped us move faster really.

518
00:37:23,566 --> 00:37:26,306
But CodeRabbit reviews, yeah, it's like on it.

519
00:37:26,306 --> 00:37:27,886
It understands our repo.

520
00:37:27,886 --> 00:37:34,946
sees that, wait, even though this is maybe not the industry standard for your convention,
I see that this is how you're doing it everywhere else in your repo.

521
00:37:34,946 --> 00:37:38,266
Maybe you should do it that way and not this other way, even though that might be better.

522
00:37:38,266 --> 00:37:40,586
So it helps you keep the consistency.

523
00:37:40,986 --> 00:37:44,426
It's allowed us in all of our projects just to...

524
00:37:44,426 --> 00:37:51,102
Now code reviews are like the 99 % done by the time we say, hey,

525
00:37:51,102 --> 00:37:53,227
Andre, can you review this pull request?

526
00:37:53,227 --> 00:37:55,792
Now he can look at something that is beautiful.

527
00:37:55,792 --> 00:37:56,854
It's been blessed.

528
00:37:56,854 --> 00:38:03,186
Now it's just like, did this capture like the essence of what we're trying to do ah versus
is this.

529
00:38:03,399 --> 00:38:06,805
looks good to me, you know, just more approvals there.

530
00:38:06,805 --> 00:38:16,220
sort of saw what I want to ask is, are there aspects of the CodeRabbit review that, you
know, and I don't want to turn this episode into an advertisement for CodeRabbit.

531
00:38:16,430 --> 00:38:20,420
Your affiliation, the way, just a happy couple.

532
00:38:20,420 --> 00:38:32,977
Is there something surprising that it ends up catching for you that would have a lot of
impact specifically or is it just reducing the challenge or the task of doing the code

533
00:38:32,977 --> 00:38:34,200
review in the first place?

534
00:38:34,200 --> 00:38:38,472
Let me take, I'm to answer you, but I need to answer a little bit indirectly.

535
00:38:38,513 --> 00:38:39,763
Go for it.

536
00:38:39,763 --> 00:38:47,157
And something else I've been kind of mulling about on my morning walks is this concept of
how fast we're moving.

537
00:38:47,378 --> 00:38:52,321
And the concept that's evolved for me is this term of vibe years.

538
00:38:52,321 --> 00:38:53,661
So we're all vibe.

539
00:38:53,842 --> 00:39:00,945
And if you're familiar with light years, it's really interesting because light is the
fastest thing we know, right?

540
00:39:01,026 --> 00:39:01,920
And yet...

541
00:39:01,920 --> 00:39:05,733
It takes millions of years for some of that light to reach us.

542
00:39:05,794 --> 00:39:09,457
And during that time, the universe itself has been expanding.

543
00:39:09,457 --> 00:39:12,359
So you haven't really gone anywhere further.

544
00:39:12,459 --> 00:39:15,012
Here we are with vibe coding is really awesome.

545
00:39:15,012 --> 00:39:15,990
It's really new.

546
00:39:15,990 --> 00:39:24,170
Uh, we're moving faster than we've ever moved before, but we're comparing ourselves to a
model T and that's how we were operating before.

547
00:39:24,170 --> 00:39:29,506
Now we're operating really fast, but the problem space and the opportunities are expanding
just as fast.

548
00:39:29,506 --> 00:39:40,426
So I would say these days, every week, we're basically doing a year's worth of engineering
progress every week.

549
00:39:40,426 --> 00:39:46,096
And when you produce that much, the burden to review it is a new problem.

550
00:39:46,096 --> 00:39:52,260
Because in the problem solution cycle, every problem you solve leads a whole new set of
problems.

551
00:39:52,260 --> 00:39:53,051
And you're never done.

552
00:39:53,051 --> 00:39:55,478
And this is also where I think

553
00:39:55,478 --> 00:40:04,352
You need something like CodeRabbit if you are going to be effective with AI in anything,
whether it's your application development, whether it's infrastructure and so forth, you

554
00:40:04,352 --> 00:40:09,884
need something that can review it at the scale, at the speed that you will be moving at.

555
00:40:09,884 --> 00:40:21,419
And that's what uh CodeRabbit enables by knowing your PRDs, noticing your requirements,
reconciling that with the rest of what you have there so that what you can review is

556
00:40:21,419 --> 00:40:22,209
manageable.

557
00:40:22,209 --> 00:40:23,230
Did that answer it?

558
00:40:23,230 --> 00:40:24,040
Or did I just...

559
00:40:24,040 --> 00:40:27,374
I mean, I think that's certainly a huge part of it.

560
00:40:27,374 --> 00:40:31,699
And maybe a good look at what your software development life cycle should actually be.

561
00:40:31,699 --> 00:40:41,709
And I think maybe this is the moral of the story for your episode, realistically here, is
that you have to stop and think about what the long term is actually going to look like.

562
00:40:42,326 --> 00:40:51,419
are just making individual pull requests and you put the LLM to generate some of the code
in the process and you're reviewing it yourself before putting it up, then you haven't

563
00:40:51,419 --> 00:40:52,479
really changed anything.

564
00:40:52,479 --> 00:40:57,271
Maybe the LLM is just a replacement for doing the internet search that you used to do.

565
00:40:57,271 --> 00:41:06,164
But if you're gonna be generating code or generating validations or policies dynamically
as part of your development process, then there's no way, like this is how you get around

566
00:41:06,164 --> 00:41:06,498
this.

567
00:41:06,498 --> 00:41:14,226
the critical bottleneck in your pipeline, is actually ensuring that the right code is
being written and the right feature was being implemented.

568
00:41:14,226 --> 00:41:19,130
You need to understand that sort of like a manufacturing process so that the flow makes
sense.

569
00:41:19,130 --> 00:41:27,532
However much you put in at the beginning is being managed and worked on in an equivalent
amount at all work cells in your process.

570
00:41:27,532 --> 00:41:29,643
Yeah, validation.

571
00:41:29,643 --> 00:41:30,707
Yeah, for sure.

572
00:41:30,707 --> 00:41:31,479
So.

573
00:41:32,018 --> 00:41:41,242
So review kind of solved, generating code pretty much solved, writing requirements, specs
pretty much solved.

574
00:41:41,242 --> 00:41:45,504
Validation is, there are a lot of attempts at it right now.

575
00:41:45,684 --> 00:41:50,757
Some cool ones I've seen, I forget exactly what their names are.

576
00:41:50,757 --> 00:41:58,742
We talked about one on office hours yesterday, but in the end you still need probably a
human to still look at the recording.

577
00:41:58,742 --> 00:42:02,746
or the screenshot or the something to validate that that thing is working.

578
00:42:02,746 --> 00:42:06,990
And for infrastructure as code, I don't have the silver bullet for that yet.

579
00:42:06,990 --> 00:42:12,224
I don't know what that is that actually validates that it is that thing that you think you
need.

580
00:42:13,996 --> 00:42:19,279
You know, this is where I'll like quote Corey Quinn, who's like famous for proponent of a
click ops.

581
00:42:19,279 --> 00:42:28,154
I, sort of mentioned that I think at the end of the day, what everyone actually wants is
the simplest experience possible that allows them to just click one button or type one

582
00:42:28,154 --> 00:42:31,356
thing and have exactly the right thing come to come out.

583
00:42:31,356 --> 00:42:37,419
But at the end of the day, there is nothing that can get you exactly 100 % accuracy in
what you're doing.

584
00:42:37,419 --> 00:42:40,501
And even before LLMs, this was still a problem.

585
00:42:40,501 --> 00:42:42,166
We just sort of replaced.

586
00:42:42,166 --> 00:42:49,290
the imperfect human with determining it with another imperfect object, but you still had
to do the validation at some point.

587
00:42:49,570 --> 00:43:00,326
I think so my question is going to be like, well, obviously everyone wants exactly as they
perceive it to be without any of the hidden pitfalls that they don't know.

588
00:43:00,326 --> 00:43:01,156
Right.

589
00:43:01,657 --> 00:43:03,308
What's the next iteration here?

590
00:43:03,308 --> 00:43:10,052
Because I do feel like we're in this thing that people are only starting to realize, which
used to take a lot of cycles.

591
00:43:10,052 --> 00:43:10,936
And that was

592
00:43:10,936 --> 00:43:16,651
there would be a technology or a platform that was built and then things would be built on
top of that and would go very slowly and we would build more and more and then we'd

593
00:43:16,651 --> 00:43:19,193
realize that all this stuff in the middle was wrong.

594
00:43:19,193 --> 00:43:27,360
Basically, we built the wrong stuff, the wrong abstraction, then we delete all of it and
replace the fundamental original platform with something just slightly on top of that

595
00:43:27,360 --> 00:43:30,162
which does all the things that we expect correctly.

596
00:43:30,162 --> 00:43:34,786
And I think with the usage of LLM, we're just accelerating this much faster.

597
00:43:34,786 --> 00:43:39,990
A recent example is like we talked about MCP like a couple of months ago.

598
00:43:40,138 --> 00:43:43,121
on the podcast and everyone was like, MCP is the best thing ever.

599
00:43:43,121 --> 00:43:48,687
And if you look in the recent, you know, knowledge, like the last couple of weeks,
everyone's like, MCP is dead.

600
00:43:48,687 --> 00:43:51,135
We're back to just calling APIs and CLI.

601
00:43:51,135 --> 00:43:52,227
MCP has died.

602
00:43:52,227 --> 00:43:55,254
His obituary was written on LinkedIn.

603
00:43:55,254 --> 00:43:56,154
Yeah.

604
00:43:56,276 --> 00:44:00,642
So at this point, I think we're going to officially switch over to PIX.

605
00:44:00,642 --> 00:44:03,545
So Eric, what have you brought for us today?

606
00:44:04,622 --> 00:44:11,126
So a little open-ended, not sure exactly if this is it, but uh two guiding things for me.

607
00:44:11,126 --> 00:44:14,267
One has been an epiphany I had when I read a book.

608
00:44:14,267 --> 00:44:18,339
Had nothing actually to do with, you know, software, what we do, but it was the 10X rule.

609
00:44:18,339 --> 00:44:19,150
Okay.

610
00:44:19,150 --> 00:44:21,601
And uh I think about it every day.

611
00:44:21,601 --> 00:44:23,112
It's on my license plate.

612
00:44:23,112 --> 00:44:24,793
It's literally 10X rule.

613
00:44:24,793 --> 00:44:34,770
And the idea is you got to set your goals 10 times higher, therefore work 10 times harder,
and then you'll actually achieve the thing you set out to do.

614
00:44:34,770 --> 00:44:40,080
And that explains why every software project fails because we didn't set it 10x.

615
00:44:40,080 --> 00:44:47,052
And I'm constantly reminded of this, that everything's going to take more work, but you
set the goals high, you get a pretty good outcome.

616
00:44:47,244 --> 00:44:49,525
like create extra stress though.

617
00:44:50,623 --> 00:44:53,664
yeah.

618
00:44:55,485 --> 00:45:02,248
I don't know if this generalization still holds true, but you you have a better quality of
life maybe in Europe.

619
00:45:03,049 --> 00:45:05,790
Here I slept four hours last night.

620
00:45:07,077 --> 00:45:08,331
Is that self-inflicted?

621
00:45:08,331 --> 00:45:09,193
though?

622
00:45:09,600 --> 00:45:11,869
Yeah, because I said that in X-Roll.

623
00:45:12,390 --> 00:45:22,153
I think the thing I would take away from this realistically is that there is a different
way of living for everyone and it's not worth necessarily following the cookie cutter

624
00:45:22,153 --> 00:45:24,023
pattern that an LLM recommends to you.

625
00:45:24,023 --> 00:45:28,234
mean, your therapist recommends to you about how you should live your life.

626
00:45:28,234 --> 00:45:35,756
And some people absolutely are adrenaline junkies or feel like they need to achieve
something or build something.

627
00:45:35,756 --> 00:45:41,378
thinking about how you want to go about and do that, I think is actually a real
challenging topic.

628
00:45:41,740 --> 00:45:46,413
when you're consulting an organization and ask them to think about who they want to be
when they grow up.

629
00:45:46,413 --> 00:45:50,336
I mean, you know, what, are they even doing the product that they're doing?

630
00:45:50,336 --> 00:45:54,240
So are you trying to achieve something specific right now?

631
00:45:54,240 --> 00:46:05,736
Yeah, I, well, you know, uh I have this delusion that I will finally solve, you know,
infrastructure and automation and how these things work.

632
00:46:05,736 --> 00:46:07,176
And it's what keeps me going.

633
00:46:07,176 --> 00:46:09,437
But the reality is, you know, we're never done.

634
00:46:09,878 --> 00:46:11,158
But it's doing something I love.

635
00:46:11,158 --> 00:46:12,819
I there's one other thing that hit me.

636
00:46:12,819 --> 00:46:14,220
Wear sunscreen.

637
00:46:14,220 --> 00:46:16,471
It's a weird song from like the nineties.

638
00:46:16,471 --> 00:46:18,542
was like a commencement speech.

639
00:46:18,636 --> 00:46:25,333
But in this thing, he states these like, you know, obvious facts like wearing sunscreen is
good, right?

640
00:46:25,333 --> 00:46:27,295
And brush your teeth, floss.

641
00:46:27,295 --> 00:46:33,382
But really the rest of my advice is, you know, has no basis in reality than my meandering
self, right?

642
00:46:33,382 --> 00:46:36,065
It's just like, there's, I love that song.

643
00:46:36,065 --> 00:46:41,366
It just, it's spoken word, interesting song, and that resonates with you at least if
you're 40 plus.

644
00:46:41,366 --> 00:46:43,285
Wait, is it, is it, you said commencement speech.

645
00:46:43,285 --> 00:46:46,606
Like was it at a commencement or is it, it's just part of the.

646
00:46:46,606 --> 00:46:52,806
ah It's recorded, at least it is, but then it was re-recorded with a soundtrack and a guy
playing a guitar.

647
00:46:52,806 --> 00:46:57,685
I've been listening to it.

648
00:46:57,685 --> 00:47:02,188
Everybody's Free to Wear Sunscreen, I think is the song.

649
00:47:02,188 --> 00:47:13,439
You know, I think this, so this segment didn't start off as a challenge for the host to
find, you know, very esoteric links to things that guests have referenced, but I think

650
00:47:13,439 --> 00:47:25,572
you've just, you've got a new high here that, you know, like if I can't find this, I'll be
just doing a disservice uh to all of our listeners about who now want to listen to this

651
00:47:25,572 --> 00:47:26,322
thing.

652
00:47:26,536 --> 00:47:28,320
I'll share the Spotify link.

653
00:47:28,320 --> 00:47:29,103
Okay, okay.

654
00:47:29,103 --> 00:47:35,250
So this is an easy found thing, not like you have to buy a DVD from Australia.

655
00:47:36,310 --> 00:47:39,394
it is, yeah, it's, it's interesting.

656
00:47:39,476 --> 00:47:46,326
was on Peloton one day and it was the closing song they played and I was like, wow, that's
deep.

657
00:47:46,368 --> 00:47:49,199
Okay, you know, I had this weird flashback.

658
00:47:49,199 --> 00:47:55,551
Like there was a song I was listening to in a taxi one time on the way home from an
airport when I was living in Wisconsin.

659
00:47:55,551 --> 00:47:58,651
And I don't know to this day what that was.

660
00:47:58,651 --> 00:48:01,772
And you say this and I'm wondering if it was that.

661
00:48:01,772 --> 00:48:04,403
But so I'm going to have to go and check this out.

662
00:48:04,403 --> 00:48:10,185
And you may have just saved me or uh this may be a new opportunity.

663
00:48:10,185 --> 00:48:15,386
So uh is that related to the 10x or is just just completely all worth it?

664
00:48:16,091 --> 00:48:17,504
polar opposites.

665
00:48:17,504 --> 00:48:21,358
Isaiah, protect yourself, also chase after your dream.

666
00:48:21,358 --> 00:48:31,938
It's just it's just a very succinct summary of just life, know in you know, you're in this
race But in the end it's only with yourself and you know, sometimes your head sometimes

667
00:48:31,938 --> 00:48:41,058
you're behind, you know Maybe you'll dance the funky chicken on your 75th birthday or you
know wedding anniversary or maybe your divorce You know, you don't know what you're gonna

668
00:48:41,058 --> 00:48:50,358
do right now at 21, but you know still people at age You know 40 still don't know what
they're gonna do, but the race is long and you you just keep going and so

669
00:48:50,390 --> 00:48:53,752
I love these kind of motivational, inspirational things.

670
00:48:53,752 --> 00:48:59,336
There's no one way and you can't just raw, raw, raw 10X and I didn't mean it to sound that
way either.

671
00:49:00,257 --> 00:49:11,375
But it also like if you're, you if you don't get the outcomes you want, the basis is too
low, the angle is too low, increase the angle and you know, it's not gonna be exactly that

672
00:49:11,375 --> 00:49:13,154
linear, but it's gonna be higher.

673
00:49:13,154 --> 00:49:14,284
You got to make it mathematical.

674
00:49:14,284 --> 00:49:14,654
Okay.

675
00:49:14,654 --> 00:49:22,517
Well, you know, that's something that will definitely resonate with uh quite a few people,
think, especially those that are aspiring for something more than where they are right

676
00:49:22,517 --> 00:49:23,177
now.

677
00:49:23,177 --> 00:49:27,158
I like, you know, the second best time to plant a tree is today.

678
00:49:27,158 --> 00:49:30,199
So you can take that and invest it in yourself.

679
00:49:30,199 --> 00:49:35,600
ah Sorry, it's uh from a book, the 10X yourself.

680
00:49:35,600 --> 00:49:36,300
yeah.

681
00:49:37,801 --> 00:49:38,141
Okay.

682
00:49:38,141 --> 00:49:38,641
Okay.

683
00:49:38,641 --> 00:49:40,582
I just want to make sure we have that on the recording.

684
00:49:40,582 --> 00:49:41,402
Okay.

685
00:49:41,442 --> 00:49:42,294
I love it.

686
00:49:42,294 --> 00:49:44,015
Yeah, so I guess I also brought a book.

687
00:49:44,015 --> 00:49:50,136
It's going around because I think it was just released on video or at the movies wherever
you are.

688
00:49:50,136 --> 00:49:53,337
Project Hail Mary based on the book by Andy Weir.

689
00:49:53,337 --> 00:50:00,459
And I think a previous pick of mine was The Martian book, which I just only recently saw
The Martian movie and it's just nowhere near as good as the book.

690
00:50:00,459 --> 00:50:03,950
So definitely read the book, Project Hail Mary.

691
00:50:03,950 --> 00:50:06,481
And I worry about bringing this up on the podcast.

692
00:50:06,481 --> 00:50:09,802
uh Eric, have you seen the movie or read the book?

693
00:50:10,342 --> 00:50:14,686
So, you know, luckily for me, don't have to discuss it because I don't think I was trying
so hard.

694
00:50:14,686 --> 00:50:19,940
Like, how do I even explain what it is without completely spoiling it in every way?

695
00:50:19,940 --> 00:50:21,452
Please do not watch trailers.

696
00:50:21,452 --> 00:50:24,895
Please do not read synopsis or descriptions of this in any way.

697
00:50:24,895 --> 00:50:26,606
Just jump in and read it.

698
00:50:26,606 --> 00:50:28,498
It's science fiction.

699
00:50:28,498 --> 00:50:29,759
So if you don't like that, whatever.

700
00:50:29,759 --> 00:50:33,222
But if you do like it, like everything, don't spoil it for yourself.

701
00:50:33,222 --> 00:50:38,566
I will say that it is about a main character that wakes up in a suspiciously constructed
spaceship.

702
00:50:38,686 --> 00:50:44,651
And of course, there's like some of the common cliches like he's got amnesia, but there's
actually turns out that there's a great reason for that.

703
00:50:44,651 --> 00:50:55,599
So if you like science fiction, if you like The Martian or his second book, Luna, I think
those on the moon or he wrote some fan fiction about Alice in Wonderland forever ago.

704
00:50:55,599 --> 00:51:04,496
Actually, ah there is a really great short story that he wrote that I didn't know was by
his from forever ago called the egg, which I also did a pick on.

705
00:51:04,496 --> 00:51:05,266
So.

706
00:51:05,474 --> 00:51:06,536
That's also pretty great.

707
00:51:06,536 --> 00:51:07,898
That was a pick in a previous episode.

708
00:51:07,898 --> 00:51:08,858
I don't know.

709
00:51:09,240 --> 00:51:16,190
don't love, I don't read that much, but when I do, I somehow stumble upon stuff that I
absolutely love and this is one of them.

710
00:51:16,440 --> 00:51:19,106
Sounds like you're reading definitely for pleasure, which is a good thing.

711
00:51:19,106 --> 00:51:20,283
ah

712
00:51:20,283 --> 00:51:21,143
it's interesting.

713
00:51:21,143 --> 00:51:30,071
I used to do this thing where I swap back and forth between one science fiction or fantasy
book and one sort of nonfiction about technology or leadership in some way.

714
00:51:30,071 --> 00:51:40,440
But I found that over time, I was collecting like a lot of notes on what I should do or
what I could do in hypothetical situations that I was never in at that moment.

715
00:51:40,440 --> 00:51:42,711
And it was just getting too monotonous for me.

716
00:51:42,711 --> 00:51:43,872
Yeah.

717
00:51:43,938 --> 00:51:47,590
You don't have to finish a book, but there's a book for every problem.

718
00:51:47,590 --> 00:51:49,090
And that's how I look at it.

719
00:51:49,090 --> 00:51:49,901
No, I totally agree.

720
00:51:49,901 --> 00:51:51,742
think that's a great way of putting it realistically.

721
00:51:51,742 --> 00:51:56,406
It's as a leader, the thing that I've learned is it's not about having the right answer to
the problem.

722
00:51:56,406 --> 00:52:00,580
It's about knowing how to find the right answer once you've identified the problem.

723
00:52:00,580 --> 00:52:06,045
So it's about problem identification, more so about actually prescribing the solution.

724
00:52:06,045 --> 00:52:10,769
Well, thank you so much, Eric, for joining us on this episode of Adventures in DevOps.

725
00:52:10,769 --> 00:52:12,450
It's been absolutely fantastic.

726
00:52:12,450 --> 00:52:13,916
Likewise, Warren, it's been awesome.

727
00:52:13,916 --> 00:52:15,181
I really enjoyed the conversation.

728
00:52:15,181 --> 00:52:16,828
You ask a lot of good questions.

729
00:52:16,828 --> 00:52:17,838
You keep it going.

730
00:52:17,838 --> 00:52:19,418
Oh, well, thank you so much.

731
00:52:19,418 --> 00:52:28,158
if anyone else wants to be the target of the onslaught of interrogation on my behalf, I'm
happy to give you your own episode.

732
00:52:28,158 --> 00:52:31,458
But until then, thanks for all the listeners for tuning in for this week.

733
00:52:31,458 --> 00:52:35,334
And hopefully we'll see everyone back again next week.

