1
00:00:00,000 --> 00:00:03,889
It's a bit of a shortcut to
think AI non deterministic.

2
00:00:03,940 --> 00:00:06,820
We need to be deterministic, so
we shouldn't use AI for that.

3
00:00:07,180 --> 00:00:13,070
I think the right analogy is AI has the
ability to replace human beings on certain

4
00:00:13,070 --> 00:00:15,250
tasks or help human beings augment them.

5
00:00:15,365 --> 00:00:19,785
So it's not about replacing,  everything
that people are doing, but in terms of,

6
00:00:19,905 --> 00:00:25,841
of analogy, it's really about building
an agent that can behave and think and

7
00:00:25,871 --> 00:00:27,941
act exactly like a human being would do.

8
00:00:28,221 --> 00:00:31,681
So, for instance, your platform engineer
or your DevOps engineer, working for

9
00:00:31,681 --> 00:00:34,121
you is actually non deterministic.

10
00:00:34,211 --> 00:00:34,851
Humans are non

11
00:00:35,268 --> 00:00:36,478
Humans are non deterministic.

12
00:00:36,568 --> 00:00:37,188
Right.

13
00:00:40,982 --> 00:00:43,862
This is the Agentic DevOps Podcast.

14
00:00:43,922 --> 00:00:49,152
I'm your host, Bret Fisher, and today
I have my guest, Sam Alba of Mendral

15
00:00:49,615 --> 00:00:55,562
on Sam goes way back, uh, one of the
early devs at Docker, co-founder of

16
00:00:55,562 --> 00:00:57,682
Dagger, and now co-founder of Mendral.

17
00:00:57,722 --> 00:01:03,284
So he's been focused on Cloud
native and now Agentic products

18
00:01:03,284 --> 00:01:05,954
for 15 plus years at least.

19
00:01:05,954 --> 00:01:08,728
And this is a wide ranging conversation.

20
00:01:08,728 --> 00:01:11,338
We mostly focus on Mendral, the tool.

21
00:01:11,338 --> 00:01:16,498
And the elevator pitch, I guess, that I
would give is, this tool currently looks

22
00:01:16,558 --> 00:01:20,938
at GitHub, it's focused on GitHub Actions
right now, but GitHub as a platform,

23
00:01:20,938 --> 00:01:24,418
particularly on actions and the workflows
and the events that happen there, but

24
00:01:24,418 --> 00:01:29,818
not just actions and it tries to act like
a DevOps junior engineer essentially.

25
00:01:30,028 --> 00:01:34,458
It's one, one of the closest, if not
the closest thing I have had as someone

26
00:01:34,458 --> 00:01:38,718
who focuses on GitHub Actions and
CI in there and just administrating.

27
00:01:38,973 --> 00:01:43,803
And managing that platform for DevOps
teams in particular, uh, it feels like

28
00:01:43,803 --> 00:01:47,673
the closest thing to an AI buddy that
is constantly looking at my GitHub,

29
00:01:48,378 --> 00:01:52,968
finding problems, not necessarily in the
code that the application developers are

30
00:01:52,968 --> 00:01:54,948
making, but in everything else around it.

31
00:01:55,368 --> 00:02:00,378
The linters, the testing infrastructure,
the GitHub action workflows and those

32
00:02:00,378 --> 00:02:04,578
pipelines that are happening in there,
the logging events, uh, anything

33
00:02:04,608 --> 00:02:09,378
misconfigured in security that dependabot
and renovate stuff, like just all the

34
00:02:09,378 --> 00:02:12,048
stuff that is focused around the code.

35
00:02:12,603 --> 00:02:16,413
For managing the platform for
storing code, running workflows

36
00:02:16,413 --> 00:02:18,993
and automations on that code,
and then eventually shipping it.

37
00:02:19,303 --> 00:02:22,813
They operate in this middle space
between the developers and the

38
00:02:22,843 --> 00:02:25,153
production deployments in infrastructure.

39
00:02:25,543 --> 00:02:27,223
And I think that's a sweet spot for me.

40
00:02:27,223 --> 00:02:29,653
Like that's exactly what I
wanted to talk to Sam about.

41
00:02:29,923 --> 00:02:33,823
And we spend quite some time digging
into the use cases for this thing.

42
00:02:33,823 --> 00:02:38,413
I actually run through some of my own
experiences because I, they onboarded

43
00:02:38,413 --> 00:02:43,648
me to the platform over a month ago, so
I've been using this thing irregularly,

44
00:02:43,888 --> 00:02:49,168
but as a single operator of over a
hundred repos, now, in my own GitHub,

45
00:02:49,498 --> 00:02:53,968
some of those are actual infrastructure
things in production for my own use, but

46
00:02:53,968 --> 00:02:58,708
also a lot of examples for my courses,
a lot of demos and sample tools and

47
00:02:58,708 --> 00:03:00,833
sample code that I'm have to manage.

48
00:03:00,833 --> 00:03:03,053
I treat this like my operations, right?

49
00:03:03,053 --> 00:03:06,923
So I'm doing the dependabot, I'm
doing the security reviews of things.

50
00:03:06,923 --> 00:03:09,083
I'm automating things with GitHub Actions.

51
00:03:09,473 --> 00:03:14,453
So while I'm not necessarily the
picturesque large team, managing

52
00:03:14,453 --> 00:03:19,643
large, big projects on there, I do
operate my own little business of one.

53
00:03:19,693 --> 00:03:22,148
I operate that in a very
similar fashion and I need help.

54
00:03:22,703 --> 00:03:28,103
I need a lot more DevOps help than
I admit, because I need to operate

55
00:03:28,103 --> 00:03:31,793
my business and I don't necessarily
have time to manage the platform

56
00:03:31,793 --> 00:03:35,213
automation stuff around my code.

57
00:03:35,303 --> 00:03:38,183
And that's really the problem I think
that Mendral's trying to go after.

58
00:03:38,183 --> 00:03:42,263
So we break down what it does, what
they're doing as an early stage startup.

59
00:03:42,263 --> 00:03:43,853
They just graduated YC.

60
00:03:44,733 --> 00:03:49,923
And we then get into even more details
around AI and because they're building

61
00:03:50,463 --> 00:03:54,273
today and they're graduating just
a few weeks ago from Y Combinator,

62
00:03:54,663 --> 00:03:57,933
they are one of these new AI
companies that are building with AI.

63
00:03:58,113 --> 00:04:01,713
They're using AI in the product
and their product ships AI

64
00:04:01,713 --> 00:04:03,933
features to us as the users of it.

65
00:04:03,933 --> 00:04:06,783
So they're kind of the
triple threat of AI.

66
00:04:06,963 --> 00:04:10,838
So we lean into that a little bit,
talking about what they're using AI for,

67
00:04:10,838 --> 00:04:13,898
what they see for the future of their
product, how do we going experience

68
00:04:13,898 --> 00:04:18,098
these things in the future where we're
all operating our own AI harnesses

69
00:04:18,128 --> 00:04:22,688
to manage our agents like Claude Code
and OpenCode and whatnot, when, how

70
00:04:22,688 --> 00:04:24,548
do we use this tool in the future?

71
00:04:24,758 --> 00:04:26,108
Anyway, we get into all that.

72
00:04:26,108 --> 00:04:27,518
It's a great conversation.

73
00:04:27,518 --> 00:04:32,033
I, I was excited to, to have it and we
went on so long that I, at some point

74
00:04:32,033 --> 00:04:34,223
just had to say, okay, we we're gonna
have to stop talking and make this

75
00:04:34,223 --> 00:04:38,273
another episode because we could have
gone for, uh, hours, I believe on this.

76
00:04:38,273 --> 00:04:41,873
So please enjoy this episode
with Sam Alba of Mendral.

77
00:04:42,373 --> 00:04:43,153
Welcome to the show.

78
00:04:43,653 --> 00:04:44,283
Hi Bret.

79
00:04:44,433 --> 00:04:45,383
Thanks for inviting me.

80
00:04:45,903 --> 00:04:47,951
we started this new company, Mendrall.

81
00:04:47,981 --> 00:04:50,161
We are now building an AI DevOps engineer.

82
00:04:50,428 --> 00:04:54,838
we, we basically see that, you know,
the emergence of coding agents and

83
00:04:54,838 --> 00:04:58,988
how they are shaping the, the future
of CI, CD and software delivery.

84
00:04:58,988 --> 00:05:02,258
And so we're building an
agent that can unblock steam.

85
00:05:02,318 --> 00:05:04,868
and now thanks to AI, we can
automate certain things that

86
00:05:04,868 --> 00:05:06,188
we could not automate before.

87
00:05:06,488 --> 00:05:11,453
And so today we have an agent that,
monitors and fixes, some of the,

88
00:05:11,498 --> 00:05:16,273
software delivery issues, flaky tests,
slow build, broken release processes.

89
00:05:16,818 --> 00:05:21,558
So, let's get into it because I,
so for, for the audience, Sam and

90
00:05:21,558 --> 00:05:24,468
I talked, I don't know, a couple
months ago at least, I think.

91
00:05:24,518 --> 00:05:26,118
and we had talked about Mendral.

92
00:05:26,628 --> 00:05:30,698
I'm building GitHub Actions courses
and content, and I've been a GitHub

93
00:05:30,708 --> 00:05:34,028
Actions consultant for probably
half a decade at least, or more.

94
00:05:34,508 --> 00:05:39,258
I think, actions I argue is like the
most popular, certainly for open source,

95
00:05:39,258 --> 00:05:41,268
but the most popular, CI platform.

96
00:05:41,268 --> 00:05:43,918
I'm just kind of going to call it
automation platform from now on because

97
00:05:44,398 --> 00:05:47,198
people do a lot more than just CI
in there and deployments and stuff.

98
00:05:47,698 --> 00:05:50,558
Solomon had clued me in to you all
because we were staying in touch

99
00:05:50,558 --> 00:05:52,468
around Dagger and, that's still going.

100
00:05:52,603 --> 00:05:56,703
we started talking about your
focus and it felt like a tool,

101
00:05:57,553 --> 00:05:58,953
that I should have in my toolbox.

102
00:05:59,003 --> 00:06:03,570
it also felt like something where
typically with large platforms,

103
00:06:03,570 --> 00:06:07,820
just like a cloud platform, like
AWS or Google Cloud, GitHub Actions

104
00:06:07,820 --> 00:06:09,640
is a very raw platform to me.

105
00:06:09,640 --> 00:06:11,610
I feel like it's got a lot of features.

106
00:06:11,610 --> 00:06:12,870
It's got a lot of sharp edges.

107
00:06:13,315 --> 00:06:18,545
But it also stops short of
what a, team typically needs

108
00:06:18,585 --> 00:06:20,105
out of everything, automation.

109
00:06:20,145 --> 00:06:23,860
And, we all talk about private
runners and we talk about sometimes

110
00:06:23,860 --> 00:06:28,850
like custom dashboards or, you know,
org level statistics and awareness,

111
00:06:28,860 --> 00:06:32,950
more, Observability into GitHub
Actions those are common questions.

112
00:06:33,450 --> 00:06:36,730
and I don't often have
great stories for that.

113
00:06:36,740 --> 00:06:41,300
because I think that market historically
where people have tried to have very niche

114
00:06:41,300 --> 00:06:47,345
little products, but pre AI, that solved
a little pain point for GitHub Actions.

115
00:06:47,575 --> 00:06:50,790
One, GitHub Actions wasn't quite
as popular five years ago, right?

116
00:06:50,790 --> 00:06:56,050
It hadn't rose Jira and Travis
and a lot of the other ones.

117
00:06:56,150 --> 00:06:59,580
And at the same time, there wasn't
the popularity, but these tools,

118
00:06:59,590 --> 00:07:02,810
since they were pre AI, they were
very limited, I feel like, in

119
00:07:02,980 --> 00:07:04,080
things that they could help with.

120
00:07:04,550 --> 00:07:08,700
And so we saw, I saw personally little
companies starting out, like little

121
00:07:08,700 --> 00:07:10,090
hobby products that almost felt like it.

122
00:07:10,090 --> 00:07:12,980
They weren't true, they weren't YC
Combinator companies trying to come out

123
00:07:12,980 --> 00:07:14,490
and be actually full fledged company.

124
00:07:14,490 --> 00:07:16,800
They were more like side projects
and someone figured out, oh, I

125
00:07:16,840 --> 00:07:18,610
could spin up runners faster.

126
00:07:18,610 --> 00:07:22,755
Which is like a whole new segment of the
market where there's now many companies,

127
00:07:22,780 --> 00:07:26,055
that host your runners for you, and
they're faster and cheaper and better.

128
00:07:26,110 --> 00:07:29,510
And then we've had little companies
experiment with like GUIs or

129
00:07:29,510 --> 00:07:33,005
web dashboards that do more than
what you might get out of the

130
00:07:33,015 --> 00:07:34,705
basics of GitHub Actions there.

131
00:07:35,205 --> 00:07:38,250
When we walked through yours,
was very excited about it.

132
00:07:38,260 --> 00:07:41,890
because rarely on this podcast, after
we're about to hit 200 episodes of

133
00:07:41,930 --> 00:07:45,660
this and the DevOps and Docker talk,
and rarely is there something there,

134
00:07:45,750 --> 00:07:48,920
especially in the Kubernetes land,
that I feel like is meant for me.

135
00:07:49,375 --> 00:07:53,455
That's something that solves my
problems, even as a solo developer

136
00:07:53,455 --> 00:07:55,745
and as a consulting DevOps engineer.

137
00:07:56,135 --> 00:08:00,795
So, could you talk a little bit
about like, when you both said, Hey,

138
00:08:00,795 --> 00:08:03,335
look, we're going to start this whole
new company because we believe this

139
00:08:03,345 --> 00:08:04,655
is the right time for this thing.

140
00:08:05,005 --> 00:08:05,985
Like, Where was your headspace?

141
00:08:05,985 --> 00:08:07,585
What problems were you trying to solve?

142
00:08:08,085 --> 00:08:11,856
Yeah, so, is a really broad, area.

143
00:08:12,026 --> 00:08:12,836
actually mentioned it.

144
00:08:13,406 --> 00:08:15,866
not exactly for just running your test.

145
00:08:15,866 --> 00:08:17,931
It's more like a workflow engine.

146
00:08:17,986 --> 00:08:21,561
it's a lot about orchestration
and automation, and we

147
00:08:21,561 --> 00:08:22,891
do a lot of things in CI.

148
00:08:23,251 --> 00:08:24,991
CI was always a bottleneck.

149
00:08:25,041 --> 00:08:28,161
every time, you know, you have
teams, as soon as you have some CIs

150
00:08:28,161 --> 00:08:31,891
you start with some workflows, like
a linter, a builder on your GitHub

151
00:08:31,891 --> 00:08:34,451
Actions or some other CI systems.

152
00:08:34,951 --> 00:08:39,431
And CI is always a bottleneck because
first of all, it's a central place

153
00:08:39,441 --> 00:08:42,571
for integration and for running
your tests when you ship your code.

154
00:08:43,071 --> 00:08:46,361
When we started Dagger, we wanted
to help people with this bottleneck,

155
00:08:46,381 --> 00:08:50,701
building programming tools so
engineers could actually solve

156
00:08:50,701 --> 00:08:52,631
their CI issues more efficiently.

157
00:08:53,131 --> 00:08:57,301
When we started, this new company,
Mendral, Andrew and I saw an opportunity

158
00:08:57,301 --> 00:09:01,931
to finally automate certain things
that we could not automate before AI.

159
00:09:02,411 --> 00:09:04,361
You know, for instance, there
are some release processes

160
00:09:04,661 --> 00:09:06,261
that you need to run manually.

161
00:09:06,301 --> 00:09:10,121
every team that's growing has
some sort of manual operations in

162
00:09:10,121 --> 00:09:12,211
their, in their release process.

163
00:09:12,371 --> 00:09:15,371
And on the other side, they have
issues that they don't spend time on

164
00:09:15,381 --> 00:09:19,021
fixing because it's never the priority
you want to build your product.

165
00:09:19,081 --> 00:09:20,411
You don't want to build your CI.

166
00:09:20,901 --> 00:09:23,311
And the problem is these
problems are piling up.

167
00:09:23,801 --> 00:09:28,566
That bottleneck is even getting bigger
with aI because now you have coding agents

168
00:09:28,566 --> 00:09:31,606
that push a lot of code to your CI system.

169
00:09:32,006 --> 00:09:35,726
And so the problem, this bottleneck that
was already a problem is getting worse.

170
00:09:36,016 --> 00:09:37,166
And it's only the beginning.

171
00:09:37,576 --> 00:09:41,916
And so we thought that now we have the
tools to, well now the problem is bigger

172
00:09:42,446 --> 00:09:44,706
one side there is more demand for it.

173
00:09:45,056 --> 00:09:49,186
And on the other side, we finally
have the tools thanks to AI to

174
00:09:49,186 --> 00:09:50,746
solve these problems efficiently.

175
00:09:51,246 --> 00:09:54,856
So the idea with Mendral is not
so much to make your CI better and

176
00:09:54,856 --> 00:09:58,361
equip developers, it's actually to
replace that work, to automate that

177
00:09:58,381 --> 00:10:01,631
work entirely so those developers
can focus on their applications.

178
00:10:02,031 --> 00:10:04,686
So that's really TLDR
of why we started that.

179
00:10:04,716 --> 00:10:09,176
And, and obviously software delivery
and CI CD in general is really broad.

180
00:10:09,236 --> 00:10:10,856
There is security involved.

181
00:10:11,221 --> 00:10:15,336
There is, you know, quality
control regression testing, like

182
00:10:15,486 --> 00:10:17,446
a lot of things goes through CI.

183
00:10:17,776 --> 00:10:22,851
And so we started initially
by building, we built an and a

184
00:10:22,851 --> 00:10:24,676
data platform really, looks at

185
00:10:25,166 --> 00:10:28,926
everything that's going on on your CI
system, the logs, the code changes,

186
00:10:29,231 --> 00:10:33,626
the past incidents, all of the events,
the behavior of the team, like all

187
00:10:33,626 --> 00:10:38,296
of this data, and then we started
to build specific agents on top.

188
00:10:39,061 --> 00:10:40,831
That's really what we're
building with Mendral.

189
00:10:41,416 --> 00:10:44,196
We have a lot of, you know, when
we started YC, we didn't know

190
00:10:44,196 --> 00:10:48,176
exactly what we had a working
MVP, but we didn't know when, what

