1
00:00:02,720 --> 00:00:07,200
Speaker 1: And we're live with another episode of Adventures in DevOps.

2
00:00:07,639 --> 00:00:12,759
Speaker 2: Almost blew the podcast name right there, Warren, Well, you know, thanks.

3
00:00:12,519 --> 00:00:16,199
Speaker 1: Catching, I've only done I've villain done a few hundred

4
00:00:16,199 --> 00:00:18,839
of these at this point. It's it's still a learning curve.

5
00:00:20,039 --> 00:00:22,879
So how are you, Warren, to bring us a security

6
00:00:22,960 --> 00:00:24,039
fact today?

7
00:00:24,079 --> 00:00:28,199
Speaker 2: Well, you know, I think again. I had brought one

8
00:00:28,440 --> 00:00:30,559
last time, and I thought, you know, this time for

9
00:00:30,640 --> 00:00:34,079
sure our fellow co host was going to be here

10
00:00:34,320 --> 00:00:38,479
at share, the long awaited one, Matt. I had been

11
00:00:38,520 --> 00:00:43,200
promised at it, you know, coincidence not here, so I

12
00:00:43,240 --> 00:00:44,399
don't have anything today.

13
00:00:44,960 --> 00:00:50,880
Speaker 1: She's pausing for dramatic effect, like a really really dramatic effect.

14
00:00:52,479 --> 00:00:54,640
Speaker 2: It's gonna be the best fact ever. I swear it.

15
00:00:54,719 --> 00:00:58,799
Speaker 1: When it actually drops, it is it is right well.

16
00:00:59,079 --> 00:01:03,320
Also joining us Daniel Loretto from Jedifhy. Daniel, Welcome to

17
00:01:03,320 --> 00:01:03,920
the show man.

18
00:01:04,680 --> 00:01:06,599
Speaker 3: Thank you so much. Will happy to be here.

19
00:01:06,760 --> 00:01:10,599
Speaker 1: Dude, I'm excited to have you here. So you are

20
00:01:10,680 --> 00:01:13,640
with Jedify. Now tell us a little bit about your background.

21
00:01:14,799 --> 00:01:17,120
Speaker 3: Yes, I'm a software engineered by trade.

22
00:01:18,560 --> 00:01:20,280
Speaker 4: You know, I've worked at a lot of different tech

23
00:01:20,280 --> 00:01:22,799
companies of all different sizes, so I can talk about,

24
00:01:23,000 --> 00:01:27,719
you know, different experiences. But I worked at Google, Airbnb, Twitter,

25
00:01:28,719 --> 00:01:31,159
I worked at you know, tiny startups that you've never

26
00:01:31,200 --> 00:01:35,519
heard of. I worked at Verta Health, which is a

27
00:01:35,599 --> 00:01:40,640
telemedicine company for the ABDIS, where I ran engineering, data science,

28
00:01:40,719 --> 00:01:43,599
it info SEC kind of like all the tech stuff.

29
00:01:43,920 --> 00:01:48,680
And now I'm founder and CEO of Jedify. We're a

30
00:01:48,719 --> 00:01:52,000
company kind of trying to make it easier and faster

31
00:01:52,120 --> 00:01:56,359
to turn your ideas into working software. And anyways, today

32
00:01:56,400 --> 00:01:58,840
we've been playing with AI and agents and how they

33
00:01:58,879 --> 00:02:00,799
can help with the software develop process.

34
00:02:00,959 --> 00:02:04,000
Speaker 2: I mean, you you've got that opening so well nailed down.

35
00:02:04,079 --> 00:02:05,840
I can tell this isn't the first time you've.

36
00:02:05,719 --> 00:02:09,680
Speaker 3: Had yourself think you.

37
00:02:11,759 --> 00:02:14,039
Speaker 1: Got the elevator pitch nailed well.

38
00:02:14,360 --> 00:02:15,840
Speaker 2: I mean, it's sort of funny because like, I meet

39
00:02:15,879 --> 00:02:17,919
with a lot of people, and a lot of them

40
00:02:17,919 --> 00:02:20,520
feel the need to sort of introduce themselves and say

41
00:02:20,520 --> 00:02:22,159
a lot about their background, even if it has nothing

42
00:02:22,199 --> 00:02:24,759
to do with the conversation at all, And some of

43
00:02:24,800 --> 00:02:26,960
them just go on and on for minutes, and I'm like,

44
00:02:27,360 --> 00:02:29,639
you're mentioning other people's names and I don't know who

45
00:02:29,639 --> 00:02:31,439
any of those people are, and you're talking like they're

46
00:02:31,439 --> 00:02:33,599
the most important people in the world, and like I

47
00:02:33,719 --> 00:02:35,400
for sure, like I don't care. I mean, at least

48
00:02:35,439 --> 00:02:37,280
you start to company name, so like, you know, that's

49
00:02:37,319 --> 00:02:38,719
great on you. And I think a lot of people

50
00:02:38,800 --> 00:02:41,319
know most of those companies. I think most of them

51
00:02:41,319 --> 00:02:44,599
still exist by their original name, so you know, that's

52
00:02:44,599 --> 00:02:45,240
what's important.

53
00:02:45,840 --> 00:02:51,560
Speaker 1: I was raised in a Midwest Protestant community, just really

54
00:02:51,680 --> 00:03:01,520
deep for it's just not saying anything. You're gonna mute me,

55
00:03:01,560 --> 00:03:01,960
aren't you.

56
00:03:02,280 --> 00:03:03,879
Speaker 2: I got, I got. I actually got sucked for a

57
00:03:03,919 --> 00:03:06,960
second because I spent not short period of time in

58
00:03:07,000 --> 00:03:09,520
the Midwest after I graduated from the university because it

59
00:03:09,560 --> 00:03:12,479
was the only place that I could get hired as

60
00:03:12,479 --> 00:03:15,439
a job. I wasn't actually a software engineer by trade,

61
00:03:15,919 --> 00:03:17,240
and so I ended up there and I was like,

62
00:03:18,000 --> 00:03:19,879
do I have a connection for this, Like can I

63
00:03:19,919 --> 00:03:23,439
talk about the religious values? I'm like, not really. I

64
00:03:23,479 --> 00:03:26,280
actually I actually don't know a lot there, Like I've

65
00:03:26,319 --> 00:03:29,240
never really been a huge into the religious scene, so

66
00:03:29,560 --> 00:03:31,719
I can't say anything. And so I just was like,

67
00:03:31,759 --> 00:03:33,080
I'm just gonna keep my mouth shut.

68
00:03:33,800 --> 00:03:36,520
Speaker 1: I was trying. I was thinking like in the second

69
00:03:36,560 --> 00:03:40,319
Austin Powers movie, whenever doctor Evil goes to therapy with

70
00:03:40,360 --> 00:03:44,479
his son Scott and they're like, tell us about yourself,

71
00:03:44,479 --> 00:03:46,439
and doctor Evil gets up and he does like this

72
00:03:46,599 --> 00:03:50,000
long rant about how he was raised by his father

73
00:03:50,159 --> 00:03:53,599
and it goes really really deep. But I couldn't remember

74
00:03:53,719 --> 00:03:55,280
enough of it to try to work it into it

75
00:03:55,319 --> 00:03:56,039
as a joke.

76
00:03:55,919 --> 00:03:58,719
Speaker 2: Here, So don't don't worry. You'll have plenty of opportunity

77
00:03:58,800 --> 00:04:00,719
to go look up that for for next time.

78
00:04:01,120 --> 00:04:04,719
Speaker 1: So today chick for the next S episode.

79
00:04:06,000 --> 00:04:10,520
Speaker 2: I don't spoil it now. I really like the idea

80
00:04:10,719 --> 00:04:14,560
of getting back on topic of dev boxes, environment machines,

81
00:04:14,560 --> 00:04:17,040
Like I feel like this is a huge challenge that

82
00:04:17,240 --> 00:04:21,959
still exists. And you know, it's interesting because I work

83
00:04:22,199 --> 00:04:24,279
personally and like over the years and a lot of

84
00:04:24,319 --> 00:04:27,360
different ideas and a lot of different software languages, and

85
00:04:28,240 --> 00:04:30,600
I've always hated it, Like there was never a time

86
00:04:30,600 --> 00:04:33,120
where I'm like, you know what, working in this language,

87
00:04:33,160 --> 00:04:36,920
this is the best. And I feel like, you know,

88
00:04:36,920 --> 00:04:40,040
if you're in the space, you've got some horror stories.

89
00:04:40,040 --> 00:04:42,160
You've got some like like how did you even get

90
00:04:42,160 --> 00:04:42,480
into this?

91
00:04:42,560 --> 00:04:42,720
Speaker 3: You know?

92
00:04:43,040 --> 00:04:44,240
Speaker 2: Is why is this where you went?

93
00:04:45,279 --> 00:04:45,759
Speaker 3: Yeah?

94
00:04:45,800 --> 00:04:49,360
Speaker 4: So man, So I mean I guess a lot of

95
00:04:49,360 --> 00:04:52,319
these stories start with kind of scratching your own edge

96
00:04:52,319 --> 00:04:55,319
and trying to solve a problem that you have. So,

97
00:04:55,399 --> 00:04:58,240
you know, just having worked at different software companies, I've

98
00:04:58,279 --> 00:05:02,160
seen those stories where things work on your computer and

99
00:05:02,199 --> 00:05:06,680
they don't work on your teammates computer, or there's a

100
00:05:06,720 --> 00:05:09,800
bug in production where you can't reproduce it locally, and

101
00:05:10,160 --> 00:05:13,079
often that's tied to the environment. And so when we

102
00:05:13,079 --> 00:05:16,399
started edifying, we were like, you know what, from the beginning,

103
00:05:16,439 --> 00:05:20,319
let's just set up some reproducible the environments. And we

104
00:05:20,399 --> 00:05:24,480
decided to set up some Docker files for every kind

105
00:05:24,480 --> 00:05:27,480
of piece of software that we were working on. But

106
00:05:27,639 --> 00:05:31,600
very quickly we run into some pains because you know,

107
00:05:31,680 --> 00:05:35,959
Docker uses a lot of resources on your computer, and

108
00:05:36,000 --> 00:05:38,959
so when you're developing locally, like shipping to production great,

109
00:05:39,439 --> 00:05:42,600
but developing locally like I don't know, the fan spinning

110
00:05:43,639 --> 00:05:46,839
on your laptop, you do a little change and you

111
00:05:46,879 --> 00:05:48,759
want to see the results, and oh, it was the

112
00:05:48,800 --> 00:05:50,839
wrong line in the doctor file, so you busted the

113
00:05:50,959 --> 00:05:54,519
entire cash and now you're like rebuilding the entire container.

114
00:05:54,920 --> 00:05:57,480
And so all of that felt really, really painful. And

115
00:05:57,560 --> 00:06:01,800
so we had heard about this technological nicks. We wanted

116
00:06:01,839 --> 00:06:06,480
to try it. We kind of felt two things at once.

117
00:06:07,399 --> 00:06:08,680
One it was like, this is awesome.

118
00:06:08,879 --> 00:06:11,160
Speaker 3: It kind of creates reproducible environments.

119
00:06:11,199 --> 00:06:14,079
Speaker 4: And then we were like, oh my god, the developer

120
00:06:14,160 --> 00:06:17,360
experience and UX for this thing is not what we

121
00:06:17,399 --> 00:06:21,199
wanted to be. So anyways, we ended up building an

122
00:06:21,240 --> 00:06:23,680
open source tool called debox that kind of wraps nicks

123
00:06:23,759 --> 00:06:27,240
and lets you create those environments locally. And you know,

124
00:06:27,279 --> 00:06:29,800
I just posted it on Hacker News before.

125
00:06:29,519 --> 00:06:30,639
Speaker 3: We knew it.

126
00:06:30,639 --> 00:06:34,120
Speaker 4: It was like number one on Hacker News that day,

127
00:06:34,199 --> 00:06:36,560
and so kind of told those oh, people are having

128
00:06:36,600 --> 00:06:40,160
this problem that they want some solution, and that's yeah,

129
00:06:40,240 --> 00:06:42,560
that's how we started with the developer environment work.

130
00:06:42,920 --> 00:06:45,959
Speaker 2: I love the story of like pain and suffering through

131
00:06:46,040 --> 00:06:49,720
development process because it's such an unusual I mean, it's

132
00:06:49,720 --> 00:06:53,319
such a common strategy for innovation, right, Like I as

133
00:06:53,319 --> 00:06:56,279
a software engineer, you can fix your own tools in

134
00:06:56,279 --> 00:07:00,199
a way, and so realistically, like when that happens, it's like, well,

135
00:07:00,199 --> 00:07:02,839
I'm going to make something better that doesn't it isn't

136
00:07:02,879 --> 00:07:04,879
as bad as the thing we're using. It's interesting you

137
00:07:04,920 --> 00:07:06,560
brought up docer. One of the things I've seen a

138
00:07:06,560 --> 00:07:10,240
lot is engineering teams attempting to get the development experience

139
00:07:10,240 --> 00:07:12,720
on their local machine working through Docker. And this is

140
00:07:12,720 --> 00:07:14,720
something I've never understood, and maybe this is something you

141
00:07:14,759 --> 00:07:18,240
could jump into if you have some understanding about it,

142
00:07:18,279 --> 00:07:21,560
Like why do that? Like, if I have the source

143
00:07:21,560 --> 00:07:24,800
code on my machine that I've cloned from get repository somewhere,

144
00:07:24,879 --> 00:07:27,199
why why not just install the couple of tools I

145
00:07:27,240 --> 00:07:29,519
need and you know, hit F five and run it.

146
00:07:29,839 --> 00:07:31,279
What does doctor really get me there?

147
00:07:32,680 --> 00:07:32,920
Speaker 3: Yeah?

148
00:07:32,959 --> 00:07:37,199
Speaker 4: So I mean I think the issue forget doctor for

149
00:07:37,240 --> 00:07:39,680
a second, like why isn't it enough, you know doctor

150
00:07:39,720 --> 00:07:41,680
or no doctor? Why isn't it enough just to check

151
00:07:41,680 --> 00:07:43,879
out the code, install the tools, and color to day.

152
00:07:45,600 --> 00:07:49,439
What happens is that in many cases, you don't just

153
00:07:49,519 --> 00:07:53,920
need the source code. You need the specific versions of

154
00:07:53,920 --> 00:07:56,240
the tools that you're working with. So it's not like