191
00:10:48,176 --> 00:10:49,416
would be interesting for people.

192
00:10:50,016 --> 00:10:54,956
We ended end up spending a lot
of time fixing flaky tests and,

193
00:10:54,976 --> 00:10:56,706
you know, reliability problems.

194
00:10:56,706 --> 00:11:01,076
We have some teams actually using the
agent to improve performance of their CI.

195
00:11:01,106 --> 00:11:05,676
Like for instance, implement sharding,
strategies on top of their pipelines,

196
00:11:05,906 --> 00:11:09,811
to have some parallelization and so
they can ship faster because the CI can

197
00:11:09,811 --> 00:11:11,791
complete in a shorter amount of time.

198
00:11:11,951 --> 00:11:14,921
There are also some teams
using us for security reasons.

199
00:11:15,201 --> 00:11:18,941
Like for instance, our agent is
looking at security alerts, look at A

200
00:11:18,951 --> 00:11:24,491
CVE, see if it's exploitable on your
code base, auto remediate if needed.

201
00:11:24,831 --> 00:11:27,971
So there are really things
that you would expect a senior

202
00:11:27,971 --> 00:11:29,511
DevOps engineer to do for you.

203
00:11:29,918 --> 00:11:33,388
Uh, some of those teams actually
don't have specific roles for that.

204
00:11:33,388 --> 00:11:35,248
So use the agent it's a person.

205
00:11:35,603 --> 00:11:35,993
Yeah.

206
00:11:36,493 --> 00:11:41,583
I think I've been in tech for 30 years,
20 of those years I've been dealing with

207
00:11:41,583 --> 00:11:45,166
some sort of code management system.

208
00:11:45,196 --> 00:11:48,046
And that doesn't always have an
automation system built, like we

209
00:11:48,046 --> 00:11:50,376
didn't always have something like
GitHub where the automation system

210
00:11:50,876 --> 00:11:52,916
and the code storage
system were the same thing.

211
00:11:53,431 --> 00:12:01,331
but I'm just thinking back, and I don't
know a time where I would agree that

212
00:12:01,331 --> 00:12:07,701
the CI or the automation system for code
was a first class citizen in the team.

213
00:12:07,711 --> 00:12:10,131
It always feels like it's.

214
00:12:10,631 --> 00:12:14,711
The, the, I don't know if this is an
American phrase, the, redheaded stepchild.

215
00:12:14,721 --> 00:12:19,421
Like it always, yeah, it always felt
like it was just barely working.

216
00:12:19,831 --> 00:12:23,621
And especially when it came to Jenkins,
we're not sure if we could exactly

217
00:12:23,621 --> 00:12:27,311
get, we don't know how long it would
take to recover from a server failure.

218
00:12:27,811 --> 00:12:29,861
Sometimes those servers
are under someone's desk.

219
00:12:30,301 --> 00:12:34,021
Sometimes those servers are unique,
often, especially with Jenkins, not to

220
00:12:34,021 --> 00:12:38,261
pick on it, but it was the most popular
and it was self hosted, so you always had

221
00:12:38,261 --> 00:12:42,521
these special snowflakes of servers that
were built typically by developers, not

222
00:12:42,721 --> 00:12:46,351
usually by ops, where the professional
sysadmins were operating, right.

223
00:12:46,351 --> 00:12:51,146
Where they were the ones creating
systems to manage and control servers.

224
00:12:51,146 --> 00:12:55,136
But often I would walk in and find the
dev team had their special CI thing and

225
00:12:55,396 --> 00:12:57,166
it might be running on someone's machine.

226
00:12:57,166 --> 00:12:59,566
It might be under the desk,
it might be in the closet.

227
00:13:00,036 --> 00:13:03,776
And those days, I think because we're
pretty much all using at least some sort

228
00:13:03,776 --> 00:13:06,761
of cloud API for managing our automation.

229
00:13:06,761 --> 00:13:09,886
And we might have runners in different
places, but we're, leaning into more

230
00:13:09,886 --> 00:13:12,566
cloud stuff, although it's amazing how
much I still see Jenkins and talk to

231
00:13:12,566 --> 00:13:13,646
people that are still using Jenkins.

232
00:13:14,146 --> 00:13:19,166
I often look at this as like, we have
needed tools like this for so long to

233
00:13:19,206 --> 00:13:25,021
help clean up the, to me it's like the
janitor because while you're saying

234
00:13:25,021 --> 00:13:28,211
you're building the DevOps engineer, I
know that every DevOps teams wish they

235
00:13:28,211 --> 00:13:30,541
had another DevOps engineer to help them.

236
00:13:30,961 --> 00:13:35,581
And feel like right now, at least
in this moment in AI, management

237
00:13:35,581 --> 00:13:38,081
seems to think that they're going
to be reducing the number of DevOps

238
00:13:38,081 --> 00:13:39,481
engineers not increasing them.

239
00:13:39,926 --> 00:13:42,516
I just recently launched something
called the Agentic DevOps Guild

240
00:13:42,516 --> 00:13:44,006
for people, personal plug.

241
00:13:44,286 --> 00:13:48,036
But this is a membership program
where DevOps engineers are coming

242
00:13:48,036 --> 00:13:51,426
in to help accelerate their AI
learning onboard AI tooling.

243
00:13:51,816 --> 00:13:53,166
and I do these onboarding calls.

244
00:13:53,166 --> 00:13:57,066
And so for the last three weeks I've
been having multiple, calls, with

245
00:13:57,066 --> 00:13:59,346
engineers as they come onto the program.

246
00:13:59,376 --> 00:14:03,396
And one theme that's maybe not a
majority yet, but it's a consistent

247
00:14:03,396 --> 00:14:08,306
theme is, DevOps engineers are worried
of unreasonable expectations of their

248
00:14:08,306 --> 00:14:11,546
management to do magic and they don't
even know these tools yet, right?

249
00:14:11,586 --> 00:14:14,836
Tools like Mendral that run on
top of maybe an AI infrastructure,

250
00:14:14,886 --> 00:14:16,046
they don't yet know Claude Code.

251
00:14:16,066 --> 00:14:18,566
They're just dipping their
toes into copilot sometimes.

252
00:14:18,877 --> 00:14:22,516
I think operators and DevOps engineers
are maybe a little bit behind

253
00:14:22,906 --> 00:14:26,976
application software developers in
terms of their expectations to onboard,

254
00:14:27,176 --> 00:14:28,896
development or coding tools for AI.

255
00:14:28,946 --> 00:14:33,286
And of course, just six months ago I
was talking to people at KubeCon, that

256
00:14:33,286 --> 00:14:36,956
were saying, well, we're never going to
put AI into infrastructure management

257
00:14:36,956 --> 00:14:39,836
because that's a non deterministic
and we need full determinism.

258
00:14:40,336 --> 00:14:44,646
And yet when I use your tool, which
feels like I don't actually know your

259
00:14:44,646 --> 00:14:45,906
architecture, we'll get into that.

260
00:14:45,906 --> 00:14:48,386
But it feels like there's
AI in the background.

261
00:14:48,386 --> 00:14:48,916
I'm writing.

262
00:14:49,181 --> 00:14:52,971
I'm editing plans for execution
with it in human language, right?

263
00:14:52,981 --> 00:14:54,291
Like, I'm not checking boxes.

264
00:14:54,341 --> 00:14:57,611
I'm talking, I feel like I'm writing
back I'm not literally chatting, but

265
00:14:57,651 --> 00:15:01,381
I'm writing a plan, helping it edit
the plan so that it executes properly.

266
00:15:01,411 --> 00:15:05,801
I'm writing, paragraphs of sort
of my rules for how it should do

267
00:15:05,801 --> 00:15:07,021
certain things in infrastructure.

268
00:15:07,441 --> 00:15:10,876
Um, so it feels very AI based even
though I'm not, I'm not, I'm not

269
00:15:10,886 --> 00:15:12,456
literally chatting with the chatbot yet.

270
00:15:12,886 --> 00:15:15,956
But at the same time, I feel like
we're, DevOps engineers are just in

271
00:15:15,956 --> 00:15:17,176
this unfortunate situation right now.

272
00:15:17,176 --> 00:15:18,306
We're getting hit from all sides.

273
00:15:18,606 --> 00:15:22,051
We're expected to keep operating
our understaffed janitored, or

274
00:15:22,071 --> 00:15:23,941
caretaked, infrastructure, right?

275
00:15:23,971 --> 00:15:25,531
Our struggling infrastructure.

276
00:15:25,771 --> 00:15:28,061
we're worried that we're going to
have less staff here pretty soon.

277
00:15:28,261 --> 00:15:32,931
We haven't yet completely consumed all the
AI madness that the app developers have,

278
00:15:32,941 --> 00:15:38,171
because we know that basically we're one
prompt away from production going down

279
00:15:38,181 --> 00:15:43,111
because all we typically have the keys to
the kingdom, and a lot of teams have keys

280
00:15:43,111 --> 00:15:45,391
that, you know, I was just talking to one
of the engineers onboarding that said,

281
00:15:45,391 --> 00:15:47,101
I have the Terraform keys on my machine.

282
00:15:47,101 --> 00:15:52,621
I have all the production AWS and
cube control keys on my machine.

283
00:15:53,121 --> 00:15:55,311
I need to learn how to
sandbox this AI agent.

284
00:15:55,311 --> 00:15:58,891
Or if it does one thing wrong,
I am I'm probably losing my job.

285
00:15:58,931 --> 00:15:59,241
Right?

286
00:15:59,741 --> 00:16:02,871
And that just feels much higher
stakes than an app developer that

287
00:16:02,871 --> 00:16:06,496
got the wrong font on something
and has to recommit a new PR.

288
00:16:06,496 --> 00:16:09,336
It just feels higher stakes for
all of us in the operations realm.

289
00:16:09,706 --> 00:16:14,836
So that all being said, it feels
like you've kind of nailed it

290
00:16:15,181 --> 00:16:17,486
without saying like too much of
a fan boy yet, but it feels like

291
00:16:17,486 --> 00:16:19,786
you're solving a problem for me.

292
00:16:19,796 --> 00:16:23,026
And so, for the audience, over the last
week, I've actually been working with the

293
00:16:23,036 --> 00:16:27,716
team to try to get more of my problems
solved mean, I have over 100 repos.

294
00:16:27,716 --> 00:16:31,556
Majority of those are training
repos or sample repos for learning

295
00:16:31,556 --> 00:16:33,316
Docker, Kubernetes, GitHub Actions.

296
00:16:33,316 --> 00:16:36,111
Like, so there's lots of sample
code, but it's app code, right?

297
00:16:36,151 --> 00:16:41,171
There's lots of sample code GitHub
Actions, kubectl, like all sorts

298
00:16:41,171 --> 00:16:42,651
of various infrastructure stuff.

299
00:16:43,021 --> 00:16:47,281
I have an impossible time to keep,
like I cannot keep up with all of it.

300
00:16:47,281 --> 00:16:51,611
I can't even keep up with the NPM
updates, much less, you know, CVE scans

301
00:16:51,611 --> 00:16:54,701
failed, linting jobs, failed test runs.

302
00:16:55,201 --> 00:16:57,561
There's just so much stuff that's
happening in the background.

303
00:16:57,561 --> 00:17:01,061
I just, basically ignore it until
it becomes a problem for my students

304
00:17:01,291 --> 00:17:03,321
or somebody bugs me in an, issue.

305
00:17:03,821 --> 00:17:09,326
And I feel like finally with Mendral,
from a user's perspective, it's giving

306
00:17:09,326 --> 00:17:11,606
me an opportunity to shortcut that.

307
00:17:11,686 --> 00:17:14,526
It doesn't fully automate everything
for me yet, so I want to ask about

308
00:17:14,526 --> 00:17:15,866
that, like where your vision's at.

309
00:17:15,866 --> 00:17:19,656
But doesn't fully automate, doesn't
solve all my problems automatically.

310
00:17:19,876 --> 00:17:24,676
It just feels like it's raising the stakes
of what's more important for me and not

311
00:17:24,686 --> 00:17:27,546
to get distracted on the stupid stuff
that I might not need to worry about

312
00:17:27,556 --> 00:17:28,756
because they're not really an issue.

313
00:17:28,756 --> 00:17:31,626
They're just, you know, a failed
linting job isn't as important as

314
00:17:31,626 --> 00:17:35,129
a failed test job, Um, so it's nice
that it elevates things that are

315
00:17:35,129 --> 00:17:36,999
important and it also rolls things up.

316
00:17:37,059 --> 00:17:39,229
it's like if you had this issue
a hundred times in a hundred

317
00:17:39,229 --> 00:17:40,789
repos, maybe fix that one first.

318
00:17:41,289 --> 00:17:44,109
And so where do you see all of this going?

319
00:17:44,109 --> 00:17:47,899
If this thing is, you know, helping,
if it's giving intelligence and

320
00:17:47,929 --> 00:17:51,409
insight, is what I feel like
it's doing to the failures that

321
00:17:51,409 --> 00:17:53,169
I have in my automation platform?

322
00:17:53,669 --> 00:17:57,449
Is this thing eventually
like learning from me?

323
00:17:57,449 --> 00:17:59,639
And is it going to start solving
some of these automatically?

324
00:17:59,639 --> 00:18:00,649
Like, where do you see that going?

325
00:18:01,124 --> 00:18:01,464
Yeah.

326
00:18:01,464 --> 00:18:06,464
So, yeah, it's an interesting question
and, is a lot to say about what you

327
00:18:06,464 --> 00:18:09,779
said earlier about deterministic and
non deterministic and the use of AI,

328
00:18:09,869 --> 00:18:12,279
pipelines that are deterministic actually.

329
00:18:12,659 --> 00:18:13,209
and so.

330
00:18:13,409 --> 00:18:18,059
Really briefly, I'll explain, just
for context, the, how Mendral is, is

331
00:18:18,059 --> 00:18:19,864
behaving and how the product works.

332
00:18:19,894 --> 00:18:25,219
And so usually teams, on board with a
single GitHub app install, one click

333
00:18:25,579 --> 00:18:29,589
and then we start ingesting all the
CI logs and events on our platform.

334
00:18:30,109 --> 00:18:34,329
And we basically run the agent in
such a way that the agent can see

335
00:18:34,359 --> 00:18:36,219
everything that's going on on your CI.

336
00:18:36,229 --> 00:18:39,379
It's like, it's like someone looking
at your logs, your events, your code

337
00:18:39,379 --> 00:18:43,749
changes, everything that's going on and
looks for opportunity to be helpful.

338
00:18:43,769 --> 00:18:47,474
you mentioned linter failing, that's
one, can be one of your pipeline

339
00:18:47,574 --> 00:18:49,714
is slower by 30% percent this week.

340
00:18:49,714 --> 00:18:51,094
And it was faster last week.

341
00:18:51,094 --> 00:18:51,564
Why?

342
00:18:51,914 --> 00:18:55,694
It can be GitHub is down,
like, uh, what's going on?

343
00:18:55,814 --> 00:18:56,674
everything is broken.

344
00:18:56,684 --> 00:18:59,234
The agent actually is able to
spot these kind of problems.

345
00:18:59,884 --> 00:19:03,294
and and tell the team, don't worry,
the GitHub is down, it will come back.

346
00:19:03,584 --> 00:19:04,414
It's not you.

347
00:19:04,964 --> 00:19:08,764
Uh, they are, looking for many
opportunities to be helpful the problem

348
00:19:08,764 --> 00:19:12,634
with most AI tools is that, You know,
people tell you, oh, it can do anything.

349
00:19:12,634 --> 00:19:15,504
It's very powerful, but you still
have to find the right thing

350
00:19:15,654 --> 00:19:17,384
that need to ask to the chatbot.

351
00:19:17,469 --> 00:19:21,569
you know, One of the key, architecture
when we started to build the product was

352
00:19:21,569 --> 00:19:26,019
that we didn't want to give yet another
dashboard, yet another chatbot to people.

353
00:19:26,429 --> 00:19:29,589
And that's why it's an agent that joins
your Slack and start working for you

354
00:19:29,589 --> 00:19:31,329
exactly like a human being would do.

355
00:19:31,794 --> 00:19:36,674
One thing that's important to, to
keep in mind is it's not for me, it's

356
00:19:36,674 --> 00:19:40,494
a bit of a shortcut to think AI non
deterministic, non deterministic.

357
00:19:40,839 --> 00:19:44,609
And We need, we need to be deterministic,
so we shouldn't use AI for that.

358
00:19:44,969 --> 00:19:50,859
I think the right analogy is AI has the
ability to replace human beings on certain

359
00:19:50,859 --> 00:19:53,039
tasks or help human beings augment them.

360
00:19:53,049 --> 00:19:57,079
We have some of our customers who already
have DevOps engineers and big platform

361
00:19:57,079 --> 00:20:00,849
teams, and actually they have Mendral
joining that team and augmenting them.

362
00:20:01,319 --> 00:20:06,339
So it's not about replacing, everything
that people are doing, but in terms of

363
00:20:06,369 --> 00:20:12,969
analogy, it's really about building an
agent that can behave and think and act

364
00:20:12,979 --> 00:20:14,669
exactly like a human being would do.

365
00:20:14,949 --> 00:20:18,409
So, for instance, your platform engineer
or your DevOps engineer, working for

366
00:20:18,409 --> 00:20:21,169
you is actually non deterministic.

367
00:20:21,259 --> 00:20:21,899
Humans are non

368
00:20:22,316 --> 00:20:23,526
Humans are non deterministic.

369
00:20:23,616 --> 00:20:24,236
Right.

370
00:20:24,654 --> 00:20:28,204
And the, output and the work
they do can be deterministic.

371
00:20:28,204 --> 00:20:31,039
Like example of a linter,
like linter breaks.

372
00:20:31,539 --> 00:20:34,899
We have to understand mistake,
what's the problem, why it broke.

373
00:20:35,129 --> 00:20:36,789
All of that can be done by AI.

374
00:20:36,819 --> 00:20:40,799
Then fixing the linter and pushing a
PR that can be totally deterministic.

375
00:20:41,299 --> 00:20:46,409
Uh, so the way Mendral works today,
is we, didn't push the Cursor too

376
00:20:46,409 --> 00:20:49,949
far in terms of automation because
we care a lot about security.

377
00:20:49,949 --> 00:20:53,549
Like we have fairly large teams
using the agent in production.

378
00:20:54,039 --> 00:20:57,619
And so we're very cautious about
the kind of, changes we make.