155
00:07:57,360 --> 00:08:01,639
I need I don't know Go or Python? Is I

156
00:08:01,720 --> 00:08:04,519
need Python two point seven point eleven?

157
00:08:04,959 --> 00:08:05,160
Speaker 3: Right?

158
00:08:05,199 --> 00:08:06,160
Speaker 2: Hopefully not anymore?

159
00:08:07,279 --> 00:08:08,480
Speaker 3: Yeah?

160
00:08:09,519 --> 00:08:11,839
Speaker 1: Ussion but just well but but see, I mean you

161
00:08:11,879 --> 00:08:12,319
say that.

162
00:08:12,240 --> 00:08:15,040
Speaker 4: But like what happens a lot is is you're working

163
00:08:15,040 --> 00:08:18,480
at a large company, uh, and there's this project that

164
00:08:18,959 --> 00:08:22,720
everybody depends on, but it's not staffed well enough because

165
00:08:22,759 --> 00:08:24,120
all the other things became.

166
00:08:23,839 --> 00:08:26,879
Speaker 3: More important, and you got to keep that thing running.

167
00:08:26,759 --> 00:08:30,519
Speaker 1: Right every day everybody depends on it, and nobody's willing

168
00:08:30,560 --> 00:08:32,919
to update exactly there is.

169
00:08:33,639 --> 00:08:35,240
Speaker 2: I think we should just pause for a moment here,

170
00:08:35,279 --> 00:08:38,039
because I know a non trivial amount of our audience

171
00:08:38,120 --> 00:08:41,360
members are like suffering through some sort of PTSD withdrawal

172
00:08:41,440 --> 00:08:44,000
right now. Having said that, like, or you know, you're

173
00:08:44,000 --> 00:08:46,519
working in some environment and you know some code that

174
00:08:46,559 --> 00:08:48,799
hasn't been touched in a while is not working, Like

175
00:08:49,120 --> 00:08:51,960
I feel like that's like ten percent of your job,

176
00:08:52,559 --> 00:08:54,759
whatever it is. You know, you have no idea what's

177
00:08:54,759 --> 00:08:57,840
going on there, and it's not working, and you didn't

178
00:08:57,840 --> 00:09:00,600
write the code. You may be lucky if you knew

179
00:09:00,600 --> 00:09:03,960
the person who did write it. Because so one of

180
00:09:04,039 --> 00:09:05,720
one of my first jobs I had, there was an

181
00:09:05,720 --> 00:09:11,639
engineer who if I saw his name on a commit message,

182
00:09:12,039 --> 00:09:14,080
I know that there was gonna be a bug with

183
00:09:14,120 --> 00:09:15,960
that code that was going to cause me to lose

184
00:09:16,000 --> 00:09:18,559
the rest of my best I like, if I'm debugging

185
00:09:18,600 --> 00:09:22,000
around and I see a line of code by bye

186
00:09:21,720 --> 00:09:25,399
by by Craig, uh, that's it, Like I'm sorry, Like

187
00:09:25,440 --> 00:09:32,480
I know it's gone.

188
00:09:31,600 --> 00:09:32,519
Speaker 3: So but but anyway.

189
00:09:32,559 --> 00:09:35,159
Speaker 4: I mean, yeah, that's the point, Like you often have

190
00:09:35,240 --> 00:09:37,879
to work with these projects and they often need specific

191
00:09:37,960 --> 00:09:42,399
versions of software, and if you don't use those versions

192
00:09:42,399 --> 00:09:44,440
of those tools, things.

193
00:09:44,200 --> 00:09:45,080
Speaker 3: Bring, right.

194
00:09:45,120 --> 00:09:49,519
Speaker 4: And so I guess in a in a project where

195
00:09:49,559 --> 00:09:52,720
you haven't set up too much around developer environments, you

196
00:09:52,799 --> 00:09:56,840
might just have some read me file saying install Python. Uh,

197
00:09:56,879 --> 00:09:59,639
and so everybody is installing Python, but somebody install Python.

198
00:10:00,320 --> 00:10:03,600
You know a year ago, somebody installed Python six months ago,

199
00:10:03,759 --> 00:10:06,960
somebody in Stoll python today. They all got different versions

200
00:10:06,960 --> 00:10:09,799
of Python, right, and you compound that by all the

201
00:10:09,840 --> 00:10:11,480
tools you might need in a project, right, so it's

202
00:10:11,519 --> 00:10:14,679
not just Python. But maybe let's say you're using protocol buffers,

203
00:10:14,720 --> 00:10:20,120
you have a compiler, you know, and so on, and so.

204
00:10:21,159 --> 00:10:23,720
Speaker 3: Yeah, I think that it's rude, like that's.

205
00:10:23,600 --> 00:10:27,840
Speaker 4: That mismatch of versions is kind of what people are

206
00:10:27,840 --> 00:10:31,000
trying to solve that is not solved by just to

207
00:10:31,039 --> 00:10:34,799
read missaying install these tools and start working on the project.

208
00:10:36,240 --> 00:10:39,279
Speaker 2: Yeah, I definitely agree. I mean there's a huge aspect here,

209
00:10:39,320 --> 00:10:42,799
which I think has to do with the languages themselves

210
00:10:42,840 --> 00:10:45,519
and their package managers are part of that. I got

211
00:10:45,600 --> 00:10:48,120
it working once. Let's not go back and touch it

212
00:10:48,720 --> 00:10:53,399
by even the language maintainers themselves. You know, it's very

213
00:10:53,399 --> 00:10:57,559
limited experience there, and so they go off they you know,

214
00:10:57,720 --> 00:11:00,639
the packaging manager for whatever language you're using, like it's working,

215
00:11:01,799 --> 00:11:03,720
and so there are some that are definitely not as

216
00:11:03,720 --> 00:11:05,840
great as others. And then you just compile that on

217
00:11:05,879 --> 00:11:09,120
and put that usage as a dependency for it literally

218
00:11:09,159 --> 00:11:12,240
everyone who uses that language and framework. And I still

219
00:11:12,240 --> 00:11:14,720
think there are languages today that no one is happy

220
00:11:14,720 --> 00:11:17,799
with the package manager for that language, and yet somehow

221
00:11:17,840 --> 00:11:18,759
they're getting over it.

222
00:11:18,840 --> 00:11:25,440
Speaker 4: And I mean there's languages where you have five package managers.

223
00:11:25,960 --> 00:11:30,320
Speaker 2: So I have a feeling that you are throwing the

224
00:11:30,440 --> 00:11:35,440
JavaScript environment under the bus there a little bit. But

225
00:11:35,519 --> 00:11:39,600
I have to say that JavaScript is one of no

226
00:11:39,720 --> 00:11:44,840
JS specifically, is one of the best development communities compared

227
00:11:44,879 --> 00:11:47,879
to the other ones. Like yes, there's en package managers,

228
00:11:48,159 --> 00:11:51,919
but all of them like work at least ninety nine

229
00:11:51,960 --> 00:11:55,759
percent of the way, And there are problems with them

230
00:11:55,799 --> 00:11:59,679
for sure, individually, you know, they're not so totally perfectly robust,

231
00:12:00,120 --> 00:12:01,840
but you know, compared to some other ones, like I

232
00:12:01,879 --> 00:12:03,879
don't I don't struggle to pull out a new jobascript

233
00:12:03,879 --> 00:12:06,440
package manager. I do struggle to figure out how to

234
00:12:06,480 --> 00:12:08,840
make Maven work, even though I've gotten it to work

235
00:12:09,200 --> 00:12:11,759
like a hundred times before, and.

236
00:12:11,440 --> 00:12:14,200
Speaker 4: I haven't touched the GEMA world in such a long time.

237
00:12:14,360 --> 00:12:16,039
I have no comments.

238
00:12:16,279 --> 00:12:19,000
Speaker 1: Yeah, uh, just had a little bile come up in

239
00:12:19,039 --> 00:12:19,960
the back road.

240
00:12:22,440 --> 00:12:22,600
Speaker 3: You know.

241
00:12:22,639 --> 00:12:25,480
Speaker 2: The thing is like I remember seeing sharp like new

242
00:12:25,559 --> 00:12:28,799
Get was not a good package repository. The tool wasn't great.

243
00:12:29,679 --> 00:12:32,080
Even dot Net improved a lot of things there, but

244
00:12:32,080 --> 00:12:34,480
they had a diamond dependency resolution problem where like you

245
00:12:34,559 --> 00:12:38,320
depend on two dependencies who require different versions, and and

246
00:12:38,480 --> 00:12:40,440
no j has like figured out how to get around that.

247
00:12:40,600 --> 00:12:43,840
NPM solved it, yarn't solved it, PMPM, they all have

248
00:12:43,840 --> 00:12:46,720
solutions there. So yeah, I mean the individual tools aren't great,

249
00:12:46,759 --> 00:12:48,440
and it's not great that there's lots of them, but

250
00:12:48,480 --> 00:12:51,240
at least I feel like they're not getting in my way.

251
00:12:51,679 --> 00:12:54,159
But yeah, I like, if I'm programming in C plus

252
00:12:54,200 --> 00:12:56,039
plus or something old school with it for like a

253
00:12:56,120 --> 00:12:59,039
large company, then not only are there dependencies that are

254
00:12:59,320 --> 00:13:02,240
probably commit to a repository, like they're not in some

255
00:13:02,639 --> 00:13:05,799
package manager somewhere, they're like the binary dependencies are like

256
00:13:05,879 --> 00:13:10,840
in the source code and they require some Microsoft reddistributable

257
00:13:11,039 --> 00:13:14,080
C plus plus library from twenty years ago that I

258
00:13:14,120 --> 00:13:15,879
have to go and download from the internet from some

259
00:13:15,919 --> 00:13:18,919
suspicious website in order to even you know, build my

260
00:13:19,039 --> 00:13:20,559
project to get it to run somewhere.

261
00:13:22,360 --> 00:13:24,200
Speaker 3: Yeah, agreed, So yeah.

262
00:13:24,240 --> 00:13:27,840
Speaker 4: Anyways, I think it's all those paper cards that just

263
00:13:28,600 --> 00:13:30,840
slow you down in your development process, and all of

264
00:13:30,879 --> 00:13:33,519
a sudden, you are, I don't know, you wanted to

265
00:13:33,519 --> 00:13:35,720
work on a feature, right, you wanted to work on

266
00:13:36,039 --> 00:13:39,480
something related to the project that you're interested in, and

267
00:13:40,559 --> 00:13:44,480
you find yourself independency hell and just going deep into

268
00:13:44,559 --> 00:13:47,559
package managers when all you wanted to do was your

269
00:13:47,600 --> 00:13:48,720
working on an actual feature.

270
00:13:50,080 --> 00:13:52,480
Speaker 1: Well, I think that's I think another aspect of that

271
00:13:52,600 --> 00:13:56,600
is onboarding new developers on your team, right, Like, how

272
00:13:56,639 --> 00:13:59,519
long does it take to get them where they're actually

273
00:14:00,159 --> 00:14:03,159
working on the code that you hired them to work

274
00:14:03,200 --> 00:14:09,519
on versus setting up an environment to actually see what

275
00:14:09,679 --> 00:14:11,480
they're actually supposed to be building.

276
00:14:11,799 --> 00:14:14,240
Speaker 2: That sounds like a question to air our dirty laundry

277
00:14:14,240 --> 00:14:15,879
on the show, So I guess I'll go first. You know,

278
00:14:15,919 --> 00:14:17,679
it's like a couple of weeks to a month, and

279
00:14:17,720 --> 00:14:20,200
then I think we know that the long tail turnaround

280
00:14:20,200 --> 00:14:23,440
is like ninety days to get to peak performance and

281
00:14:23,480 --> 00:14:25,639
then it's like six months to do effective reviews at

282
00:14:25,639 --> 00:14:28,960
that point. Before that, I think there is a very

283
00:14:29,000 --> 00:14:32,399
long time where there's still a lot of training and

284
00:14:32,679 --> 00:14:35,759
education that goes in not but for us, it's mostly

285
00:14:35,879 --> 00:14:39,879
domain specific, like if we don't hire a domain expert

286
00:14:39,879 --> 00:14:42,519
for our company, we deal a lot in the authentication

287
00:14:42,639 --> 00:14:45,639
authorization space, So like how Samuel works, how oh off

288
00:14:45,639 --> 00:14:49,200
two works, how open id works, how SCIM works, how

289
00:14:49,240 --> 00:14:51,320
audit trails work. Like, there's a lot of things that

290
00:14:51,720 --> 00:14:53,360
you don't want to get wrong in a way, and

291
00:14:53,440 --> 00:14:55,360
so there are some tools. So but it's a long

292
00:14:55,399 --> 00:14:57,879
period of time. Will you're smiling there, so I feel like,

293
00:14:57,879 --> 00:14:59,480
you know you're going to tell me that you know

294
00:14:59,600 --> 00:15:03,039
your new hires that I believe you were interested in

295
00:15:03,039 --> 00:15:06,399
interviewing and getting into your team. They're like a couple

296
00:15:06,399 --> 00:15:08,679
of weeks max, and they're already a performance.

297
00:15:09,559 --> 00:15:13,919
Speaker 1: So this is definitely an outlier. So I won't say

298
00:15:13,919 --> 00:15:17,039
that this is the state of our environment by any means.

299
00:15:17,039 --> 00:15:21,559
But the last guy I hired about a month ago,

300
00:15:22,320 --> 00:15:25,360
he was pushing production commits by the end of the week,

301
00:15:25,960 --> 00:15:29,759
which is good or bad, right, Okay, he was pushing

302
00:15:30,480 --> 00:15:36,000
functional production commits that actually did beneficial things.

303
00:15:36,679 --> 00:15:38,480
Speaker 2: Wow, that's amazing.

304
00:15:39,279 --> 00:15:41,679
Speaker 1: Yeah, but it was like it was a very unique situation,

305
00:15:41,759 --> 00:15:44,200
you know what. We hired him and he came in

306
00:15:44,240 --> 00:15:47,080
with a very specific set of skills that we needed.

307
00:15:47,360 --> 00:15:50,159
So he looked at our environment and was like, oh, yeah,

308
00:15:50,200 --> 00:15:53,519
here's where it's wrong and immediately started contributing to that.

309
00:15:53,879 --> 00:15:55,919
And then there's like the rest of the company, like

310
00:15:56,000 --> 00:15:58,480
the Web three space that we live in, where he

311
00:15:58,639 --> 00:16:02,639
still has a lot of onboarding to do before he

312
00:16:02,720 --> 00:16:06,000
fully understands that. So it was cool to see and

313
00:16:06,480 --> 00:16:11,279
I paraded it around the company just because that's the

314
00:16:11,360 --> 00:16:14,080
kind of person I am. But you know, and like

315
00:16:14,120 --> 00:16:16,840
the big picture of things, you know, he couldn't have

316
00:16:16,960 --> 00:16:20,080
done a domain specific commit in that first week.

317
00:16:20,440 --> 00:16:24,279
Speaker 2: Yeah, are you using something like some sort of thermal

318
00:16:24,519 --> 00:16:28,279
development environment or like how was he able to get

319
00:16:28,279 --> 00:16:29,360
acclimated so quickly?

320
00:16:30,039 --> 00:16:32,480
Speaker 1: Yeah, it was over. It was on our Kubernetes clusters,

321
00:16:32,519 --> 00:16:36,480
and so he had a deep Kubernetes experience and just

322
00:16:36,519 --> 00:16:39,919
looked at the way that ours were configured and was like, oh, yeah,

323
00:16:40,039 --> 00:16:42,799
here's here's something that's going to help you out. And

324
00:16:42,840 --> 00:16:46,440
then he also had a lot of OI d C experience,

325
00:16:46,519 --> 00:16:51,559
so he removed we were maintaining a lot of permissions

326
00:16:51,559 --> 00:16:57,559
and roles via pull requests and get repository and so

327
00:16:57,639 --> 00:17:00,559
he refactored that to use OI DC so that you

328
00:17:00,639 --> 00:17:02,840
just get it inherited when you authenticate.

329
00:17:06,720 --> 00:17:06,920
Speaker 3: Yeah.

330
00:17:06,920 --> 00:17:09,640
Speaker 4: I mean, I think the okay, you guys presented two

331
00:17:09,680 --> 00:17:13,759
different like onboarding experiences. But I think regardless for me,

332
00:17:15,640 --> 00:17:19,960
you want to spend the time creating the main specific knowledge.

333
00:17:19,960 --> 00:17:22,559
You want to spend the time kind of teaching and

334
00:17:22,640 --> 00:17:27,880
mentoring and having your your employees grow. I think you

335
00:17:27,920 --> 00:17:30,400
want to take away there. I'm just fighting with the

336
00:17:30,480 --> 00:17:35,279
tools and this should be a solve problem for sure. Yeah,

337
00:17:35,400 --> 00:17:37,480
I still have to deal with this now for I

338
00:17:37,519 --> 00:17:40,119
don't know, to days, just to get my environment set

339
00:17:40,160 --> 00:17:42,839
up before I can even start, you know, doing a

340
00:17:42,880 --> 00:17:45,079
little co change and testing it.

341
00:17:46,839 --> 00:17:51,920
Speaker 1: Yeah, I totally agree. Like, are none of our customers

342
00:17:52,519 --> 00:17:55,359
benefit from the time and effort we spend into working

343
00:17:55,440 --> 00:17:58,400
on Kubernetes. They only benefit from the time and effort

344
00:17:58,440 --> 00:18:00,920
we spend building a better product.

345
00:18:02,039 --> 00:18:03,640
Speaker 2: That they that they use.

346
00:18:03,680 --> 00:18:06,400
Speaker 1: And I think that's what you're alluding to and warned

347
00:18:06,559 --> 00:18:09,440
to catch on a point you made earlier there, you know,

348
00:18:09,480 --> 00:18:14,720
dealing with ephemeral environments. We recently refactored a bunch of

349
00:18:14,759 --> 00:18:21,960
ours because we had this one VM instance with I

350
00:18:22,000 --> 00:18:24,880
don't know, it had hundreds of gigs of RAM on it,

351
00:18:25,480 --> 00:18:27,599
and it was a bunch of Doctor composed files and

352
00:18:27,640 --> 00:18:31,559
when you needed a new integration environment, you would copy

353
00:18:31,599 --> 00:18:34,799
and paste one of the existing Doctor composed directories and

354
00:18:34,799 --> 00:18:37,200
then go modify the stuff that you needed in there.

355
00:18:37,799 --> 00:18:42,079
And so we refactored that to use Helm charts. So

356
00:18:42,160 --> 00:18:46,359
now the launching of a new environment, you just add

357
00:18:46,359 --> 00:18:49,400
a new Helm Helme values file for the environment that

358
00:18:49,440 --> 00:18:53,880
you want and then let Helm build that out for you.

359
00:18:54,559 --> 00:18:57,759
Speaker 2: Yeah. So I will say that NIXT is something that's

360
00:18:57,759 --> 00:18:59,960
always scared me personally, Like I feel like I never

361
00:19:00,240 --> 00:19:02,759
wasn't an opportunity where it was like, you know what,

362
00:19:03,039 --> 00:19:06,200
I'm going to reach for that new tool. So like,

363
00:19:06,839 --> 00:19:09,200
you know, congratulations for you know, seeing that as an

364
00:19:09,200 --> 00:19:12,079
opportunity and going at it and then building the UI

365
00:19:12,160 --> 00:19:13,759
on top of it to make it happen. What do

366
00:19:13,759 --> 00:19:16,559
you feel like the turnaround time is for getting new

367
00:19:17,119 --> 00:19:22,119
engineers acclimated to using the dev boxes through through NICKS,

368
00:19:22,480 --> 00:19:24,559
so they come into a team, they have no Knicks experience,

369
00:19:25,440 --> 00:19:28,359
no experience with maybe Thermerald dev environments. You know, they're

370
00:19:28,359 --> 00:19:31,279
all doing software development on their local machine. What's the

371
00:19:31,319 --> 00:19:34,519
turnaround time for them understanding and being able to execute effectively?

372
00:19:36,160 --> 00:19:39,359
Speaker 4: Yeah, I mean, assuming we're talking about an environment where

373
00:19:39,680 --> 00:19:44,720
the tools needed are kind of available in the NIXT

374
00:19:44,759 --> 00:19:47,839
package store and kind of the versions are well represented,

375
00:19:48,400 --> 00:19:51,319
I think it's very very fast because I mean dev Box,

376
00:19:51,680 --> 00:19:55,079
the tool we built, it presents an interface that's very

377
00:19:55,119 --> 00:19:59,519
similar to package managers from different languages that you're already

378
00:19:59,519 --> 00:20:03,119
familiar with. Right, So you know, in you know we're

379
00:20:03,119 --> 00:20:08,000
talking about JavaScript earlier, you have that package the adjacent file.

380
00:20:09,160 --> 00:20:11,319
Well in that book, you have that books the adjacent file,

381
00:20:11,559 --> 00:20:14,720
and it lists a bunch of packages that you need

382
00:20:14,759 --> 00:20:17,839
for your project. And you might just say, you know

383
00:20:18,039 --> 00:20:20,680
Python and the version, and it might say the product

384
00:20:20,680 --> 00:20:24,039
of filer and the version. And it has a command

385
00:20:24,079 --> 00:20:26,720
to add a new package, to search for a new package,

386
00:20:26,759 --> 00:20:29,799
to remove a new package. And so what we try

387
00:20:29,880 --> 00:20:34,920
to do is kind of present that Nick's functionality but

388
00:20:35,279 --> 00:20:39,680
under aux that people are already familiar with, and because

389
00:20:39,720 --> 00:20:43,039
people are already familiar with it from other tools.

390
00:20:43,359 --> 00:20:45,240
Speaker 3: I think it's a quick learning curve.

391
00:20:46,400 --> 00:20:50,920
Speaker 2: How does this affect sort of software development cycle? So

392
00:20:51,000 --> 00:20:53,839
I make a change in my code, we're talking about

393
00:20:54,960 --> 00:20:58,480
impacting the Docker built cash and forcing it to rebuild.

394
00:20:58,559 --> 00:21:04,119
Like what's the corollary for dev blox? Do I do

395
00:21:04,160 --> 00:21:06,960
the software development locally? And then it uses some sort

396
00:21:06,960 --> 00:21:10,440
of remote server somewhere where the dev blox is being

397
00:21:10,480 --> 00:21:10,920
spin up?

398
00:21:11,000 --> 00:21:15,240
Speaker 4: Like you know, yeah, so that box is our open

399
00:21:15,240 --> 00:21:19,640
source project. It lets you declare your environment in this

400
00:21:19,920 --> 00:21:22,200
Jason file and then the idea is that you can

401
00:21:22,200 --> 00:21:25,119
take the adjacent file and reproduce that environment. In many places,

402
00:21:26,559 --> 00:21:30,039
we we offer kind of on our paid solutions, ways

403
00:21:30,079 --> 00:21:33,480
to spin those environments on the cloud. But just to quarify,

404
00:21:33,480 --> 00:21:34,759
like that box is just going to be the open

405
00:21:34,799 --> 00:21:39,119
source tool and let you kind of do it locally.

406
00:21:40,039 --> 00:21:41,640
And the way it works is it is, like I said,

407
00:21:41,720 --> 00:21:45,480
it uses next behind the scenes. In practice, there's no

408
00:21:45,519 --> 00:21:49,160
container locally. I mean you can you can choose to

409
00:21:49,240 --> 00:21:52,279
use that box inside a container if you're building a container,

410
00:21:52,920 --> 00:21:54,920
but you can also choose to do it outside of

411
00:21:54,920 --> 00:21:58,079
a container if you don't need one. And what's really

412
00:21:58,119 --> 00:22:01,839
happening is that Nick's kind of installs all the versions

413
00:22:01,880 --> 00:22:04,359
of all the software that you need, and what's known

414
00:22:04,400 --> 00:22:07,519
as the next store. Think of this as some path

415
00:22:07,640 --> 00:22:13,519
in your local drive where every binary or piece of

416
00:22:13,559 --> 00:22:17,279
software that's installed is stored under a content hash, so

417
00:22:17,319 --> 00:22:19,240
that the path for it is unique. So even if

418
00:22:19,240 --> 00:22:23,680
you start installed five versions of Python, they will each

419
00:22:23,759 --> 00:22:27,319
have its own content hash and therefore will live in

420
00:22:27,359 --> 00:22:32,279
a different place in that store. And so anyways like that,

421
00:22:32,400 --> 00:22:36,039
it's able to install all sorts of versions of software,

422
00:22:36,079 --> 00:22:39,240
even if they would be technically conflicting. And then when

423
00:22:39,279 --> 00:22:42,799
you start an environment, it kind of sets the paths

424
00:22:43,880 --> 00:22:46,559
to point to the appropriate versions of things.

425
00:22:47,559 --> 00:22:48,799
Speaker 3: And now you're working locally.

426
00:22:49,240 --> 00:22:52,240
Speaker 2: So is it changing the environment variables and the alternatives

427
00:22:52,240 --> 00:22:55,279
that are set on my operating system to make the

428
00:22:55,440 --> 00:22:57,640
environment match what's necessary for that?

429
00:22:58,000 --> 00:22:58,160
Speaker 3: Yes?

430
00:22:58,559 --> 00:23:00,720
Speaker 4: Yes, so it will change, for example, change your path

431
00:23:01,279 --> 00:23:06,160
environment variable. And so it might you might say, Okay,

432
00:23:06,400 --> 00:23:09,279
in this project, we need in this version of Python,

433
00:23:09,400 --> 00:23:11,880
this version of the product of compiler. Oh, I know

434
00:23:12,039 --> 00:23:15,839
those live over here in the next store. Let me

435
00:23:15,839 --> 00:23:19,599
set up the path such that you're going to have

436
00:23:19,640 --> 00:23:21,799
access to those binaries and not the other ones.

437
00:23:22,039 --> 00:23:23,240
Speaker 2: Okay, sure that makes sense.

438
00:23:26,599 --> 00:23:29,799
Speaker 1: Is that done like system wide or is that done

439
00:23:30,279 --> 00:23:32,079
on like a project per pect.

440
00:23:31,920 --> 00:23:33,039
Speaker 3: Just one a project basis.

441
00:23:33,079 --> 00:23:35,319
Speaker 4: So so the analogy I make if we want to

442
00:23:36,440 --> 00:23:41,680
your reference existing tools for particular languages, it's kind of

443
00:23:41,720 --> 00:23:42,599
like on Python you have.

444
00:23:42,680 --> 00:23:47,240
Speaker 3: Virtual type of environments. Imagine that, but now kind of like.

445
00:23:47,240 --> 00:23:51,720
Speaker 4: At the system level for the tools and compilers that

446
00:23:51,799 --> 00:23:53,000
you're using for a project.

447
00:23:53,400 --> 00:23:55,279
Speaker 2: So done correctly is what I'm hearing.

448
00:23:58,240 --> 00:24:01,960
Speaker 3: We think, So for in your own opinion.

449
00:24:02,640 --> 00:24:06,000
Speaker 2: I mean, I think virtual m is like a quintessential

450
00:24:06,039 --> 00:24:09,759
example of it doesn't get much worse than that. You know,

451
00:24:10,000 --> 00:24:11,920
maybe maybe someone can point me in the right direction there,

452
00:24:11,960 --> 00:24:15,400
but I don't remember. Like usually things automatically get committed

453
00:24:15,440 --> 00:24:18,680
to memory for me if they're easy to understand, you know,

454
00:24:18,720 --> 00:24:20,480
like I think everyone has this. You know, you see something,

455
00:24:20,559 --> 00:24:22,319
it's like all I can remember what that is. There's

456
00:24:22,319 --> 00:24:23,279
a le of things.

457
00:24:23,839 --> 00:24:25,440
Speaker 3: Three months later you come back and you're.

458
00:24:27,440 --> 00:24:29,839
Speaker 2: Right, that's the thing. Is like, I don't touch it enough.

459
00:24:30,240 --> 00:24:32,079
So the only time I actually touch virtual end at

460
00:24:32,119 --> 00:24:37,400
all is when I'm generating new h cert box certificates

461
00:24:37,440 --> 00:24:40,440
from let's encrypt on one of my remote servers, And

462
00:24:41,039 --> 00:24:44,000
that happens once every ninety days and every ninety days

463
00:24:44,039 --> 00:24:46,839
I cannot remember how to do that. So you know

464
00:24:47,039 --> 00:24:49,640
there's Celsius something is wrong with that technology for sure.

465
00:24:49,680 --> 00:24:51,720
So you know it's great when there's an easy way

466
00:24:51,720 --> 00:24:55,079
that makes sense to set it up and exit the machine.