379
00:20:57,629 --> 00:21:00,859
because the agent actually has
the capability to open PRs and

380
00:21:00,859 --> 00:21:02,749
push code to people's repos.

381
00:21:03,179 --> 00:21:07,249
And So what we do is the agent will
ask every time when it wants to do

382
00:21:07,249 --> 00:21:08,599
something, it will ask for the permission.

383
00:21:08,599 --> 00:21:13,129
So you have to confirm that yes,
you can go ahead implement that.

384
00:21:13,469 --> 00:21:15,679
Yes, you can go ahead and do this or that.

385
00:21:16,129 --> 00:21:20,449
Over time we have people asking us more
and more to actually automate more.

386
00:21:20,879 --> 00:21:25,969
So if the level of confidence of the agent
is greater than, let's say 85%, percent, I

387
00:21:25,969 --> 00:21:28,203
want a PR to be open automatically.

388
00:21:28,203 --> 00:21:31,869
because actually have a pretty
high merge rate from the pull

389
00:21:31,869 --> 00:21:35,629
request that module opens the pull
requests that are accepted by teams.

390
00:21:35,929 --> 00:21:40,169
And the reason for that is because
we have fairly long coding session.

391
00:21:40,169 --> 00:21:42,939
So when the agent implements
something, it's fairly similar to

392
00:21:42,939 --> 00:21:44,144
what you Claude Code or Cursor.

393
00:21:44,144 --> 00:21:49,104
But the main difference is that it
will wait for the CI to complete,

394
00:21:49,134 --> 00:21:52,794
wait for the logs, to show up and
actually wait for the confirmation

395
00:21:52,844 --> 00:21:54,114
it actually fixed the problem.

396
00:21:54,164 --> 00:21:58,474
So if it's fixing your linter, it
will wait to confirm the agent itself,

397
00:21:58,654 --> 00:22:02,199
will wait to get the confirmation
that the problem was solved before

398
00:22:02,209 --> 00:22:04,499
saying, yes, okay, my PR is ready.

399
00:22:04,749 --> 00:22:06,439
Exactly like a human
being would do, right.

400
00:22:06,839 --> 00:22:08,479
And so, that's the main thing.

401
00:22:08,519 --> 00:22:11,139
but yeah, over time, like we're
going to push for more automation

402
00:22:11,149 --> 00:22:12,769
and we're going to do a lot more.

403
00:22:12,919 --> 00:22:15,699
you asked also about the,
um, the, learning phase.

404
00:22:15,729 --> 00:22:17,459
That one is actually very interesting.

405
00:22:17,569 --> 00:22:20,289
I don't know if you want to react
to what I just said, or if I should

406
00:22:20,289 --> 00:22:22,129
expand on the learning aspect.

407
00:22:22,574 --> 00:22:23,654
Yeah, let's talk about the learning.

408
00:22:24,154 --> 00:22:26,809
So on the learning side,
what's very important exactly.

409
00:22:26,809 --> 00:22:30,029
Like when someone joins your team,
the person doesn't have context.

410
00:22:30,359 --> 00:22:35,549
So you start by watching the team, joining
the team, making themselves useful, right?

411
00:22:35,599 --> 00:22:39,064
but then over time, the person
will knowledge a lot of things.

412
00:22:39,159 --> 00:22:44,119
problems, the tools, the best practices,
and then it will get better and better.

413
00:22:44,119 --> 00:22:45,149
Same thing with the agent.

414
00:22:45,159 --> 00:22:50,539
So the agent, when it sees something,
that needs to be remediated or it sees

415
00:22:50,549 --> 00:22:55,099
problems, it can identify patterns and
maintain a list of what we call insights.

416
00:22:55,419 --> 00:22:58,899
They are basically opportunities for
the agent to do something can be a

417
00:22:58,899 --> 00:23:02,989
failure, can be a performance regression,
security alerts, etc. All of that

418
00:23:02,999 --> 00:23:07,839
is being tracked by the agent and
constantly being refreshed with new data.

419
00:23:08,089 --> 00:23:11,659
That's why, for instance, if it spots
a problem the first time, the level of

420
00:23:11,659 --> 00:23:13,799
confidence on the resolution might be low.

421
00:23:14,099 --> 00:23:17,604
And then as problem appears several
times, level of confidence will

422
00:23:17,624 --> 00:23:21,004
get higher to the point that we can
entirely automate the resolution.

423
00:23:21,534 --> 00:23:27,559
And that happens based on, the agent
being able to, to constantly update

424
00:23:27,599 --> 00:23:32,079
this living memory and taking that
into account whenever it is a problem.

425
00:23:32,079 --> 00:23:35,149
So when it sees the problem, it
doesn't just look at the problem in

426
00:23:35,149 --> 00:23:38,659
the logs, it sees at all the context
of the problems that happened before.

427
00:23:38,659 --> 00:23:42,499
It has the ability to look at, you
know, similar issues or similar

428
00:23:42,539 --> 00:23:44,089
patterns that he saw in the past.

429
00:23:44,379 --> 00:23:47,629
And I can dig into the implementation
of that because it's actually

430
00:23:47,629 --> 00:23:51,259
quite interesting how we architect
architected this, this agent.

431
00:23:51,649 --> 00:23:56,599
But then also team sometimes talk
to the agent on Slack and say, oh,

432
00:23:56,599 --> 00:23:59,834
whoa, whoa, whoa, you did that,
but we actually don't do that.

433
00:24:00,284 --> 00:24:03,784
Like let's say, you know, we,
always follow that benchmark, so we

434
00:24:03,784 --> 00:24:08,424
always use this tool or we always
do this, and basically people react

435
00:24:08,434 --> 00:24:13,294
to the agent and say, Hey  you keep
in mind we do this and not that.

436
00:24:13,334 --> 00:24:17,224
And the agent also has a memory
system and maintains its memory.

437
00:24:17,584 --> 00:24:20,584
You can also review the memories
and edit them, et cetera.

438
00:24:20,644 --> 00:24:24,174
But yeah, the idea is to make that
learning part entirely automated so the

439
00:24:24,174 --> 00:24:27,604
team doesn't have to care about what
the agent knows and what it does not.

440
00:24:27,854 --> 00:24:31,834
and so that's really the key part,
about the non deterministic way.

441
00:24:31,844 --> 00:24:35,434
I think the right way to frame it
is really think about what a human

442
00:24:35,434 --> 00:24:41,654
would do and think about the fact
that an LLM can resonate and navigate

443
00:24:41,654 --> 00:24:43,324
through our problems in the same way.

444
00:24:43,924 --> 00:24:48,309
you and so that's really what makes this
kind of automation possible today it

445
00:24:48,309 --> 00:24:51,609
was not before LLMs were good enough.

446
00:24:51,769 --> 00:24:53,839
Yeah, and it's subtle.

447
00:24:54,339 --> 00:24:59,929
The more I feel like we're spending
leaning into just trying to use AI

448
00:24:59,959 --> 00:25:06,004
in various scenarios, the more I feel
like my mind expands to understand

449
00:25:06,054 --> 00:25:09,104
where it actually could apply to
things that I didn't even think about.

450
00:25:09,654 --> 00:25:16,404
Like I feel like to me, Mendral,
the premise to a, to a non AI,

451
00:25:16,404 --> 00:25:17,744
what I would call a blue pillar.

452
00:25:18,009 --> 00:25:21,289
keep a blue pill and red pill
matrix, 25 year old dated reference.

453
00:25:21,369 --> 00:25:24,719
but the blue pill people would be the
ones who were not necessarily anti AI,

454
00:25:24,769 --> 00:25:28,044
but very, you know, very much not pro AI.

455
00:25:28,044 --> 00:25:30,324
They're not leaning in hard, they're
like, yeah, yeah, it might help me

456
00:25:30,324 --> 00:25:33,044
with my code completion, but I'm
not looking to put AI everywhere.

457
00:25:33,344 --> 00:25:34,654
And that's fine, there's people like that.

458
00:25:34,664 --> 00:25:36,964
And then there's the red pillars,
and I used to consider myself the

459
00:25:36,964 --> 00:25:40,124
blue, and now I'm basically all red
and looking for new opportunities.

460
00:25:40,814 --> 00:25:44,909
In this use case where we're saying,
okay, yeah, it's going to be helpful in

461
00:25:44,909 --> 00:25:49,889
CI at first when, you have this three or
four years of experience of hallucinating

462
00:25:49,889 --> 00:25:51,369
agents and things going crazy.

463
00:25:51,749 --> 00:25:53,809
That sounds like a wild premise.

464
00:25:53,809 --> 00:25:57,789
But what I find is interesting, and
I'm using this also in my own work with

465
00:25:58,039 --> 00:26:01,489
things like Claude Code and OpenCode
and learning how skills and other,

466
00:26:01,779 --> 00:26:07,144
other new tools all patterns that us
humans are using to help guide the

467
00:26:07,144 --> 00:26:11,834
AI, give it more context, give it more
guardrails so that it won't hallucinate.

468
00:26:11,834 --> 00:26:14,814
And we, like you said, we get to
like the 85% percent trust level,

469
00:26:15,014 --> 00:26:16,704
you know, we get to this certain
level of trust, particularly

470
00:26:16,704 --> 00:26:20,884
with a certain model or a certain
harness, and then we start to relax.

471
00:26:21,194 --> 00:26:24,924
And I've noticed recently, like even
my prompts are getting sloppier.

472
00:26:25,274 --> 00:26:27,404
Like, I'm not prompt
engineering anymore, right?

473
00:26:27,404 --> 00:26:30,084
Where we were consumed with that a year
ago, where you got to have the best

474
00:26:30,094 --> 00:26:32,594
prompt, the only way you're going to get
a good, reliable AI is the best prompt.

475
00:26:32,594 --> 00:26:35,234
And you go to these websites and they
have all these listed prompts, and now

476
00:26:35,234 --> 00:26:36,494
I'm just like, Hey, can you fix that?

477
00:26:36,494 --> 00:26:39,724
I'm very vague, I'm very casual
like I would to an employee.

478
00:26:40,139 --> 00:26:44,239
But for me, I know that, that one,
that's because I've, I'm consistently

479
00:26:44,239 --> 00:26:47,999
using skills, which are these large
documents full of context, and that

480
00:26:48,049 --> 00:26:51,479
I'm operating on larger and larger,
whether we want to call it context

481
00:26:51,479 --> 00:26:53,009
or memory or sessions, whatever.

482
00:26:53,369 --> 00:26:57,699
In the AIs, I'm constantly Continue to
use the same session, which it compresses

483
00:26:57,729 --> 00:26:58,969
and I expand it and it compresses.

484
00:26:59,009 --> 00:27:02,614
what I'm finding in my AI conversations
as I'm able to stick with the same

485
00:27:02,614 --> 00:27:06,679
conversation, the same session much
longer because now we have Claude

486
00:27:06,699 --> 00:27:08,499
Code with million token context now.

487
00:27:08,989 --> 00:27:13,229
And that just unlocks, I feel like for me,
I mean, yes, I'm using more tokens because

488
00:27:13,229 --> 00:27:16,799
I'm in the same session, so I'm not a
Ralph Loop, fanatic where I'm constantly

489
00:27:16,799 --> 00:27:18,329
dumping context and starting fresh.

490
00:27:18,809 --> 00:27:23,129
But I find that I'm actually able to
have these conversations that extend for

491
00:27:23,129 --> 00:27:25,119
more than a few days, but into weeks.

492
00:27:25,519 --> 00:27:28,289
And it remembers the thing
that I told it two weeks ago.

493
00:27:28,289 --> 00:27:31,734
And that's where it starts, I think,
to get really, really interesting.

494
00:27:31,734 --> 00:27:35,224
And that feels a little bit like what
I'm playing around with, with Mendral,

495
00:27:35,514 --> 00:27:39,394
I wanted to call out one feature that I
just started playing with a couple days

496
00:27:39,394 --> 00:27:47,064
ago and this very specific problem of,
we've got so much, what's, the term we use

497
00:27:47,064 --> 00:27:53,524
for teams, that have all the canon inside
their brains and it's not documented.

498
00:27:54,054 --> 00:27:54,714
I'm trying to think what that,

499
00:27:56,171 --> 00:27:57,361
It's tribal knowledge.

500
00:27:57,361 --> 00:27:58,251
Tribal knowledge.

501
00:27:58,571 --> 00:27:58,941
Okay.

502
00:27:59,091 --> 00:28:02,011
So, a while ago, and I love that
term, tribal knowledge, like

503
00:28:02,341 --> 00:28:05,051
these are the things that you
onboard that new DevOps engineer

504
00:28:05,551 --> 00:28:08,924
And they're, they're not
going to just read docs.

505
00:28:09,209 --> 00:28:10,304
they're going to make mistakes.

506
00:28:10,314 --> 00:28:13,264
And then a team member is going to say,
oh, no, no, no, we don't do it like that.

507
00:28:13,704 --> 00:28:14,624
This is what we do.

508
00:28:15,034 --> 00:28:20,294
I ran into that where it wasn't
documented in any of my agent files yet.

509
00:28:20,314 --> 00:28:27,404
It wasn't anywhere in code or, documented
that when I run superlinter, particularly

510
00:28:27,414 --> 00:28:30,674
against GitHub Actions, because since
I'm teaching GitHub Actions consulting

511
00:28:30,674 --> 00:28:32,124
GitHub Actions, I'm all into that.

512
00:28:32,184 --> 00:28:35,654
and I've always been very concerned
with the security side of it.

513
00:28:36,004 --> 00:28:39,134
And now that we've had a rough year,
GitHub Actions has had a rough year.

514
00:28:39,134 --> 00:28:41,044
This last year has not
been kind to, to me.

515
00:28:41,044 --> 00:28:43,914
the GitHub team in terms
of security attacks.

516
00:28:44,204 --> 00:28:45,604
I'm not even going to
call them vulnerabilities.

517
00:28:45,604 --> 00:28:48,784
I'm just going to call them sharp edges
and misconfigurations a lot of times.

518
00:28:48,784 --> 00:28:50,884
because it turns out
they're not hacking GitHub.

519
00:28:50,884 --> 00:28:52,954
They're just finding people
that didn't configure things

520
00:28:52,954 --> 00:28:54,234
correctly on an open source repo.

521
00:28:54,704 --> 00:28:56,734
And this is all happening.

522
00:28:56,734 --> 00:28:59,894
So I'm always scanning my GitHub Actions.

523
00:28:59,894 --> 00:29:02,199
I use actionlint and I use
something called Zizmore, I

524
00:29:02,209 --> 00:29:02,939
think that's how you say it.

525
00:29:02,949 --> 00:29:03,589
Zizmore is Zizmore.

526
00:29:04,379 --> 00:29:08,516
Um, And Zizmore is very
focused on security stuff.

527
00:29:08,926 --> 00:29:12,571
And so down this rabbit hole, I'm going
to go with you for a second, but what

528
00:29:12,571 --> 00:29:17,311
was happening was they added a new rule
to the linter that says, from now on

529
00:29:17,321 --> 00:29:21,831
you need all of your actions need to be
pinned, Which for those of you out there,

530
00:29:21,831 --> 00:29:25,011
if you're using GitHub Actions, hey, if
you don't know about pinning, I've got

531
00:29:25,011 --> 00:29:26,291
a bunch of videos and courses on that.

532
00:29:26,301 --> 00:29:28,221
Like, you absolutely should
be pinning all your actions.

533
00:29:28,721 --> 00:29:34,211
And rightfully so, now, the linter warns
me that I'm not, when I'm not doing it.

534
00:29:34,511 --> 00:29:39,751
And in reusable workflows, there is a
pattern that surfaces with teams where

535
00:29:39,771 --> 00:29:44,751
if they're controlling the reusable
workflow, they don't tend to pin to the

536
00:29:44,751 --> 00:29:48,721
SHA hash from their calling workflows
because they control everything

537
00:29:48,721 --> 00:29:50,791
centrally from the reusable workflow.

538
00:29:50,801 --> 00:29:52,911
And that's the point of them is to
centrally control things so that

539
00:29:52,911 --> 00:29:56,091
we don't have a hundred different
repos that I have to update every

540
00:29:56,091 --> 00:29:57,811
time a different workload changes.

541
00:29:58,311 --> 00:30:01,896
And so this security tool doesn't
know that, Mendral doesn't know

542
00:30:01,896 --> 00:30:04,776
that that is not documented
anywhere in any of my systems.

543
00:30:04,776 --> 00:30:06,406
It's not in my notion,
it's not in my repos.

544
00:30:06,776 --> 00:30:08,046
So that's tribal knowledge.

545
00:30:08,436 --> 00:30:12,366
And what I was able to do is it was
flagging a bunch of these things and

546
00:30:12,366 --> 00:30:16,566
saying, Hey, Mendral, Mendral was thinking
the fix to this is that it needs to

547
00:30:16,566 --> 00:30:21,956
pin the SHA, but in my team of one, the
real fix is no, we need to just write

548
00:30:21,956 --> 00:30:24,826
an ignore rule for the Zyzmor linter.

549
00:30:25,326 --> 00:30:28,116
And that's very specific to
my workflow, not something

550
00:30:28,116 --> 00:30:29,256
that other people would know.

551
00:30:29,666 --> 00:30:32,586
And so I could give, instead of making
that documented somewhere and then

552
00:30:32,586 --> 00:30:37,576
somehow connecting some MCP and some
convoluted way to let Mendral know it

553
00:30:37,586 --> 00:30:42,216
has this memory feature where I can just
sort of dump in this tribal knowledge

554
00:30:42,516 --> 00:30:46,726
in just copy and paste or writing in
stories, basically user stories that

555
00:30:47,006 --> 00:30:51,586
helps it guide the decision of how it's
going to treat future failures, because

556
00:30:51,586 --> 00:30:54,696
what was the outcome was happening, and
sorry for the audience, this is a really

557
00:30:54,696 --> 00:30:58,106
long story, but I feel like it's very
tactical and relevant as an example.

558
00:30:58,476 --> 00:31:03,266
Is, in that scenario, if I had a junior
engineer, I would say, okay, please write

559
00:31:03,306 --> 00:31:08,566
all, we're going to need to update all
of these calling workflows with a hundred

560
00:31:08,566 --> 00:31:13,416
repos now need this new line inside of
the GitHub action for this particular

561
00:31:13,416 --> 00:31:15,851
calling workflow that calls a reusable.

562
00:31:16,151 --> 00:31:20,191
And then from now on, everyone in
the team needs to know we don't