467
00:24:55,119 --> 00:24:57,119
And that of course, it has to be processed specific

468
00:24:57,480 --> 00:25:00,160
and local so that you can potentially run multiple the

469
00:25:00,160 --> 00:25:03,000
same time, so that you can run multiple pieces of

470
00:25:03,079 --> 00:25:05,759
like different services that have to communicate with each.

471
00:25:05,559 --> 00:25:08,279
Speaker 3: Other, right, right, makes sense?

472
00:25:10,160 --> 00:25:13,640
Speaker 2: How do I how do I know that? Early on

473
00:25:13,680 --> 00:25:15,519
in my career it was always like, I don't need

474
00:25:15,559 --> 00:25:18,759
that garbage. I'm just going to do it myself. And

475
00:25:19,079 --> 00:25:21,680
later in my career I've definitely gotten to the point

476
00:25:21,680 --> 00:25:23,960
of I should definitely listen to those things and not

477
00:25:24,039 --> 00:25:26,319
think that I could do it with myself. So like,

478
00:25:26,319 --> 00:25:27,880
what's the advice here? You know, how do you know

479
00:25:27,920 --> 00:25:30,319
you're in a situation where whatever you're doing needs to

480
00:25:30,359 --> 00:25:34,599
be upgraded to using next through dev box like Quintessential.

481
00:25:35,880 --> 00:25:38,559
Speaker 4: Yeah, I mean, I think let me maybe start with

482
00:25:38,559 --> 00:25:40,759
the cases where I don't think you necessarily need it.

483
00:25:42,160 --> 00:25:45,160
I think those tend to be you you're working on

484
00:25:45,240 --> 00:25:50,119
a team with this pretty standardized stack, probably have one

485
00:25:50,160 --> 00:25:53,759
particular programming language that you're focused on, and for the

486
00:25:53,759 --> 00:25:57,839
most part, all you need are the tools for that library,

487
00:25:58,200 --> 00:26:03,920
and you're not bringing into many external tools, right. I

488
00:26:03,960 --> 00:26:07,200
think as soon as you start having more kind of

489
00:26:07,240 --> 00:26:11,240
system level dependencies, additional tools that you're bringing in, maybe

490
00:26:11,359 --> 00:26:16,920
multiple languages across the company, then tools, you know, things

491
00:26:16,920 --> 00:26:21,839
to control the environment start making more sense. You just

492
00:26:21,920 --> 00:26:24,079
to grab an example. Let's see you're coding in Python.

493
00:26:25,759 --> 00:26:29,839
If you've standardized a version of Python and you're building

494
00:26:30,000 --> 00:26:34,119
a pure Python libraries, I don't know, you probably don't

495
00:26:34,119 --> 00:26:37,200
need the tool like this, but as the range al

496
00:26:37,640 --> 00:26:40,359
these days, and you decide to do some mL stuff, right,

497
00:26:40,400 --> 00:26:44,960
and you need some Python libraries that really depend on

498
00:26:45,079 --> 00:26:47,559
native libraries, and so now all those native libraries are

499
00:26:47,559 --> 00:26:51,200
going to get pulled and you're doing some image processing

500
00:26:51,240 --> 00:26:54,000
and so you need like image magic installed in the container,

501
00:26:54,119 --> 00:26:57,200
and so it depends on a particular version of image Magic.

502
00:26:57,599 --> 00:27:02,160
And so now your environment shifting from kind of pure

503
00:27:02,160 --> 00:27:06,440
Python to kind of like these extra dependencies. And I

504
00:27:06,480 --> 00:27:08,400
think that's where this makes sense, because you can now

505
00:27:08,920 --> 00:27:12,279
treat those extra dependencies. That's something that you track and

506
00:27:12,799 --> 00:27:18,519
version and pin as opposed to I don't know, just

507
00:27:18,799 --> 00:27:21,880
will West and you know, pull whatever is available today,

508
00:27:21,920 --> 00:27:27,119
and yeah it might be different yesterday from tomorrow.

509
00:27:29,119 --> 00:27:29,839
Speaker 3: I give you.

510
00:27:30,000 --> 00:27:32,519
Speaker 4: You know, some examples I give earlier were only on

511
00:27:32,559 --> 00:27:36,720
the development phase. But like imagine you you're doing image

512
00:27:36,720 --> 00:27:40,440
processing in production and the container requires a particular version

513
00:27:40,480 --> 00:27:43,680
of image Magic installed. Like now we're talking about production

514
00:27:43,880 --> 00:27:47,839
environments too, that if you're not careful, are just kind

515
00:27:47,839 --> 00:27:50,640
of changing nearly willing How does.

516
00:27:50,480 --> 00:27:53,559
Speaker 2: The conversion from using next through dev box to get

517
00:27:53,599 --> 00:27:55,799
your local development environment. I mean, I feel like you

518
00:27:55,839 --> 00:27:58,880
open the can of worms here, so uh, when you

519
00:27:58,920 --> 00:28:01,400
do that locally, how does that invert to using getting

520
00:28:01,400 --> 00:28:04,440
those same dependencies ready for deployment production?

521
00:28:05,799 --> 00:28:10,160
Speaker 4: Yes, to be fair, I do think that's an area

522
00:28:10,200 --> 00:28:13,680
we're continuing to improved of early days on the shift

523
00:28:13,680 --> 00:28:17,400
from using the box from development to production. But high level,

524
00:28:20,559 --> 00:28:22,559
I mean, you can craft a doctor file and a

525
00:28:22,559 --> 00:28:25,160
container in many different ways and really just kind of

526
00:28:25,240 --> 00:28:28,359
running any command you want right and setting up the

527
00:28:28,440 --> 00:28:29,880
environment inside the container.

528
00:28:30,559 --> 00:28:32,480
Speaker 3: So what we think is that.

529
00:28:32,400 --> 00:28:36,079
Speaker 4: In general, you can have one definition of the next

530
00:28:36,160 --> 00:28:40,039
packages that you need, and that one definition can be

531
00:28:40,160 --> 00:28:43,960
used to set up your developer environment. But it can

532
00:28:44,039 --> 00:28:47,079
also be used to install those same packages in the

533
00:28:47,119 --> 00:28:48,119
production container.

534
00:28:48,680 --> 00:28:48,799
Speaker 3: Uh.

535
00:28:49,200 --> 00:28:51,480
Speaker 4: Of course, you have to differentiate between things that are

536
00:28:51,559 --> 00:28:55,960
needed in both production and development versus things that are

537
00:28:56,000 --> 00:28:57,160
needed just for development.

538
00:28:58,880 --> 00:29:00,839
Speaker 3: Now, I said it is work in progress.

539
00:29:01,079 --> 00:29:05,200
Speaker 4: I think something that I feel Knicks packages haven't been

540
00:29:05,240 --> 00:29:08,920
optimized too much for in the past, and I think

541
00:29:08,960 --> 00:29:10,960
it is one of the challenges with what I'm saying.

542
00:29:11,400 --> 00:29:12,039
Speaker 3: Is that.

543
00:29:13,559 --> 00:29:18,240
Speaker 4: I don't think Knicks packages are optimized for size, and

544
00:29:18,319 --> 00:29:22,599
so sometimes they pull in a lot of things into

545
00:29:22,640 --> 00:29:26,839
the container and the container grows kind of bigger than

546
00:29:26,880 --> 00:29:27,440
you want it to be.

547
00:29:28,359 --> 00:29:29,319
Speaker 3: So I think that's something that.

548
00:29:29,279 --> 00:29:32,440
Speaker 4: Still needs to be improved within, you know, in terms

549
00:29:32,480 --> 00:29:35,720
of using Knicks for creating these types of production containers.

550
00:29:35,839 --> 00:29:37,200
Speaker 2: Yeah, but I mean, I think it's a huge step

551
00:29:37,200 --> 00:29:40,799
in the right direction because the dependency management through Docker

552
00:29:40,880 --> 00:29:43,720
has always been oh yeah, just install like use Pseudo

553
00:29:43,799 --> 00:29:46,240
and then install a huge list of packages that are

554
00:29:46,240 --> 00:29:50,039
required to run here, and like what version those are,

555
00:29:50,119 --> 00:29:53,440
whether or not they work with the actual Linux os

556
00:29:53,440 --> 00:29:55,079
that you're actually running there compared to the one on

557
00:29:55,119 --> 00:29:57,759
your development machine or in your you know, in your

558
00:29:57,759 --> 00:29:59,559
depth box or whatever could be totally different or what's

559
00:29:59,599 --> 00:30:02,960
available production because you're not actually running the exact container.

560
00:30:03,000 --> 00:30:05,400
There are some differences there. And then there's also your

561
00:30:05,440 --> 00:30:08,640
CICD pipeline which probably have a different version of Linux on.

562
00:30:08,720 --> 00:30:11,039
Speaker 3: Right, And this is exactly this is.

563
00:30:11,079 --> 00:30:13,240
Speaker 2: Just if you're using Linux, right, I mean, then you

564
00:30:13,279 --> 00:30:16,759
throw in ARM and other operating systems and it's it's

565
00:30:16,759 --> 00:30:19,480
for sure a huge mass. So I mean, I definitely

566
00:30:19,480 --> 00:30:23,079
see that. Persistence is another aspect like Nix doesn't. You're

567
00:30:23,119 --> 00:30:25,359
focused on using it for dev boxes in sort of

568
00:30:25,400 --> 00:30:27,799
ephemeral way, right, Like you're not making permanent changes to

569
00:30:27,839 --> 00:30:30,519
the operating system, but in production you almost want the

570
00:30:30,519 --> 00:30:33,160
permanence there. So there is this sort of disconnect, and

571
00:30:33,200 --> 00:30:36,839
you're achieving the connection there through using doctor or plugging

572
00:30:36,880 --> 00:30:40,400
into persisting it in the doctoring container build file assume.

573
00:30:41,319 --> 00:30:44,039
Speaker 4: Yeah, exactly, exactly right, Yeah, And I mean I think

574
00:30:44,079 --> 00:30:47,319
you touched on this, but just to emphasize it, I

575
00:30:47,359 --> 00:30:50,400
think sometimes people don't think about it. A doctor file

576
00:30:50,599 --> 00:30:55,240
is not necessarily reproducible. In fact, I argue it's probably

577
00:30:55,559 --> 00:31:01,079
not reproducible. People sometimes think of doctor as reproduce in

578
00:31:01,160 --> 00:31:04,599
the sense that if you previously built a particular image

579
00:31:05,119 --> 00:31:07,799
and you reuse that image, then you know you're getting

580
00:31:08,079 --> 00:31:09,920
you're getting what you already packaged before.

581
00:31:10,039 --> 00:31:10,200
Speaker 3: Right.

582
00:31:10,240 --> 00:31:13,839
Speaker 4: But if you have a doctor file with instructions and

583
00:31:13,880 --> 00:31:17,079
you build it six months ago and you build it today,

584
00:31:18,240 --> 00:31:22,720
the output, the resulting image will likely be different because again,

585
00:31:23,160 --> 00:31:25,799
I mean it's the same scenarios talking about with with

586
00:31:25,839 --> 00:31:30,240
your engineers just installing the environment. Probably your doctor file

587
00:31:30,359 --> 00:31:35,200
just says install Python, and six months ago the version

588
00:31:35,240 --> 00:31:37,000
of Python, you know, was X.

589
00:31:37,119 --> 00:31:38,680
Speaker 3: Today the version of Python is Y.

590
00:31:38,720 --> 00:31:41,480
Speaker 4: And so you build a container six months ago versus today,

591
00:31:41,960 --> 00:31:44,400
you get different images as a result.

592
00:31:44,720 --> 00:31:48,079
Speaker 2: I think code dependencies definitely fall. Code dependencies fall in

593
00:31:48,079 --> 00:31:52,319
this abyss here right there. They're not quite infrastructure as code,

594
00:31:52,640 --> 00:31:54,599
which has been solved as far as deploying what we

595
00:31:54,640 --> 00:31:56,920
have to our cloud environment, and they're not the source code,

596
00:31:56,920 --> 00:32:00,920
which is stored so elegantly in there is this middle

597
00:32:00,960 --> 00:32:05,759
area where I need to configure that container or heaven forbid,

598
00:32:05,839 --> 00:32:08,799
you're using a virtual machine directly or bear metal in

599
00:32:08,839 --> 00:32:10,640
a very specific way, and it's like, well it's not

600
00:32:10,799 --> 00:32:13,880
I see, and it's not my source code, and then

601
00:32:13,880 --> 00:32:16,440
what I'm end up with is some sort of script

602
00:32:16,519 --> 00:32:19,680
in Bash. A lot of times to explain how to

603
00:32:19,680 --> 00:32:21,359
actually install that thing. And so it's like, well, why

604
00:32:21,359 --> 00:32:24,720
aren't we doing declarative programming here like we are everywhere else.

605
00:32:25,200 --> 00:32:27,279
It's like the white area that still is procedural and

606
00:32:27,319 --> 00:32:29,720
still prone to a lot of issues, And like, that's

607
00:32:29,720 --> 00:32:32,039
what I'm hearing is like, Okay, this is totally solved now.

608
00:32:32,240 --> 00:32:34,119
You know, if you need more than one dependency, how

609
00:32:34,119 --> 00:32:35,559
can you not be using this solution?

610
00:32:37,039 --> 00:32:37,960
Speaker 3: Right? Yeah, exactly.

611
00:32:38,319 --> 00:32:40,680
Speaker 4: I think you said in a way that I agree,

612
00:32:40,720 --> 00:32:44,079
Like it'd be great to just have your developer environment

613
00:32:44,119 --> 00:32:47,920
defined in a declarative way. And then that declaration, you know,

614
00:32:47,960 --> 00:32:50,279
we can use to build the environment correctly, and you

615
00:32:50,319 --> 00:32:52,799
can use it to build the environment in many different places.

616
00:32:52,839 --> 00:32:55,519
You can build it locally, you can build it inside

617
00:32:55,519 --> 00:32:58,640
a container, you can build it on the cloud, right,

618
00:32:59,440 --> 00:33:01,680
and yeah, take the environment with you where you need it.

619
00:33:06,640 --> 00:33:10,519
Speaker 1: Will's processing all of this, I can say, I am,

620
00:33:10,599 --> 00:33:15,119
but I think I failed to press the turbo button

621
00:33:15,319 --> 00:33:20,640
on the CPU this morning because it's processing slow. I'm

622
00:33:20,680 --> 00:33:21,960
just trying to slow this morning.

623
00:33:24,240 --> 00:33:26,559
Speaker 2: That's okay, it happens to all of us, right.

624
00:33:28,400 --> 00:33:32,319
Speaker 1: So with the when it comes back to the production dependencies,

625
00:33:33,839 --> 00:33:38,720
is that declarative in the manifest file this dependency is

626
00:33:38,720 --> 00:33:45,240
a production one or in this one's a development dependency.

627
00:33:45,559 --> 00:33:48,519
Speaker 4: Right now, if you want to talk about like the

628
00:33:48,519 --> 00:33:50,920
implementation we have in the in the open source school,

629
00:33:51,359 --> 00:33:55,279
you would have like two different books adjacent files, one

630
00:33:55,279 --> 00:33:58,559
for production, one for development. But we have talked about

631
00:33:59,079 --> 00:34:01,160
you know, potentially UNI find that in one file.

632
00:34:01,359 --> 00:34:02,920
Speaker 3: Actually we were making.

633
00:34:02,680 --> 00:34:06,880
Speaker 4: The analogy to package the jacent before and in the

634
00:34:06,880 --> 00:34:11,639
package that Jason, you have the dependencies and dependencies that

635
00:34:11,679 --> 00:34:15,039
are for both. So yeah, we're we're considering cannot unifying that,

636
00:34:16,360 --> 00:34:19,199
but yeah, I mean put aside the exact implementation we

637
00:34:19,239 --> 00:34:22,480
have today, the exact version. I think the idea is,

638
00:34:23,119 --> 00:34:31,320
can we declare our environments by specifying the packages we

639
00:34:31,360 --> 00:34:34,360
want on the versions that we want, and then specifying

640
00:34:34,360 --> 00:34:38,159
which packages belong in both development and production and which

641
00:34:38,159 --> 00:34:41,639
ones belong only in development, and then take away that

642
00:34:41,760 --> 00:34:45,199
very procedural like Bash scripts that you're doing to install

643
00:34:45,239 --> 00:34:48,840
every little thing, and then let a system that can

644
00:34:49,360 --> 00:34:51,719
reproducibly create the environment.

645
00:34:51,800 --> 00:34:54,239
Speaker 3: From that declaration you do the work.

646
00:34:55,840 --> 00:34:58,519
Speaker 2: I think you hit on really well the scenario where

647
00:34:58,679 --> 00:35:01,079
you may not need to do something like this, like

648
00:35:01,119 --> 00:35:03,920
you don't need the I hesitate to call it complexity

649
00:35:04,000 --> 00:35:07,039
of using NEXT based configuration, but it's just it's one

650
00:35:07,039 --> 00:35:07,840
more tool, and so.

651
00:35:07,960 --> 00:35:10,119
Speaker 3: No I would call it like, I mean, it is

652
00:35:10,159 --> 00:35:11,960
an extra tool. Yeah, I agree with you, Like.

653
00:35:12,280 --> 00:35:15,159
Speaker 2: Yeah, you know, compared to I mean, swap that in

654
00:35:15,239 --> 00:35:16,840
for something else. I mean, it's pretty much a very

655
00:35:16,840 --> 00:35:21,440
simple bootstrap and clear configuration files that are very understandable

656
00:35:21,440 --> 00:35:25,239
of what they're doing. I'm curious if you see a

657
00:35:25,239 --> 00:35:30,840
particular vertical or industry market segment where it becomes super critical. Still,

658
00:35:30,880 --> 00:35:34,320
Like maybe if we say web servers, web development, maybe

659
00:35:34,320 --> 00:35:37,719
that's really simple. It's not too complicated here. But if

660
00:35:37,719 --> 00:35:39,880
you're building a game, I'm just making stuff up now,

661
00:35:39,880 --> 00:35:40,920
like you know, this is where you can jump in

662
00:35:41,000 --> 00:35:42,760
and say, you know, this is exactly it, like game

663
00:35:42,880 --> 00:35:44,920
or web three. Like, maybe there's a lot more value

664
00:35:45,119 --> 00:35:48,039
in or doing something with LMMEL, a lot more value

665
00:35:48,039 --> 00:35:49,440
in next configurations.

666
00:35:50,480 --> 00:35:52,559
Speaker 4: Yeah, I think, I mean, I think one of them

667
00:35:52,719 --> 00:35:56,920
is when you have a lot of when you need

668
00:35:56,960 --> 00:36:02,519
to use native dependencies that are not native to the

669
00:36:02,639 --> 00:36:06,280
language that you're using. Right, So I think Python and

670
00:36:06,400 --> 00:36:08,599
mL is a good example. But you know, it's not

671
00:36:08,719 --> 00:36:11,599
just the male. Like you know, there's several cases where

672
00:36:11,639 --> 00:36:14,480
you might need to install Python libraries that depend on

673
00:36:15,239 --> 00:36:16,880
kind of underlying C library.

674
00:36:18,800 --> 00:36:20,440
Speaker 3: I think those tend.

675
00:36:20,239 --> 00:36:22,480
Speaker 4: To not work as well if you don't have a

676
00:36:22,559 --> 00:36:24,519
tool like like that book.

677
00:36:25,400 --> 00:36:26,199
Speaker 3: I think the other.

678
00:36:26,039 --> 00:36:30,039
Speaker 4: Case is when you rely i mean made similar but

679
00:36:30,400 --> 00:36:32,800
maybe it's not a library in the scenario, but you're

680
00:36:32,920 --> 00:36:35,719
you're relying on a binary that needs to be present

681
00:36:35,920 --> 00:36:38,760
in the environment because you want to call, you know,

682
00:36:38,840 --> 00:36:41,239
exect that binary or do something with it.

683
00:36:41,840 --> 00:36:45,360
Speaker 2: How much of a mess is mL development from a

684
00:36:45,400 --> 00:36:48,559
dependency management today?

685
00:36:49,440 --> 00:37:01,760
Speaker 3: Oh say no more think I think it can get complicated.

686
00:37:04,039 --> 00:37:06,519
Speaker 4: Yeah, because and then yeah, but by the way, you know,

687
00:37:06,880 --> 00:37:09,440
I'm talking about that box and mL, but there's even

688
00:37:09,480 --> 00:37:13,000
cases where we are not able to help fully in

689
00:37:13,079 --> 00:37:19,079
that vertical because then kind of drivers come in, uh,

690
00:37:19,559 --> 00:37:21,960
you know, for the different GPUs and whatnot, and and

691
00:37:22,000 --> 00:37:27,079
there's some things that NICKS can't fully control there unless

692
00:37:27,119 --> 00:37:30,639
you were using next os. Right, But we're remember we're

693
00:37:30,679 --> 00:37:33,960
doing this in a scenario where you keep your current computer,

694
00:37:34,199 --> 00:37:38,440
current operating system and just use that as added virtual environment.

695
00:37:40,079 --> 00:37:42,039
Speaker 3: But yeah, you can you can get real.

696
00:37:41,840 --> 00:37:45,679
Speaker 4: Messy, not just with the library dependencies, but kind of

697
00:37:45,679 --> 00:37:48,639
like all the related drivers and how they match the

698
00:37:48,679 --> 00:37:52,000
corresponding architecture that you're developing.

699
00:37:52,000 --> 00:37:59,440
Speaker 2: Again, so you wouldn't recommend doing mL development today quite yet.

700
00:38:00,920 --> 00:38:02,719
I mean we wait a couple more years though.

701
00:38:03,039 --> 00:38:07,159
Speaker 4: Yeah, yeah, I mean I think it's unimproved. Maybe I'm

702
00:38:07,159 --> 00:38:09,199
saying I think it's unimprovement, but it's not all the

703
00:38:09,199 --> 00:38:09,559
way then.

704
00:38:10,599 --> 00:38:13,400
Speaker 2: Well, I do remember, and I'll date myself here when

705
00:38:13,440 --> 00:38:18,719
I was trying to extract bitcoins from the bitcoin faucet

706
00:38:19,360 --> 00:38:23,000
when I was in the university, and that included having

707
00:38:23,079 --> 00:38:26,559
to basically getting my operating system to a state where

708
00:38:26,639 --> 00:38:28,440
I would just ended up with a black screen with

709
00:38:28,480 --> 00:38:30,719
a terminal, you know, and it's like, Okay, you know,

710
00:38:31,280 --> 00:38:34,239
I really mess something up here, And like that was

711
00:38:34,280 --> 00:38:36,079
the state of the software at the time to just

712
00:38:36,119 --> 00:38:41,159
do anything related in the cryptocurrency space in cryptography in general,

713
00:38:41,199 --> 00:38:45,719
really good luck using those tools. So like that's definitely improved.

714
00:38:45,840 --> 00:38:48,880
Now you can use Python or JavaScript to interact with

715
00:38:48,960 --> 00:38:52,280
any of the chains that are available out there ethereum

716
00:38:52,400 --> 00:38:55,360
and all the derivatives of it without a problem for

717
00:38:55,400 --> 00:38:57,599
the most part. I mean, there are some educases for sure.

718
00:38:57,639 --> 00:39:00,440
If you want a stake or mine, you're going to

719
00:39:00,480 --> 00:39:03,760
have a problem. And I think that's where IML is right.

720
00:39:03,920 --> 00:39:06,519
It used me much worse, and I think it's slightly better.

721
00:39:06,519 --> 00:39:08,800
But I do feel like maybe we're going so quickly

722
00:39:08,840 --> 00:39:14,000
and we've monetized whatever little amount of value we've been

723
00:39:14,000 --> 00:39:18,719
able to create as a society through model development, that

724
00:39:18,880 --> 00:39:23,039
we haven't really took the opportunity to innovate with the

725
00:39:23,280 --> 00:39:24,320
development pipeline.

726
00:39:26,360 --> 00:39:27,440
Speaker 3: Yeah, and you know, I'm sure this.

727
00:39:28,119 --> 00:39:30,079
Speaker 4: I do think there's probably plenty of people working in

728
00:39:31,239 --> 00:39:35,239
solving this, even you know, the AI wave and the

729
00:39:35,320 --> 00:39:36,239
whole interest in.

730
00:39:38,559 --> 00:39:38,599
Speaker 1: You.

731
00:39:40,719 --> 00:39:42,519
Speaker 2: I mean, it's I think it's I think it's optimistic,

732
00:39:42,559 --> 00:39:44,000
but I also I also think that may be a

733
00:39:44,039 --> 00:39:49,199
little bit realistic because with the deep state model that

734
00:39:49,320 --> 00:39:52,920
had come out, I mean deep seek right, Uh that.

735
00:39:52,880 --> 00:39:55,920
Speaker 1: It I thought we were in a different podcast.

736
00:39:56,559 --> 00:40:00,280
Speaker 2: Yeah, I mean it's a joke that you know, I

737
00:40:00,360 --> 00:40:03,000
frequently go around with some of my colleagues about you

738
00:40:03,000 --> 00:40:06,360
know the impact of these models. But the fact that

739
00:40:06,440 --> 00:40:10,320
you are there's now competition requires doing things more efficiently.

740
00:40:10,400 --> 00:40:12,920
You can't bring a new engineer on board and have

741
00:40:13,119 --> 00:40:16,679
them waste months and months not on on tool set,

742
00:40:16,760 --> 00:40:20,079
like not even on the domain. So that's what drives

743
00:40:20,159 --> 00:40:23,639
innovation there a lot when you're in competition to succeed.

744
00:40:23,679 --> 00:40:26,960
And I think that's going to be a really important

745
00:40:27,039 --> 00:40:30,440
qualifier going forward in the mL space that we continue

746
00:40:30,440 --> 00:40:34,199
to have sufficient competition to drive innovation there.

747
00:40:35,679 --> 00:40:38,079
Speaker 1: So this is an area where I haven't spent any

748
00:40:38,400 --> 00:40:41,559
time or effort, but Daniel, you have, right because you

749
00:40:41,920 --> 00:40:46,920
have been working on some mL work to do QAT

750
00:40:47,039 --> 00:40:50,840
in testing. Right, So what's the what's the barrier to

751
00:40:51,079 --> 00:40:53,400
entry to get into that space?

752
00:40:56,440 --> 00:40:59,159
Speaker 3: I meaning, like, what's the barrier for.

753
00:41:00,760 --> 00:41:04,119
Speaker 4: Engineers to start creating agents themselves and kind of what

754
00:41:04,239 --> 00:41:05,599
knowledge and tools might they need?

755
00:41:05,920 --> 00:41:06,679
Speaker 2: Yeah? For sure?

756
00:41:07,800 --> 00:41:08,159
Speaker 3: Yeah.

757
00:41:08,480 --> 00:41:09,920
Speaker 4: So yeah, I mean, like, like you said, we are

758
00:41:09,960 --> 00:41:13,400
developing an agent that we call test Pilot. It's meant

759
00:41:13,440 --> 00:41:17,280
to be an ai QA engineer take away all that boring,

760
00:41:17,400 --> 00:41:21,039
repetitive manual clicking on UIs that people often do.

761
00:41:22,639 --> 00:41:24,119
Speaker 3: Yeah, and we've been learning a lot.

762
00:41:25,280 --> 00:41:31,039
Speaker 4: I mean, I think I think agents are relatively like

763
00:41:31,159 --> 00:41:34,880
big investments in agents are relatively new, and so I

764
00:41:34,920 --> 00:41:38,800
think the barrier of entry is something you can catch

765
00:41:38,880 --> 00:41:41,119
up on, Like, like I would actually encourage if you're

766
00:41:41,199 --> 00:41:43,800
interested in creating agents. I think it's a good time.

767
00:41:44,480 --> 00:41:47,559
I think you can learn. I think you can do it,

768
00:41:48,760 --> 00:41:52,239
I would say, I mean to me, one of the

769
00:41:52,239 --> 00:41:55,440
most important things you need to do with developing AI

770
00:41:55,519 --> 00:41:58,559
applications is set up a.

771
00:42:00,039 --> 00:42:04,079
Speaker 3: Evaluation framework for the work that you're doing.

772
00:42:04,559 --> 00:42:09,920
Speaker 4: So in non AI non you know, kind of traditional

773
00:42:09,960 --> 00:42:13,159
software development lets, you say, you can often write a

774
00:42:13,239 --> 00:42:17,760
function that you can reason about fairly well, and then

775
00:42:17,760 --> 00:42:21,840
you can write tests that are fairly deterministic to know

776
00:42:22,079 --> 00:42:26,440
whether your the behavior is what you expect right as