563
00:31:20,191 --> 00:31:24,601
shop in on our calling re workflows,
we only shop in on the Reusables.

564
00:31:25,071 --> 00:31:26,061
And with Mendral.

565
00:31:26,091 --> 00:31:29,981
I was able to put in one memory and I
haven't seen the outcome yet, but I'm

566
00:31:29,981 --> 00:31:33,991
gonna ask you in theory, I guess that
means that from now on, every time

567
00:31:34,021 --> 00:31:36,811
Mendral sees this error, its new PR plan.

568
00:31:37,261 --> 00:31:40,211
That it's going to give me, isn't
going to say, Hey, I'm just going

569
00:31:40,211 --> 00:31:42,781
to replace this with a SHA hash.

570
00:31:42,801 --> 00:31:45,561
It's going to say, oh, I'm
going to put in a new rule.

571
00:31:45,861 --> 00:31:51,111
I'm going to basically ignore this in the
Zyzmor linter so that we don't, we know

572
00:31:51,111 --> 00:31:53,001
that this is okay and we don't flag it.

573
00:31:53,141 --> 00:31:54,771
Is that kind of the
expected outcome of that?

574
00:31:55,076 --> 00:31:55,726
Yeah, that's right.

575
00:31:55,766 --> 00:31:59,811
there, are many ways you can influence,
the behaviors of the agent today.

576
00:31:59,821 --> 00:32:02,201
And yes, indeed you can
actually create a memory.

577
00:32:02,231 --> 00:32:05,301
It makes sense when there is
a pattern that you want to be

578
00:32:05,301 --> 00:32:07,001
widespread and apply everywhere.

579
00:32:07,061 --> 00:32:10,341
the sticky note that you want to
put on the deck of your engineer.

580
00:32:10,341 --> 00:32:12,761
That you want to make
sure is never forgotten.

581
00:32:13,181 --> 00:32:15,834
Another thing you can do is, for
instance, let's say you want to

582
00:32:15,834 --> 00:32:18,384
migrate or to implement, some sort.

583
00:32:18,384 --> 00:32:21,654
of, let's say you have this new linter
that you want to migrate from an old

584
00:32:21,654 --> 00:32:25,374
one, or you want to implement a new
security tool or something like that.

585
00:32:25,374 --> 00:32:31,984
So, the outcome will be deterministic,
but asking that will be certain, more,

586
00:32:32,044 --> 00:32:33,964
likely done in a non deterministic way.

587
00:32:34,274 --> 00:32:36,134
maybe there are some
things that you don't know.

588
00:32:36,134 --> 00:32:40,214
Like for instance, the agent has the
ability to do a web search or like look

589
00:32:40,214 --> 00:32:42,234
into best practices or things like that.

590
00:32:42,254 --> 00:32:46,374
And so what you can do is also ask
the agent, Hey, this is my plan.

591
00:32:46,374 --> 00:32:49,724
This is what I noticed and this is a
problem for me, I'd like to address it.

592
00:32:49,764 --> 00:32:53,234
The agent will actually create an
insight for it and track it, and

593
00:32:53,234 --> 00:32:56,274
propose an implementation when the
level of confidence is high enough.

594
00:32:56,754 --> 00:33:00,094
And and yeah, it has also the
ability to, update, findings.

595
00:33:00,104 --> 00:33:04,484
So sometimes the agent, you know,
you talk about tribal knowledge.

596
00:33:04,594 --> 00:33:08,014
There is also some of the tribal
knowledge and our own experience,

597
00:33:08,134 --> 00:33:12,314
as as engineer with Andrea,
Olivier into The agent itself.

598
00:33:12,434 --> 00:33:17,714
So we constantly change the way we, you
know, Mendral does stuff, and that's why

599
00:33:17,774 --> 00:33:21,464
it feels magical sometimes when people
on board with it, because the, what they

600
00:33:21,464 --> 00:33:26,159
actually don't realize is the agent has
our own experiences hardcoded in, in

601
00:33:26,159 --> 00:33:28,259
some of the subagent that we, we wrote.

602
00:33:28,994 --> 00:33:31,364
And so you can actually,
influence that too.

603
00:33:31,364 --> 00:33:35,434
And the agent has the ability to update
its own insights based on your input.

604
00:33:35,844 --> 00:33:38,154
So if there are certain things
you disagree with, because let's

605
00:33:38,154 --> 00:33:41,714
say, you know, if you would hire
me as a DevOps engineer, I have

606
00:33:41,714 --> 00:33:43,224
certain things I would like to do.

607
00:33:43,224 --> 00:33:46,514
And you're like, well, no, actually,
Sam, I'm paying you, so I need

608
00:33:46,514 --> 00:33:47,984
you to do it this way instead.

609
00:33:48,684 --> 00:33:51,164
can ask Mendral the same
thing, and it will be fine.

610
00:33:51,304 --> 00:33:56,134
So yeah, the, customizability is
important because that's the kind

611
00:33:56,134 --> 00:34:00,299
of control you need from someone
you would hire as well, right?

612
00:34:00,459 --> 00:34:03,459
You expect this person to bring
their experience, but also you

613
00:34:03,469 --> 00:34:04,649
have your own requirements.

614
00:34:05,029 --> 00:34:08,569
so so yeah, that's, that's
something we constantly, improve

615
00:34:08,569 --> 00:34:10,009
and, make available to, teams.

616
00:34:10,509 --> 00:34:10,809
Yeah.

617
00:34:10,809 --> 00:34:15,729
And that's the kind of thing where, mean,
testing tools have this problem, linting

618
00:34:15,749 --> 00:34:17,449
tools have this problem, really any tool.

619
00:34:17,449 --> 00:34:21,469
But I think like those are the two
areas where, maybe the linters might

620
00:34:21,469 --> 00:34:26,269
be the worst, where when something
new is added, a new rule to a linter.

621
00:34:26,634 --> 00:34:29,504
uh, I, think I had another
tool recently, actually.

622
00:34:29,524 --> 00:34:31,624
Well, that was, that was a NeoVim tool

623
00:34:32,691 --> 00:34:33,021
Okay.

624
00:34:33,369 --> 00:34:35,759
It's like everybody's refactoring
all their apps now with AI.

625
00:34:35,759 --> 00:34:38,789
So it broke a lot of things and
I spent an hour on it and AI was

626
00:34:38,789 --> 00:34:40,179
able to solve it so much faster.

627
00:34:40,449 --> 00:34:41,729
So, but not so not related.

628
00:34:41,729 --> 00:34:42,989
That was just something
that happened yesterday.

629
00:34:43,459 --> 00:34:48,219
Because I mean, the stories, if someone's
like in the trenches as a DevOps engineer,

630
00:34:48,569 --> 00:34:53,449
that scenario that gave, while it's just
a linter, not inherently high stakes,

631
00:34:53,459 --> 00:34:56,744
I it wasn't a testing failure or a
production deployment failure or anything.

632
00:34:57,214 --> 00:35:01,414
But that's the kind of thing when I work
with DevOps teams, that's the toil, right?

633
00:35:01,424 --> 00:35:04,734
That's the thing that they don't want
to have to go change literally a hundred

634
00:35:04,734 --> 00:35:08,204
repos of microservices and back end
things because they've implemented

635
00:35:08,544 --> 00:35:11,204
some sort of central reusable workflow.

636
00:35:11,204 --> 00:35:14,364
But now the crux of all that is
they have this thing everywhere

637
00:35:14,864 --> 00:35:18,094
and something breaks, and now
they don't have the tooling.

638
00:35:18,629 --> 00:35:19,329
To update.

639
00:35:19,339 --> 00:35:24,149
They basically end up spending days
writing scripts to create the PRs in

640
00:35:24,159 --> 00:35:29,489
100 different repos to fix and then,
automate the creation of the commit,

641
00:35:29,489 --> 00:35:34,309
creation of the PR, the acceptance of
the PR, and then the merging of the PR.

642
00:35:34,309 --> 00:35:37,489
Because they don't want to literally
spend 3 or 4 days just mindlessly

643
00:35:37,489 --> 00:35:40,439
clicking through 100 repos to do this.

644
00:35:40,469 --> 00:35:43,814
And I've lost count of how many times
I've watched teams go through this

645
00:35:43,834 --> 00:35:48,024
toil of, like, your week is going to
be fixing a stupid linter rule across

646
00:35:48,024 --> 00:35:54,084
50 to 100 repos because the, dev
teams don't want to do it or whatever.

647
00:35:54,084 --> 00:35:56,954
Or it's now our job to do it for
some reason, even though we're

648
00:35:56,954 --> 00:35:58,384
not the application engineers.

649
00:35:58,474 --> 00:36:00,764
Sometimes I have worked with teams
where it's the DevOps engineers

650
00:36:00,764 --> 00:36:04,164
literally implementing the linting
rules for the software engineers.

651
00:36:04,184 --> 00:36:06,464
I don't know why that happens,
but, sometimes we get saddled

652
00:36:06,464 --> 00:36:07,344
with work that's not ours.

653
00:36:07,344 --> 00:36:11,134
But that automation part,
I feel like is another.

654
00:36:11,614 --> 00:36:15,444
it's almost like a hidden feature that
talk about raising issues, we talk about,

655
00:36:15,944 --> 00:36:19,274
helping understand the nuance of things
and the patterns that you're seeing

656
00:36:19,274 --> 00:36:20,584
so that it can be more intelligent.

657
00:36:20,594 --> 00:36:25,844
But at the very end of this really is
all about, to me, saving the toil of

658
00:36:26,314 --> 00:36:28,364
manually checking repos for things.

659
00:36:28,574 --> 00:36:32,424
Because, constantly struggling
with workflow failures that

660
00:36:32,434 --> 00:36:33,784
aren't rising to the top.

661
00:36:33,794 --> 00:36:35,724
Because when you have a big
enough team, you've always got

662
00:36:35,724 --> 00:36:39,254
workflows running, you're just
constantly inundated with workflows.

663
00:36:39,534 --> 00:36:44,454
And the challenges is the alert fatigue
in Slack or whatever tool you're

664
00:36:44,454 --> 00:36:46,309
using because you're, working with.

665
00:36:46,869 --> 00:36:47,799
just can't keep up.

666
00:36:47,829 --> 00:36:51,024
So you start to say, okay, well now
we're linterfailures, we're no longer

667
00:36:51,024 --> 00:36:53,474
alert in Slack, so now we're going
to just remove those from Slack.

668
00:36:53,734 --> 00:36:55,364
We're too busy to do that now.

669
00:36:55,364 --> 00:36:58,724
We're only going to deal with
deployment failures or only testing

670
00:36:58,724 --> 00:37:00,464
failures on these particular repos.

671
00:37:00,474 --> 00:37:04,564
Like you end up having to force
yourself to ignore a whole series

672
00:37:04,614 --> 00:37:08,574
of problems because you just can't
handle, there's just too much work.

673
00:37:08,914 --> 00:37:12,604
And to me, the more exciting thing
is that I might be able, you know,

674
00:37:12,604 --> 00:37:15,544
and maybe someday I don't know if it
does it today, if it would be able

675
00:37:15,544 --> 00:37:20,984
to go and simply apply a hundred PRs
for that particular calling workflow.

676
00:37:20,984 --> 00:37:22,804
because I name it the
same thing everywhere.

677
00:37:23,164 --> 00:37:26,794
But my hope is that someday, if not
today, like that would be able to get

678
00:37:26,804 --> 00:37:30,914
automated so that I could just be done
like basically a hundred PRs later,

679
00:37:31,184 --> 00:37:32,954
it's taken 30 minutes or something.

680
00:37:33,409 --> 00:37:35,999
I didn't have to write a script,
I didn't have to worry about

681
00:37:36,009 --> 00:37:39,389
nuking or breaking some repos
because I wrote the wrong script.

682
00:37:39,389 --> 00:37:42,869
I can, give that to Mendral,
which is exciting for me.

683
00:37:43,324 --> 00:37:46,024
Yeah, I can tell you more actually
about, about that, because there

684
00:37:46,024 --> 00:37:49,494
are a lot of things we're working
on today actually that some of

685
00:37:49,494 --> 00:37:52,674
it actually might be available by
the time this podcast is out, so,

686
00:37:53,171 --> 00:37:53,621
okay.

687
00:37:53,719 --> 00:37:54,779
yeah, we're working, yeah.

688
00:37:54,844 --> 00:37:58,344
quite, fast on these things because
there is a lot of demand for it, you

689
00:37:58,344 --> 00:38:02,124
know, as soon as people onboarded the
agents and they see the value that it

690
00:38:02,124 --> 00:38:07,104
can unblock thanks to the data layer
and, the, which usually we refer to

691
00:38:07,104 --> 00:38:11,324
with the agent harness, which is kind
of the combination of the tools and the

692
00:38:11,324 --> 00:38:15,614
context and the way we build that and
keep the agent accurate at any given

693
00:38:15,614 --> 00:38:17,269
time, actually, this really the key.

694
00:38:17,519 --> 00:38:23,349
But yeah, in terms of what works today,
so the agent is not stuck with one repo.

695
00:38:23,349 --> 00:38:28,729
Sometimes in CI, when you have,
you use products, you realize

696
00:38:28,769 --> 00:38:33,629
that repo maps to a project that
could sometimes map to a team.

697
00:38:33,809 --> 00:38:35,199
Some companies do it this way.

698
00:38:35,509 --> 00:38:39,789
And the issue is, well, it's great
when you have, you know, that

699
00:38:39,819 --> 00:38:44,229
mapping is great and works fine and
you're okay with those boundaries.

700
00:38:44,249 --> 00:38:48,449
Problem is, most teams are not,
and sometimes having a repo is

701
00:38:48,449 --> 00:38:49,879
just an implementation detail.

702
00:38:49,879 --> 00:38:53,819
And exactly like you said, you want to
think about something you would apply

703
00:38:53,819 --> 00:38:55,469
to all of your repos, all of your codes.

704
00:38:55,759 --> 00:39:00,064
need to think about this repo
behave like this or like that,

705
00:39:00,084 --> 00:39:04,664
etc. TLDR is, Mendral has been
designed, so it's not tied to a repo.

706
00:39:04,684 --> 00:39:07,304
It's actually tied to
an organization today.

707
00:39:07,794 --> 00:39:10,714
uh, that's, that has been
designed one or many repos.

708
00:39:10,714 --> 00:39:14,814
We have teams with like a
gigantic monorepo and that's fine.

709
00:39:15,119 --> 00:39:17,574
And usually what they do is
they have this mapping inside

710
00:39:17,574 --> 00:39:19,134
folders and sub directories.

711
00:39:19,509 --> 00:39:23,904
and then you have some teams who have lots
of repos actually, and there is no mapping

712
00:39:23,904 --> 00:39:27,044
whatsoever from a team or role to a repo.

713
00:39:27,284 --> 00:39:28,274
And Mendral doesn't care.

714
00:39:28,274 --> 00:39:30,284
Like insights can be
applied to many repos.

715
00:39:30,584 --> 00:39:34,194
One thing that we were working on
that that's actually I'm very excited

716
00:39:34,194 --> 00:39:38,979
about is, so we have this data that
comes and that knowledge and the agent

717
00:39:39,019 --> 00:39:43,589
running based on events and teams
asking for stuff and things appearing

718
00:39:43,649 --> 00:39:45,379
and background tasks and all of that.

719
00:39:45,379 --> 00:39:49,289
And so the agent constantly working for
you and constantly looking at its data.

720
00:39:49,739 --> 00:39:54,174
We are building the ability for
you to have your own agents on top.

721
00:39:54,399 --> 00:39:57,409
So basically you will have a
simple way to define your own

722
00:39:57,629 --> 00:39:59,419
sub agent on top of Mendral.

723
00:40:00,019 --> 00:40:04,299
And so it will really feel like
you're giving, some specific

724
00:40:04,299 --> 00:40:07,669
instruction, like almost a mission
to Mendral behind the scene.

725
00:40:07,669 --> 00:40:09,939
In terms of architecture,
it's actually a real agent.

726
00:40:09,999 --> 00:40:12,799
It's like a real agent that's
linked to everything else.

727
00:40:13,089 --> 00:40:16,899
And it's a sub agent that will
be called by main Mendral agent

728
00:40:16,939 --> 00:40:18,369
whenever it needs to be called.

729
00:40:18,369 --> 00:40:22,734
And so you'll have the ability to say
whenever, there is a code change or

730
00:40:22,744 --> 00:40:26,564
whenever, like, we'll actually add
mapping to other sources of data.

731
00:40:26,584 --> 00:40:31,494
it could be whenever there is new
exception on Sentry, for instance,

732
00:40:31,504 --> 00:40:35,984
because we are actually expanding
beyond the CI logs also, I want to do

733
00:40:36,024 --> 00:40:42,869
X, YRZ, want to do this, and I want
to be notified on Slack or not, you

734
00:40:43,029 --> 00:40:44,299
know, because I don't want the noise.

735
00:40:44,574 --> 00:40:48,944
So you'll have the ability to build
your own, so I call that agent because

736
00:40:48,944 --> 00:40:50,864
it's de facto like a real agent.

737
00:40:50,874 --> 00:40:54,224
Some people might call that like
agentic workflows or something,

738
00:40:54,244 --> 00:40:56,924
but it really depends what
will be your use case.

739
00:40:57,329 --> 00:41:02,104
but yeah, we want to, you know, I realized
that It's actually a dream to onboard

740
00:41:02,104 --> 00:41:03,864
an agent that is doing work for you.

741
00:41:04,234 --> 00:41:07,914
and that dream is true today,
actually, saying that in, you know, not

742
00:41:07,924 --> 00:41:09,964
overselling the thing, but that works.

743
00:41:10,174 --> 00:41:13,364
That said, every team
has a unique CI, right?

744
00:41:13,904 --> 00:41:17,946
every time you have a unique set of
tools, unique set of, best practices,

745
00:41:18,226 --> 00:41:22,616
you are using several external
services and infrastructure, data

746
00:41:22,616 --> 00:41:23,996
that you are managing somewhere.

747
00:41:23,996 --> 00:41:26,006
And so all of that is unique to a team.

748
00:41:26,006 --> 00:41:29,776
And you cannot have an agent that
will figure this out entirely.

749
00:41:29,776 --> 00:41:33,466
And so we're gonna make the ability
to plug those data and this,

750
00:41:33,546 --> 00:41:35,076
this integration into the agent.

751
00:41:35,106 --> 00:41:39,516
So it can actually Work in a
more, specific way to your needs.