777
00:42:26,480 --> 00:42:29,119
soon as you involve the LLLM. Well, now you have

778
00:42:29,519 --> 00:42:33,559
non probabilistic like not sorry, non deterministic behavior, right, And

779
00:42:33,599 --> 00:42:36,039
so you might call it once and it might tell

780
00:42:36,039 --> 00:42:38,800
you something. You might call it again in a second,

781
00:42:38,800 --> 00:42:41,360
and i I'll tell you a completely different thing. And

782
00:42:41,559 --> 00:42:45,679
often because you're dealing with very general cases, you might

783
00:42:45,719 --> 00:42:48,400
be feeding in lots of different examples and you don't

784
00:42:48,440 --> 00:42:51,199
fully grasp how it's behaving.

785
00:42:51,000 --> 00:42:52,880
Speaker 3: Across all those different examples.

786
00:42:53,360 --> 00:42:55,920
Speaker 4: So to me, kind of like one of the first

787
00:42:55,920 --> 00:42:59,719
things you need to do is set up a bunch

788
00:42:59,719 --> 00:43:04,920
of examples with kind of like the expected behavior and

789
00:43:04,960 --> 00:43:08,320
then be able to measure kind of the changes that

790
00:43:08,360 --> 00:43:12,239
you're doing and whether they're improving that evaluation.

791
00:43:11,800 --> 00:43:12,679
Speaker 3: That you have in mind.

792
00:43:12,679 --> 00:43:14,320
Speaker 4: All right, and in this case, it's going to be

793
00:43:15,079 --> 00:43:18,320
not purely past fail. Is going to be like, Okay,

794
00:43:18,360 --> 00:43:20,880
today you're at fifty percent of being able to handle

795
00:43:20,920 --> 00:43:23,079
the cases that you want, and then you do a

796
00:43:23,079 --> 00:43:25,480
few changes and okay, now you're at fifty five percent,

797
00:43:25,559 --> 00:43:27,880
and then you're at sixty percent and so on.

798
00:43:29,719 --> 00:43:32,719
Speaker 3: So yeah, anyways, I don't know, I can probably think

799
00:43:32,719 --> 00:43:33,480
of more.

800
00:43:35,199 --> 00:43:37,840
Speaker 4: I mean best practices, but that's the first one that

801
00:43:37,880 --> 00:43:38,480
comes to mind.

802
00:43:38,679 --> 00:43:41,000
Speaker 2: I would even maybe take a step back before that.

803
00:43:42,000 --> 00:43:44,679
I mean, that's really great insight, like someone who hasn't

804
00:43:44,679 --> 00:43:46,199
spent a lot of time in it. Is there a

805
00:43:46,199 --> 00:43:50,760
particular site or foundational model that is where you would

806
00:43:50,760 --> 00:43:54,199
suggest people start going for first? I mean probably, I

807
00:43:54,239 --> 00:43:56,400
think from my own experience, I know that building models

808
00:43:56,440 --> 00:43:58,519
is super expensive, so they're probably not going to do that.

809
00:43:59,559 --> 00:44:02,320
But maybe there's a SCE out there that you say,

810
00:44:02,400 --> 00:44:04,480
you know, go pull this model and try to fine

811
00:44:04,519 --> 00:44:05,920
tune it or use it out of the box. Like

812
00:44:05,960 --> 00:44:07,079
any recommendations on that.

813
00:44:07,960 --> 00:44:10,119
Speaker 4: Yeah, I mean I do think you need to start

814
00:44:10,159 --> 00:44:13,719
with the with the pre existing in general model, I

815
00:44:13,840 --> 00:44:19,119
recommend using probably a kind of multimodel provider, something like

816
00:44:19,199 --> 00:44:24,599
open router that allows you to easily swap models, because

817
00:44:24,679 --> 00:44:26,840
what's happening is I mean you guys see on the

818
00:44:27,159 --> 00:44:30,199
on the tech news all the time, right, every other month,

819
00:44:31,480 --> 00:44:33,800
each AI vendor like outdoes each other, and it's like, oh,

820
00:44:33,800 --> 00:44:36,760
we have this new new model and it performs better

821
00:44:36,800 --> 00:44:39,199
on this benchmark. And so you don't want to tie

822
00:44:39,239 --> 00:44:43,880
yourself so strongly to one model that when those innovations

823
00:44:43,880 --> 00:44:46,960
are happening, you can't test the other one, right, So

824
00:44:47,000 --> 00:44:50,360
I would pick some provider like, like I said, open

825
00:44:50,440 --> 00:44:54,079
Router is one of them. I think Rock. I think

826
00:44:54,119 --> 00:44:58,559
cloud Flaer has something these days too, But anyways, a

827
00:44:58,599 --> 00:45:01,280
provider that lets you spat which model you want to

828
00:45:01,360 --> 00:45:04,880
use and then kind of build the agent on top

829
00:45:04,920 --> 00:45:08,159
of that. I think the other part of building an

830
00:45:08,199 --> 00:45:11,360
agent is not just the underlying model that helps you reason,

831
00:45:12,119 --> 00:45:14,400
but there's kind of how you prompt it, right, and

832
00:45:14,719 --> 00:45:16,199
kind of how you tell it to do what you

833
00:45:16,239 --> 00:45:16,800
want it to do.

834
00:45:17,679 --> 00:45:19,119
Speaker 3: And then the last.

835
00:45:18,920 --> 00:45:21,519
Speaker 4: Piece is kind of like the tools that you give

836
00:45:21,559 --> 00:45:23,079
it so that it can take action.

837
00:45:23,719 --> 00:45:23,920
Speaker 3: Right.

838
00:45:23,960 --> 00:45:27,719
Speaker 4: So a high level in my mind, like an agent

839
00:45:27,880 --> 00:45:30,239
is you're grabbing the LLLM for the reasoning. But you

840
00:45:30,320 --> 00:45:34,599
need to kind of give it hands and eyes, if

841
00:45:34,599 --> 00:45:36,400
you want to think about it that way, so that

842
00:45:36,480 --> 00:45:40,280
it can manipulate an environment that you're giving it control of.

843
00:45:43,440 --> 00:45:43,519
Speaker 3: Right.

844
00:45:46,039 --> 00:45:52,159
Speaker 1: Is that something that you've got a significant portion of

845
00:45:52,159 --> 00:45:55,440
your team dedicated to or is it something that you

846
00:45:55,480 --> 00:45:59,320
can iterate on quickly with just a few people, like

847
00:45:59,360 --> 00:46:02,679
how big of a how big of a man power?

848
00:46:02,840 --> 00:46:06,480
Speaker 4: Yeah, I mean most of our team is working on

849
00:46:06,480 --> 00:46:07,400
on test pilots.

850
00:46:08,679 --> 00:46:08,920
Speaker 3: I mean.

851
00:46:08,960 --> 00:46:13,760
Speaker 4: Something we've found is so we're a Go shop. Like

852
00:46:13,800 --> 00:46:17,199
we use Go as our primary programming language. We've been

853
00:46:17,280 --> 00:46:20,400
using it for for a while and so we wanted

854
00:46:20,400 --> 00:46:23,440
to continue using it. And what we're seeing is that

855
00:46:23,480 --> 00:46:26,280
a lot of the tools that are readily available in

856
00:46:26,320 --> 00:46:30,440
this space are Python based, and you know, we can

857
00:46:30,559 --> 00:46:32,920
use Python for stuff that's not production, but for our

858
00:46:32,920 --> 00:46:34,960
production stuff we want to continue and go and so

859
00:46:35,000 --> 00:46:37,480
we're having to build some of them ourselves and go.

860
00:46:38,239 --> 00:46:40,519
Speaker 3: We do plan to open source them later on and

861
00:46:40,639 --> 00:46:40,920
kind of.

862
00:46:40,920 --> 00:46:44,280
Speaker 4: Give back to the community and hopefully kind of people

863
00:46:44,280 --> 00:46:48,280
that like Go, you know, let let them have some

864
00:46:48,320 --> 00:46:52,840
readily available tools for building AI and agents. But yeah,

865
00:46:52,920 --> 00:46:55,760
that stuff that's getting built right now, and often we

866
00:46:55,840 --> 00:46:57,679
look for it and it's like, oh, I guess nobody

867
00:46:57,719 --> 00:47:00,719
has you know, done this type of library yet in

868
00:47:00,800 --> 00:47:03,960
goal for AI, So it is early days.

869
00:47:04,400 --> 00:47:06,639
Speaker 2: Yeah, I mean I think that's a really good point actually,

870
00:47:06,920 --> 00:47:10,519
Like it's usually a mistake to rely on Python for

871
00:47:10,679 --> 00:47:14,920
high reliability software development and production, and so if the

872
00:47:14,920 --> 00:47:18,760
tools aren't there to support your production workloads in a

873
00:47:18,760 --> 00:47:21,320
different language, then that really tells you how early it is,

874
00:47:21,360 --> 00:47:23,960
because the people that are utilizing those tools don't care

875
00:47:24,119 --> 00:47:29,000
about like sustainable code or reliable code because it doesn't

876
00:47:29,000 --> 00:47:33,280
offer the core features to guarantee safety or quality of

877
00:47:34,639 --> 00:47:36,360
your value of your service that you're building.

878
00:47:38,199 --> 00:47:41,480
Speaker 4: Yeah, like I I mean there's many different ways of

879
00:47:41,480 --> 00:47:45,280
building a company, but just I've had to deal with

880
00:47:45,320 --> 00:47:48,719
like Groovy production systems, Python production systems, all that stuff,

881
00:47:48,719 --> 00:47:52,559
and I'm kind of like in this case where we're

882
00:47:52,599 --> 00:47:56,320
making different language and kind of moving forward with that.

883
00:47:56,840 --> 00:47:58,559
Speaker 2: Yeah. No, I'm totally with you. I used to be

884
00:47:58,639 --> 00:48:00,239
like early on in my career. I'm just like every

885
00:48:00,320 --> 00:48:02,519
language is the same, right, you know, there's you can

886
00:48:02,559 --> 00:48:05,559
swap between one or another if you've had a sufficient

887
00:48:05,599 --> 00:48:08,119
years of experience. But then over time you start to

888
00:48:08,159 --> 00:48:12,159
realize the fringe benefits of individual languages or negatives that

889
00:48:12,159 --> 00:48:15,159
are associated with them, So things like Go or other

890
00:48:15,599 --> 00:48:18,639
well typed languages like c sharp, the community or the

891
00:48:18,679 --> 00:48:22,039
packages that are available to help drive forward. Having the

892
00:48:22,119 --> 00:48:24,280
right execution of the right stuff in production is like

893
00:48:24,320 --> 00:48:27,920
super important, not which is when you're building something quick

894
00:48:27,960 --> 00:48:31,000
and hacky, but when you actually care about it working continuously,

895
00:48:31,039 --> 00:48:32,960
and like if you're at a company and one of

896
00:48:33,000 --> 00:48:37,360
the core things you're building is reliable builds, I feel

897
00:48:37,440 --> 00:48:39,400
like you know that goes hand in hand or using

898
00:48:39,480 --> 00:48:42,920
other I mean, it's sort of like a different mindset, right,

899
00:48:42,960 --> 00:48:45,679
Like if you're hiring an engineer and they care about

900
00:48:45,800 --> 00:48:50,760
using scrappy tools that ones that potentially break from day

901
00:48:50,800 --> 00:48:53,639
to day, the nightly build version of that tool is

902
00:48:53,760 --> 00:48:57,079
broken by default, they're probably not in the right mindset

903
00:48:57,119 --> 00:48:59,719
to be working on something where you need high reliability

904
00:48:59,840 --> 00:49:04,400
or reproducible builds or you know these other technologies. It's

905
00:49:04,440 --> 00:49:06,920
just a complete other side of the spectrum, right.

906
00:49:07,000 --> 00:49:08,000
Speaker 3: Yeah, I totally agree.

907
00:49:08,719 --> 00:49:11,360
Speaker 4: And yeah, I mean what we've been doing maybe where

908
00:49:11,360 --> 00:49:13,679
we kind of allow Python to come in is you know,

909
00:49:13,679 --> 00:49:16,760
I mentioned we have this kind of evail process. We're

910
00:49:16,800 --> 00:49:19,880
able to try ideas, and so I'm like, okay, if

911
00:49:19,880 --> 00:49:22,880
we're prototyping a direction and there happens to be kind

912
00:49:22,920 --> 00:49:24,920
of like a Python library that does that off the bat,

913
00:49:25,039 --> 00:49:28,079
and we just want to check if that's gonna improve

914
00:49:28,159 --> 00:49:31,320
our performance, you know, the performance of our agent. Like

915
00:49:31,800 --> 00:49:34,280
you prototype something quickly with Python, pull that library in,

916
00:49:34,639 --> 00:49:36,760
run it against our evil framework. Let's see if this

917
00:49:36,840 --> 00:49:41,280
direction has legs. Oh, it does have lengths. It is promising. Okay,

918
00:49:41,320 --> 00:49:44,679
how are we going to build it now for production usage?

919
00:49:44,719 --> 00:49:47,599
And you handle the low we want to handle, and

920
00:49:48,360 --> 00:49:49,880
take care of all the edge cases we want to

921
00:49:49,920 --> 00:49:52,440
take care of and so on, and then we at

922
00:49:52,440 --> 00:49:54,719
that point in time, then we spend the time developing

923
00:49:54,760 --> 00:49:59,000
the the go software and infrastructure.

924
00:49:58,800 --> 00:49:59,639
Speaker 2: Makes a lot of sense.

925
00:50:01,000 --> 00:50:03,760
Speaker 1: So that's one of the things I want to ask you.

926
00:50:03,760 --> 00:50:07,000
You know, you talked about open sourcing some of the

927
00:50:07,000 --> 00:50:10,079
tools that you're making and contributing back to the community.

928
00:50:11,800 --> 00:50:15,119
That's a huge commitment and it's a it's a conscious

929
00:50:15,159 --> 00:50:18,119
decision by companies because a lot of companies are like, yeah,

930
00:50:18,159 --> 00:50:20,440
we invested this, it's a core part of our business.

931
00:50:20,480 --> 00:50:23,880
We're using it for the business. But then you're saying,

932
00:50:24,280 --> 00:50:26,559
I want to I want to give it back to

933
00:50:27,599 --> 00:50:36,000
the community. How do you how do you tie that

934
00:50:36,119 --> 00:50:40,360
back into your business model and and like justify or