752
00:41:39,946 --> 00:41:41,836
so that's really what
we are building today.

753
00:41:41,836 --> 00:41:43,186
And there is a lot of demand for it.

754
00:41:43,676 --> 00:41:45,096
Um, actually two things.

755
00:41:45,116 --> 00:41:46,626
There is a lot of demand
for customization.

756
00:41:48,196 --> 00:41:50,756
and plugging to other data
sources and other workflows.

757
00:41:50,756 --> 00:41:54,346
And there is another demand
for, having more automation.

758
00:41:54,516 --> 00:41:54,946
So

759
00:41:55,266 --> 00:41:58,331
it's very interesting to me to see,
and you said it well earlier, is.

760
00:41:58,571 --> 00:42:03,381
it's interesting to me to see that, people
actually trust AI tools a lot today.

761
00:42:03,421 --> 00:42:06,444
Like some people ask us like, can
you actually for, some of those

762
00:42:06,454 --> 00:42:09,704
problems, like automatically
open and merge the pull requests?

763
00:42:10,074 --> 00:42:12,424
And like, well, you know, it's going fast,

764
00:42:13,236 --> 00:42:14,026
So, so

765
00:42:14,049 --> 00:42:14,509
Well, that's the,

766
00:42:14,509 --> 00:42:14,539
talk.

767
00:42:14,546 --> 00:42:15,076
we'd get there.

768
00:42:15,076 --> 00:42:15,946
Yep.

769
00:42:15,969 --> 00:42:16,709
the trust, right?

770
00:42:16,719 --> 00:42:20,709
Like if you had, like on the, on
the live stream, we had a couple

771
00:42:20,709 --> 00:42:24,349
weeks ago I was talking about that
I don't remember the last time.

772
00:42:24,349 --> 00:42:26,019
My coding agent locally.

773
00:42:26,519 --> 00:42:29,409
and that use, I use Opus, I
use sonnet, basically any state

774
00:42:29,409 --> 00:42:31,434
of the art model I use GPT 5.

775
00:42:31,434 --> 00:42:32,604
4. I have all the subscriptions.

776
00:42:33,009 --> 00:42:35,094
I don't remember the last
time I would have classified

777
00:42:35,094 --> 00:42:36,464
it as a true hallucination.

778
00:42:36,839 --> 00:42:37,989
it has been months.

779
00:42:38,039 --> 00:42:41,329
Right now it gets things wrong,
but it's usually because I was

780
00:42:41,329 --> 00:42:42,849
lazy and didn't give it context.

781
00:42:42,849 --> 00:42:43,039
Right.

782
00:42:43,109 --> 00:42:45,619
it just made the wrong choice
because it acted like its first week

783
00:42:45,619 --> 00:42:46,929
as being the engineer on my team.

784
00:42:47,349 --> 00:42:49,659
And I blame myself for that, right?

785
00:42:49,659 --> 00:42:50,999
it's a me not you problem.

786
00:42:51,499 --> 00:42:56,224
And so that has definitely, for me, I
have certainly established more trust.

787
00:42:56,224 --> 00:42:59,084
Like I might be at that 85% percent
level like keep talking about.

788
00:42:59,394 --> 00:43:02,364
And if I did this in CI,
if I was using Mendral.

789
00:43:02,739 --> 00:43:07,509
and, you know, I don't technically I
don't have to know what agent, what models

790
00:43:07,509 --> 00:43:08,809
you're using on the back end, right?

791
00:43:08,809 --> 00:43:12,729
Like, I just know this thing is
able to give me plans reliably that

792
00:43:12,729 --> 00:43:15,509
I agree with, and it gives me this
implementation plan to fix a problem.

793
00:43:15,509 --> 00:43:17,599
And I go, yep, that sounds
like it's great, a great plan.

794
00:43:17,839 --> 00:43:20,649
That's exactly what I would see in
a PR from a junior engineer while

795
00:43:20,649 --> 00:43:23,039
I'm reviewing it, right, I just
happen to be reviewing this pre

796
00:43:23,069 --> 00:43:25,349
pull request, implementation plan.

797
00:43:25,679 --> 00:43:29,009
And if I did that a hundred times
over the first couple of months of

798
00:43:29,009 --> 00:43:33,629
onboarding a tool and I never saw, or,
you know, almost rarely ever saw anything

799
00:43:33,629 --> 00:43:35,289
wrong and those wrong things weren't.

800
00:43:35,789 --> 00:43:38,119
That wrong, they were
just maybe a preference.

801
00:43:38,489 --> 00:43:40,489
I would absolutely be more trustworthy.

802
00:43:40,509 --> 00:43:44,709
And I can imagine myself right now in
a team where if I'm onboarding uh, an

803
00:43:44,709 --> 00:43:49,709
orchestration agent engine like Mendral,
where I'm going to tell the team, okay,

804
00:43:49,909 --> 00:43:52,719
they have this new automation feature
that they've just launched so that we

805
00:43:52,719 --> 00:43:57,309
can fully allow the AI to make the PRs
and then commit them automatically.

806
00:43:57,539 --> 00:44:00,489
And maybe it's two different
models with two different contexts.

807
00:44:00,499 --> 00:44:02,739
That one makes it, another one reviews it.

808
00:44:02,739 --> 00:44:02,899
Right?

809
00:44:02,899 --> 00:44:05,769
We've been discussing lately about
how, like, when are we all going

810
00:44:05,769 --> 00:44:07,849
to be comfortable with the AI
writing the software, and then the

811
00:44:07,899 --> 00:44:09,319
different AI reviewing the software?

812
00:44:09,709 --> 00:44:10,899
And does it need to be a different model?

813
00:44:10,909 --> 00:44:12,279
Does it need a different system prompt?

814
00:44:12,289 --> 00:44:14,249
Like, you know, these are questions
that are coming up actually

815
00:44:14,249 --> 00:44:16,299
within uh, the guild meetings
that we are having every week.

816
00:44:16,799 --> 00:44:20,899
And I can see myself very quickly
saying, well, we're going to allow

817
00:44:20,899 --> 00:44:23,949
it to auto merge any linting failure.

818
00:44:24,144 --> 00:44:27,999
Because it hasn't been wrong
in its implementation plan in

819
00:44:27,999 --> 00:44:29,409
two months or whatever, right.

820
00:44:29,709 --> 00:44:33,474
And we're going to tiptoe in with low
stakes stuff and then, you know, maybe

821
00:44:33,474 --> 00:44:36,644
we can make a rule where Dependabot, this
is another big pain point for me, right?

822
00:44:36,644 --> 00:44:39,564
When you have dozens and dozens of
repos and Dependabot, or renovate

823
00:44:39,564 --> 00:44:40,984
comes out with a minor update.

824
00:44:40,984 --> 00:44:44,614
And typically, it's, a wonderful life if
you're in a monorepo right now, because

825
00:44:44,614 --> 00:44:49,304
if you're in a bunch of microservice
repos, you just have sprawl of repos, you

826
00:44:49,304 --> 00:44:54,514
know, one JavaScript dependency module
update, and suddenly you have 20 PRs

827
00:44:54,544 --> 00:44:56,714
to approve and they're all the same PR.

828
00:44:57,194 --> 00:45:01,864
So they're, and I don't believe
that Dependabot has a, just do this

829
00:45:01,864 --> 00:45:03,944
for me in all 20 repo mode, right?

830
00:45:03,994 --> 00:45:05,504
it doesn't automate that process.

831
00:45:05,514 --> 00:45:09,054
So then I'm literally going through
and clicking, I think I'm probably

832
00:45:09,054 --> 00:45:11,834
at the point of comfortable with
my local AI saying, Hey, just

833
00:45:11,834 --> 00:45:14,784
use the GitHub command line tool
and look through all of my repos.

834
00:45:15,844 --> 00:45:19,144
this would be a very long prompt, but
look through all my repos for this one

835
00:45:19,144 --> 00:45:20,904
particular Dependabot for updating.

836
00:45:20,914 --> 00:45:23,534
It's got this exact title because
they're all going to have the same title.

837
00:45:23,979 --> 00:45:27,249
And if you see that in there, go
ahead and accept it and merge it

838
00:45:27,259 --> 00:45:28,359
with the GitHub command line tool.

839
00:45:28,629 --> 00:45:32,229
I do think I'm at that level, but,
so if I'm at that level, and I'm not

840
00:45:32,229 --> 00:45:35,689
even the most aggressive AI person
I know, like I'm not even, I haven't

841
00:45:35,689 --> 00:45:37,059
even installed OpenClaw, right?

842
00:45:37,139 --> 00:45:39,759
I haven't installed any of these
crazy, orchestration engines.

843
00:45:40,199 --> 00:45:42,209
I'm sure that there's lots of people
that are absolutely comfortable with

844
00:45:42,209 --> 00:45:47,949
this and I'm, I am all about this
because there has never been a good

845
00:45:47,949 --> 00:45:53,294
time to tell the story of DevOps
automation platforms as a thing that I

846
00:45:53,294 --> 00:45:56,704
can implement in a reasonable amount of
time for a reasonable amount of money.

847
00:45:56,864 --> 00:45:59,524
everyone that I know that's
struggling with this, you

848
00:45:59,524 --> 00:46:01,434
know, don't want to entirely.

849
00:46:01,874 --> 00:46:05,304
invested in a proprietary tool sometimes
and they want to open source everything

850
00:46:05,304 --> 00:46:08,824
themselves, which is the tough road ahead
for anyone that's trying to do that.

851
00:46:08,864 --> 00:46:11,384
because I'm doing this in my courses
where I'm trying to explain how

852
00:46:11,384 --> 00:46:14,534
to do all these AI workflows that
help you do a lot of automation.

853
00:46:14,534 --> 00:46:17,994
And I can tell you that tools like
Mendral are the easy button versus

854
00:46:17,994 --> 00:46:21,034
trying to do it yourself with a bunch
of more workflows that all do the

855
00:46:21,034 --> 00:46:22,344
things that Mendral's already doing.

856
00:46:22,764 --> 00:46:26,214
But this is, there's, you know, we've
had all these different automation

857
00:46:26,234 --> 00:46:31,224
engines over years that have tried to
become a market dominant force for just

858
00:46:31,244 --> 00:46:33,404
easing the toil on DevOps engineers.

859
00:46:33,414 --> 00:46:35,234
And I never feel like
anyone's really cracked it.

860
00:46:35,454 --> 00:46:39,824
I don't go into any shop and find that
they're all consistently, or a majority

861
00:46:39,824 --> 00:46:45,264
of them even are using one tool beyond
GitHub Actions to automate things.

862
00:46:45,264 --> 00:46:47,694
And very rarely do I see
people with GitHub Actions.

863
00:46:48,174 --> 00:46:51,414
Only the, like most mature teams that
I see in GitHub Actions are doing

864
00:46:51,414 --> 00:46:55,009
things where they might have like a
central repository of actions that

865
00:46:55,009 --> 00:46:59,429
are aggressively doing things on other
repos in an automated way, like checking

866
00:46:59,429 --> 00:47:02,909
the security settings across all my
org repos in order to make sure that

867
00:47:02,909 --> 00:47:07,379
we're not exposing a security risk
by allowing, you know, forked pull

868
00:47:07,379 --> 00:47:10,279
requests to automatically run actions,
for example, which is one that's really

869
00:47:10,279 --> 00:47:11,659
biting people in the foot right now.

870
00:47:11,969 --> 00:47:15,679
Like that thing needs to be locked down
on every repo, and there's no tool built

871
00:47:15,679 --> 00:47:18,909
in to tell you what that setting is, so
you have to literally either hand code

872
00:47:18,909 --> 00:47:23,409
something check it yourself or create
actions that do all this automation.

873
00:47:23,869 --> 00:47:27,889
And it feels like we're right at the
cusp of just, I just write a, either

874
00:47:28,299 --> 00:47:31,689
a skill for this or I have a tool
that automatically does this for me.

875
00:47:31,689 --> 00:47:35,199
I do like this agent idea because I
would like to put in like a DevSecOps.

876
00:47:35,699 --> 00:47:39,109
That's the next one for me where I
wanted to go and actually like, look

877
00:47:39,109 --> 00:47:42,819
at these org and repo settings and
report them, port back when it finds

878
00:47:42,819 --> 00:47:45,679
one that's not set properly for me.

879
00:47:45,679 --> 00:47:49,339
Maybe something that I don't want
to be a linter, but I want it to be,

880
00:47:49,509 --> 00:47:53,609
you know, security checks on my repos
and on GitHub itself that an engineer

881
00:47:53,629 --> 00:47:56,549
doesn't want to have to run that script
manually every day and then do all the

882
00:47:56,549 --> 00:47:58,259
work of fixing the things every day.

883
00:47:58,259 --> 00:48:00,549
I'd rather just an AI do that,
'cause it's a binary thing.

884
00:48:00,549 --> 00:48:02,619
It's like either this setting's
checked or it's not, and if it's

885
00:48:02,619 --> 00:48:03,719
not checked, you need to check it.

886
00:48:03,729 --> 00:48:04,279
This is a very

887
00:48:04,279 --> 00:48:04,929
basic thing.

888
00:48:05,429 --> 00:48:05,639
Yeah.

889
00:48:05,639 --> 00:48:07,069
there are a lot of things like that.

890
00:48:07,069 --> 00:48:10,319
Like for instance, when you start,
putting together some compliance

891
00:48:10,329 --> 00:48:12,494
like, you know, soc 2, for instance.

892
00:48:12,664 --> 00:48:16,599
there are a lot of controls that, you
start implementing that very important

893
00:48:16,649 --> 00:48:18,639
and sometimes time consuming as well.

894
00:48:18,719 --> 00:48:22,799
Like you need to have a human
checking that constantly or regularly.

895
00:48:23,169 --> 00:48:25,479
and so yeah, this
compliance is another thing.

896
00:48:25,579 --> 00:48:29,484
And security in general, is something
that uh, we think we can help with.

897
00:48:29,564 --> 00:48:33,824
you mentioned Dependabot and the noise
that it causes and, we had some early

898
00:48:33,844 --> 00:48:38,954
prototypes of having some rules that are,
when some rules are met, actually the, I

899
00:48:38,964 --> 00:48:44,314
don't even want to know about the PR and
I just like merge the thing and so so we

900
00:48:44,546 --> 00:48:47,226
if it's a point release, yeah, if
it's a patch release, just do it.

901
00:48:47,236 --> 00:48:47,686
Just do it.

902
00:48:47,686 --> 00:48:47,996
Yeah.

903
00:48:48,204 --> 00:48:51,644
Yeah, especially the build
works like the CI passes, like

904
00:48:51,644 --> 00:48:52,764
I don't want to deal with that.

905
00:48:52,764 --> 00:48:55,484
And so yeah, we had some prototypes
where we automated entirely

906
00:48:56,429 --> 00:48:58,229
some of those, use cases yeah.

907
00:48:58,229 --> 00:49:01,889
And I think they, from the feedback
we're getting from our customers,

908
00:49:01,889 --> 00:49:04,991
people are getting there actually,
um, they are getting ready and

909
00:49:04,991 --> 00:49:05,896
so, yeah, it's very interesting.

910
00:49:05,896 --> 00:49:08,206
And think very soon you'll
have the ability implement

911
00:49:08,206 --> 00:49:09,916
your own DevSecOps agent.

912
00:49:10,251 --> 00:49:12,481
we're going to keep adding
more agents ourselves too,

913
00:49:12,481 --> 00:49:14,861
because magic, plug and play.

914
00:49:15,761 --> 00:49:20,181
like it when you're on board because you
don't have a lot of time evaluate another

915
00:49:20,181 --> 00:49:24,251
tool so you prefer to onboard it, it run
on the side and see if it's valuable.

916
00:49:24,471 --> 00:49:27,861
And then if it's valuable you want
invest more in it, which means

917
00:49:28,001 --> 00:49:31,491
defining your own agents, and then
on top of that, we do orchestration

918
00:49:31,501 --> 00:49:32,841
on top of this fleet of agents.

919
00:49:32,941 --> 00:49:35,571
so they are called at the right
time with the right context.

920
00:49:35,951 --> 00:49:38,681
You mentioned something
also about hallucination.

921
00:49:38,761 --> 00:49:43,781
I think it's very interesting because
I think you're right that LLMs got

922
00:49:43,791 --> 00:49:45,701
better recently in the last few months.

923
00:49:45,771 --> 00:49:50,266
And, they're definitely a lot more
powerful in term of how they think

924
00:49:50,596 --> 00:49:52,866
and the kind of mistakes they make.

925
00:49:53,081 --> 00:49:57,241
we actually built a lot of, engineering
around the LLM to deal with this.

926
00:49:57,241 --> 00:50:02,241
And so we realized that, you know, the
era of the rag is kind of over now.

927
00:50:02,241 --> 00:50:05,871
Like you don't need to pull like
an entire context and try to guide

928
00:50:05,871 --> 00:50:09,636
every single thing that the LM
should do, or, or should consider.

929
00:50:10,136 --> 00:50:14,926
Instead, the prompts are getting
smaller and you put a lot more

930
00:50:14,926 --> 00:50:16,996
intelligence in the tools themselves.

931
00:50:17,281 --> 00:50:20,786
and what I mean by intelligence is, for
instance, in the case of Mendral, we

932
00:50:20,786 --> 00:50:22,806
do static analysis on the tool calls.

933
00:50:23,146 --> 00:50:26,846
And so we are able at runtime when
the agent calls some tools to detect

934
00:50:27,096 --> 00:50:29,126
some drift from initial mission.

935
00:50:29,586 --> 00:50:35,741
and we, nice thing is you can, you have
the ability when you do that correctly,

936
00:50:35,841 --> 00:50:39,901
with result of the tool call to actually
influence the thinking of the agent.

937
00:50:39,911 --> 00:50:40,821
So it's almost like Yeah.

938
00:50:40,821 --> 00:50:40,841
That's great.

939
00:50:41,026 --> 00:50:43,636
the agent starts somewhere and
starts doing something, and then at

940
00:50:43,636 --> 00:50:48,511
some point he goes on the side on
something, you know, useless calling

941
00:50:48,761 --> 00:50:51,941
comments or, you know, some things
that are not actually very useful.

942
00:50:52,251 --> 00:50:55,141
You can actually steer it back to plan.

943
00:50:55,141 --> 00:50:58,971
And so we spot those things
in the tool calls and say, no,

944
00:50:58,971 --> 00:51:00,051
no, actually don't do that.

945
00:51:00,051 --> 00:51:01,041
Do this instead.

946
00:51:01,061 --> 00:51:05,021
So for the agent, it's like I'm calling
a tool, and it's weird because the tool

947
00:51:05,021 --> 00:51:06,331
is telling me to do something else.

948
00:51:06,331 --> 00:51:08,901
So that's really works.

949
00:51:09,081 --> 00:51:13,071
But the nice thing at the end is that
you, have almost a dynamic prompt.

950
00:51:13,531 --> 00:51:17,541
So instead of having like very long
prompt that you pass initially.

951
00:51:17,541 --> 00:51:22,551
You let the agent pull the context,
and from that context, you can actually

952
00:51:22,551 --> 00:51:24,681
dynamically change that prompt at runtime.

953
00:51:24,931 --> 00:51:27,131
And that's really what
gave us best results.

954
00:51:27,761 --> 00:51:31,391
coupling that with sub agents,
it's actually very important.

955
00:51:31,551 --> 00:51:33,351
Claude Code is doing that really well too.

956
00:51:33,351 --> 00:51:33,811
Like when it

957
00:51:33,811 --> 00:51:37,041
explores codebase, it's doing
that in a sub agent because

958
00:51:37,051 --> 00:51:37,976
you don't need the whole thing.

959
00:51:38,046 --> 00:51:41,386
All context of the exploration
back into the main loop.

960
00:51:41,436 --> 00:51:45,831
You don't need that once you got the
results, you want just that result to be

961
00:51:45,866 --> 00:51:47,971
in the cause of your LLMs moving forward.

962
00:51:47,971 --> 00:51:49,241
And so that's also what we do.

963
00:51:49,571 --> 00:51:51,011
And so so yeah.

964
00:51:51,011 --> 00:51:55,981
It's very interesting to see that like
those patterns being LLMs getting better.

965
00:51:56,261 --> 00:51:59,671
I think all of that is getting
closer and closer to, the kind of

966
00:51:59,711 --> 00:52:01,831
work that a human could do For you.

967
00:52:01,831 --> 00:52:04,889
And so, yeah, that's really
what motivated us to start this

968
00:52:04,889 --> 00:52:05,939
company in the first place.

969
00:52:06,439 --> 00:52:10,569
Because you can sort of foresee, I can
imagine that you can foresee like these

970
00:52:10,569 --> 00:52:13,289
things are getting better at a steady
pace and it's not just the models that are

971
00:52:13,289 --> 00:52:16,199
getting better, we're understanding better
how to, you know, because we don't just.

972
00:52:16,699 --> 00:52:20,874
you know, taking a blind model and
putting it into a random situation

973
00:52:20,874 --> 00:52:22,424
where you need to have it write code.

974
00:52:22,644 --> 00:52:25,269
it's like, to me it was like bringing
a kid to school straight out of

975
00:52:25,269 --> 00:52:28,439
university who just learned how to
program in that language and sitting

976
00:52:28,489 --> 00:52:31,429
in the chair on day one and saying,
okay, now, write me some code.

977
00:52:31,479 --> 00:52:34,359
Commit it to the do all these
things without any context, right?

978
00:52:34,359 --> 00:52:36,969
We just didn't understand
that we needed context.

979
00:52:36,979 --> 00:52:40,399
And of course we had smaller context
windows, so that was also a struggle.

980
00:52:40,799 --> 00:52:44,939
But like for me recently, I use OpenCode
a lot more than Claude Code now.

981
00:52:44,949 --> 00:52:47,249
every time I keep trying to go back
to Claude Code, even though it's

982
00:52:47,249 --> 00:52:49,399
got some really cool things that
there's not yet in OpenCode, they're

983
00:52:49,409 --> 00:52:50,819
back and forth It's my two favorite.

984
00:52:51,274 --> 00:52:52,914
And I talk about this a lot, I
think I probably mention it on

985
00:52:52,914 --> 00:52:55,324
every show nowadays because I'm
just obsessed with it all day long.

986
00:52:55,324 --> 00:53:01,024
But started to integrate LSPs, which I
think is leveling up code accuracy the,

987
00:53:01,044 --> 00:53:05,724
we don't really see it happening, but
just feel like my OpenCode, because LSPs

988
00:53:05,724 --> 00:53:08,084
are in there out of the box we're with
the Claude Code, I think you have to

989
00:53:08,084 --> 00:53:09,774
actually add the extensions manually.

990
00:53:10,584 --> 00:53:13,564
where OpenCode dynamically injects it
when it sees a language in real time.

991
00:53:13,939 --> 00:53:16,729
And I just feel like OpenCode
for me is a little bit better.

992
00:53:16,749 --> 00:53:19,559
And I don't have a way to prove this
theory, but I think it's maybe because of

993
00:53:19,559 --> 00:53:23,609
that LSP background where it's constantly
helping tools, helping keep it on the

994
00:53:23,609 --> 00:53:24,999
rails essentially, of how it's writing.

995
00:53:25,499 --> 00:53:30,169
And this is all I feel like leading
us to what some of the experts out

996
00:53:30,169 --> 00:53:33,679
there for the last year, over a year
really, I think last year I saw a great

997
00:53:33,689 --> 00:53:38,489
talk from the president of, I think
it was Gradle, talking about not only

998
00:53:38,509 --> 00:53:43,129
is AI coming for DevOps and operations
because it just has to, because the

999
00:53:43,129 --> 00:53:49,009
software development lifecYCle can't
be optimized for agentic coding without

1000
00:53:49,009 --> 00:53:51,374
the rest of the pipeline also improving.

1001
00:53:51,379 --> 00:53:54,269
if we're going to improve 2x,
the entire pipeline, the entire

1002
00:53:54,269 --> 00:53:55,724
lifecYCle has to be improved, 2x.

1003
00:53:55,724 --> 00:53:59,839
We can't just have developers tripling
their PR rate and then the rest of

1004
00:53:59,839 --> 00:54:01,229
us all act like nothing's changed.

1005
00:54:01,424 --> 00:54:03,994
we're going to have to accelerate,
we're going to have to use AI as well to

1006
00:54:03,994 --> 00:54:07,624
accelerate, unless we're suddenly going
to double the number of ops people, which

1007
00:54:07,664 --> 00:54:09,804
nobody, I don't see any teams doing that.

1008
00:54:10,174 --> 00:54:11,234
they're going to have to use AI.

1009
00:54:11,244 --> 00:54:15,974
And in that premise, if we're possibly
at this moment in time, if we consider

1010
00:54:15,974 --> 00:54:19,054
these more junior engineers, not so
much senior engineers in terms of their

1011
00:54:19,084 --> 00:54:21,774
overall intelligence and accuracy.

1012
00:54:22,264 --> 00:54:26,014
If that's the case, then we're going to
need better guardrails, we're going to

1013
00:54:26,014 --> 00:54:31,189
need more testing and, you more rules
and more guidelines for them to follow.

1014
00:54:31,409 --> 00:54:33,909
And then we're also going
to need to remediate faster.

1015
00:54:34,129 --> 00:54:37,459
A lot of times when people talk about
remediation of failures or recovery from

1016
00:54:37,459 --> 00:54:41,449
failures, at least in like the Kubernetes
world that I live, a lot of people

1017
00:54:41,449 --> 00:54:45,209
are talking about that from just being
able to detect failures in production.

1018
00:54:46,799 --> 00:54:51,359
Where I live is more in the CI world, and
that remediation is more important to me.

1019
00:54:51,579 --> 00:54:54,269
And I feel like that hasn't
been clearly unlocked.

1020
00:54:54,519 --> 00:54:59,289
And it feels like tools like Mendral
are way forward in that regard in

1021
00:54:59,289 --> 00:55:02,909
terms of they're going to help me
recover from failures faster so that

1022
00:55:02,929 --> 00:55:05,289
I can, you know, this is all in Git.

1023
00:55:05,349 --> 00:55:07,979
like we were this entire
conversation is talking about Git.

1024
00:55:08,069 --> 00:55:11,239
GIT is protocol that
allows me to undo mistakes.

1025
00:55:11,589 --> 00:55:15,729
So if we're so apprehensive and we
sometimes in DevOps, especially in

1026
00:55:15,749 --> 00:55:19,389
ops, we get so apprehensive about
change and we're constantly fighting

1027
00:55:19,474 --> 00:55:22,924
our one side of our brain wants to
not change anything because it works

1028
00:55:22,924 --> 00:55:24,334
right now and we're just fine with it.

1029
00:55:24,574 --> 00:55:27,124
The other half of our brain's like,
this is all needs to be better.

1030
00:55:27,124 --> 00:55:28,084
It could be so much better.

1031
00:55:28,084 --> 00:55:29,774
Let me fix things, let me improve things.

1032
00:55:30,084 --> 00:55:32,464
And that tension is just
naturally in our brains.

1033
00:55:32,939 --> 00:55:36,669
And this feels like a
way for me to go faster.

1034
00:55:36,979 --> 00:55:39,859
Also, understanding that maybe it's
not going to get it correct 100 percent

1035
00:55:39,859 --> 00:55:43,799
of the time, when it fails, it's
also going to elevate the failures.

1036
00:55:43,809 --> 00:55:48,459
It's also going to find the failures
and fix them faster so I could go faster

1037
00:55:48,469 --> 00:55:51,979
if that means, well, that outage might
be 10 minutes on that test failure.

1038
00:55:52,019 --> 00:55:55,959
we broke a test, we fixed it
within 15, 20 minutes, nobody

1039
00:55:55,959 --> 00:55:57,509
even noticed, we're all fine.

1040
00:55:57,899 --> 00:56:01,799
So what's the real risk here, if
this thing is really just committing

1041
00:56:01,809 --> 00:56:07,309
PRs against my infrastructure,
it doesn't feel like a huge risk

1042
00:56:07,339 --> 00:56:11,359
because I'm not having git repo.

1043
00:56:11,399 --> 00:56:11,699
Right.

1044
00:56:11,984 --> 00:56:12,984
at least that's how I take it.

1045
00:56:12,984 --> 00:56:15,394
is the stakes are actually a
little lower because I'm in git.

1046
00:56:15,979 --> 00:56:19,834
thing you said actually that's very
interesting is, just about going faster.

1047
00:56:19,834 --> 00:56:24,484
I, heard people telling me that
the production of code has been

1048
00:56:24,484 --> 00:56:25,944
solved it's going to be fine.

1049
00:56:25,944 --> 00:56:29,469
And I think it's about to be solved,
honestly, using a lot of AI ourselves.

1050
00:56:29,494 --> 00:56:33,659
But I think there are some physics that,
are ruling the world that are not going to

1051
00:56:33,659 --> 00:56:38,809
change, which means, you can write a lot
of code in parallel, but at a given time,

1052
00:56:38,859 --> 00:56:42,519
there is only one version of your code
that goes to production at a given time.

1053
00:56:43,029 --> 00:56:46,509
And so you, you always need
that no matter what happens.

1054
00:56:46,544 --> 00:56:49,269
and I'm sure the software
delivery is going to change.

1055
00:56:49,269 --> 00:56:50,809
We're going to participate to that change.

1056
00:56:50,809 --> 00:56:52,599
It has to change, that's for sure.

1057
00:56:52,599 --> 00:56:54,399
Like when you even just a detail.

1058
00:56:54,439 --> 00:56:58,449
But when you look at how PRs
are being reviewed today?

1059
00:56:58,459 --> 00:57:02,229
Like, realize that maybe
it's not the right, paradigm.

1060
00:57:02,589 --> 00:57:05,709
be done differently or possibly
with different tools actually,

1061
00:57:06,059 --> 00:57:08,299
But in any way the

1062
00:57:08,381 --> 00:57:10,611
to do human q a, by the way, Q, not Q,

1063
00:57:10,611 --> 00:57:12,451
A, QA, like we used to do human qa.

1064
00:57:12,621 --> 00:57:15,811
Now, if you're doing human
qa, your legacy, like if

1065
00:57:15,811 --> 00:57:18,051
you, yeah, this could happen,

1066
00:57:18,064 --> 00:57:22,254
you still need to do, it's actually a
very good example because you right?

1067
00:57:22,289 --> 00:57:23,951
it's automated you still need to do it.

1068
00:57:24,271 --> 00:57:27,631
And I think the same thing happens
with, software delivery at a given time.

1069
00:57:27,631 --> 00:57:30,771
You need an integration loop that's
going to make sure that you can

1070
00:57:30,771 --> 00:57:34,701
actually ship the one single version
of your software at a given time.

1071
00:57:35,301 --> 00:57:38,781
you don't have this constraint when you
publish code thanks to Git, actually,

1072
00:57:38,801 --> 00:57:43,201
and you know, you can open any branch,
any PR, anything, but you still need

1073
00:57:43,201 --> 00:57:45,171
to integrate them at some point.

1074
00:57:45,551 --> 00:57:46,891
And I think that that's going to stay.

1075
00:57:47,111 --> 00:57:50,321
and so even though all the processes
and the way people work is going to

1076
00:57:50,321 --> 00:57:54,761
be different, but, yeah, no, so that's
actually very interesting, to hear

1077
00:57:54,821 --> 00:57:58,591
in terms of going faster and what are
all the things needed to go faster.

1078
00:57:58,601 --> 00:58:00,161
It's not just about writing code.

1079
00:58:01,024 --> 00:58:03,324
Let me ask you real quick
on a very specific subject.

1080
00:58:03,404 --> 00:58:07,454
our friend Victor Farcic, you might
know him, DockerCaptain alumni and,

1081
00:58:07,677 --> 00:58:12,529
YouTuber, who has been doing a lot
of AI videos over the last year.

1082
00:58:13,019 --> 00:58:16,309
We had a conversation recently where
he believes, and I totally agree with

1083
00:58:16,309 --> 00:58:21,979
this statement, that the harness, our
local harness, whether that's Claude

1084
00:58:21,999 --> 00:58:26,419
Code or OpenCode or Copilot and VS
Code or however you want to roll, That,

1085
00:58:26,419 --> 00:58:32,239
that's going to be the way that not just
devs, but maybe DevOps and operators

1086
00:58:32,239 --> 00:58:33,939
and platform engineers and SREs.

1087
00:58:34,329 --> 00:58:38,439
This is going to be like our window to
the world, and the more we can stuff

1088
00:58:38,439 --> 00:58:40,159
context into it, the more we can give it.

1089
00:58:40,619 --> 00:58:44,759
learned yesterday from another DevOps
engineer that's making his own, he

1090
00:58:44,759 --> 00:58:46,269
has his own skills, essentially.

1091
00:58:46,269 --> 00:58:49,779
He's not using skills for this particular
thing yet, but he's creating a me skill

1092
00:58:49,789 --> 00:58:52,669
and that's how I this, and I'm going
to practice this in the next week and

1093
00:58:52,669 --> 00:58:57,099
see if it helps there's a rising theory
that we shouldn't be telling the AI.

1094
00:58:57,619 --> 00:58:59,699
Hey, you need to be an expert marketer.

1095
00:58:59,699 --> 00:59:03,319
You need to be in this role,
you need to be an expert SRE.

1096
00:59:03,549 --> 00:59:07,219
But it's more important that we tell it
about us and what, how we work and what

1097
00:59:07,219 --> 00:59:09,809
we expect, rather than tell it what it is.

1098
00:59:09,839 --> 00:59:14,489
And so one of these engineers in the guild
was saying that he's had a lot better

1099
00:59:14,539 --> 00:59:18,239
output of his LLM by describing himself.

1100
00:59:18,249 --> 00:59:20,879
And he, I think, I think he injects it
as a command or something in his harness.

1101
00:59:21,189 --> 00:59:24,479
I see of that as more of a skill
that I just need to flood into each

1102
00:59:24,479 --> 00:59:28,929
conversation at some point so that every
session, the AI knows more about me

1103
00:59:28,929 --> 00:59:31,149
and my role and how I want to operate.

1104
00:59:31,589 --> 00:59:35,289
And so getting back to Viktor, Viktor
feels like this harness that eventually

1105
00:59:35,289 --> 00:59:36,749
will know us personally better.

1106
00:59:36,999 --> 00:59:39,139
It will have maybe it's
more docs from the team.

1107
00:59:39,139 --> 00:59:40,189
It'll have more access to.

1108
00:59:40,609 --> 00:59:43,859
confluence or Jira or Notion or
whatever you might have that gives

1109
00:59:43,859 --> 00:59:45,479
it more context about environment.

1110
00:59:45,814 --> 00:59:49,704
So thus, that seems to be the best
way forward for interacting with all

1111
00:59:49,704 --> 00:59:51,364
of our systems, not just our code.

1112
00:59:51,434 --> 00:59:52,164
This the theory he has.

1113
00:59:52,224 --> 00:59:55,034
I think this feels like a
pattern a thing that I want.

1114
00:59:55,324 --> 00:59:59,114
Do you see Mendral as being
something rather than in Slack

1115
00:59:59,194 --> 01:00:01,574
what is the primary chat interface?

1116
01:00:01,764 --> 01:00:03,314
You know, obviously there's
this great dashboard.

1117
01:00:03,454 --> 01:00:04,724
Probably going to always
have the dashboard.

1118
01:00:05,584 --> 01:00:07,634
I don't gravitate to Slack right now.

1119
01:00:07,634 --> 01:00:09,954
Like, I'm not someone who jumps into
Slack to have a conversation with AI.

1120
01:00:10,044 --> 01:00:11,784
I always think about
it being in my harness.

1121
01:00:12,174 --> 01:00:14,294
do you see it being like an MCP or an A2A?

1122
01:00:14,754 --> 01:00:18,024
I don't really understand exactly
how agents talk to each other.

1123
01:00:18,044 --> 01:00:19,664
I don't actually currently
have any of my own.

1124
01:00:19,674 --> 01:00:21,804
How does that, what does that
future look like for Mendral?

1125
01:00:22,661 --> 01:00:27,091
So definitely it's very interesting
topic and, so short answer is yes, yes.

1126
01:00:27,111 --> 01:00:33,281
I do also have a single interface and
I, constantly, tweak it and improve

1127
01:00:33,281 --> 01:00:37,631
it and customize it to, to my profile,
my needs, my skills, all of that.

1128
01:00:37,651 --> 01:00:39,011
And so, so, yes.

1129
01:00:39,041 --> 01:00:43,101
And, and today Mendral has a lot of
knowledge and he's building a lot of,

1130
01:00:43,506 --> 01:00:47,196
fairly large context at a given time about
your state of your software delivery.