935
00:50:40,960 --> 00:50:43,719
account for the time that and the salaries that you're

936
00:50:43,760 --> 00:50:47,719
spending on people working on an open source product.

937
00:50:49,079 --> 00:50:52,480
Speaker 4: Yeah, it's a great question, and you know, I'm sure

938
00:50:52,519 --> 00:50:57,320
everybody will kind of make different judgments there, But for us,

939
00:50:57,320 --> 00:50:59,960
the way we think about it is, Okay, we're developing tests.

940
00:51:00,079 --> 00:51:01,880
Speaker 3: I love this kind of q A A I q

941
00:51:02,000 --> 00:51:02,639
A engineer.

942
00:51:03,639 --> 00:51:06,679
Speaker 4: You can think of the software that makes up test

943
00:51:06,719 --> 00:51:10,320
Pilot as being into different buckets list in my hand. Right,

944
00:51:10,800 --> 00:51:17,519
one is like the truly domain specific logic and kind

945
00:51:17,519 --> 00:51:21,840
of proprietary aspects of it that make it behave like

946
00:51:21,880 --> 00:51:25,000
a QA engineer, right, and that we're not open sourcing.

947
00:51:26,280 --> 00:51:28,159
But then there's the tools that we wish we had

948
00:51:28,239 --> 00:51:31,719
had that that we had to develop for ourselves that

949
00:51:31,760 --> 00:51:35,239
are applicable to developing all sorts of AI agents and

950
00:51:35,320 --> 00:51:37,000
all sorts of kind of.

951
00:51:36,960 --> 00:51:38,480
Speaker 3: AI related products.

952
00:51:39,679 --> 00:51:41,719
Speaker 4: And you know, we're a startup, We are trying to

953
00:51:41,719 --> 00:51:45,880
get more eyeballs. We're trying to kind of become more prominent,

954
00:51:46,159 --> 00:51:49,360
get people to hear about us, and so I actually

955
00:51:49,360 --> 00:51:56,920
think of open sourcing almost as a marketing uh exercise. Uh,

956
00:51:57,280 --> 00:51:59,280
we don't have marketers, we're all you know, we're very

957
00:51:59,280 --> 00:52:03,320
technical teams basically engineers. But sometimes I think you can

958
00:52:03,360 --> 00:52:07,199
look as open sources as a way to kind of

959
00:52:07,199 --> 00:52:10,599
bring in that audience. And because our audience are developers, right,

960
00:52:10,599 --> 00:52:13,480
I think if we're in a different vertical, you're serving

961
00:52:13,519 --> 00:52:18,440
different customers, maybe open sourcing doesn't work that way. But

962
00:52:18,880 --> 00:52:21,880
our audience is developers, and if we can create a

963
00:52:21,920 --> 00:52:25,679
reputation of Wow, those guys that genify really know what

964
00:52:25,719 --> 00:52:28,360
they're doing in terms of AI agents and have you

965
00:52:28,440 --> 00:52:30,679
checked you know, have you seen the tools they've made

966
00:52:30,760 --> 00:52:32,920
and the libraries they've made. I think that all just

967
00:52:33,000 --> 00:52:37,119
kind of comes back to the type of business that

968
00:52:37,159 --> 00:52:38,119
we're building.

969
00:52:38,199 --> 00:52:42,119
Speaker 2: Right, I totally agree. I mean we went down the

970
00:52:42,159 --> 00:52:44,360
same path a while ago with some of the things

971
00:52:44,360 --> 00:52:47,119
that we've opened source. It is like unfortunate to say

972
00:52:47,280 --> 00:52:50,119
it is like a huge marketing story. It's marketing story

973
00:52:50,159 --> 00:52:54,199
for brand awareness. It's a marketing story for hiring engineers,

974
00:52:54,639 --> 00:52:57,840
so they know about your company or what you do

975
00:52:57,960 --> 00:53:00,440
before that you know, they show up the end interview.

976
00:53:00,960 --> 00:53:02,599
They can research it and see that you have something

977
00:53:02,639 --> 00:53:05,159
technical rather than a website with a couple of links

978
00:53:05,159 --> 00:53:07,679
on it and a knowledge base like that's not a lot, right,

979
00:53:07,719 --> 00:53:10,320
you know, this gives them more ability to have insight

980
00:53:10,440 --> 00:53:13,800
in what you're doing. I mean, there is a pessimistic

981
00:53:13,840 --> 00:53:15,599
side of me that says, like, no one cares what

982
00:53:15,679 --> 00:53:18,840
you put on the internet, Like, no one's that special, right,

983
00:53:18,880 --> 00:53:21,280
your thing doesn't matter. I remember like a bunch of

984
00:53:21,280 --> 00:53:24,000
times like Netflix went and open source a bunch of

985
00:53:24,039 --> 00:53:26,840
huge technologies, and I'm just like, I don't care about

986
00:53:26,880 --> 00:53:29,840
those things. But now some people maybe are using that

987
00:53:29,920 --> 00:53:33,280
in production. I guess could be potentially because I think

988
00:53:33,280 --> 00:53:36,000
they wrote them for Kubernetes or something, and you know,

989
00:53:36,079 --> 00:53:38,239
so that's great, you know, you get that experience. I

990
00:53:38,239 --> 00:53:40,599
think the one thing we try to be really careful

991
00:53:40,599 --> 00:53:42,760
about that I think is important here is that the

992
00:53:42,800 --> 00:53:45,559
thing that you're building needs to be really close to

993
00:53:45,639 --> 00:53:48,880
your value, your actual product, because even if it's like

994
00:53:49,000 --> 00:53:51,800
one or two hops away, then it's the people that

995
00:53:51,800 --> 00:53:55,039
are utilizing it. They don't care what that thing is

996
00:53:55,079 --> 00:53:59,599
that you're actually doing, which is super unfortunate. But I

997
00:53:59,639 --> 00:54:02,039
will say that rather than a marketing tool. There's a

998
00:54:02,079 --> 00:54:05,599
second step here, which is if you're going to open

999
00:54:05,639 --> 00:54:08,000
source something, I feel like you feel like it's more

1000
00:54:08,039 --> 00:54:11,559
important to do it well. And things that are done

1001
00:54:11,599 --> 00:54:14,519
well will live longer and people will see and start

1002
00:54:14,519 --> 00:54:17,039
to utilize more. And that give brings us sort of

1003
00:54:17,079 --> 00:54:20,920
like a your own usage levels it up because you

1004
00:54:21,039 --> 00:54:23,440
actually invested in doing that thing well. And so like,

1005
00:54:23,639 --> 00:54:25,760
even if you weren't a deb box, wasn't sort of

1006
00:54:25,760 --> 00:54:28,559
out there as a cloud thing that you could utilize

1007
00:54:28,599 --> 00:54:31,360
and pay for the fact that you've opened source it

1008
00:54:31,400 --> 00:54:34,599
means that that tool is now serving you, hopefully better

1009
00:54:35,159 --> 00:54:37,400
for your mL development, for your own agent.

1010
00:54:37,519 --> 00:54:42,199
Speaker 4: Right, yeah, absolutely, And I actually we're about like different

1011
00:54:43,079 --> 00:54:45,199
benefits that open source my brain. I'll give you a

1012
00:54:45,199 --> 00:54:49,400
third one, at least in my view, which is, you know,

1013
00:54:49,440 --> 00:54:52,119
when you're a startup, I think one of the most

1014
00:54:52,159 --> 00:54:55,280
important things is be talking to users, right, be talking

1015
00:54:55,320 --> 00:54:59,760
to users and learning from them. And we've found that

1016
00:54:59,800 --> 00:55:02,199
when we open source things, we often get to talk

1017
00:55:02,239 --> 00:55:05,360
to more users, but we also take get to talk

1018
00:55:05,400 --> 00:55:08,199
to users that normally would not have talked to us.

1019
00:55:08,320 --> 00:55:12,280
So you take that box. I don't know if we

1020
00:55:12,320 --> 00:55:15,719
can share the specific companies. But there's some big ish

1021
00:55:15,760 --> 00:55:18,559
companies using that box that I think if we had

1022
00:55:19,039 --> 00:55:22,159
just kind of pure proprietary solution and or this little startup,

1023
00:55:22,880 --> 00:55:25,280
they never would have looked at it. I think what

1024
00:55:25,320 --> 00:55:27,000
gave them confidence to look at it is like, oh,

1025
00:55:27,039 --> 00:55:29,639
there is this open source project kind of you know,

1026
00:55:29,679 --> 00:55:33,519
worst case scenario, the startup goes nowhere, we can rely

1027
00:55:33,599 --> 00:55:35,880
on that open source project and we can kind of

1028
00:55:35,920 --> 00:55:39,440
continue improving it and whatnot. And so that's given us

1029
00:55:40,079 --> 00:55:43,599
at least a channel to communicate with those types of

1030
00:55:43,760 --> 00:55:46,480
potential customers and users, and it brings in a ton

1031
00:55:46,519 --> 00:55:49,719
of learning for us in terms of Okay, what features

1032
00:55:49,719 --> 00:55:53,199
are important, what is that class of user or customer

1033
00:55:53,599 --> 00:55:56,440
asking us about and how should that I affect our

1034
00:55:56,480 --> 00:55:58,079
product roadmap and whatnot.

1035
00:55:59,280 --> 00:56:02,320
Speaker 1: Oh that's huge, like in my opinion, like one of

1036
00:56:02,360 --> 00:56:06,280
the like the primary objective of every startup is to

1037
00:56:06,280 --> 00:56:10,280
figure out the difference between what you built and what

1038
00:56:09,760 --> 00:56:13,159
you what your customers thought you were building. And so

1039
00:56:13,400 --> 00:56:16,760
open sourcing gives you a way to have that conversation

1040
00:56:16,880 --> 00:56:21,360
without trying to force them down through a sales pipeline, right,

1041
00:56:21,440 --> 00:56:22,159
exactly right.

1042
00:56:23,239 --> 00:56:25,320
Speaker 2: It's scary though, because you know when you put it

1043
00:56:25,360 --> 00:56:27,360
out there, it's like, well, people start will start to

1044
00:56:27,400 --> 00:56:32,960
see my actual bad code, or it is scary my

1045
00:56:33,119 --> 00:56:36,440
commitment messages you know that maybe I should have worded differently.

1046
00:56:37,079 --> 00:56:39,320
Speaker 4: And I mean it is tricky too, and like, you know,

1047
00:56:39,400 --> 00:56:42,360
I gave you our kind of like ar heuristic for

1048
00:56:42,519 --> 00:56:46,840
figuring out what parts of the spilot are open source

1049
00:56:46,920 --> 00:56:50,400
and which ones aren't. But sometimes you're in some grade

1050
00:56:50,400 --> 00:56:52,519
lines and you're kind of like should I open source

1051
00:56:52,559 --> 00:56:55,360
this or not? Like is it Do I get more

1052
00:56:55,360 --> 00:56:58,920
benefit from opening it up to the community and getting

1053
00:56:58,960 --> 00:57:03,519
the audience and maybe getting some faster adoption, or do

1054
00:57:03,559 --> 00:57:06,599
I get more benefit from keeping this kind of like

1055
00:57:06,639 --> 00:57:09,760
the secret sounds of the company. And you know, there's

1056
00:57:09,800 --> 00:57:15,119
all those stories like Elastic Search and AUS and.

1057
00:57:14,360 --> 00:57:16,559
Speaker 3: Everybody gets big and starts changing their licenses.

1058
00:57:16,559 --> 00:57:21,760
Speaker 2: So like, son, how I don't know how right I

1059
00:57:21,800 --> 00:57:24,960
am here. We've done some initial research on the topic,

1060
00:57:25,000 --> 00:57:27,840
and it does actually seem like customers that fall into

1061
00:57:28,000 --> 00:57:30,719
a particular bucket never leave that bucket and go to

1062
00:57:30,800 --> 00:57:33,960
a different one. Like a free user never converts to

1063
00:57:34,440 --> 00:57:37,880
your lowest tier paid plan, and the average business plan

1064
00:57:37,960 --> 00:57:41,960
doesn't escalate to enterprise. It just doesn't happen. People self

1065
00:57:42,000 --> 00:57:44,559
identify with whatever bucket they're in, and so whether or

1066
00:57:44,639 --> 00:57:47,960
not you have an open source solution really only functions

1067
00:57:47,960 --> 00:57:50,280
as advertisement. The people who are using it aren't going

1068
00:57:50,320 --> 00:57:52,800
to be more likely to get to like start to

1069
00:57:52,800 --> 00:57:55,800
pay you. And one of the things we recognize, which

1070
00:57:55,800 --> 00:57:58,280
is one of the reasons why our product, authoress is

1071
00:57:58,320 --> 00:58:01,920
not open source for ninety percent of it, is because

1072
00:58:02,440 --> 00:58:06,000
those free users actually generate ninety nine percent of the

1073
00:58:06,039 --> 00:58:09,239
support cases that you need to deal with. So there's

1074
00:58:09,280 --> 00:58:11,800
like a huge cost investment that goes into it, and

1075
00:58:11,880 --> 00:58:14,920
you don't get any reward coming back from that. I mean,

1076
00:58:14,960 --> 00:58:18,239
of course there's some gray areas where there's highly coupled

1077
00:58:18,239 --> 00:58:21,800
technology and where it's being utilized effectively, but often the

1078
00:58:21,840 --> 00:58:23,280
one the customers that are going to pay you the

1079
00:58:23,320 --> 00:58:26,480
most money or be your best customers, like, they don't

1080
00:58:26,559 --> 00:58:30,119
particularly care about running it themselves in most cases, unless

1081
00:58:30,119 --> 00:58:34,039
they're like a government entity or you know, they have

1082
00:58:34,079 --> 00:58:35,559
some regulations they have to deal with.

1083
00:58:36,679 --> 00:58:40,000
Speaker 4: Yeah, I mean usually if they really carry some compliance requirement,

1084
00:58:40,039 --> 00:58:42,239
but that might just be pointing to like you need

1085
00:58:42,320 --> 00:58:45,280
to solve that compliance requirement as well, right.

1086
00:58:45,119 --> 00:58:48,039
Speaker 2: Like, oh yeah, I mean, compliance doesn't mean security, so

1087
00:58:48,280 --> 00:58:49,719
like that's a completely different story.

1088
00:58:50,199 --> 00:58:50,679
Speaker 3: Yeah.

1089
00:58:50,719 --> 00:59:03,679
Speaker 1: Absolutely, it's an additional chex right on. That was that