1131
01:00:47,666 --> 01:00:52,526
And we started to get people asking us,
Hey, can I use that knowledge locally?

1132
01:00:52,526 --> 01:00:54,596
Because we are actually doing
a lot of things locally.

1133
01:00:54,596 --> 01:00:57,526
You know, I mentioned software
delivery is gonna change.

1134
01:00:57,586 --> 01:01:01,636
And one, I think one of the biggest
change that's gonna happen in CI/CD is

1135
01:01:01,636 --> 01:01:05,136
a lot more things will be done locally
on the machine, that's for sure.

1136
01:01:05,616 --> 01:01:10,236
And so, you know, starting with the
reviews, of code, like Anthropic released,

1137
01:01:10,466 --> 01:01:16,046
and there are more and more people doing
reviews locally before they land and

1138
01:01:16,046 --> 01:01:22,258
I think that's only the beginning and,
I think, um, eventually, we can expect

1139
01:01:22,628 --> 01:01:27,108
the, code to land on your CI to be more
and more perfect because there is a lot

1140
01:01:27,108 --> 01:01:32,368
more thinking and calls and and back and
forth happening on your local machine.

1141
01:01:32,688 --> 01:01:35,868
And so, yes, indeed, we want
Mendral to be available, locally.

1142
01:01:36,188 --> 01:01:39,708
so it can be included entirely with
the way you do work already and

1143
01:01:39,708 --> 01:01:44,183
also bring this knowledge before
it lands on CI, kind of sucks today

1144
01:01:44,183 --> 01:01:47,723
that every time you need to, there
is this big surprise that happens

1145
01:01:47,723 --> 01:01:50,753
when you have to kick in CI runner to

1146
01:01:51,008 --> 01:01:53,248
verify certain things
that you cannot verify.

1147
01:01:53,248 --> 01:01:55,198
Otherwise, I think that needs to change.

1148
01:01:55,548 --> 01:01:57,258
And so yes, in terms integration,

1149
01:01:57,415 --> 01:01:57,705
right?

1150
01:01:58,685 --> 01:02:00,815
Like, this is why you were working
on Dagger for seven years, yeah.

1151
01:02:00,833 --> 01:02:01,533
Exactly.

1152
01:02:01,533 --> 01:02:02,303
that's exactly right.

1153
01:02:02,303 --> 01:02:06,293
And, in term of implementation,
you mentioned, MCP, A2 A, I think,

1154
01:02:06,343 --> 01:02:10,223
think what's, where most people
are moving right now is by having,

1155
01:02:10,283 --> 01:02:12,833
really good, well documented CLIs.

1156
01:02:13,013 --> 01:02:16,593
' cause again, LLMs actually perform
Like the human brain, not at

1157
01:02:16,593 --> 01:02:19,883
the same level, but it's very
similar in the way it thinks.

1158
01:02:19,883 --> 01:02:23,913
And so do you think your software engineer
would behave better with an API and

1159
01:02:23,923 --> 01:02:27,888
MSCP server or with a great CLI, And
when you look at Claude and skills, it

1160
01:02:27,888 --> 01:02:30,528
actually works much better by using CLIs.

1161
01:02:30,988 --> 01:02:33,923
and so I think, um, MCP is
good for certain things.

1162
01:02:33,958 --> 01:02:34,653
but I see it.

1163
01:02:34,963 --> 01:02:38,093
Exactly the same as an
API API MCP same thing.

1164
01:02:38,533 --> 01:02:42,268
it actually works better usually when
you have remote MCP servers, but remote

1165
01:02:42,268 --> 01:02:45,668
API or remote MCP server, at the end
of the day, it's not very different.

1166
01:02:46,158 --> 01:02:49,568
Uh, and so I think the best way to
integrate with some of those APIs is

1167
01:02:49,568 --> 01:02:53,503
to have a really good CLI That your
harness, as you said, can integrate with.

1168
01:02:53,853 --> 01:02:57,606
And so that, that's what we're planning
to do eventually, is to have, A-I-C-L-I

1169
01:02:57,611 --> 01:03:02,113
that gives you all the capabilities as
you could get on Slack or the dashboard.

1170
01:03:02,143 --> 01:03:05,748
Those are just front end to the
engine that we run on the backend.

1171
01:03:05,798 --> 01:03:06,248
So yeah.

1172
01:03:07,038 --> 01:03:10,838
short answer, yes, and I'm glad you
asked because, I think it shows also

1173
01:03:10,838 --> 01:03:14,543
that you're, pretty advanced with
your own harness because not a lot

1174
01:03:14,543 --> 01:03:16,273
of people are not like that today.

1175
01:03:16,283 --> 01:03:18,813
You know, sometimes it feels, when
we're talking to each other, we're

1176
01:03:18,813 --> 01:03:20,293
like, yeah, of course it's obvious.

1177
01:03:20,293 --> 01:03:24,053
You know, need improve your skills,
your customization, your profile.

1178
01:03:24,093 --> 01:03:25,033
And I do that too.

1179
01:03:25,393 --> 01:03:29,373
It's just that so many people out
there who are still figuring out what

1180
01:03:29,373 --> 01:03:31,003
they should do with AI, you know,

1181
01:03:31,145 --> 01:03:34,475
Well, and the reality is that six
months ago I knew none of this, right?

1182
01:03:34,475 --> 01:03:36,355
We didn't even have skills
until six months ago.

1183
01:03:36,365 --> 01:03:39,435
Like there's just, yeah, there is so much.

1184
01:03:39,445 --> 01:03:43,925
And we're all, it's the only reason
I think any, any team that is in

1185
01:03:43,925 --> 01:03:47,725
our sort of level of maturity or
beyond is getting productive is

1186
01:03:47,725 --> 01:03:49,225
because the AI is doing the work.

1187
01:03:49,245 --> 01:03:52,375
Like we are, we're so consumed
with having to learn patterns.

1188
01:03:52,615 --> 01:03:54,025
I'm reading constantly.

1189
01:03:54,300 --> 01:03:59,110
I've had to adopt a ReadWise reader in
the last year as critical part of my

1190
01:03:59,110 --> 01:04:03,460
learning workflow where I just dump every
tweet, every blog post, every YouTube

1191
01:04:03,470 --> 01:04:07,410
that I think is interesting around AI
that I think I probably should consume.

1192
01:04:07,865 --> 01:04:10,905
I throw it in a read, shout out to
ReadRise Reader, uh, Readwise is the

1193
01:04:10,905 --> 01:04:15,315
company the product reader is the
app that you can consume all these

1194
01:04:15,315 --> 01:04:16,935
different types of media in one place.

1195
01:04:16,935 --> 01:04:18,695
And I can log, I can have it summarized.

1196
01:04:18,715 --> 01:04:20,495
I can tag it, I can do all
these great things with it.

1197
01:04:20,920 --> 01:04:24,880
It's kind of like to me, the graduation
of the old Feedly or the Google reader

1198
01:04:24,880 --> 01:04:26,570
or the RSS readers that we used to have.

1199
01:04:26,950 --> 01:04:30,190
But it's kind of becoming like my podcast
and YouTube player at this point too.

1200
01:04:30,280 --> 01:04:33,700
Instead of using the algorithms, I
just dump things into it that I think

1201
01:04:33,700 --> 01:04:35,560
are interesting from the algorithm.

1202
01:04:35,740 --> 01:04:38,445
And then when I want to be
focused and learn, I go there.

1203
01:04:38,445 --> 01:04:40,835
So that's like a hack for me
to keep up because well, and

1204
01:04:40,835 --> 01:04:42,225
I'm not nobody's keeping up.

1205
01:04:42,235 --> 01:04:43,195
Like this is a crazy time.

1206
01:04:43,245 --> 01:04:44,025
it's insanity.

1207
01:04:44,025 --> 01:04:45,015
no one can actually know it all.

1208
01:04:45,360 --> 01:04:46,325
No one's an expert yet.

1209
01:04:46,675 --> 01:04:52,225
So it's exciting to see that because
like, do you know specifically how we

1210
01:04:52,225 --> 01:04:55,755
would implement that in terms of me
having a Claude Code in front of me?

1211
01:04:56,025 --> 01:04:58,195
How would that talk to
Mendral, like getting into

1212
01:04:58,195 --> 01:04:59,455
your architecture for a second?

1213
01:04:59,455 --> 01:05:01,325
is that an A2A, I'm not
smart enough to know.

1214
01:05:01,325 --> 01:05:06,205
Is A2A the thing that would allow my
agent to somehow talk to like an API

1215
01:05:06,675 --> 01:05:08,415
on your system that has an agent.

1216
01:05:08,425 --> 01:05:09,925
Do you know anything about this stuff

1217
01:05:10,145 --> 01:05:10,515
yet?

1218
01:05:10,698 --> 01:05:15,508
so, I mean by a CLI is, I think a
good example of that would be look

1219
01:05:15,508 --> 01:05:20,128
at the difference when you use either
OpenCode or Claude Code, or even Cursor.

1220
01:05:20,128 --> 01:05:27,778
Like look at the difference of interacting
with GitHub with on one side, uh, GitHub

1221
01:05:27,778 --> 01:05:28,898
MCP, which is actually quite good.

1222
01:05:29,708 --> 01:05:31,828
And on the other side, the GHCLI.

1223
01:05:32,528 --> 01:05:36,408
I don't know if you tried both
actually, but, I invite you to do it.

1224
01:05:36,463 --> 01:05:39,478
you'll see that there is a huge
difference between the two.

1225
01:05:39,958 --> 01:05:44,158
Basically TLDR is one works really
well, the other is a bit clunky.

1226
01:05:44,418 --> 01:05:45,718
I'll Let you guess which one.

1227
01:05:45,718 --> 01:05:54,818
Well, the CLI is great because when
you look at the agent session and how

1228
01:05:54,818 --> 01:05:59,148
it navigates the CLI, it basically
reads, reads the help, it requires

1229
01:05:59,148 --> 01:06:02,718
your CLI to have really good error
messages so the agent can actually

1230
01:06:02,778 --> 01:06:07,488
react from it, basically, it's the same
thing like you, your, your CLI needs

1231
01:06:07,488 --> 01:06:10,028
to be intuitive so a human can use it.

1232
01:06:10,028 --> 01:06:14,968
If a human can use it well without
much documentation, it means an LLM

1233
01:06:14,968 --> 01:06:18,838
will use it pretty well because it
can read those messages and, and can

1234
01:06:18,838 --> 01:06:23,968
interact with the CLI and so yeah, when
we do, we got a lot more success with,

1235
01:06:24,013 --> 01:06:27,808
really good CLIs when we integrate
with services than anything else.

1236
01:06:28,008 --> 01:06:32,833
And then it's obviously your job as,
I mean our job for Mendral, to make it

1237
01:06:32,853 --> 01:06:37,043
work Well, you know, with our API and the
CLI, but for the user, and for both the

1238
01:06:37,083 --> 01:06:41,983
user and the agent, the, you know, your
local agent, like, it doesn't matter.

1239
01:06:42,268 --> 01:06:43,141
the, the CLI,

1240
01:06:43,761 --> 01:06:47,556
the CLI works well, is able to
expose the right context is able

1241
01:06:47,636 --> 01:06:51,306
to grab the right input and output,
and have, the right integration.

1242
01:06:51,306 --> 01:06:54,941
All of that is obviously complex,
but it's the problem of the person

1243
01:06:54,941 --> 01:06:56,981
building the CLI and the API behind.

1244
01:06:56,981 --> 01:07:01,456
So, yeah, I wouldn't think too much
about the best way integrate, like

1245
01:07:01,476 --> 01:07:06,096
you can actually write a skill, that
says, Hey, you have the CLI, X, you

1246
01:07:06,096 --> 01:07:08,906
know, and the CLI is to do this.

1247
01:07:09,586 --> 01:07:10,286
some context.

1248
01:07:10,316 --> 01:07:10,726
That's it.

1249
01:07:10,746 --> 01:07:14,936
The integration is done and it will
work much, much better any MCP server.

1250
01:07:15,638 --> 01:07:18,238
Yeah, I just realized while you're
saying that, maybe a question I should

1251
01:07:18,248 --> 01:07:22,998
start asking products that are on
this Agentic DevOps podcast is, are

1252
01:07:22,998 --> 01:07:27,098
you prepared for the AI to sign up
and use your tool versus the human?

1253
01:07:28,086 --> 01:07:28,566
Exactly.

1254
01:07:28,573 --> 01:07:32,183
that's like now we have Stripe doing
this, we have, people booking their planes

1255
01:07:32,183 --> 01:07:34,563
with AI and OpenClaw's doing all this.

1256
01:07:34,583 --> 01:07:38,043
And I'm wondering for companies that
are built in the AI era, and actually

1257
01:07:38,043 --> 01:07:40,733
using AI just like AI centric, right?

1258
01:07:41,053 --> 01:07:45,138
are they also, presumably thinking,
well, let's see how far Claude Code

1259
01:07:45,138 --> 01:07:49,188
can get just signing up and using the
tool implementing our preferences since

1260
01:07:49,198 --> 01:07:52,988
presumably your local harness knows
more about you and your infrastructure

1261
01:07:52,988 --> 01:07:54,938
than Mendral does on day one at least.

1262
01:07:55,283 --> 01:07:57,288
usage scenario that you're considering?

1263
01:07:57,698 --> 01:07:57,973
Yeah.

1264
01:07:57,973 --> 01:08:01,093
And, I think that's, you know,
there are, even startups right now.

1265
01:08:01,093 --> 01:08:05,893
Like, I think there were a few in our, our
YC Batch that are specialized in giving

1266
01:08:05,893 --> 01:08:10,433
access, like to, to all the services out
there, like booking a flight or anything,

1267
01:08:10,443 --> 01:08:12,273
giving it access to agent harnesses.

1268
01:08:12,343 --> 01:08:16,973
so for instance, creating actually A CLI
on MCP server to interact with some of the

1269
01:08:16,973 --> 01:08:22,673
services that today are only accessible
through a dashboard and some clunky ux.

1270
01:08:22,978 --> 01:08:28,013
so yeah, I think the web of tomorrow is
gonna be adjunct and, it doesn't, very

1271
01:08:28,013 --> 01:08:33,103
interesting because it's not so important
anymore to make, interface that's really

1272
01:08:33,123 --> 01:08:37,273
good beautiful for humans, but it's more
important that it's ergonomic to an agent.

1273
01:08:37,623 --> 01:08:38,643
so yeah, definitely.

1274
01:08:38,953 --> 01:08:43,043
right now for us specifically, Mendral
is giving you like a turnkey solution

1275
01:08:43,108 --> 01:08:47,843
in a few clicks, but I realized that
the integrations with other agents is

1276
01:08:47,843 --> 01:08:52,943
gonna be key moving forward because
what everyone wants is not a single

1277
01:08:52,943 --> 01:08:54,473
agent, it's actually a team of agent.

1278
01:08:54,863 --> 01:08:58,733
So even when you use Claude Code, you
are actually already using several agents

1279
01:08:58,798 --> 01:09:00,163
underneath, locally on your machine.

1280
01:09:00,573 --> 01:09:04,443
And when you call to remote, services,
you already have a team of agents with

1281
01:09:04,443 --> 01:09:07,833
some agents running on your machines,
some other agents running remotely.

1282
01:09:08,043 --> 01:09:09,183
And I think that's the future.

1283
01:09:09,183 --> 01:09:10,173
That's what people want.

1284
01:09:10,398 --> 01:09:10,788
Yeah.

1285
01:09:11,268 --> 01:09:13,718
All right, we're going to do
some rapid fires real quick, but

1286
01:09:13,808 --> 01:09:17,108
before that, I think I have one more
question on the future of Mendral.

1287
01:09:17,128 --> 01:09:18,308
Like we've been talking about GitHub.

1288
01:09:18,858 --> 01:09:21,078
Not everybody that listens to this
podcast is maybe using GitHub.

1289
01:09:21,118 --> 01:09:24,748
We've even got some people, Kurt, I'm
hearing news recently that some teams

1290
01:09:24,748 --> 01:09:26,528
are leaving GitHub for various reasons.

1291
01:09:26,728 --> 01:09:30,158
Are you, like, where do you
see going out the rest of 2026?

1292
01:09:30,223 --> 01:09:34,703
Do you have plans for other tooling, other
platforms, other, anything like that?

1293
01:09:34,713 --> 01:09:35,093
Like,

1294
01:09:35,206 --> 01:09:36,666
we're already working on some of it.

1295
01:09:36,666 --> 01:09:39,616
Yeah, we started to work with
bigger companies lately realized

1296
01:09:39,616 --> 01:09:43,236
that some of them have different CI
needs, you know, things like we got

1297
01:09:43,256 --> 01:09:47,976
questions for CircleCI, buildguides,
so yeah, we're gonna support them.

1298
01:09:48,041 --> 01:09:51,576
the Mendral today is, we talked
a lot about GitHub, because I

1299
01:09:51,576 --> 01:09:54,791
would say So, based on what we
see from people, it's probably 80%

1300
01:09:54,791 --> 01:09:56,301
percent of the demand, at least.

1301
01:09:56,591 --> 01:10:02,341
so big still, but do agree that it's
going to disappear over time, or at

1302
01:10:02,341 --> 01:10:06,611
least reduce, you know, for me, GitHub
is more like a protocol nowadays.

1303
01:10:07,241 --> 01:10:11,066
because when you look at bringing
a GitHub app that replaces GitHub

1304
01:10:11,146 --> 01:10:15,326
Actions with another, CI system, or
even replace the GitHub action runners,

1305
01:10:15,576 --> 01:10:17,666
or bring another review tool on top.

1306
01:10:17,876 --> 01:10:21,216
some people migrated to linear
instead of GitHub issues.

1307
01:10:21,436 --> 01:10:24,396
So yeah, everyone is grabbing a
piece of GitHub and integrating

1308
01:10:24,396 --> 01:10:25,716
with GitHub because they have to.

1309
01:10:26,096 --> 01:10:29,056
So it became more like an integration
protocol than anything else.

1310
01:10:29,056 --> 01:10:30,666
And so, we have to follow that.

1311
01:10:30,666 --> 01:10:34,346
And so we made Mendral CI
agnostic by design, from an

1312
01:10:34,346 --> 01:10:35,336
architecture point of view.

1313
01:10:35,591 --> 01:10:38,796
we haven't built all the integrations
yet because there is still a high demand

1314
01:10:38,796 --> 01:10:40,446
for GitHub Actions, but it's gonna come.

1315
01:10:41,133 --> 01:10:45,103
Yeah, I secretly wish that they
would just open source the, the

1316
01:10:45,103 --> 01:10:47,783
non open source parts, the API
essentially for GitHub Actions.

1317
01:10:48,253 --> 01:10:51,773
That way we can have local runner, like
we can have, we can do this all locally.

1318
01:10:51,803 --> 01:10:55,143
We can still, you know, I feel
like at some point the automation

1319
01:10:55,163 --> 01:10:57,793
engine behind GitHub Actions
is just going to be commodity.

1320
01:10:57,823 --> 01:11:00,893
And I'm looking forward to that future
because we do have all these rough edges.

1321
01:11:00,893 --> 01:11:03,353
It does feel like a very
low level, raw tool to me.

1322
01:11:03,723 --> 01:11:04,883
but I, you know, I absolutely love it.

1323
01:11:05,268 --> 01:11:06,653
you know, I use it every day.

1324
01:11:06,723 --> 01:11:10,633
I make money by selling courses on
it and stuff, so I obviously love it.

1325
01:11:10,853 --> 01:11:14,608
It's just, it's there's a lot there
that could be improved and, you know,

1326
01:11:14,623 --> 01:11:17,263
they would need, like, you know,
another hundred engineers on that

1327
01:11:17,263 --> 01:11:20,253
actions team to move at the pace that
I think it needs right now in AI.

1328
01:11:20,673 --> 01:11:23,503
I mean, you talk about this as
like, we need these other tools.

1329
01:11:23,513 --> 01:11:25,283
There's like a future
with these other things.

1330
01:11:25,283 --> 01:11:30,763
And even GitHub's, former own CEO has
left, started a new company, funded

1331
01:11:30,763 --> 01:11:34,983
I think 60 million by Microsoft, or
at least partly by Microsoft to help

1332
01:11:34,993 --> 01:11:37,623
solve this agentic coding problem.

1333
01:11:37,663 --> 01:11:40,413
They sound like they're going to be a
layer on top of GitHub, which again,

1334
01:11:40,493 --> 01:11:43,903
makes me feel like GitHub is becoming
like a cloud provider in a sense, just

1335
01:11:43,903 --> 01:11:47,173
for code, because they already have
been, but they're just going to be this

1336
01:11:47,173 --> 01:11:50,343
thing that we maybe don't touch that
much, and that lots of people are using

1337
01:11:50,353 --> 01:11:53,593
things on top of it, but don't ever
actually have to go there because the

1338
01:11:53,613 --> 01:11:57,458
AI is the one submitting, you know, I
don't type Git commands anymore, right?

1339
01:11:57,463 --> 01:12:00,913
there's so much I don't do, and the
only reason I think I'm even still going

1340
01:12:00,913 --> 01:12:06,173
to GitHub is because one habit, like I
got a lot of bad old habits to break.

1341
01:12:06,473 --> 01:12:09,693
I've got a lot of things that I should
be asking my local agent to do or look at

1342
01:12:09,693 --> 01:12:13,733
or go find out that I'm manually going,
doing, and doing, and I don't know why.

1343
01:12:14,053 --> 01:12:16,763
feels like I need to sometimes just
break myself the habit and see how

1344
01:12:16,763 --> 01:12:19,773
far I can go in the day without ever
actually going to the GitHub website.

1345
01:12:20,263 --> 01:12:23,533
Um, because you're right, like the
GitHub CLI is doing a lot more.

1346
01:12:23,533 --> 01:12:27,013
And now, I mean, even now we
have the Gmail, CLI like a Google

1347
01:12:27,013 --> 01:12:28,733
Workspace launched recently, a CLI.

1348
01:12:28,733 --> 01:12:33,688
so you can access all of these workspace
tools, Google Docs, Google Gmail, Google

1349
01:12:33,723 --> 01:12:35,668
Drive and all that stuff from a CLI.

1350
01:12:35,668 --> 01:12:36,363
So yeah, that, that's awesome.

1351
01:12:36,493 --> 01:12:39,603
the CLI future, I feel like is
strong and I'm here for all of that,

1352
01:12:39,603 --> 01:12:42,803
'cause one of my favorite things to
use go for is to buy, to make CLIs

1353
01:12:42,813 --> 01:12:44,383
for solving my own little problems.

1354
01:12:44,383 --> 01:12:47,698
And I've already got, like most
of us, I think probably half dozen

1355
01:12:47,698 --> 01:12:52,083
local projects that I'm just making
CLIs for my own use to feed back

1356
01:12:52,083 --> 01:12:53,583
to the AI to do things for me.

1357
01:12:54,008 --> 01:12:55,063
So it's just a fun time.

1358
01:12:55,063 --> 01:12:55,778
We could talk forever.

1359
01:12:55,833 --> 01:12:57,393
I love talking to you about this platform.

1360
01:12:57,763 --> 01:12:59,263
but a couple of quick
fires for the audience.

1361
01:12:59,263 --> 01:13:02,293
I think I'm gonna need to start
putting these in my show just to start

1362
01:13:02,293 --> 01:13:03,913
asking engineers that are on the show.

1363
01:13:04,233 --> 01:13:05,433
current favorite harness.

1364
01:13:06,207 --> 01:13:08,417
Oh, I use Claude Code a lot actually for,

1365
01:13:08,417 --> 01:13:09,357
even more than code.

1366
01:13:09,777 --> 01:13:10,267
Yeah.

1367
01:13:10,677 --> 01:13:14,027
I start to customize it for
automating some of my non

1368
01:13:14,027 --> 01:13:15,357
technical work too, actually,

1369
01:13:16,055 --> 01:13:16,405
Okay.

1370
01:13:16,705 --> 01:13:21,975
Are you into, like the new Dispatch
and the Computer Use yet, is that

1371
01:13:21,985 --> 01:13:25,155
like for personal stuff or for
things that aren't necessarily code?

1372
01:13:25,155 --> 01:13:27,785
Are you leaning into some of
the cloud stuff with Claude?

1373
01:13:27,862 --> 01:13:30,372
so usually I use a combination
of, a couple of things.

1374
01:13:30,387 --> 01:13:35,097
I, I like a lot of the Anthropic products
and so, I use Claude Code, the CLI,

1375
01:13:35,137 --> 01:13:35,517
uh,

1376
01:13:35,557 --> 01:13:36,797
locally for most of the.

1377
01:13:36,862 --> 01:13:41,942
The code, I started to automate, a lot
of my code boring work, even with Claude

1378
01:13:41,972 --> 01:13:44,322
Code and some integrations locally.

1379
01:13:44,322 --> 01:13:48,402
And so I maintain like a catalog of
skills, uh, of personal skills that

1380
01:13:48,402 --> 01:13:50,402
I used to automate some of my job.

1381
01:13:50,762 --> 01:13:53,852
The problem with Claude Code is
that very specific to code also.

1382
01:13:53,972 --> 01:13:58,967
So I'm aware of that and so sometimes I
go to Claude Desktop, which I think has

1383
01:13:58,967 --> 01:14:04,417
a lot of, you know, a way of managing
the context that it's entirely different.

1384
01:14:04,657 --> 01:14:07,197
The way it manages memory and
context is very different.

1385
01:14:07,407 --> 01:14:08,387
So I like Claude Desktop.

1386
01:14:08,577 --> 01:14:10,837
I do not like Claude Cowork, Actually,

1387
01:14:11,107 --> 01:14:14,737
That's some of the things that
people start talking about and

1388
01:14:14,737 --> 01:14:18,257
like, I do not like it because I
think it's not as advanced as Claude

1389
01:14:18,277 --> 01:14:22,117
Code in terms of context management
and multi agents and all of that.

1390
01:14:22,117 --> 01:14:23,617
I think it will get there eventually.

1391
01:14:24,135 --> 01:14:24,465
Yeah,

1392
01:14:25,017 --> 01:14:28,387
and then I started lately
and that, one might make you

1393
01:14:28,387 --> 01:14:29,797
laugh, but it's kind of weird.

1394
01:14:30,272 --> 01:14:34,572
started to use the Claude Code, iOS app.

1395
01:14:35,012 --> 01:14:38,492
the cloud app, has a
Code, tab or something.

1396
01:14:38,760 --> 01:14:42,290
you have a kind of a tiny version
of Claude Code inside your

1397
01:14:42,300 --> 01:14:43,950
mobile, and it's using sandboxes.

1398
01:14:44,500 --> 01:14:48,690
And so I started to use that to make
some very simple PRs on the repo.

1399
01:14:48,760 --> 01:14:51,800
use that only for very simple stuff,
you know, like, oh, I need to update

1400
01:14:51,810 --> 01:14:53,260
that on the landing page or something.

1401
01:14:53,460 --> 01:14:54,680
I do that from my phone.

1402
01:14:55,140 --> 01:14:58,730
And that's kind of scary because it
works quite well for simple stuff.

1403
01:14:59,165 --> 01:15:03,295
So it's almost like a preview of what
we're going to be able to do tomorrow, you

1404
01:15:03,295 --> 01:15:07,925
know, like almost like talk to your phone
or something and work happens and code

1405
01:15:07,925 --> 01:15:08,765
gets pushed to progress.

1406
01:15:10,317 --> 01:15:10,757
yeah.

1407
01:15:10,965 --> 01:15:11,385
so,

1408
01:15:11,990 --> 01:15:16,492
I feel like we're so close to, you
know, the Tony Stark Iron Man, Jarvis.

1409
01:15:16,502 --> 01:15:18,752
feel like we're getting so
close, at least for developers.

1410
01:15:18,752 --> 01:15:21,227
Like, I feel like we're the
first wave of really the people

1411
01:15:21,227 --> 01:15:22,747
that are onboarding with this.

1412
01:15:23,127 --> 01:15:24,907
I went and saw last night

1413
01:15:25,397 --> 01:15:28,907
For the third time in two weeks,
I went and saw the movie Project

1414
01:15:28,907 --> 01:15:30,377
Hail Mary, because I read the book.

1415
01:15:30,407 --> 01:15:31,397
My wife and I loved it.

1416
01:15:31,637 --> 01:15:35,387
We're big Andy Weir fans, and this
new movie is amazing and perfect,

1417
01:15:35,387 --> 01:15:36,697
and Ryan Gosling is fantastic.

1418
01:15:36,782 --> 01:15:40,692
And we sat next to some people that
were I'm really, really into it.

1419
01:15:40,782 --> 01:15:42,722
And so we started talking the fact.

1420
01:15:42,832 --> 01:15:43,652
the movie theater.

1421
01:15:44,172 --> 01:15:45,742
the kind of person that
loves a full movie theater.

1422
01:15:45,777 --> 01:15:48,357
think the reason you go to movies is
to the experience with other people.

1423
01:15:48,717 --> 01:15:52,357
So the guy next to me, leans over at the
end and says, we started talking about the

1424
01:15:52,357 --> 01:15:53,487
movie and how it's a positive experience.

1425
01:15:53,627 --> 01:15:56,037
view of the future where the world's
actually collaborating and working

1426
01:15:56,037 --> 01:15:57,677
together to solve esoteric problems.

1427
01:15:58,117 --> 01:16:00,697
And he said that there's this
subreddit he's a fan of called,

1428
01:16:01,057 --> 01:16:02,267
I think it's called Humanity.

1429
01:16:02,267 --> 01:16:02,827
Hell yeah.

1430
01:16:02,827 --> 01:16:03,747
Or Humans, hell Yeah.

1431
01:16:03,747 --> 01:16:04,447
Or something like that.

1432
01:16:04,487 --> 01:16:09,717
That's like a post war Look at the future
of civilization where we all tend to agree

1433
01:16:09,717 --> 01:16:12,867
on that and we're solving bigger problems,
we're dealing with aliens or whatever,

1434
01:16:13,177 --> 01:16:14,997
and then we all just, hold hands.

1435
01:16:15,647 --> 01:16:19,417
And so we start talking back and forth
and I get home and I'm walking the dog

1436
01:16:19,837 --> 01:16:21,407
want to know more about this subreddit.

1437
01:16:21,747 --> 01:16:25,297
So I'm in the OpenAI app, and
the ChatGPT app essentially.

1438
01:16:25,637 --> 01:16:29,627
And I'm having a a speaker
conversation in the audio mode.

1439
01:16:29,837 --> 01:16:33,917
And I'm just talking back and forth with
the AI and I'm living in a little bit of

1440
01:16:33,917 --> 01:16:37,037
an urban area, so there's other people
walking their dogs and I'm realizing that

1441
01:16:37,037 --> 01:16:38,687
people around me are hearing someone.

1442
01:16:39,137 --> 01:16:42,857
I, I sound like the old guy on
speakerphone walking around talking

1443
01:16:42,857 --> 01:16:46,527
to someone on speakerphone, But I'm
actually just talking to an AI about a

1444
01:16:46,527 --> 01:16:50,317
subreddit and sci fi, and I'm realizing
that I'm walking my dog and I'm way

1445
01:16:50,317 --> 01:16:51,617
more advanced than everyone around me.

1446
01:16:51,617 --> 01:16:55,117
I'm like doing things that are sci fi
level, future where I'm talking to a

1447
01:16:55,117 --> 01:16:59,667
robot, but also I look like grandpa,
talking to someone on a phone, on

1448
01:16:59,667 --> 01:17:00,567
speakerphone, that's way too loud.

1449
01:17:01,267 --> 01:17:03,137
It's like really weird scenario.

1450
01:17:03,137 --> 01:17:04,667
So I feel the same way.

1451
01:17:04,667 --> 01:17:07,942
Like think these things are all, happening
so fast and it's very cool to do.

1452
01:17:08,262 --> 01:17:08,832
Um, okay.

1453
01:17:08,892 --> 01:17:10,012
last question.

1454
01:17:10,177 --> 01:17:11,622
I'm assuming you're using Opus a lot.

1455
01:17:11,632 --> 01:17:13,247
Is that your, uh, your, Opus 4.

1456
01:17:13,247 --> 01:17:14,412
6 person or are you open 4.

1457
01:17:14,412 --> 01:17:15,207
5 person?

1458
01:17:15,207 --> 01:17:17,052
know some people that didn't jump into 4.

1459
01:17:17,052 --> 01:17:17,332
6.

1460
01:17:17,640 --> 01:17:19,130
I like Opus 4, 6.

1461
01:17:19,140 --> 01:17:21,555
But, actually not using it for everything.

1462
01:17:21,575 --> 01:17:24,555
I'm a big believer of, the
right model for the right task.

1463
01:17:24,945 --> 01:17:26,805
Mendral also is built this way.

1464
01:17:26,815 --> 01:17:29,815
We use Anthropic models today,
and we're going to move, multi

1465
01:17:29,815 --> 01:17:31,715
models, multi providers, soon too.

1466
01:17:31,985 --> 01:17:34,965
I believe there models that are
really good for certain things.

1467
01:17:35,355 --> 01:17:40,065
Opus is really good for complex
reasoning, but it's also very slow.

1468
01:17:40,385 --> 01:17:43,635
And sometimes you don't, need to,
like, if you summarize an email or

1469
01:17:43,635 --> 01:17:46,915
something, or like if you want to
rewrite some things that you wrote.

1470
01:17:47,355 --> 01:17:47,655
so yeah.

1471
01:17:47,675 --> 01:17:52,405
but I'd say if I have to pick one,
yes, that would be my go to, but

1472
01:17:52,835 --> 01:17:55,815
yeah, usually I multi modal
based on what I'm doing.

1473
01:17:56,457 --> 01:17:56,917
Nice.

1474
01:17:57,532 --> 01:17:59,107
thank you so much, Sam, for being here.

1475
01:17:59,217 --> 01:18:00,667
We could talk for another hour.

1476
01:18:00,697 --> 01:18:04,547
People are already going to go, Bret, like
you can't keep having these multi hour

1477
01:18:04,547 --> 01:18:08,347
podcast episodes, but I feel like there's
so much to talk about and it's great to

1478
01:18:08,347 --> 01:18:11,727
actually talk to not just founders, but
engineers in the thick of it that are

1479
01:18:11,727 --> 01:18:16,077
also living and drinking the, you know,
the Silicon Valley Kool Aid a little bit.

1480
01:18:16,417 --> 01:18:20,001
it's great to see the different
levels or I guess maturity levels of

1481
01:18:20,001 --> 01:18:23,541
everyone, that we have on the show
and to see where everyone is at.

1482
01:18:23,541 --> 01:18:26,811
And always fun to have people
on the show are ahead of us.

1483
01:18:26,831 --> 01:18:31,316
And I feel like, you know, touching
the AI even closer to what we think is

1484
01:18:31,896 --> 01:18:34,326
the utopia of this Star Trek future.

1485
01:18:34,326 --> 01:18:34,996
I feel like we're in.

1486
01:18:34,996 --> 01:18:37,996
So I'm excited that you guys are
progressing so quickly on the

1487
01:18:37,996 --> 01:18:40,316
product and I'm looking forward to
using more of it, especially since

1488
01:18:40,316 --> 01:18:41,576
it's scratch is a niche for me.

1489
01:18:41,906 --> 01:18:45,566
I'm looking forward to having you back
on the show maybe later this year and

1490
01:18:45,566 --> 01:18:47,216
talking through some of the advancements.

1491
01:18:47,236 --> 01:18:48,946
We'll probably have new models by then.

1492
01:18:48,956 --> 01:18:52,296
Supposedly Claude's going to have this
amazing new model later this year.

1493
01:18:52,716 --> 01:18:55,391
We'll see see whether it lives up to
the height, but, it'll be interesting

1494
01:18:55,391 --> 01:18:57,796
to see what you can do with some
of the new stuff that's coming out.

1495
01:18:57,796 --> 01:18:58,531
Yeah, thanks.

1496
01:18:58,531 --> 01:19:01,451
a lot for the opportunity to share
all of that and very, very cool.

1497
01:19:01,451 --> 01:19:03,061
Didn't feel like a time at all.

1498
01:19:03,570 --> 01:19:04,020
I'm glad.

1499
01:19:04,020 --> 01:19:04,380
I'm glad.

1500
01:19:04,590 --> 01:19:09,150
Uh, so yeah, you can find Mendral
at mendral.com, M-E-N-D-R-A l.com.

1501
01:19:09,475 --> 01:19:10,385
well thanks again, man.

1502
01:19:10,734 --> 01:19:13,074
Thanks for joining us, and I'll
see you in the next episode.