1090
00:59:03,760 --> 00:59:04,760
was intense.

1091
00:59:07,000 --> 00:59:07,480
Speaker 3: A good way.

1092
00:59:08,039 --> 00:59:10,440
Speaker 1: Yeah, yeah, yeah, definitely in a good way. Definitely a

1093
00:59:10,480 --> 00:59:10,840
good way.

1094
00:59:13,280 --> 00:59:15,559
Speaker 2: I mean, I know we jumped through a lot of

1095
00:59:15,559 --> 00:59:18,280
different topics, Daniel. If you feel like there's something, you know,

1096
00:59:18,320 --> 00:59:21,239
one last thing you want to share regarding either dev

1097
00:59:21,280 --> 00:59:25,920
box or the QA copilot test pilot, you know.

1098
00:59:26,920 --> 00:59:32,400
Speaker 1: Have about it, let me think famous last words, go.

1099
00:59:34,079 --> 00:59:36,400
Speaker 3: Oh man, a lot of pressure. I mean, I don't know.

1100
00:59:36,519 --> 00:59:37,880
I guess I'll just said maybe this.

1101
00:59:37,920 --> 00:59:40,559
Speaker 4: Is less about the specific products and just kind of

1102
00:59:41,599 --> 00:59:45,320
things I'm excited about. But I am bullish on on

1103
00:59:45,679 --> 00:59:51,559
AI agents. I mean, obviously I'm building one, but I

1104
00:59:51,599 --> 00:59:54,360
just think there's more and more parts of software development

1105
00:59:54,400 --> 00:59:58,119
that could be taking care of through agents, and I

1106
00:59:58,119 --> 01:00:00,320
think it can be done in a way where we

1107
01:00:00,440 --> 01:00:03,800
take away that kind of repetitive work and we still

1108
01:00:04,320 --> 01:00:07,199
leave a lot of the fun and creativity to the humans.

1109
01:00:08,280 --> 01:00:10,960
I know there's more doomsday scenarios that people talk about

1110
01:00:11,039 --> 01:00:12,639
right where it's like, oh, we're all out of jobs

1111
01:00:12,679 --> 01:00:17,000
and whatnot, But I'm actually hoping it's more like, now

1112
01:00:17,000 --> 01:00:22,400
we can all achieve more because those less interesting parts

1113
01:00:22,639 --> 01:00:26,199
of the cycle are taking care of automatically, and now

1114
01:00:26,199 --> 01:00:30,119
you can focus more on system level thinking, on product

1115
01:00:30,199 --> 01:00:33,840
level thinking and so on. So yeah, maybe I am

1116
01:00:33,840 --> 01:00:35,920
an optimist like you guys were saying before.

1117
01:00:36,360 --> 01:00:40,719
Speaker 1: I'm just gonna say to that, no comment, I'm gonna

1118
01:00:40,719 --> 01:00:45,480
agree with you, Daniel, like, regardless regardless of what technology does.

1119
01:00:45,880 --> 01:00:48,800
I know, there's always going to be problems, and I've

1120
01:00:48,920 --> 01:00:52,840
I've made a career out of solving problems, so I'm

1121
01:00:52,880 --> 01:00:54,280
not too worried about it.

1122
01:00:54,599 --> 01:00:57,480
Speaker 2: Okay, I'm super worried about it. Should I share?

1123
01:00:57,559 --> 01:00:57,960
Speaker 1: Yeah?

1124
01:00:57,960 --> 01:00:59,800
Speaker 2: Absolutely, So you.

1125
01:00:59,760 --> 01:01:02,000
Speaker 4: Can worried about it, but like, let's make the world

1126
01:01:02,000 --> 01:01:02,320
we want.

1127
01:01:02,880 --> 01:01:03,119
Speaker 3: Well.

1128
01:01:03,519 --> 01:01:06,599
Speaker 2: I feel like it's not a technology that's right for

1129
01:01:07,159 --> 01:01:13,400
being democratized, for access for everyone to utilize equivalently. The

1130
01:01:13,440 --> 01:01:15,840
people with the most money and the most power will

1131
01:01:15,880 --> 01:01:20,679
have the most powerful agents at their disposal, and that

1132
01:01:20,800 --> 01:01:25,000
just entrenches their own power and prevents them from being ousted,

1133
01:01:25,519 --> 01:01:29,280
and it doesn't leave a lot of opportunity for those

1134
01:01:29,320 --> 01:01:34,039
that are already being disadvantaged to rise up and fight

1135
01:01:34,119 --> 01:01:35,320
against that oppression.

1136
01:01:37,239 --> 01:01:41,920
Speaker 1: There's a documentary on this called Terminator check it out.

1137
01:01:43,079 --> 01:01:43,880
I think I've heard it.

1138
01:01:45,039 --> 01:01:52,360
Speaker 2: I think it has a well known narrator, right, yeah, yeah, No,

1139
01:01:52,480 --> 01:01:58,679
I mean that's that for me, is that's optimism, that

1140
01:01:59,079 --> 01:02:02,960
documentary scenario.

1141
01:02:06,719 --> 01:02:08,880
Speaker 1: All right, Now that we've all made our way onto

1142
01:02:08,920 --> 01:02:11,239
an FBI watch list, let's move on to picks.

1143
01:02:13,880 --> 01:02:17,440
Speaker 2: Yeah, sure, so I'll go first today. My pick is

1144
01:02:17,480 --> 01:02:20,079
going to be The Martian, the book by Andy Weir.

1145
01:02:20,840 --> 01:02:23,599
He has a whole bunch of books. I don't know

1146
01:02:23,599 --> 01:02:25,280
if I'll say this one is the best, but it's

1147
01:02:25,320 --> 01:02:29,639
definitely really good. They're all science fiction adjacent. I mean,

1148
01:02:29,639 --> 01:02:34,199
they're not the reality played out in a hypothetical future

1149
01:02:34,239 --> 01:02:39,960
where well it's new scenario, and they're great. I think

1150
01:02:39,960 --> 01:02:43,800
it's really well written. One of the first things I

1151
01:02:43,840 --> 01:02:46,440
ever read from Andy where was actually something called The Egg,

1152
01:02:46,480 --> 01:02:49,079
which is a very short story which I find also

1153
01:02:49,159 --> 01:02:52,119
really good. And I and many many years later, I

1154
01:02:52,199 --> 01:02:55,000
read The Martian and I didn't realize that it was

1155
01:02:55,039 --> 01:02:57,880
the same author. And it's quite interesting to have read

1156
01:02:57,880 --> 01:02:59,639
two pieces by the same author and be like, wait,

1157
01:03:00,039 --> 01:03:01,559
it was this other really good thing that was written

1158
01:03:01,599 --> 01:03:03,920
in a similar way, and like going back and actually

1159
01:03:03,960 --> 01:03:06,599
seeing it's like I actually read that thing. So if

1160
01:03:06,599 --> 01:03:09,159
you haven't read it, I haven't seen the movie yet actually,

1161
01:03:09,199 --> 01:03:11,360
but if you haven't read the book, I highly recommend it.

1162
01:03:12,039 --> 01:03:14,400
Speaker 1: Right, and I have done both. I've read the book

1163
01:03:14,480 --> 01:03:18,800
and seen the movie. But I'm happy to hear you

1164
01:03:18,840 --> 01:03:25,320
say that that his other books are better, because that's yeah, yeah.

1165
01:03:24,840 --> 01:03:30,519
Speaker 2: So I really liked the short story. He has a

1166
01:03:31,119 --> 01:03:34,880
drawn comic with like an overlap between Alice in Wonderland

1167
01:03:35,039 --> 01:03:39,000
and Dorothy from Wizard of Oz, and I forget who

1168
01:03:39,039 --> 01:03:43,960
the third character is. That's okay. The Martians great. There's

1169
01:03:43,960 --> 01:03:46,079
two other books. I think there's a fourth one coming out.

1170
01:03:46,199 --> 01:03:48,800
They're not related at all. The one Luna I think

1171
01:03:48,880 --> 01:03:51,360
for the Moon. It's not as good but still interesting.

1172
01:03:51,400 --> 01:03:53,599
And then there is one with a Deep Space, which

1173
01:03:53,639 --> 01:03:55,320
is also really fantastic.

1174
01:03:56,519 --> 01:04:00,239
Speaker 1: Right on? Cool, Daniel, what'd you bring for pick?

1175
01:04:01,000 --> 01:04:01,480
Speaker 3: Awesome?

1176
01:04:01,880 --> 01:04:05,079
Speaker 4: So I have a book as well. It's Wild Robot.

1177
01:04:05,159 --> 01:04:08,280
So I think I mentioned earlier. I have two young kids,

1178
01:04:09,039 --> 01:04:10,800
an eight year old and a five year old, and

1179
01:04:10,840 --> 01:04:13,639
so I do a lot of bedtime routine and reading

1180
01:04:13,679 --> 01:04:17,079
with them, and so while Robot is one of the

1181
01:04:17,079 --> 01:04:19,800
books that I'm reading with one of my kids by

1182
01:04:19,800 --> 01:04:23,280
Peter Brown, there's a movie as well, kind of similar

1183
01:04:23,280 --> 01:04:27,639
to the example you gave, But yeah, I just find

1184
01:04:27,639 --> 01:04:30,320
it really interesting to read with my kids, your high level.

1185
01:04:30,320 --> 01:04:34,079
It's about a robot that founds itself in an island,

1186
01:04:34,079 --> 01:04:36,920
doesn't know where it came from, and eventually needs to

1187
01:04:36,960 --> 01:04:41,559
take care of an animal, and it kind of makes

1188
01:04:41,599 --> 01:04:44,239
you reflect on all these questions, like, you know, where

1189
01:04:44,360 --> 01:04:48,639
his parenthood is this robot taking care of this animal?

1190
01:04:49,199 --> 01:04:53,039
You know, is that a parent? What's the relationship between

1191
01:04:53,039 --> 01:04:54,039
that animal and the robot?

1192
01:04:54,119 --> 01:04:56,960
Speaker 3: And I don't know. I guess I get a little

1193
01:04:57,000 --> 01:04:58,280
sentimental because I'm reading that.

1194
01:04:58,239 --> 01:05:00,920
Speaker 4: With my kids and I have just I've just found

1195
01:05:00,960 --> 01:05:04,119
it like really interesting for both of us to go

1196
01:05:04,159 --> 01:05:04,960
through the story.

1197
01:05:05,519 --> 01:05:09,519
Speaker 1: That's cool, that's super cool. All right, Well, we're gonna

1198
01:05:09,519 --> 01:05:11,360
make it a three peat. I'm changing my pick and

1199
01:05:11,400 --> 01:05:13,920
I'm going with a book as well, because Warren you

1200
01:05:13,960 --> 01:05:18,719
said something about, you know, recognizing the writing style. A

1201
01:05:18,760 --> 01:05:25,239
while back, I read a book and really enjoyed it,

1202
01:05:25,280 --> 01:05:28,880
and I was like, Wow, this guy writes so much

1203
01:05:28,960 --> 01:05:33,400
like Stephen King. It's just insane. And the author's name

1204
01:05:33,440 --> 01:05:37,960
is Joe Hill. Turns out it's Stephen King's son, so oh, wow.

1205
01:05:38,599 --> 01:05:38,840
Speaker 3: Yeah.

1206
01:05:39,880 --> 01:05:42,639
Speaker 1: Yeah. The book the book I read was Heart Shaped Box.

1207
01:05:43,239 --> 01:05:47,280
And if you like Stephen King's writing style, Joe Hill

1208
01:05:47,360 --> 01:05:50,119
just seems to have picked up on that style and

1209
01:05:50,239 --> 01:05:52,119
continued running along with it.

1210
01:05:52,639 --> 01:05:55,599
Speaker 2: Is it also like thriller suspense stuff or is it

1211
01:05:55,880 --> 01:05:56,599
a different.

1212
01:05:56,280 --> 01:06:01,119
Speaker 1: Genre, same same stuff, same like sick twisted thing where

1213
01:06:01,159 --> 01:06:06,119
you're like, oh wow, I did not see that one coming. Yeah,

1214
01:06:06,199 --> 01:06:06,760
good stuff.

1215
01:06:07,840 --> 01:06:09,800
Speaker 2: Do you ever find it a challenge to like pick

1216
01:06:09,840 --> 01:06:11,119
up a book that you know is going to be

1217
01:06:11,199 --> 01:06:13,719
like that and go through it and be like, I'm

1218
01:06:14,119 --> 01:06:15,760
I don't know if I can keep going, like I'm

1219
01:06:15,800 --> 01:06:17,480
really afraid of what I'm going to read next.

1220
01:06:19,719 --> 01:06:20,840
Speaker 1: No, I don't. I don't think so.

1221
01:06:24,719 --> 01:06:29,000
Speaker 2: Yeah, He's like, I love it. That's what I look

1222
01:06:29,039 --> 01:06:29,519
forward to.

1223
01:06:29,920 --> 01:06:34,400
Speaker 1: Right, Yeah, I mean that. I guess. I guess the

1224
01:06:34,400 --> 01:06:36,519
rest of that conversation is for me and my therapist.

1225
01:06:36,559 --> 01:06:42,920
Speaker 2: But well, don't worry, we'll shut the camera off here

1226
01:06:42,960 --> 01:06:46,119
in a moment and conversation.

1227
01:06:47,360 --> 01:06:49,840
Speaker 1: Or it'll be like no, no, I promise I stopped recording.

1228
01:06:49,920 --> 01:06:51,000
Tell us all about it.

1229
01:06:51,159 --> 01:06:52,960
Speaker 2: Well, you see this little red light on the top

1230
01:06:53,039 --> 01:06:54,159
left hand corner.

1231
01:06:55,079 --> 01:06:57,320
Speaker 1: It's just a U I glitch. Don't worry about it,

1232
01:07:00,079 --> 01:07:01,800
and thank you so much for joining us. This has

1233
01:07:01,840 --> 01:07:03,559
been a blast, that's fantastic.

1234
01:07:03,960 --> 01:07:06,440
Speaker 3: I've enjoyed as well. Thank you guys for having me.

1235
01:07:06,880 --> 01:07:09,440
Speaker 1: All right, and to all of our listeners, hopefully you

1236
01:07:09,599 --> 01:07:12,039
enjoyed it as well. Thank you for listening, and we'll

1237
01:07:12,039 --> 01:07:14,400
see everyone next week.

