WEBVTT

1
00:00:02.720 --> 00:00:07.200
<v Speaker 1>And we're live with another episode of Adventures in DevOps.

2
00:00:07.639 --> 00:00:12.759
<v Speaker 2>Almost blew the podcast name right there, Warren, Well, you know, thanks.

3
00:00:12.519 --> 00:00:16.199
<v Speaker 1>Catching, I've only done I've villain done a few hundred

4
00:00:16.199 --> 00:00:18.839
<v Speaker 1>of these at this point. It's it's still a learning curve.

5
00:00:20.039 --> 00:00:22.879
<v Speaker 1>So how are you, Warren, to bring us a security

6
00:00:22.960 --> 00:00:24.039
<v Speaker 1>fact today?

7
00:00:24.079 --> 00:00:28.199
<v Speaker 2>Well, you know, I think again. I had brought one

8
00:00:28.440 --> 00:00:30.559
<v Speaker 2>last time, and I thought, you know, this time for

9
00:00:30.640 --> 00:00:34.079
<v Speaker 2>sure our fellow co host was going to be here

10
00:00:34.320 --> 00:00:38.479
<v Speaker 2>at share, the long awaited one, Matt. I had been

11
00:00:38.520 --> 00:00:43.200
<v Speaker 2>promised at it, you know, coincidence not here, so I

12
00:00:43.240 --> 00:00:44.399
<v Speaker 2>don't have anything today.

13
00:00:44.960 --> 00:00:50.880
<v Speaker 1>She's pausing for dramatic effect, like a really really dramatic effect.

14
00:00:52.479 --> 00:00:54.640
<v Speaker 2>It's gonna be the best fact ever. I swear it.

15
00:00:54.719 --> 00:00:58.799
<v Speaker 1>When it actually drops, it is it is right well.

16
00:00:59.079 --> 00:01:03.320
<v Speaker 1>Also joining us Daniel Loretto from Jedifhy. Daniel, Welcome to

17
00:01:03.320 --> 00:01:03.920
<v Speaker 1>the show man.

18
00:01:04.680 --> 00:01:06.599
<v Speaker 3>Thank you so much. Will happy to be here.

19
00:01:06.760 --> 00:01:10.599
<v Speaker 1>Dude, I'm excited to have you here. So you are

20
00:01:10.680 --> 00:01:13.640
<v Speaker 1>with Jedify. Now tell us a little bit about your background.

21
00:01:14.799 --> 00:01:17.120
<v Speaker 3>Yes, I'm a software engineered by trade.

22
00:01:18.560 --> 00:01:20.280
<v Speaker 4>You know, I've worked at a lot of different tech

23
00:01:20.280 --> 00:01:22.799
<v Speaker 4>companies of all different sizes, so I can talk about,

24
00:01:23.000 --> 00:01:27.719
<v Speaker 4>you know, different experiences. But I worked at Google, Airbnb, Twitter,

25
00:01:28.719 --> 00:01:31.159
<v Speaker 4>I worked at you know, tiny startups that you've never

26
00:01:31.200 --> 00:01:35.519
<v Speaker 4>heard of. I worked at Verta Health, which is a

27
00:01:35.599 --> 00:01:40.640
<v Speaker 4>telemedicine company for the ABDIS, where I ran engineering, data science,

28
00:01:40.719 --> 00:01:43.599
<v Speaker 4>it info SEC kind of like all the tech stuff.

29
00:01:43.920 --> 00:01:48.680
<v Speaker 4>And now I'm founder and CEO of Jedify. We're a

30
00:01:48.719 --> 00:01:52.000
<v Speaker 4>company kind of trying to make it easier and faster

31
00:01:52.120 --> 00:01:56.359
<v Speaker 4>to turn your ideas into working software. And anyways, today

32
00:01:56.400 --> 00:01:58.840
<v Speaker 4>we've been playing with AI and agents and how they

33
00:01:58.879 --> 00:02:00.799
<v Speaker 4>can help with the software develop process.

34
00:02:00.959 --> 00:02:04.000
<v Speaker 2>I mean, you you've got that opening so well nailed down.

35
00:02:04.079 --> 00:02:05.840
<v Speaker 2>I can tell this isn't the first time you've.

36
00:02:05.719 --> 00:02:09.680
<v Speaker 3>Had yourself think you.

37
00:02:11.759 --> 00:02:14.039
<v Speaker 1>Got the elevator pitch nailed well.

38
00:02:14.360 --> 00:02:15.840
<v Speaker 2>I mean, it's sort of funny because like, I meet

39
00:02:15.879 --> 00:02:17.919
<v Speaker 2>with a lot of people, and a lot of them

40
00:02:17.919 --> 00:02:20.520
<v Speaker 2>feel the need to sort of introduce themselves and say

41
00:02:20.520 --> 00:02:22.159
<v Speaker 2>a lot about their background, even if it has nothing

42
00:02:22.199 --> 00:02:24.759
<v Speaker 2>to do with the conversation at all, And some of

43
00:02:24.800 --> 00:02:26.960
<v Speaker 2>them just go on and on for minutes, and I'm like,

44
00:02:27.360 --> 00:02:29.639
<v Speaker 2>you're mentioning other people's names and I don't know who

45
00:02:29.639 --> 00:02:31.439
<v Speaker 2>any of those people are, and you're talking like they're

46
00:02:31.439 --> 00:02:33.599
<v Speaker 2>the most important people in the world, and like I

47
00:02:33.719 --> 00:02:35.400
<v Speaker 2>for sure, like I don't care. I mean, at least

48
00:02:35.439 --> 00:02:37.280
<v Speaker 2>you start to company name, so like, you know, that's

49
00:02:37.319 --> 00:02:38.719
<v Speaker 2>great on you. And I think a lot of people

50
00:02:38.800 --> 00:02:41.319
<v Speaker 2>know most of those companies. I think most of them

51
00:02:41.319 --> 00:02:44.599
<v Speaker 2>still exist by their original name, so you know, that's

52
00:02:44.599 --> 00:02:45.240
<v Speaker 2>what's important.

53
00:02:45.840 --> 00:02:51.560
<v Speaker 1>I was raised in a Midwest Protestant community, just really

54
00:02:51.680 --> 00:03:01.520
<v Speaker 1>deep for it's just not saying anything. You're gonna mute me,

55
00:03:01.560 --> 00:03:01.960
<v Speaker 1>aren't you.

56
00:03:02.280 --> 00:03:03.879
<v Speaker 2>I got, I got. I actually got sucked for a

57
00:03:03.919 --> 00:03:06.960
<v Speaker 2>second because I spent not short period of time in

58
00:03:07.000 --> 00:03:09.520
<v Speaker 2>the Midwest after I graduated from the university because it

59
00:03:09.560 --> 00:03:12.479
<v Speaker 2>was the only place that I could get hired as

60
00:03:12.479 --> 00:03:15.439
<v Speaker 2>a job. I wasn't actually a software engineer by trade,

61
00:03:15.919 --> 00:03:17.240
<v Speaker 2>and so I ended up there and I was like,

62
00:03:18.000 --> 00:03:19.879
<v Speaker 2>do I have a connection for this, Like can I

63
00:03:19.919 --> 00:03:23.439
<v Speaker 2>talk about the religious values? I'm like, not really. I

64
00:03:23.479 --> 00:03:26.280
<v Speaker 2>actually I actually don't know a lot there, Like I've

65
00:03:26.319 --> 00:03:29.240
<v Speaker 2>never really been a huge into the religious scene, so

66
00:03:29.560 --> 00:03:31.719
<v Speaker 2>I can't say anything. And so I just was like,

67
00:03:31.759 --> 00:03:33.080
<v Speaker 2>I'm just gonna keep my mouth shut.

68
00:03:33.800 --> 00:03:36.520
<v Speaker 1>I was trying. I was thinking like in the second

69
00:03:36.560 --> 00:03:40.319
<v Speaker 1>Austin Powers movie, whenever doctor Evil goes to therapy with

70
00:03:40.360 --> 00:03:44.479
<v Speaker 1>his son Scott and they're like, tell us about yourself,

71
00:03:44.479 --> 00:03:46.439
<v Speaker 1>and doctor Evil gets up and he does like this

72
00:03:46.599 --> 00:03:50.000
<v Speaker 1>long rant about how he was raised by his father

73
00:03:50.159 --> 00:03:53.599
<v Speaker 1>and it goes really really deep. But I couldn't remember

74
00:03:53.719 --> 00:03:55.280
<v Speaker 1>enough of it to try to work it into it

75
00:03:55.319 --> 00:03:56.039
<v Speaker 1>as a joke.

76
00:03:55.919 --> 00:03:58.719
<v Speaker 2>Here, So don't don't worry. You'll have plenty of opportunity

77
00:03:58.800 --> 00:04:00.719
<v Speaker 2>to go look up that for for next time.

78
00:04:01.120 --> 00:04:04.719
<v Speaker 1>So today chick for the next S episode.

79
00:04:06.000 --> 00:04:10.520
<v Speaker 2>I don't spoil it now. I really like the idea

80
00:04:10.719 --> 00:04:14.560
<v Speaker 2>of getting back on topic of dev boxes, environment machines,

81
00:04:14.560 --> 00:04:17.040
<v Speaker 2>Like I feel like this is a huge challenge that

82
00:04:17.240 --> 00:04:21.959
<v Speaker 2>still exists. And you know, it's interesting because I work

83
00:04:22.199 --> 00:04:24.279
<v Speaker 2>personally and like over the years and a lot of

84
00:04:24.319 --> 00:04:27.360
<v Speaker 2>different ideas and a lot of different software languages, and

85
00:04:28.240 --> 00:04:30.600
<v Speaker 2>I've always hated it, Like there was never a time

86
00:04:30.600 --> 00:04:33.120
<v Speaker 2>where I'm like, you know what, working in this language,

87
00:04:33.160 --> 00:04:36.920
<v Speaker 2>this is the best. And I feel like, you know,

88
00:04:36.920 --> 00:04:40.040
<v Speaker 2>if you're in the space, you've got some horror stories.

89
00:04:40.040 --> 00:04:42.160
<v Speaker 2>You've got some like like how did you even get

90
00:04:42.160 --> 00:04:42.480
<v Speaker 2>into this?

91
00:04:42.560 --> 00:04:42.720
<v Speaker 3>You know?

92
00:04:43.040 --> 00:04:44.240
<v Speaker 2>Is why is this where you went?

93
00:04:45.279 --> 00:04:45.759
<v Speaker 3>Yeah?

94
00:04:45.800 --> 00:04:49.360
<v Speaker 4>So man, So I mean I guess a lot of

95
00:04:49.360 --> 00:04:52.319
<v Speaker 4>these stories start with kind of scratching your own edge

96
00:04:52.319 --> 00:04:55.319
<v Speaker 4>and trying to solve a problem that you have. So,

97
00:04:55.399 --> 00:04:58.240
<v Speaker 4>you know, just having worked at different software companies, I've

98
00:04:58.279 --> 00:05:02.160
<v Speaker 4>seen those stories where things work on your computer and

99
00:05:02.199 --> 00:05:06.680
<v Speaker 4>they don't work on your teammates computer, or there's a

100
00:05:06.720 --> 00:05:09.800
<v Speaker 4>bug in production where you can't reproduce it locally, and

101
00:05:10.160 --> 00:05:13.079
<v Speaker 4>often that's tied to the environment. And so when we

102
00:05:13.079 --> 00:05:16.399
<v Speaker 4>started edifying, we were like, you know what, from the beginning,

103
00:05:16.439 --> 00:05:20.319
<v Speaker 4>let's just set up some reproducible the environments. And we

104
00:05:20.399 --> 00:05:24.480
<v Speaker 4>decided to set up some Docker files for every kind

105
00:05:24.480 --> 00:05:27.480
<v Speaker 4>of piece of software that we were working on. But

106
00:05:27.639 --> 00:05:31.600
<v Speaker 4>very quickly we run into some pains because you know,

107
00:05:31.680 --> 00:05:35.959
<v Speaker 4>Docker uses a lot of resources on your computer, and

108
00:05:36.000 --> 00:05:38.959
<v Speaker 4>so when you're developing locally, like shipping to production great,

109
00:05:39.439 --> 00:05:42.600
<v Speaker 4>but developing locally like I don't know, the fan spinning

110
00:05:43.639 --> 00:05:46.839
<v Speaker 4>on your laptop, you do a little change and you

111
00:05:46.879 --> 00:05:48.759
<v Speaker 4>want to see the results, and oh, it was the

112
00:05:48.800 --> 00:05:50.839
<v Speaker 4>wrong line in the doctor file, so you busted the

113
00:05:50.959 --> 00:05:54.519
<v Speaker 4>entire cash and now you're like rebuilding the entire container.

114
00:05:54.920 --> 00:05:57.480
<v Speaker 4>And so all of that felt really, really painful. And

115
00:05:57.560 --> 00:06:01.800
<v Speaker 4>so we had heard about this technological nicks. We wanted

116
00:06:01.839 --> 00:06:06.480
<v Speaker 4>to try it. We kind of felt two things at once.

117
00:06:07.399 --> 00:06:08.680
<v Speaker 4>One it was like, this is awesome.

118
00:06:08.879 --> 00:06:11.160
<v Speaker 3>It kind of creates reproducible environments.

119
00:06:11.199 --> 00:06:14.079
<v Speaker 4>And then we were like, oh my god, the developer

120
00:06:14.160 --> 00:06:17.360
<v Speaker 4>experience and UX for this thing is not what we

121
00:06:17.399 --> 00:06:21.199
<v Speaker 4>wanted to be. So anyways, we ended up building an

122
00:06:21.240 --> 00:06:23.680
<v Speaker 4>open source tool called debox that kind of wraps nicks

123
00:06:23.759 --> 00:06:27.240
<v Speaker 4>and lets you create those environments locally. And you know,

124
00:06:27.279 --> 00:06:29.800
<v Speaker 4>I just posted it on Hacker News before.

125
00:06:29.519 --> 00:06:30.639
<v Speaker 3>We knew it.

126
00:06:30.639 --> 00:06:34.120
<v Speaker 4>It was like number one on Hacker News that day,

127
00:06:34.199 --> 00:06:36.560
<v Speaker 4>and so kind of told those oh, people are having

128
00:06:36.600 --> 00:06:40.160
<v Speaker 4>this problem that they want some solution, and that's yeah,

129
00:06:40.240 --> 00:06:42.560
<v Speaker 4>that's how we started with the developer environment work.

130
00:06:42.920 --> 00:06:45.959
<v Speaker 2>I love the story of like pain and suffering through

131
00:06:46.040 --> 00:06:49.720
<v Speaker 2>development process because it's such an unusual I mean, it's

132
00:06:49.720 --> 00:06:53.319
<v Speaker 2>such a common strategy for innovation, right, Like I as

133
00:06:53.319 --> 00:06:56.279
<v Speaker 2>a software engineer, you can fix your own tools in

134
00:06:56.279 --> 00:07:00.199
<v Speaker 2>a way, and so realistically, like when that happens, it's like, well,

135
00:07:00.199 --> 00:07:02.839
<v Speaker 2>I'm going to make something better that doesn't it isn't

136
00:07:02.879 --> 00:07:04.879
<v Speaker 2>as bad as the thing we're using. It's interesting you

137
00:07:04.920 --> 00:07:06.560
<v Speaker 2>brought up docer. One of the things I've seen a

138
00:07:06.560 --> 00:07:10.240
<v Speaker 2>lot is engineering teams attempting to get the development experience

139
00:07:10.240 --> 00:07:12.720
<v Speaker 2>on their local machine working through Docker. And this is

140
00:07:12.720 --> 00:07:14.720
<v Speaker 2>something I've never understood, and maybe this is something you

141
00:07:14.759 --> 00:07:18.240
<v Speaker 2>could jump into if you have some understanding about it,

142
00:07:18.279 --> 00:07:21.560
<v Speaker 2>Like why do that? Like, if I have the source

143
00:07:21.560 --> 00:07:24.800
<v Speaker 2>code on my machine that I've cloned from get repository somewhere,

144
00:07:24.879 --> 00:07:27.199
<v Speaker 2>why why not just install the couple of tools I

145
00:07:27.240 --> 00:07:29.519
<v Speaker 2>need and you know, hit F five and run it.

146
00:07:29.839 --> 00:07:31.279
<v Speaker 2>What does doctor really get me there?

147
00:07:32.680 --> 00:07:32.920
<v Speaker 3>Yeah?

148
00:07:32.959 --> 00:07:37.199
<v Speaker 4>So I mean I think the issue forget doctor for

149
00:07:37.240 --> 00:07:39.680
<v Speaker 4>a second, like why isn't it enough, you know doctor

150
00:07:39.720 --> 00:07:41.680
<v Speaker 4>or no doctor? Why isn't it enough just to check

151
00:07:41.680 --> 00:07:43.879
<v Speaker 4>out the code, install the tools, and color to day.

152
00:07:45.600 --> 00:07:49.439
<v Speaker 4>What happens is that in many cases, you don't just

153
00:07:49.519 --> 00:07:53.920
<v Speaker 4>need the source code. You need the specific versions of

154
00:07:53.920 --> 00:07:56.240
<v Speaker 4>the tools that you're working with. So it's not like

155
00:07:57.360 --> 00:08:01.639
<v Speaker 4>I need I don't know Go or Python? Is I

156
00:08:01.720 --> 00:08:04.519
<v Speaker 4>need Python two point seven point eleven?

157
00:08:04.959 --> 00:08:05.160
<v Speaker 3>Right?

158
00:08:05.199 --> 00:08:06.160
<v Speaker 2>Hopefully not anymore?

159
00:08:07.279 --> 00:08:08.480
<v Speaker 3>Yeah?

160
00:08:09.519 --> 00:08:11.839
<v Speaker 1>Ussion but just well but but see, I mean you

161
00:08:11.879 --> 00:08:12.319
<v Speaker 1>say that.

162
00:08:12.240 --> 00:08:15.040
<v Speaker 4>But like what happens a lot is is you're working

163
00:08:15.040 --> 00:08:18.480
<v Speaker 4>at a large company, uh, and there's this project that

164
00:08:18.959 --> 00:08:22.720
<v Speaker 4>everybody depends on, but it's not staffed well enough because

165
00:08:22.759 --> 00:08:24.120
<v Speaker 4>all the other things became.

166
00:08:23.839 --> 00:08:26.879
<v Speaker 3>More important, and you got to keep that thing running.

167
00:08:26.759 --> 00:08:30.519
<v Speaker 1>Right every day everybody depends on it, and nobody's willing

168
00:08:30.560 --> 00:08:32.919
<v Speaker 1>to update exactly there is.

169
00:08:33.639 --> 00:08:35.240
<v Speaker 2>I think we should just pause for a moment here,

170
00:08:35.279 --> 00:08:38.039
<v Speaker 2>because I know a non trivial amount of our audience

171
00:08:38.120 --> 00:08:41.360
<v Speaker 2>members are like suffering through some sort of PTSD withdrawal

172
00:08:41.440 --> 00:08:44.000
<v Speaker 2>right now. Having said that, like, or you know, you're

173
00:08:44.000 --> 00:08:46.519
<v Speaker 2>working in some environment and you know some code that

174
00:08:46.559 --> 00:08:48.799
<v Speaker 2>hasn't been touched in a while is not working, Like

175
00:08:49.120 --> 00:08:51.960
<v Speaker 2>I feel like that's like ten percent of your job,

176
00:08:52.559 --> 00:08:54.759
<v Speaker 2>whatever it is. You know, you have no idea what's

177
00:08:54.759 --> 00:08:57.840
<v Speaker 2>going on there, and it's not working, and you didn't

178
00:08:57.840 --> 00:09:00.600
<v Speaker 2>write the code. You may be lucky if you knew

179
00:09:00.600 --> 00:09:03.960
<v Speaker 2>the person who did write it. Because so one of

180
00:09:04.039 --> 00:09:05.720
<v Speaker 2>one of my first jobs I had, there was an

181
00:09:05.720 --> 00:09:11.639
<v Speaker 2>engineer who if I saw his name on a commit message,

182
00:09:12.039 --> 00:09:14.080
<v Speaker 2>I know that there was gonna be a bug with

183
00:09:14.120 --> 00:09:15.960
<v Speaker 2>that code that was going to cause me to lose

184
00:09:16.000 --> 00:09:18.559
<v Speaker 2>the rest of my best I like, if I'm debugging

185
00:09:18.600 --> 00:09:22.000
<v Speaker 2>around and I see a line of code by bye

186
00:09:21.720 --> 00:09:25.399
<v Speaker 2>by by Craig, uh, that's it, Like I'm sorry, Like

187
00:09:25.440 --> 00:09:32.480
<v Speaker 2>I know it's gone.

188
00:09:31.600 --> 00:09:32.519
<v Speaker 3>So but but anyway.

189
00:09:32.559 --> 00:09:35.159
<v Speaker 4>I mean, yeah, that's the point, Like you often have

190
00:09:35.240 --> 00:09:37.879
<v Speaker 4>to work with these projects and they often need specific

191
00:09:37.960 --> 00:09:42.399
<v Speaker 4>versions of software, and if you don't use those versions

192
00:09:42.399 --> 00:09:44.440
<v Speaker 4>of those tools, things.

193
00:09:44.200 --> 00:09:45.080
<v Speaker 3>Bring, right.

194
00:09:45.120 --> 00:09:49.519
<v Speaker 4>And so I guess in a in a project where

195
00:09:49.559 --> 00:09:52.720
<v Speaker 4>you haven't set up too much around developer environments, you

196
00:09:52.799 --> 00:09:56.840
<v Speaker 4>might just have some read me file saying install Python. Uh,

197
00:09:56.879 --> 00:09:59.639
<v Speaker 4>and so everybody is installing Python, but somebody install Python.

198
00:10:00.320 --> 00:10:03.600
<v Speaker 4>You know a year ago, somebody installed Python six months ago,

199
00:10:03.759 --> 00:10:06.960
<v Speaker 4>somebody in Stoll python today. They all got different versions

200
00:10:06.960 --> 00:10:09.799
<v Speaker 4>of Python, right, and you compound that by all the

201
00:10:09.840 --> 00:10:11.480
<v Speaker 4>tools you might need in a project, right, so it's

202
00:10:11.519 --> 00:10:14.679
<v Speaker 4>not just Python. But maybe let's say you're using protocol buffers,

203
00:10:14.720 --> 00:10:20.120
<v Speaker 4>you have a compiler, you know, and so on, and so.

204
00:10:21.159 --> 00:10:23.720
<v Speaker 3>Yeah, I think that it's rude, like that's.

205
00:10:23.600 --> 00:10:27.840
<v Speaker 4>That mismatch of versions is kind of what people are

206
00:10:27.840 --> 00:10:31.000
<v Speaker 4>trying to solve that is not solved by just to

207
00:10:31.039 --> 00:10:34.799
<v Speaker 4>read missaying install these tools and start working on the project.

208
00:10:36.240 --> 00:10:39.279
<v Speaker 2>Yeah, I definitely agree. I mean there's a huge aspect here,

209
00:10:39.320 --> 00:10:42.799
<v Speaker 2>which I think has to do with the languages themselves

210
00:10:42.840 --> 00:10:45.519
<v Speaker 2>and their package managers are part of that. I got

211
00:10:45.600 --> 00:10:48.120
<v Speaker 2>it working once. Let's not go back and touch it

212
00:10:48.720 --> 00:10:53.399
<v Speaker 2>by even the language maintainers themselves. You know, it's very

213
00:10:53.399 --> 00:10:57.559
<v Speaker 2>limited experience there, and so they go off they you know,

214
00:10:57.720 --> 00:11:00.639
<v Speaker 2>the packaging manager for whatever language you're using, like it's working,

215
00:11:01.799 --> 00:11:03.720
<v Speaker 2>and so there are some that are definitely not as

216
00:11:03.720 --> 00:11:05.840
<v Speaker 2>great as others. And then you just compile that on

217
00:11:05.879 --> 00:11:09.120
<v Speaker 2>and put that usage as a dependency for it literally

218
00:11:09.159 --> 00:11:12.240
<v Speaker 2>everyone who uses that language and framework. And I still

219
00:11:12.240 --> 00:11:14.720
<v Speaker 2>think there are languages today that no one is happy

220
00:11:14.720 --> 00:11:17.799
<v Speaker 2>with the package manager for that language, and yet somehow

221
00:11:17.840 --> 00:11:18.759
<v Speaker 2>they're getting over it.

222
00:11:18.840 --> 00:11:25.440
<v Speaker 4>And I mean there's languages where you have five package managers.

223
00:11:25.960 --> 00:11:30.320
<v Speaker 2>So I have a feeling that you are throwing the

224
00:11:30.440 --> 00:11:35.440
<v Speaker 2>JavaScript environment under the bus there a little bit. But

225
00:11:35.519 --> 00:11:39.600
<v Speaker 2>I have to say that JavaScript is one of no

226
00:11:39.720 --> 00:11:44.840
<v Speaker 2>JS specifically, is one of the best development communities compared

227
00:11:44.879 --> 00:11:47.879
<v Speaker 2>to the other ones. Like yes, there's en package managers,

228
00:11:48.159 --> 00:11:51.919
<v Speaker 2>but all of them like work at least ninety nine

229
00:11:51.960 --> 00:11:55.759
<v Speaker 2>percent of the way, And there are problems with them

230
00:11:55.799 --> 00:11:59.679
<v Speaker 2>for sure, individually, you know, they're not so totally perfectly robust,

231
00:12:00.120 --> 00:12:01.840
<v Speaker 2>but you know, compared to some other ones, like I

232
00:12:01.879 --> 00:12:03.879
<v Speaker 2>don't I don't struggle to pull out a new jobascript

233
00:12:03.879 --> 00:12:06.440
<v Speaker 2>package manager. I do struggle to figure out how to

234
00:12:06.480 --> 00:12:08.840
<v Speaker 2>make Maven work, even though I've gotten it to work

235
00:12:09.200 --> 00:12:11.759
<v Speaker 2>like a hundred times before, and.

236
00:12:11.440 --> 00:12:14.200
<v Speaker 4>I haven't touched the GEMA world in such a long time.

237
00:12:14.360 --> 00:12:16.039
<v Speaker 4>I have no comments.

238
00:12:16.279 --> 00:12:19.000
<v Speaker 1>Yeah, uh, just had a little bile come up in

239
00:12:19.039 --> 00:12:19.960
<v Speaker 1>the back road.

240
00:12:22.440 --> 00:12:22.600
<v Speaker 3>You know.

241
00:12:22.639 --> 00:12:25.480
<v Speaker 2>The thing is like I remember seeing sharp like new

242
00:12:25.559 --> 00:12:28.799
<v Speaker 2>Get was not a good package repository. The tool wasn't great.

243
00:12:29.679 --> 00:12:32.080
<v Speaker 2>Even dot Net improved a lot of things there, but

244
00:12:32.080 --> 00:12:34.480
<v Speaker 2>they had a diamond dependency resolution problem where like you

245
00:12:34.559 --> 00:12:38.320
<v Speaker 2>depend on two dependencies who require different versions, and and

246
00:12:38.480 --> 00:12:40.440
<v Speaker 2>no j has like figured out how to get around that.

247
00:12:40.600 --> 00:12:43.840
<v Speaker 2>NPM solved it, yarn't solved it, PMPM, they all have

248
00:12:43.840 --> 00:12:46.720
<v Speaker 2>solutions there. So yeah, I mean the individual tools aren't great,

249
00:12:46.759 --> 00:12:48.440
<v Speaker 2>and it's not great that there's lots of them, but

250
00:12:48.480 --> 00:12:51.240
<v Speaker 2>at least I feel like they're not getting in my way.

251
00:12:51.679 --> 00:12:54.159
<v Speaker 2>But yeah, I like, if I'm programming in C plus

252
00:12:54.200 --> 00:12:56.039
<v Speaker 2>plus or something old school with it for like a

253
00:12:56.120 --> 00:12:59.039
<v Speaker 2>large company, then not only are there dependencies that are

254
00:12:59.320 --> 00:13:02.240
<v Speaker 2>probably commit to a repository, like they're not in some

255
00:13:02.639 --> 00:13:05.799
<v Speaker 2>package manager somewhere, they're like the binary dependencies are like

256
00:13:05.879 --> 00:13:10.840
<v Speaker 2>in the source code and they require some Microsoft reddistributable

257
00:13:11.039 --> 00:13:14.080
<v Speaker 2>C plus plus library from twenty years ago that I

258
00:13:14.120 --> 00:13:15.879
<v Speaker 2>have to go and download from the internet from some

259
00:13:15.919 --> 00:13:18.919
<v Speaker 2>suspicious website in order to even you know, build my

260
00:13:19.039 --> 00:13:20.559
<v Speaker 2>project to get it to run somewhere.

261
00:13:22.360 --> 00:13:24.200
<v Speaker 3>Yeah, agreed, So yeah.

262
00:13:24.240 --> 00:13:27.840
<v Speaker 4>Anyways, I think it's all those paper cards that just

263
00:13:28.600 --> 00:13:30.840
<v Speaker 4>slow you down in your development process, and all of

264
00:13:30.879 --> 00:13:33.519
<v Speaker 4>a sudden, you are, I don't know, you wanted to

265
00:13:33.519 --> 00:13:35.720
<v Speaker 4>work on a feature, right, you wanted to work on

266
00:13:36.039 --> 00:13:39.480
<v Speaker 4>something related to the project that you're interested in, and

267
00:13:40.559 --> 00:13:44.480
<v Speaker 4>you find yourself independency hell and just going deep into

268
00:13:44.559 --> 00:13:47.559
<v Speaker 4>package managers when all you wanted to do was your

269
00:13:47.600 --> 00:13:48.720
<v Speaker 4>working on an actual feature.

270
00:13:50.080 --> 00:13:52.480
<v Speaker 1>Well, I think that's I think another aspect of that

271
00:13:52.600 --> 00:13:56.600
<v Speaker 1>is onboarding new developers on your team, right, Like, how

272
00:13:56.639 --> 00:13:59.519
<v Speaker 1>long does it take to get them where they're actually

273
00:14:00.159 --> 00:14:03.159
<v Speaker 1>working on the code that you hired them to work

274
00:14:03.200 --> 00:14:09.519
<v Speaker 1>on versus setting up an environment to actually see what

275
00:14:09.679 --> 00:14:11.480
<v Speaker 1>they're actually supposed to be building.

276
00:14:11.799 --> 00:14:14.240
<v Speaker 2>That sounds like a question to air our dirty laundry

277
00:14:14.240 --> 00:14:15.879
<v Speaker 2>on the show, So I guess I'll go first. You know,

278
00:14:15.919 --> 00:14:17.679
<v Speaker 2>it's like a couple of weeks to a month, and

279
00:14:17.720 --> 00:14:20.200
<v Speaker 2>then I think we know that the long tail turnaround

280
00:14:20.200 --> 00:14:23.440
<v Speaker 2>is like ninety days to get to peak performance and

281
00:14:23.480 --> 00:14:25.639
<v Speaker 2>then it's like six months to do effective reviews at

282
00:14:25.639 --> 00:14:28.960
<v Speaker 2>that point. Before that, I think there is a very

283
00:14:29.000 --> 00:14:32.399
<v Speaker 2>long time where there's still a lot of training and

284
00:14:32.679 --> 00:14:35.759
<v Speaker 2>education that goes in not but for us, it's mostly

285
00:14:35.879 --> 00:14:39.879
<v Speaker 2>domain specific, like if we don't hire a domain expert

286
00:14:39.879 --> 00:14:42.519
<v Speaker 2>for our company, we deal a lot in the authentication

287
00:14:42.639 --> 00:14:45.639
<v Speaker 2>authorization space, So like how Samuel works, how oh off

288
00:14:45.639 --> 00:14:49.200
<v Speaker 2>two works, how open id works, how SCIM works, how

289
00:14:49.240 --> 00:14:51.320
<v Speaker 2>audit trails work. Like, there's a lot of things that

290
00:14:51.720 --> 00:14:53.360
<v Speaker 2>you don't want to get wrong in a way, and

291
00:14:53.440 --> 00:14:55.360
<v Speaker 2>so there are some tools. So but it's a long

292
00:14:55.399 --> 00:14:57.879
<v Speaker 2>period of time. Will you're smiling there, so I feel like,

293
00:14:57.879 --> 00:14:59.480
<v Speaker 2>you know you're going to tell me that you know

294
00:14:59.600 --> 00:15:03.039
<v Speaker 2>your new hires that I believe you were interested in

295
00:15:03.039 --> 00:15:06.399
<v Speaker 2>interviewing and getting into your team. They're like a couple

296
00:15:06.399 --> 00:15:08.679
<v Speaker 2>of weeks max, and they're already a performance.

297
00:15:09.559 --> 00:15:13.919
<v Speaker 1>So this is definitely an outlier. So I won't say

298
00:15:13.919 --> 00:15:17.039
<v Speaker 1>that this is the state of our environment by any means.

299
00:15:17.039 --> 00:15:21.559
<v Speaker 1>But the last guy I hired about a month ago,

300
00:15:22.320 --> 00:15:25.360
<v Speaker 1>he was pushing production commits by the end of the week,

301
00:15:25.960 --> 00:15:29.759
<v Speaker 1>which is good or bad, right, Okay, he was pushing

302
00:15:30.480 --> 00:15:36.000
<v Speaker 1>functional production commits that actually did beneficial things.

303
00:15:36.679 --> 00:15:38.480
<v Speaker 2>Wow, that's amazing.

304
00:15:39.279 --> 00:15:41.679
<v Speaker 1>Yeah, but it was like it was a very unique situation,

305
00:15:41.759 --> 00:15:44.200
<v Speaker 1>you know what. We hired him and he came in

306
00:15:44.240 --> 00:15:47.080
<v Speaker 1>with a very specific set of skills that we needed.

307
00:15:47.360 --> 00:15:50.159
<v Speaker 1>So he looked at our environment and was like, oh, yeah,

308
00:15:50.200 --> 00:15:53.519
<v Speaker 1>here's where it's wrong and immediately started contributing to that.

309
00:15:53.879 --> 00:15:55.919
<v Speaker 1>And then there's like the rest of the company, like

310
00:15:56.000 --> 00:15:58.480
<v Speaker 1>the Web three space that we live in, where he

311
00:15:58.639 --> 00:16:02.639
<v Speaker 1>still has a lot of onboarding to do before he

312
00:16:02.720 --> 00:16:06.000
<v Speaker 1>fully understands that. So it was cool to see and

313
00:16:06.480 --> 00:16:11.279
<v Speaker 1>I paraded it around the company just because that's the

314
00:16:11.360 --> 00:16:14.080
<v Speaker 1>kind of person I am. But you know, and like

315
00:16:14.120 --> 00:16:16.840
<v Speaker 1>the big picture of things, you know, he couldn't have

316
00:16:16.960 --> 00:16:20.080
<v Speaker 1>done a domain specific commit in that first week.

317
00:16:20.440 --> 00:16:24.279
<v Speaker 2>Yeah, are you using something like some sort of thermal

318
00:16:24.519 --> 00:16:28.279
<v Speaker 2>development environment or like how was he able to get

319
00:16:28.279 --> 00:16:29.360
<v Speaker 2>acclimated so quickly?

320
00:16:30.039 --> 00:16:32.480
<v Speaker 1>Yeah, it was over. It was on our Kubernetes clusters,

321
00:16:32.519 --> 00:16:36.480
<v Speaker 1>and so he had a deep Kubernetes experience and just

322
00:16:36.519 --> 00:16:39.919
<v Speaker 1>looked at the way that ours were configured and was like, oh, yeah,

323
00:16:40.039 --> 00:16:42.799
<v Speaker 1>here's here's something that's going to help you out. And

324
00:16:42.840 --> 00:16:46.440
<v Speaker 1>then he also had a lot of OI d C experience,

325
00:16:46.519 --> 00:16:51.559
<v Speaker 1>so he removed we were maintaining a lot of permissions

326
00:16:51.559 --> 00:16:57.559
<v Speaker 1>and roles via pull requests and get repository and so

327
00:16:57.639 --> 00:17:00.559
<v Speaker 1>he refactored that to use OI DC so that you

328
00:17:00.639 --> 00:17:02.840
<v Speaker 1>just get it inherited when you authenticate.

329
00:17:06.720 --> 00:17:06.920
<v Speaker 3>Yeah.

330
00:17:06.920 --> 00:17:09.640
<v Speaker 4>I mean, I think the okay, you guys presented two

331
00:17:09.680 --> 00:17:13.759
<v Speaker 4>different like onboarding experiences. But I think regardless for me,

332
00:17:15.640 --> 00:17:19.960
<v Speaker 4>you want to spend the time creating the main specific knowledge.

333
00:17:19.960 --> 00:17:22.559
<v Speaker 4>You want to spend the time kind of teaching and

334
00:17:22.640 --> 00:17:27.880
<v Speaker 4>mentoring and having your your employees grow. I think you

335
00:17:27.920 --> 00:17:30.400
<v Speaker 4>want to take away there. I'm just fighting with the

336
00:17:30.480 --> 00:17:35.279
<v Speaker 4>tools and this should be a solve problem for sure. Yeah,

337
00:17:35.400 --> 00:17:37.480
<v Speaker 4>I still have to deal with this now for I

338
00:17:37.519 --> 00:17:40.119
<v Speaker 4>don't know, to days, just to get my environment set

339
00:17:40.160 --> 00:17:42.839
<v Speaker 4>up before I can even start, you know, doing a

340
00:17:42.880 --> 00:17:45.079
<v Speaker 4>little co change and testing it.

341
00:17:46.839 --> 00:17:51.920
<v Speaker 1>Yeah, I totally agree. Like, are none of our customers

342
00:17:52.519 --> 00:17:55.359
<v Speaker 1>benefit from the time and effort we spend into working

343
00:17:55.440 --> 00:17:58.400
<v Speaker 1>on Kubernetes. They only benefit from the time and effort

344
00:17:58.440 --> 00:18:00.920
<v Speaker 1>we spend building a better product.

345
00:18:02.039 --> 00:18:03.640
<v Speaker 2>That they that they use.

346
00:18:03.680 --> 00:18:06.400
<v Speaker 1>And I think that's what you're alluding to and warned

347
00:18:06.559 --> 00:18:09.440
<v Speaker 1>to catch on a point you made earlier there, you know,

348
00:18:09.480 --> 00:18:14.720
<v Speaker 1>dealing with ephemeral environments. We recently refactored a bunch of

349
00:18:14.759 --> 00:18:21.960
<v Speaker 1>ours because we had this one VM instance with I

350
00:18:22.000 --> 00:18:24.880
<v Speaker 1>don't know, it had hundreds of gigs of RAM on it,

351
00:18:25.480 --> 00:18:27.599
<v Speaker 1>and it was a bunch of Doctor composed files and

352
00:18:27.640 --> 00:18:31.559
<v Speaker 1>when you needed a new integration environment, you would copy

353
00:18:31.599 --> 00:18:34.799
<v Speaker 1>and paste one of the existing Doctor composed directories and

354
00:18:34.799 --> 00:18:37.200
<v Speaker 1>then go modify the stuff that you needed in there.

355
00:18:37.799 --> 00:18:42.079
<v Speaker 1>And so we refactored that to use Helm charts. So

356
00:18:42.160 --> 00:18:46.359
<v Speaker 1>now the launching of a new environment, you just add

357
00:18:46.359 --> 00:18:49.400
<v Speaker 1>a new Helm Helme values file for the environment that

358
00:18:49.440 --> 00:18:53.880
<v Speaker 1>you want and then let Helm build that out for you.

359
00:18:54.559 --> 00:18:57.759
<v Speaker 2>Yeah. So I will say that NIXT is something that's

360
00:18:57.759 --> 00:18:59.960
<v Speaker 2>always scared me personally, Like I feel like I never

361
00:19:00.240 --> 00:19:02.759
<v Speaker 2>wasn't an opportunity where it was like, you know what,

362
00:19:03.039 --> 00:19:06.200
<v Speaker 2>I'm going to reach for that new tool. So like,

363
00:19:06.839 --> 00:19:09.200
<v Speaker 2>you know, congratulations for you know, seeing that as an

364
00:19:09.200 --> 00:19:12.079
<v Speaker 2>opportunity and going at it and then building the UI

365
00:19:12.160 --> 00:19:13.759
<v Speaker 2>on top of it to make it happen. What do

366
00:19:13.759 --> 00:19:16.559
<v Speaker 2>you feel like the turnaround time is for getting new

367
00:19:17.119 --> 00:19:22.119
<v Speaker 2>engineers acclimated to using the dev boxes through through NICKS,

368
00:19:22.480 --> 00:19:24.559
<v Speaker 2>so they come into a team, they have no Knicks experience,

369
00:19:25.440 --> 00:19:28.359
<v Speaker 2>no experience with maybe Thermerald dev environments. You know, they're

370
00:19:28.359 --> 00:19:31.279
<v Speaker 2>all doing software development on their local machine. What's the

371
00:19:31.319 --> 00:19:34.519
<v Speaker 2>turnaround time for them understanding and being able to execute effectively?

372
00:19:36.160 --> 00:19:39.359
<v Speaker 4>Yeah, I mean, assuming we're talking about an environment where

373
00:19:39.680 --> 00:19:44.720
<v Speaker 4>the tools needed are kind of available in the NIXT

374
00:19:44.759 --> 00:19:47.839
<v Speaker 4>package store and kind of the versions are well represented,

375
00:19:48.400 --> 00:19:51.319
<v Speaker 4>I think it's very very fast because I mean dev Box,

376
00:19:51.680 --> 00:19:55.079
<v Speaker 4>the tool we built, it presents an interface that's very

377
00:19:55.119 --> 00:19:59.519
<v Speaker 4>similar to package managers from different languages that you're already

378
00:19:59.519 --> 00:20:03.119
<v Speaker 4>familiar with. Right, So you know, in you know we're

379
00:20:03.119 --> 00:20:08.000
<v Speaker 4>talking about JavaScript earlier, you have that package the adjacent file.

380
00:20:09.160 --> 00:20:11.319
<v Speaker 4>Well in that book, you have that books the adjacent file,

381
00:20:11.559 --> 00:20:14.720
<v Speaker 4>and it lists a bunch of packages that you need

382
00:20:14.759 --> 00:20:17.839
<v Speaker 4>for your project. And you might just say, you know

383
00:20:18.039 --> 00:20:20.680
<v Speaker 4>Python and the version, and it might say the product

384
00:20:20.680 --> 00:20:24.039
<v Speaker 4>of filer and the version. And it has a command

385
00:20:24.079 --> 00:20:26.720
<v Speaker 4>to add a new package, to search for a new package,

386
00:20:26.759 --> 00:20:29.799
<v Speaker 4>to remove a new package. And so what we try

387
00:20:29.880 --> 00:20:34.920
<v Speaker 4>to do is kind of present that Nick's functionality but

388
00:20:35.279 --> 00:20:39.680
<v Speaker 4>under aux that people are already familiar with, and because

389
00:20:39.720 --> 00:20:43.039
<v Speaker 4>people are already familiar with it from other tools.

390
00:20:43.359 --> 00:20:45.240
<v Speaker 3>I think it's a quick learning curve.

391
00:20:46.400 --> 00:20:50.920
<v Speaker 2>How does this affect sort of software development cycle? So

392
00:20:51.000 --> 00:20:53.839
<v Speaker 2>I make a change in my code, we're talking about

393
00:20:54.960 --> 00:20:58.480
<v Speaker 2>impacting the Docker built cash and forcing it to rebuild.

394
00:20:58.559 --> 00:21:04.119
<v Speaker 2>Like what's the corollary for dev blox? Do I do

395
00:21:04.160 --> 00:21:06.960
<v Speaker 2>the software development locally? And then it uses some sort

396
00:21:06.960 --> 00:21:10.440
<v Speaker 2>of remote server somewhere where the dev blox is being

397
00:21:10.480 --> 00:21:10.920
<v Speaker 2>spin up?

398
00:21:11.000 --> 00:21:15.240
<v Speaker 4>Like you know, yeah, so that box is our open

399
00:21:15.240 --> 00:21:19.640
<v Speaker 4>source project. It lets you declare your environment in this

400
00:21:19.920 --> 00:21:22.200
<v Speaker 4>Jason file and then the idea is that you can

401
00:21:22.200 --> 00:21:25.119
<v Speaker 4>take the adjacent file and reproduce that environment. In many places,

402
00:21:26.559 --> 00:21:30.039
<v Speaker 4>we we offer kind of on our paid solutions, ways

403
00:21:30.079 --> 00:21:33.480
<v Speaker 4>to spin those environments on the cloud. But just to quarify,

404
00:21:33.480 --> 00:21:34.759
<v Speaker 4>like that box is just going to be the open

405
00:21:34.799 --> 00:21:39.119
<v Speaker 4>source tool and let you kind of do it locally.

406
00:21:40.039 --> 00:21:41.640
<v Speaker 4>And the way it works is it is, like I said,

407
00:21:41.720 --> 00:21:45.480
<v Speaker 4>it uses next behind the scenes. In practice, there's no

408
00:21:45.519 --> 00:21:49.160
<v Speaker 4>container locally. I mean you can you can choose to

409
00:21:49.240 --> 00:21:52.279
<v Speaker 4>use that box inside a container if you're building a container,

410
00:21:52.920 --> 00:21:54.920
<v Speaker 4>but you can also choose to do it outside of

411
00:21:54.920 --> 00:21:58.079
<v Speaker 4>a container if you don't need one. And what's really

412
00:21:58.119 --> 00:22:01.839
<v Speaker 4>happening is that Nick's kind of installs all the versions

413
00:22:01.880 --> 00:22:04.359
<v Speaker 4>of all the software that you need, and what's known

414
00:22:04.400 --> 00:22:07.519
<v Speaker 4>as the next store. Think of this as some path

415
00:22:07.640 --> 00:22:13.519
<v Speaker 4>in your local drive where every binary or piece of

416
00:22:13.559 --> 00:22:17.279
<v Speaker 4>software that's installed is stored under a content hash, so

417
00:22:17.319 --> 00:22:19.240
<v Speaker 4>that the path for it is unique. So even if

418
00:22:19.240 --> 00:22:23.680
<v Speaker 4>you start installed five versions of Python, they will each

419
00:22:23.759 --> 00:22:27.319
<v Speaker 4>have its own content hash and therefore will live in

420
00:22:27.359 --> 00:22:32.279
<v Speaker 4>a different place in that store. And so anyways like that,

421
00:22:32.400 --> 00:22:36.039
<v Speaker 4>it's able to install all sorts of versions of software,

422
00:22:36.079 --> 00:22:39.240
<v Speaker 4>even if they would be technically conflicting. And then when

423
00:22:39.279 --> 00:22:42.799
<v Speaker 4>you start an environment, it kind of sets the paths

424
00:22:43.880 --> 00:22:46.559
<v Speaker 4>to point to the appropriate versions of things.

425
00:22:47.559 --> 00:22:48.799
<v Speaker 3>And now you're working locally.

426
00:22:49.240 --> 00:22:52.240
<v Speaker 2>So is it changing the environment variables and the alternatives

427
00:22:52.240 --> 00:22:55.279
<v Speaker 2>that are set on my operating system to make the

428
00:22:55.440 --> 00:22:57.640
<v Speaker 2>environment match what's necessary for that?

429
00:22:58.000 --> 00:22:58.160
<v Speaker 3>Yes?

430
00:22:58.559 --> 00:23:00.720
<v Speaker 4>Yes, so it will change, for example, change your path

431
00:23:01.279 --> 00:23:06.160
<v Speaker 4>environment variable. And so it might you might say, Okay,

432
00:23:06.400 --> 00:23:09.279
<v Speaker 4>in this project, we need in this version of Python,

433
00:23:09.400 --> 00:23:11.880
<v Speaker 4>this version of the product of compiler. Oh, I know

434
00:23:12.039 --> 00:23:15.839
<v Speaker 4>those live over here in the next store. Let me

435
00:23:15.839 --> 00:23:19.599
<v Speaker 4>set up the path such that you're going to have

436
00:23:19.640 --> 00:23:21.799
<v Speaker 4>access to those binaries and not the other ones.

437
00:23:22.039 --> 00:23:23.240
<v Speaker 2>Okay, sure that makes sense.

438
00:23:26.599 --> 00:23:29.799
<v Speaker 1>Is that done like system wide or is that done

439
00:23:30.279 --> 00:23:32.079
<v Speaker 1>on like a project per pect.

440
00:23:31.920 --> 00:23:33.039
<v Speaker 3>Just one a project basis.

441
00:23:33.079 --> 00:23:35.319
<v Speaker 4>So so the analogy I make if we want to

442
00:23:36.440 --> 00:23:41.680
<v Speaker 4>your reference existing tools for particular languages, it's kind of

443
00:23:41.720 --> 00:23:42.599
<v Speaker 4>like on Python you have.

444
00:23:42.680 --> 00:23:47.240
<v Speaker 3>Virtual type of environments. Imagine that, but now kind of like.

445
00:23:47.240 --> 00:23:51.720
<v Speaker 4>At the system level for the tools and compilers that

446
00:23:51.799 --> 00:23:53.000
<v Speaker 4>you're using for a project.

447
00:23:53.400 --> 00:23:55.279
<v Speaker 2>So done correctly is what I'm hearing.

448
00:23:58.240 --> 00:24:01.960
<v Speaker 3>We think, So for in your own opinion.

449
00:24:02.640 --> 00:24:06.000
<v Speaker 2>I mean, I think virtual m is like a quintessential

450
00:24:06.039 --> 00:24:09.759
<v Speaker 2>example of it doesn't get much worse than that. You know,

451
00:24:10.000 --> 00:24:11.920
<v Speaker 2>maybe maybe someone can point me in the right direction there,

452
00:24:11.960 --> 00:24:15.400
<v Speaker 2>but I don't remember. Like usually things automatically get committed

453
00:24:15.440 --> 00:24:18.680
<v Speaker 2>to memory for me if they're easy to understand, you know,

454
00:24:18.720 --> 00:24:20.480
<v Speaker 2>like I think everyone has this. You know, you see something,

455
00:24:20.559 --> 00:24:22.319
<v Speaker 2>it's like all I can remember what that is. There's

456
00:24:22.319 --> 00:24:23.279
<v Speaker 2>a le of things.

457
00:24:23.839 --> 00:24:25.440
<v Speaker 3>Three months later you come back and you're.

458
00:24:27.440 --> 00:24:29.839
<v Speaker 2>Right, that's the thing. Is like, I don't touch it enough.

459
00:24:30.240 --> 00:24:32.079
<v Speaker 2>So the only time I actually touch virtual end at

460
00:24:32.119 --> 00:24:37.400
<v Speaker 2>all is when I'm generating new h cert box certificates

461
00:24:37.440 --> 00:24:40.440
<v Speaker 2>from let's encrypt on one of my remote servers, And

462
00:24:41.039 --> 00:24:44.000
<v Speaker 2>that happens once every ninety days and every ninety days

463
00:24:44.039 --> 00:24:46.839
<v Speaker 2>I cannot remember how to do that. So you know

464
00:24:47.039 --> 00:24:49.640
<v Speaker 2>there's Celsius something is wrong with that technology for sure.

465
00:24:49.680 --> 00:24:51.720
<v Speaker 2>So you know it's great when there's an easy way

466
00:24:51.720 --> 00:24:55.079
<v Speaker 2>that makes sense to set it up and exit the machine.

467
00:24:55.119 --> 00:24:57.119
<v Speaker 2>And that of course, it has to be processed specific

468
00:24:57.480 --> 00:25:00.160
<v Speaker 2>and local so that you can potentially run multiple the

469
00:25:00.160 --> 00:25:03.000
<v Speaker 2>same time, so that you can run multiple pieces of

470
00:25:03.079 --> 00:25:05.759
<v Speaker 2>like different services that have to communicate with each.

471
00:25:05.559 --> 00:25:08.279
<v Speaker 3>Other, right, right, makes sense?

472
00:25:10.160 --> 00:25:13.640
<v Speaker 2>How do I how do I know that? Early on

473
00:25:13.680 --> 00:25:15.519
<v Speaker 2>in my career it was always like, I don't need

474
00:25:15.559 --> 00:25:18.759
<v Speaker 2>that garbage. I'm just going to do it myself. And

475
00:25:19.079 --> 00:25:21.680
<v Speaker 2>later in my career I've definitely gotten to the point

476
00:25:21.680 --> 00:25:23.960
<v Speaker 2>of I should definitely listen to those things and not

477
00:25:24.039 --> 00:25:26.319
<v Speaker 2>think that I could do it with myself. So like,

478
00:25:26.319 --> 00:25:27.880
<v Speaker 2>what's the advice here? You know, how do you know

479
00:25:27.920 --> 00:25:30.319
<v Speaker 2>you're in a situation where whatever you're doing needs to

480
00:25:30.359 --> 00:25:34.599
<v Speaker 2>be upgraded to using next through dev box like Quintessential.

481
00:25:35.880 --> 00:25:38.559
<v Speaker 4>Yeah, I mean, I think let me maybe start with

482
00:25:38.559 --> 00:25:40.759
<v Speaker 4>the cases where I don't think you necessarily need it.

483
00:25:42.160 --> 00:25:45.160
<v Speaker 4>I think those tend to be you you're working on

484
00:25:45.240 --> 00:25:50.119
<v Speaker 4>a team with this pretty standardized stack, probably have one

485
00:25:50.160 --> 00:25:53.759
<v Speaker 4>particular programming language that you're focused on, and for the

486
00:25:53.759 --> 00:25:57.839
<v Speaker 4>most part, all you need are the tools for that library,

487
00:25:58.200 --> 00:26:03.920
<v Speaker 4>and you're not bringing into many external tools, right. I

488
00:26:03.960 --> 00:26:07.200
<v Speaker 4>think as soon as you start having more kind of

489
00:26:07.240 --> 00:26:11.240
<v Speaker 4>system level dependencies, additional tools that you're bringing in, maybe

490
00:26:11.359 --> 00:26:16.920
<v Speaker 4>multiple languages across the company, then tools, you know, things

491
00:26:16.920 --> 00:26:21.839
<v Speaker 4>to control the environment start making more sense. You just

492
00:26:21.920 --> 00:26:24.079
<v Speaker 4>to grab an example. Let's see you're coding in Python.

493
00:26:25.759 --> 00:26:29.839
<v Speaker 4>If you've standardized a version of Python and you're building

494
00:26:30.000 --> 00:26:34.119
<v Speaker 4>a pure Python libraries, I don't know, you probably don't

495
00:26:34.119 --> 00:26:37.200
<v Speaker 4>need the tool like this, but as the range al

496
00:26:37.640 --> 00:26:40.359
<v Speaker 4>these days, and you decide to do some mL stuff, right,

497
00:26:40.400 --> 00:26:44.960
<v Speaker 4>and you need some Python libraries that really depend on

498
00:26:45.079 --> 00:26:47.559
<v Speaker 4>native libraries, and so now all those native libraries are

499
00:26:47.559 --> 00:26:51.200
<v Speaker 4>going to get pulled and you're doing some image processing

500
00:26:51.240 --> 00:26:54.000
<v Speaker 4>and so you need like image magic installed in the container,

501
00:26:54.119 --> 00:26:57.200
<v Speaker 4>and so it depends on a particular version of image Magic.

502
00:26:57.599 --> 00:27:02.160
<v Speaker 4>And so now your environment shifting from kind of pure

503
00:27:02.160 --> 00:27:06.440
<v Speaker 4>Python to kind of like these extra dependencies. And I

504
00:27:06.480 --> 00:27:08.400
<v Speaker 4>think that's where this makes sense, because you can now

505
00:27:08.920 --> 00:27:12.279
<v Speaker 4>treat those extra dependencies. That's something that you track and

506
00:27:12.799 --> 00:27:18.519
<v Speaker 4>version and pin as opposed to I don't know, just

507
00:27:18.799 --> 00:27:21.880
<v Speaker 4>will West and you know, pull whatever is available today,

508
00:27:21.920 --> 00:27:27.119
<v Speaker 4>and yeah it might be different yesterday from tomorrow.

509
00:27:29.119 --> 00:27:29.839
<v Speaker 3>I give you.

510
00:27:30.000 --> 00:27:32.519
<v Speaker 4>You know, some examples I give earlier were only on

511
00:27:32.559 --> 00:27:36.720
<v Speaker 4>the development phase. But like imagine you you're doing image

512
00:27:36.720 --> 00:27:40.440
<v Speaker 4>processing in production and the container requires a particular version

513
00:27:40.480 --> 00:27:43.680
<v Speaker 4>of image Magic installed. Like now we're talking about production

514
00:27:43.880 --> 00:27:47.839
<v Speaker 4>environments too, that if you're not careful, are just kind

515
00:27:47.839 --> 00:27:50.640
<v Speaker 4>of changing nearly willing How does.

516
00:27:50.480 --> 00:27:53.559
<v Speaker 2>The conversion from using next through dev box to get

517
00:27:53.599 --> 00:27:55.799
<v Speaker 2>your local development environment. I mean, I feel like you

518
00:27:55.839 --> 00:27:58.880
<v Speaker 2>open the can of worms here, so uh, when you

519
00:27:58.920 --> 00:28:01.400
<v Speaker 2>do that locally, how does that invert to using getting

520
00:28:01.400 --> 00:28:04.440
<v Speaker 2>those same dependencies ready for deployment production?

521
00:28:05.799 --> 00:28:10.160
<v Speaker 4>Yes, to be fair, I do think that's an area

522
00:28:10.200 --> 00:28:13.680
<v Speaker 4>we're continuing to improved of early days on the shift

523
00:28:13.680 --> 00:28:17.400
<v Speaker 4>from using the box from development to production. But high level,

524
00:28:20.559 --> 00:28:22.559
<v Speaker 4>I mean, you can craft a doctor file and a

525
00:28:22.559 --> 00:28:25.160
<v Speaker 4>container in many different ways and really just kind of

526
00:28:25.240 --> 00:28:28.359
<v Speaker 4>running any command you want right and setting up the

527
00:28:28.440 --> 00:28:29.880
<v Speaker 4>environment inside the container.

528
00:28:30.559 --> 00:28:32.480
<v Speaker 3>So what we think is that.

529
00:28:32.400 --> 00:28:36.079
<v Speaker 4>In general, you can have one definition of the next

530
00:28:36.160 --> 00:28:40.039
<v Speaker 4>packages that you need, and that one definition can be

531
00:28:40.160 --> 00:28:43.960
<v Speaker 4>used to set up your developer environment. But it can

532
00:28:44.039 --> 00:28:47.079
<v Speaker 4>also be used to install those same packages in the

533
00:28:47.119 --> 00:28:48.119
<v Speaker 4>production container.

534
00:28:48.680 --> 00:28:48.799
<v Speaker 3>Uh.

535
00:28:49.200 --> 00:28:51.480
<v Speaker 4>Of course, you have to differentiate between things that are

536
00:28:51.559 --> 00:28:55.960
<v Speaker 4>needed in both production and development versus things that are

537
00:28:56.000 --> 00:28:57.160
<v Speaker 4>needed just for development.

538
00:28:58.880 --> 00:29:00.839
<v Speaker 3>Now, I said it is work in progress.

539
00:29:01.079 --> 00:29:05.200
<v Speaker 4>I think something that I feel Knicks packages haven't been

540
00:29:05.240 --> 00:29:08.920
<v Speaker 4>optimized too much for in the past, and I think

541
00:29:08.960 --> 00:29:10.960
<v Speaker 4>it is one of the challenges with what I'm saying.

542
00:29:11.400 --> 00:29:12.039
<v Speaker 3>Is that.

543
00:29:13.559 --> 00:29:18.240
<v Speaker 4>I don't think Knicks packages are optimized for size, and

544
00:29:18.319 --> 00:29:22.599
<v Speaker 4>so sometimes they pull in a lot of things into

545
00:29:22.640 --> 00:29:26.839
<v Speaker 4>the container and the container grows kind of bigger than

546
00:29:26.880 --> 00:29:27.440
<v Speaker 4>you want it to be.

547
00:29:28.359 --> 00:29:29.319
<v Speaker 3>So I think that's something that.

548
00:29:29.279 --> 00:29:32.440
<v Speaker 4>Still needs to be improved within, you know, in terms

549
00:29:32.480 --> 00:29:35.720
<v Speaker 4>of using Knicks for creating these types of production containers.

550
00:29:35.839 --> 00:29:37.200
<v Speaker 2>Yeah, but I mean, I think it's a huge step

551
00:29:37.200 --> 00:29:40.799
<v Speaker 2>in the right direction because the dependency management through Docker

552
00:29:40.880 --> 00:29:43.720
<v Speaker 2>has always been oh yeah, just install like use Pseudo

553
00:29:43.799 --> 00:29:46.240
<v Speaker 2>and then install a huge list of packages that are

554
00:29:46.240 --> 00:29:50.039
<v Speaker 2>required to run here, and like what version those are,

555
00:29:50.119 --> 00:29:53.440
<v Speaker 2>whether or not they work with the actual Linux os

556
00:29:53.440 --> 00:29:55.079
<v Speaker 2>that you're actually running there compared to the one on

557
00:29:55.119 --> 00:29:57.759
<v Speaker 2>your development machine or in your you know, in your

558
00:29:57.759 --> 00:29:59.559
<v Speaker 2>depth box or whatever could be totally different or what's

559
00:29:59.599 --> 00:30:02.960
<v Speaker 2>available production because you're not actually running the exact container.

560
00:30:03.000 --> 00:30:05.400
<v Speaker 2>There are some differences there. And then there's also your

561
00:30:05.440 --> 00:30:08.640
<v Speaker 2>CICD pipeline which probably have a different version of Linux on.

562
00:30:08.720 --> 00:30:11.039
<v Speaker 3>Right, And this is exactly this is.

563
00:30:11.079 --> 00:30:13.240
<v Speaker 2>Just if you're using Linux, right, I mean, then you

564
00:30:13.279 --> 00:30:16.759
<v Speaker 2>throw in ARM and other operating systems and it's it's

565
00:30:16.759 --> 00:30:19.480
<v Speaker 2>for sure a huge mass. So I mean, I definitely

566
00:30:19.480 --> 00:30:23.079
<v Speaker 2>see that. Persistence is another aspect like Nix doesn't. You're

567
00:30:23.119 --> 00:30:25.359
<v Speaker 2>focused on using it for dev boxes in sort of

568
00:30:25.400 --> 00:30:27.799
<v Speaker 2>ephemeral way, right, Like you're not making permanent changes to

569
00:30:27.839 --> 00:30:30.519
<v Speaker 2>the operating system, but in production you almost want the

570
00:30:30.519 --> 00:30:33.160
<v Speaker 2>permanence there. So there is this sort of disconnect, and

571
00:30:33.200 --> 00:30:36.839
<v Speaker 2>you're achieving the connection there through using doctor or plugging

572
00:30:36.880 --> 00:30:40.400
<v Speaker 2>into persisting it in the doctoring container build file assume.

573
00:30:41.319 --> 00:30:44.039
<v Speaker 4>Yeah, exactly, exactly right, Yeah, And I mean I think

574
00:30:44.079 --> 00:30:47.319
<v Speaker 4>you touched on this, but just to emphasize it, I

575
00:30:47.359 --> 00:30:50.400
<v Speaker 4>think sometimes people don't think about it. A doctor file

576
00:30:50.599 --> 00:30:55.240
<v Speaker 4>is not necessarily reproducible. In fact, I argue it's probably

577
00:30:55.559 --> 00:31:01.079
<v Speaker 4>not reproducible. People sometimes think of doctor as reproduce in

578
00:31:01.160 --> 00:31:04.599
<v Speaker 4>the sense that if you previously built a particular image

579
00:31:05.119 --> 00:31:07.799
<v Speaker 4>and you reuse that image, then you know you're getting

580
00:31:08.079 --> 00:31:09.920
<v Speaker 4>you're getting what you already packaged before.

581
00:31:10.039 --> 00:31:10.200
<v Speaker 3>Right.

582
00:31:10.240 --> 00:31:13.839
<v Speaker 4>But if you have a doctor file with instructions and

583
00:31:13.880 --> 00:31:17.079
<v Speaker 4>you build it six months ago and you build it today,

584
00:31:18.240 --> 00:31:22.720
<v Speaker 4>the output, the resulting image will likely be different because again,

585
00:31:23.160 --> 00:31:25.799
<v Speaker 4>I mean it's the same scenarios talking about with with

586
00:31:25.839 --> 00:31:30.240
<v Speaker 4>your engineers just installing the environment. Probably your doctor file

587
00:31:30.359 --> 00:31:35.200
<v Speaker 4>just says install Python, and six months ago the version

588
00:31:35.240 --> 00:31:37.000
<v Speaker 4>of Python, you know, was X.

589
00:31:37.119 --> 00:31:38.680
<v Speaker 3>Today the version of Python is Y.

590
00:31:38.720 --> 00:31:41.480
<v Speaker 4>And so you build a container six months ago versus today,

591
00:31:41.960 --> 00:31:44.400
<v Speaker 4>you get different images as a result.

592
00:31:44.720 --> 00:31:48.079
<v Speaker 2>I think code dependencies definitely fall. Code dependencies fall in

593
00:31:48.079 --> 00:31:52.319
<v Speaker 2>this abyss here right there. They're not quite infrastructure as code,

594
00:31:52.640 --> 00:31:54.599
<v Speaker 2>which has been solved as far as deploying what we

595
00:31:54.640 --> 00:31:56.920
<v Speaker 2>have to our cloud environment, and they're not the source code,

596
00:31:56.920 --> 00:32:00.920
<v Speaker 2>which is stored so elegantly in there is this middle

597
00:32:00.960 --> 00:32:05.759
<v Speaker 2>area where I need to configure that container or heaven forbid,

598
00:32:05.839 --> 00:32:08.799
<v Speaker 2>you're using a virtual machine directly or bear metal in

599
00:32:08.839 --> 00:32:10.640
<v Speaker 2>a very specific way, and it's like, well it's not

600
00:32:10.799 --> 00:32:13.880
<v Speaker 2>I see, and it's not my source code, and then

601
00:32:13.880 --> 00:32:16.440
<v Speaker 2>what I'm end up with is some sort of script

602
00:32:16.519 --> 00:32:19.680
<v Speaker 2>in Bash. A lot of times to explain how to

603
00:32:19.680 --> 00:32:21.359
<v Speaker 2>actually install that thing. And so it's like, well, why

604
00:32:21.359 --> 00:32:24.720
<v Speaker 2>aren't we doing declarative programming here like we are everywhere else.

605
00:32:25.200 --> 00:32:27.279
<v Speaker 2>It's like the white area that still is procedural and

606
00:32:27.319 --> 00:32:29.720
<v Speaker 2>still prone to a lot of issues, And like, that's

607
00:32:29.720 --> 00:32:32.039
<v Speaker 2>what I'm hearing is like, Okay, this is totally solved now.

608
00:32:32.240 --> 00:32:34.119
<v Speaker 2>You know, if you need more than one dependency, how

609
00:32:34.119 --> 00:32:35.559
<v Speaker 2>can you not be using this solution?

610
00:32:37.039 --> 00:32:37.960
<v Speaker 3>Right? Yeah, exactly.

611
00:32:38.319 --> 00:32:40.680
<v Speaker 4>I think you said in a way that I agree,

612
00:32:40.720 --> 00:32:44.079
<v Speaker 4>Like it'd be great to just have your developer environment

613
00:32:44.119 --> 00:32:47.920
<v Speaker 4>defined in a declarative way. And then that declaration, you know,

614
00:32:47.960 --> 00:32:50.279
<v Speaker 4>we can use to build the environment correctly, and you

615
00:32:50.319 --> 00:32:52.799
<v Speaker 4>can use it to build the environment in many different places.

616
00:32:52.839 --> 00:32:55.519
<v Speaker 4>You can build it locally, you can build it inside

617
00:32:55.519 --> 00:32:58.640
<v Speaker 4>a container, you can build it on the cloud, right,

618
00:32:59.440 --> 00:33:01.680
<v Speaker 4>and yeah, take the environment with you where you need it.

619
00:33:06.640 --> 00:33:10.519
<v Speaker 1>Will's processing all of this, I can say, I am,

620
00:33:10.599 --> 00:33:15.119
<v Speaker 1>but I think I failed to press the turbo button

621
00:33:15.319 --> 00:33:20.640
<v Speaker 1>on the CPU this morning because it's processing slow. I'm

622
00:33:20.680 --> 00:33:21.960
<v Speaker 1>just trying to slow this morning.

623
00:33:24.240 --> 00:33:26.559
<v Speaker 2>That's okay, it happens to all of us, right.

624
00:33:28.400 --> 00:33:32.319
<v Speaker 1>So with the when it comes back to the production dependencies,

625
00:33:33.839 --> 00:33:38.720
<v Speaker 1>is that declarative in the manifest file this dependency is

626
00:33:38.720 --> 00:33:45.240
<v Speaker 1>a production one or in this one's a development dependency.

627
00:33:45.559 --> 00:33:48.519
<v Speaker 4>Right now, if you want to talk about like the

628
00:33:48.519 --> 00:33:50.920
<v Speaker 4>implementation we have in the in the open source school,

629
00:33:51.359 --> 00:33:55.279
<v Speaker 4>you would have like two different books adjacent files, one

630
00:33:55.279 --> 00:33:58.559
<v Speaker 4>for production, one for development. But we have talked about

631
00:33:59.079 --> 00:34:01.160
<v Speaker 4>you know, potentially UNI find that in one file.

632
00:34:01.359 --> 00:34:02.920
<v Speaker 3>Actually we were making.

633
00:34:02.680 --> 00:34:06.880
<v Speaker 4>The analogy to package the jacent before and in the

634
00:34:06.880 --> 00:34:11.639
<v Speaker 4>package that Jason, you have the dependencies and dependencies that

635
00:34:11.679 --> 00:34:15.039
<v Speaker 4>are for both. So yeah, we're we're considering cannot unifying that,

636
00:34:16.360 --> 00:34:19.199
<v Speaker 4>but yeah, I mean put aside the exact implementation we

637
00:34:19.239 --> 00:34:22.480
<v Speaker 4>have today, the exact version. I think the idea is,

638
00:34:23.119 --> 00:34:31.320
<v Speaker 4>can we declare our environments by specifying the packages we

639
00:34:31.360 --> 00:34:34.360
<v Speaker 4>want on the versions that we want, and then specifying

640
00:34:34.360 --> 00:34:38.159
<v Speaker 4>which packages belong in both development and production and which

641
00:34:38.159 --> 00:34:41.639
<v Speaker 4>ones belong only in development, and then take away that

642
00:34:41.760 --> 00:34:45.199
<v Speaker 4>very procedural like Bash scripts that you're doing to install

643
00:34:45.239 --> 00:34:48.840
<v Speaker 4>every little thing, and then let a system that can

644
00:34:49.360 --> 00:34:51.719
<v Speaker 4>reproducibly create the environment.

645
00:34:51.800 --> 00:34:54.239
<v Speaker 3>From that declaration you do the work.

646
00:34:55.840 --> 00:34:58.519
<v Speaker 2>I think you hit on really well the scenario where

647
00:34:58.679 --> 00:35:01.079
<v Speaker 2>you may not need to do something like this, like

648
00:35:01.119 --> 00:35:03.920
<v Speaker 2>you don't need the I hesitate to call it complexity

649
00:35:04.000 --> 00:35:07.039
<v Speaker 2>of using NEXT based configuration, but it's just it's one

650
00:35:07.039 --> 00:35:07.840
<v Speaker 2>more tool, and so.

651
00:35:07.960 --> 00:35:10.119
<v Speaker 3>No I would call it like, I mean, it is

652
00:35:10.159 --> 00:35:11.960
<v Speaker 3>an extra tool. Yeah, I agree with you, Like.

653
00:35:12.280 --> 00:35:15.159
<v Speaker 2>Yeah, you know, compared to I mean, swap that in

654
00:35:15.239 --> 00:35:16.840
<v Speaker 2>for something else. I mean, it's pretty much a very

655
00:35:16.840 --> 00:35:21.440
<v Speaker 2>simple bootstrap and clear configuration files that are very understandable

656
00:35:21.440 --> 00:35:25.239
<v Speaker 2>of what they're doing. I'm curious if you see a

657
00:35:25.239 --> 00:35:30.840
<v Speaker 2>particular vertical or industry market segment where it becomes super critical. Still,

658
00:35:30.880 --> 00:35:34.320
<v Speaker 2>Like maybe if we say web servers, web development, maybe

659
00:35:34.320 --> 00:35:37.719
<v Speaker 2>that's really simple. It's not too complicated here. But if

660
00:35:37.719 --> 00:35:39.880
<v Speaker 2>you're building a game, I'm just making stuff up now,

661
00:35:39.880 --> 00:35:40.920
<v Speaker 2>like you know, this is where you can jump in

662
00:35:41.000 --> 00:35:42.760
<v Speaker 2>and say, you know, this is exactly it, like game

663
00:35:42.880 --> 00:35:44.920
<v Speaker 2>or web three. Like, maybe there's a lot more value

664
00:35:45.119 --> 00:35:48.039
<v Speaker 2>in or doing something with LMMEL, a lot more value

665
00:35:48.039 --> 00:35:49.440
<v Speaker 2>in next configurations.

666
00:35:50.480 --> 00:35:52.559
<v Speaker 4>Yeah, I think, I mean, I think one of them

667
00:35:52.719 --> 00:35:56.920
<v Speaker 4>is when you have a lot of when you need

668
00:35:56.960 --> 00:36:02.519
<v Speaker 4>to use native dependencies that are not native to the

669
00:36:02.639 --> 00:36:06.280
<v Speaker 4>language that you're using. Right, So I think Python and

670
00:36:06.400 --> 00:36:08.599
<v Speaker 4>mL is a good example. But you know, it's not

671
00:36:08.719 --> 00:36:11.599
<v Speaker 4>just the male. Like you know, there's several cases where

672
00:36:11.639 --> 00:36:14.480
<v Speaker 4>you might need to install Python libraries that depend on

673
00:36:15.239 --> 00:36:16.880
<v Speaker 4>kind of underlying C library.

674
00:36:18.800 --> 00:36:20.440
<v Speaker 3>I think those tend.

675
00:36:20.239 --> 00:36:22.480
<v Speaker 4>To not work as well if you don't have a

676
00:36:22.559 --> 00:36:24.519
<v Speaker 4>tool like like that book.

677
00:36:25.400 --> 00:36:26.199
<v Speaker 3>I think the other.

678
00:36:26.039 --> 00:36:30.039
<v Speaker 4>Case is when you rely i mean made similar but

679
00:36:30.400 --> 00:36:32.800
<v Speaker 4>maybe it's not a library in the scenario, but you're

680
00:36:32.920 --> 00:36:35.719
<v Speaker 4>you're relying on a binary that needs to be present

681
00:36:35.920 --> 00:36:38.760
<v Speaker 4>in the environment because you want to call, you know,

682
00:36:38.840 --> 00:36:41.239
<v Speaker 4>exect that binary or do something with it.

683
00:36:41.840 --> 00:36:45.360
<v Speaker 2>How much of a mess is mL development from a

684
00:36:45.400 --> 00:36:48.559
<v Speaker 2>dependency management today?

685
00:36:49.440 --> 00:37:01.760
<v Speaker 3>Oh say no more think I think it can get complicated.

686
00:37:04.039 --> 00:37:06.519
<v Speaker 4>Yeah, because and then yeah, but by the way, you know,

687
00:37:06.880 --> 00:37:09.440
<v Speaker 4>I'm talking about that box and mL, but there's even

688
00:37:09.480 --> 00:37:13.000
<v Speaker 4>cases where we are not able to help fully in

689
00:37:13.079 --> 00:37:19.079
<v Speaker 4>that vertical because then kind of drivers come in, uh,

690
00:37:19.559 --> 00:37:21.960
<v Speaker 4>you know, for the different GPUs and whatnot, and and

691
00:37:22.000 --> 00:37:27.079
<v Speaker 4>there's some things that NICKS can't fully control there unless

692
00:37:27.119 --> 00:37:30.639
<v Speaker 4>you were using next os. Right, But we're remember we're

693
00:37:30.679 --> 00:37:33.960
<v Speaker 4>doing this in a scenario where you keep your current computer,

694
00:37:34.199 --> 00:37:38.440
<v Speaker 4>current operating system and just use that as added virtual environment.

695
00:37:40.079 --> 00:37:42.039
<v Speaker 3>But yeah, you can you can get real.

696
00:37:41.840 --> 00:37:45.679
<v Speaker 4>Messy, not just with the library dependencies, but kind of

697
00:37:45.679 --> 00:37:48.639
<v Speaker 4>like all the related drivers and how they match the

698
00:37:48.679 --> 00:37:52.000
<v Speaker 4>corresponding architecture that you're developing.

699
00:37:52.000 --> 00:37:59.440
<v Speaker 2>Again, so you wouldn't recommend doing mL development today quite yet.

700
00:38:00.920 --> 00:38:02.719
<v Speaker 2>I mean we wait a couple more years though.

701
00:38:03.039 --> 00:38:07.159
<v Speaker 4>Yeah, yeah, I mean I think it's unimproved. Maybe I'm

702
00:38:07.159 --> 00:38:09.199
<v Speaker 4>saying I think it's unimprovement, but it's not all the

703
00:38:09.199 --> 00:38:09.559
<v Speaker 4>way then.

704
00:38:10.599 --> 00:38:13.400
<v Speaker 2>Well, I do remember, and I'll date myself here when

705
00:38:13.440 --> 00:38:18.719
<v Speaker 2>I was trying to extract bitcoins from the bitcoin faucet

706
00:38:19.360 --> 00:38:23.000
<v Speaker 2>when I was in the university, and that included having

707
00:38:23.079 --> 00:38:26.559
<v Speaker 2>to basically getting my operating system to a state where

708
00:38:26.639 --> 00:38:28.440
<v Speaker 2>I would just ended up with a black screen with

709
00:38:28.480 --> 00:38:30.719
<v Speaker 2>a terminal, you know, and it's like, Okay, you know,

710
00:38:31.280 --> 00:38:34.239
<v Speaker 2>I really mess something up here, And like that was

711
00:38:34.280 --> 00:38:36.079
<v Speaker 2>the state of the software at the time to just

712
00:38:36.119 --> 00:38:41.159
<v Speaker 2>do anything related in the cryptocurrency space in cryptography in general,

713
00:38:41.199 --> 00:38:45.719
<v Speaker 2>really good luck using those tools. So like that's definitely improved.

714
00:38:45.840 --> 00:38:48.880
<v Speaker 2>Now you can use Python or JavaScript to interact with

715
00:38:48.960 --> 00:38:52.280
<v Speaker 2>any of the chains that are available out there ethereum

716
00:38:52.400 --> 00:38:55.360
<v Speaker 2>and all the derivatives of it without a problem for

717
00:38:55.400 --> 00:38:57.599
<v Speaker 2>the most part. I mean, there are some educases for sure.

718
00:38:57.639 --> 00:39:00.440
<v Speaker 2>If you want a stake or mine, you're going to

719
00:39:00.480 --> 00:39:03.760
<v Speaker 2>have a problem. And I think that's where IML is right.

720
00:39:03.920 --> 00:39:06.519
<v Speaker 2>It used me much worse, and I think it's slightly better.

721
00:39:06.519 --> 00:39:08.800
<v Speaker 2>But I do feel like maybe we're going so quickly

722
00:39:08.840 --> 00:39:14.000
<v Speaker 2>and we've monetized whatever little amount of value we've been

723
00:39:14.000 --> 00:39:18.719
<v Speaker 2>able to create as a society through model development, that

724
00:39:18.880 --> 00:39:23.039
<v Speaker 2>we haven't really took the opportunity to innovate with the

725
00:39:23.280 --> 00:39:24.320
<v Speaker 2>development pipeline.

726
00:39:26.360 --> 00:39:27.440
<v Speaker 3>Yeah, and you know, I'm sure this.

727
00:39:28.119 --> 00:39:30.079
<v Speaker 4>I do think there's probably plenty of people working in

728
00:39:31.239 --> 00:39:35.239
<v Speaker 4>solving this, even you know, the AI wave and the

729
00:39:35.320 --> 00:39:36.239
<v Speaker 4>whole interest in.

730
00:39:38.559 --> 00:39:38.599
<v Speaker 1>You.

731
00:39:40.719 --> 00:39:42.519
<v Speaker 2>I mean, it's I think it's I think it's optimistic,

732
00:39:42.559 --> 00:39:44.000
<v Speaker 2>but I also I also think that may be a

733
00:39:44.039 --> 00:39:49.199
<v Speaker 2>little bit realistic because with the deep state model that

734
00:39:49.320 --> 00:39:52.920
<v Speaker 2>had come out, I mean deep seek right, Uh that.

735
00:39:52.880 --> 00:39:55.920
<v Speaker 1>It I thought we were in a different podcast.

736
00:39:56.559 --> 00:40:00.280
<v Speaker 2>Yeah, I mean it's a joke that you know, I

737
00:40:00.360 --> 00:40:03.000
<v Speaker 2>frequently go around with some of my colleagues about you

738
00:40:03.000 --> 00:40:06.360
<v Speaker 2>know the impact of these models. But the fact that

739
00:40:06.440 --> 00:40:10.320
<v Speaker 2>you are there's now competition requires doing things more efficiently.

740
00:40:10.400 --> 00:40:12.920
<v Speaker 2>You can't bring a new engineer on board and have

741
00:40:13.119 --> 00:40:16.679
<v Speaker 2>them waste months and months not on on tool set,

742
00:40:16.760 --> 00:40:20.079
<v Speaker 2>like not even on the domain. So that's what drives

743
00:40:20.159 --> 00:40:23.639
<v Speaker 2>innovation there a lot when you're in competition to succeed.

744
00:40:23.679 --> 00:40:26.960
<v Speaker 2>And I think that's going to be a really important

745
00:40:27.039 --> 00:40:30.440
<v Speaker 2>qualifier going forward in the mL space that we continue

746
00:40:30.440 --> 00:40:34.199
<v Speaker 2>to have sufficient competition to drive innovation there.

747
00:40:35.679 --> 00:40:38.079
<v Speaker 1>So this is an area where I haven't spent any

748
00:40:38.400 --> 00:40:41.559
<v Speaker 1>time or effort, but Daniel, you have, right because you

749
00:40:41.920 --> 00:40:46.920
<v Speaker 1>have been working on some mL work to do QAT

750
00:40:47.039 --> 00:40:50.840
<v Speaker 1>in testing. Right, So what's the what's the barrier to

751
00:40:51.079 --> 00:40:53.400
<v Speaker 1>entry to get into that space?

752
00:40:56.440 --> 00:40:59.159
<v Speaker 3>I meaning, like, what's the barrier for.

753
00:41:00.760 --> 00:41:04.119
<v Speaker 4>Engineers to start creating agents themselves and kind of what

754
00:41:04.239 --> 00:41:05.599
<v Speaker 4>knowledge and tools might they need?

755
00:41:05.920 --> 00:41:06.679
<v Speaker 2>Yeah? For sure?

756
00:41:07.800 --> 00:41:08.159
<v Speaker 3>Yeah.

757
00:41:08.480 --> 00:41:09.920
<v Speaker 4>So yeah, I mean, like, like you said, we are

758
00:41:09.960 --> 00:41:13.400
<v Speaker 4>developing an agent that we call test Pilot. It's meant

759
00:41:13.440 --> 00:41:17.280
<v Speaker 4>to be an ai QA engineer take away all that boring,

760
00:41:17.400 --> 00:41:21.039
<v Speaker 4>repetitive manual clicking on UIs that people often do.

761
00:41:22.639 --> 00:41:24.119
<v Speaker 3>Yeah, and we've been learning a lot.

762
00:41:25.280 --> 00:41:31.039
<v Speaker 4>I mean, I think I think agents are relatively like

763
00:41:31.159 --> 00:41:34.880
<v Speaker 4>big investments in agents are relatively new, and so I

764
00:41:34.920 --> 00:41:38.800
<v Speaker 4>think the barrier of entry is something you can catch

765
00:41:38.880 --> 00:41:41.119
<v Speaker 4>up on, Like, like I would actually encourage if you're

766
00:41:41.199 --> 00:41:43.800
<v Speaker 4>interested in creating agents. I think it's a good time.

767
00:41:44.480 --> 00:41:47.559
<v Speaker 4>I think you can learn. I think you can do it,

768
00:41:48.760 --> 00:41:52.239
<v Speaker 4>I would say, I mean to me, one of the

769
00:41:52.239 --> 00:41:55.440
<v Speaker 4>most important things you need to do with developing AI

770
00:41:55.519 --> 00:41:58.559
<v Speaker 4>applications is set up a.

771
00:42:00.039 --> 00:42:04.079
<v Speaker 3>Evaluation framework for the work that you're doing.

772
00:42:04.559 --> 00:42:09.920
<v Speaker 4>So in non AI non you know, kind of traditional

773
00:42:09.960 --> 00:42:13.159
<v Speaker 4>software development lets, you say, you can often write a

774
00:42:13.239 --> 00:42:17.760
<v Speaker 4>function that you can reason about fairly well, and then

775
00:42:17.760 --> 00:42:21.840
<v Speaker 4>you can write tests that are fairly deterministic to know

776
00:42:22.079 --> 00:42:26.440
<v Speaker 4>whether your the behavior is what you expect right as

777
00:42:26.480 --> 00:42:29.119
<v Speaker 4>soon as you involve the LLLM. Well, now you have

778
00:42:29.519 --> 00:42:33.559
<v Speaker 4>non probabilistic like not sorry, non deterministic behavior, right, And

779
00:42:33.599 --> 00:42:36.039
<v Speaker 4>so you might call it once and it might tell

780
00:42:36.039 --> 00:42:38.800
<v Speaker 4>you something. You might call it again in a second,

781
00:42:38.800 --> 00:42:41.360
<v Speaker 4>and i I'll tell you a completely different thing. And

782
00:42:41.559 --> 00:42:45.679
<v Speaker 4>often because you're dealing with very general cases, you might

783
00:42:45.719 --> 00:42:48.400
<v Speaker 4>be feeding in lots of different examples and you don't

784
00:42:48.440 --> 00:42:51.199
<v Speaker 4>fully grasp how it's behaving.

785
00:42:51.000 --> 00:42:52.880
<v Speaker 3>Across all those different examples.

786
00:42:53.360 --> 00:42:55.920
<v Speaker 4>So to me, kind of like one of the first

787
00:42:55.920 --> 00:42:59.719
<v Speaker 4>things you need to do is set up a bunch

788
00:42:59.719 --> 00:43:04.920
<v Speaker 4>of examples with kind of like the expected behavior and

789
00:43:04.960 --> 00:43:08.320
<v Speaker 4>then be able to measure kind of the changes that

790
00:43:08.360 --> 00:43:12.239
<v Speaker 4>you're doing and whether they're improving that evaluation.

791
00:43:11.800 --> 00:43:12.679
<v Speaker 3>That you have in mind.

792
00:43:12.679 --> 00:43:14.320
<v Speaker 4>All right, and in this case, it's going to be

793
00:43:15.079 --> 00:43:18.320
<v Speaker 4>not purely past fail. Is going to be like, Okay,

794
00:43:18.360 --> 00:43:20.880
<v Speaker 4>today you're at fifty percent of being able to handle

795
00:43:20.920 --> 00:43:23.079
<v Speaker 4>the cases that you want, and then you do a

796
00:43:23.079 --> 00:43:25.480
<v Speaker 4>few changes and okay, now you're at fifty five percent,

797
00:43:25.559 --> 00:43:27.880
<v Speaker 4>and then you're at sixty percent and so on.

798
00:43:29.719 --> 00:43:32.719
<v Speaker 3>So yeah, anyways, I don't know, I can probably think

799
00:43:32.719 --> 00:43:33.480
<v Speaker 3>of more.

800
00:43:35.199 --> 00:43:37.840
<v Speaker 4>I mean best practices, but that's the first one that

801
00:43:37.880 --> 00:43:38.480
<v Speaker 4>comes to mind.

802
00:43:38.679 --> 00:43:41.000
<v Speaker 2>I would even maybe take a step back before that.

803
00:43:42.000 --> 00:43:44.679
<v Speaker 2>I mean, that's really great insight, like someone who hasn't

804
00:43:44.679 --> 00:43:46.199
<v Speaker 2>spent a lot of time in it. Is there a

805
00:43:46.199 --> 00:43:50.760
<v Speaker 2>particular site or foundational model that is where you would

806
00:43:50.760 --> 00:43:54.199
<v Speaker 2>suggest people start going for first? I mean probably, I

807
00:43:54.239 --> 00:43:56.400
<v Speaker 2>think from my own experience, I know that building models

808
00:43:56.440 --> 00:43:58.519
<v Speaker 2>is super expensive, so they're probably not going to do that.

809
00:43:59.559 --> 00:44:02.320
<v Speaker 2>But maybe there's a SCE out there that you say,

810
00:44:02.400 --> 00:44:04.480
<v Speaker 2>you know, go pull this model and try to fine

811
00:44:04.519 --> 00:44:05.920
<v Speaker 2>tune it or use it out of the box. Like

812
00:44:05.960 --> 00:44:07.079
<v Speaker 2>any recommendations on that.

813
00:44:07.960 --> 00:44:10.119
<v Speaker 4>Yeah, I mean I do think you need to start

814
00:44:10.159 --> 00:44:13.719
<v Speaker 4>with the with the pre existing in general model, I

815
00:44:13.840 --> 00:44:19.119
<v Speaker 4>recommend using probably a kind of multimodel provider, something like

816
00:44:19.199 --> 00:44:24.599
<v Speaker 4>open router that allows you to easily swap models, because

817
00:44:24.679 --> 00:44:26.840
<v Speaker 4>what's happening is I mean you guys see on the

818
00:44:27.159 --> 00:44:30.199
<v Speaker 4>on the tech news all the time, right, every other month,

819
00:44:31.480 --> 00:44:33.800
<v Speaker 4>each AI vendor like outdoes each other, and it's like, oh,

820
00:44:33.800 --> 00:44:36.760
<v Speaker 4>we have this new new model and it performs better

821
00:44:36.800 --> 00:44:39.199
<v Speaker 4>on this benchmark. And so you don't want to tie

822
00:44:39.239 --> 00:44:43.880
<v Speaker 4>yourself so strongly to one model that when those innovations

823
00:44:43.880 --> 00:44:46.960
<v Speaker 4>are happening, you can't test the other one, right, So

824
00:44:47.000 --> 00:44:50.360
<v Speaker 4>I would pick some provider like, like I said, open

825
00:44:50.440 --> 00:44:54.079
<v Speaker 4>Router is one of them. I think Rock. I think

826
00:44:54.119 --> 00:44:58.559
<v Speaker 4>cloud Flaer has something these days too, But anyways, a

827
00:44:58.599 --> 00:45:01.280
<v Speaker 4>provider that lets you spat which model you want to

828
00:45:01.360 --> 00:45:04.880
<v Speaker 4>use and then kind of build the agent on top

829
00:45:04.920 --> 00:45:08.159
<v Speaker 4>of that. I think the other part of building an

830
00:45:08.199 --> 00:45:11.360
<v Speaker 4>agent is not just the underlying model that helps you reason,

831
00:45:12.119 --> 00:45:14.400
<v Speaker 4>but there's kind of how you prompt it, right, and

832
00:45:14.719 --> 00:45:16.199
<v Speaker 4>kind of how you tell it to do what you

833
00:45:16.239 --> 00:45:16.800
<v Speaker 4>want it to do.

834
00:45:17.679 --> 00:45:19.119
<v Speaker 3>And then the last.

835
00:45:18.920 --> 00:45:21.519
<v Speaker 4>Piece is kind of like the tools that you give

836
00:45:21.559 --> 00:45:23.079
<v Speaker 4>it so that it can take action.

837
00:45:23.719 --> 00:45:23.920
<v Speaker 3>Right.

838
00:45:23.960 --> 00:45:27.719
<v Speaker 4>So a high level in my mind, like an agent

839
00:45:27.880 --> 00:45:30.239
<v Speaker 4>is you're grabbing the LLLM for the reasoning. But you

840
00:45:30.320 --> 00:45:34.599
<v Speaker 4>need to kind of give it hands and eyes, if

841
00:45:34.599 --> 00:45:36.400
<v Speaker 4>you want to think about it that way, so that

842
00:45:36.480 --> 00:45:40.280
<v Speaker 4>it can manipulate an environment that you're giving it control of.

843
00:45:43.440 --> 00:45:43.519
<v Speaker 3>Right.

844
00:45:46.039 --> 00:45:52.159
<v Speaker 1>Is that something that you've got a significant portion of

845
00:45:52.159 --> 00:45:55.440
<v Speaker 1>your team dedicated to or is it something that you

846
00:45:55.480 --> 00:45:59.320
<v Speaker 1>can iterate on quickly with just a few people, like

847
00:45:59.360 --> 00:46:02.679
<v Speaker 1>how big of a how big of a man power?

848
00:46:02.840 --> 00:46:06.480
<v Speaker 4>Yeah, I mean most of our team is working on

849
00:46:06.480 --> 00:46:07.400
<v Speaker 4>on test pilots.

850
00:46:08.679 --> 00:46:08.920
<v Speaker 3>I mean.

851
00:46:08.960 --> 00:46:13.760
<v Speaker 4>Something we've found is so we're a Go shop. Like

852
00:46:13.800 --> 00:46:17.199
<v Speaker 4>we use Go as our primary programming language. We've been

853
00:46:17.280 --> 00:46:20.400
<v Speaker 4>using it for for a while and so we wanted

854
00:46:20.400 --> 00:46:23.440
<v Speaker 4>to continue using it. And what we're seeing is that

855
00:46:23.480 --> 00:46:26.280
<v Speaker 4>a lot of the tools that are readily available in

856
00:46:26.320 --> 00:46:30.440
<v Speaker 4>this space are Python based, and you know, we can

857
00:46:30.559 --> 00:46:32.920
<v Speaker 4>use Python for stuff that's not production, but for our

858
00:46:32.920 --> 00:46:34.960
<v Speaker 4>production stuff we want to continue and go and so

859
00:46:35.000 --> 00:46:37.480
<v Speaker 4>we're having to build some of them ourselves and go.

860
00:46:38.239 --> 00:46:40.519
<v Speaker 3>We do plan to open source them later on and

861
00:46:40.639 --> 00:46:40.920
<v Speaker 3>kind of.

862
00:46:40.920 --> 00:46:44.280
<v Speaker 4>Give back to the community and hopefully kind of people

863
00:46:44.280 --> 00:46:48.280
<v Speaker 4>that like Go, you know, let let them have some

864
00:46:48.320 --> 00:46:52.840
<v Speaker 4>readily available tools for building AI and agents. But yeah,

865
00:46:52.920 --> 00:46:55.760
<v Speaker 4>that stuff that's getting built right now, and often we

866
00:46:55.840 --> 00:46:57.679
<v Speaker 4>look for it and it's like, oh, I guess nobody

867
00:46:57.719 --> 00:47:00.719
<v Speaker 4>has you know, done this type of library yet in

868
00:47:00.800 --> 00:47:03.960
<v Speaker 4>goal for AI, So it is early days.

869
00:47:04.400 --> 00:47:06.639
<v Speaker 2>Yeah, I mean I think that's a really good point actually,

870
00:47:06.920 --> 00:47:10.519
<v Speaker 2>Like it's usually a mistake to rely on Python for

871
00:47:10.679 --> 00:47:14.920
<v Speaker 2>high reliability software development and production, and so if the

872
00:47:14.920 --> 00:47:18.760
<v Speaker 2>tools aren't there to support your production workloads in a

873
00:47:18.760 --> 00:47:21.320
<v Speaker 2>different language, then that really tells you how early it is,

874
00:47:21.360 --> 00:47:23.960
<v Speaker 2>because the people that are utilizing those tools don't care

875
00:47:24.119 --> 00:47:29.000
<v Speaker 2>about like sustainable code or reliable code because it doesn't

876
00:47:29.000 --> 00:47:33.280
<v Speaker 2>offer the core features to guarantee safety or quality of

877
00:47:34.639 --> 00:47:36.360
<v Speaker 2>your value of your service that you're building.

878
00:47:38.199 --> 00:47:41.480
<v Speaker 4>Yeah, like I I mean there's many different ways of

879
00:47:41.480 --> 00:47:45.280
<v Speaker 4>building a company, but just I've had to deal with

880
00:47:45.320 --> 00:47:48.719
<v Speaker 4>like Groovy production systems, Python production systems, all that stuff,

881
00:47:48.719 --> 00:47:52.559
<v Speaker 4>and I'm kind of like in this case where we're

882
00:47:52.599 --> 00:47:56.320
<v Speaker 4>making different language and kind of moving forward with that.

883
00:47:56.840 --> 00:47:58.559
<v Speaker 2>Yeah. No, I'm totally with you. I used to be

884
00:47:58.639 --> 00:48:00.239
<v Speaker 2>like early on in my career. I'm just like every

885
00:48:00.320 --> 00:48:02.519
<v Speaker 2>language is the same, right, you know, there's you can

886
00:48:02.559 --> 00:48:05.559
<v Speaker 2>swap between one or another if you've had a sufficient

887
00:48:05.599 --> 00:48:08.119
<v Speaker 2>years of experience. But then over time you start to

888
00:48:08.159 --> 00:48:12.159
<v Speaker 2>realize the fringe benefits of individual languages or negatives that

889
00:48:12.159 --> 00:48:15.159
<v Speaker 2>are associated with them, So things like Go or other

890
00:48:15.599 --> 00:48:18.639
<v Speaker 2>well typed languages like c sharp, the community or the

891
00:48:18.679 --> 00:48:22.039
<v Speaker 2>packages that are available to help drive forward. Having the

892
00:48:22.119 --> 00:48:24.280
<v Speaker 2>right execution of the right stuff in production is like

893
00:48:24.320 --> 00:48:27.920
<v Speaker 2>super important, not which is when you're building something quick

894
00:48:27.960 --> 00:48:31.000
<v Speaker 2>and hacky, but when you actually care about it working continuously,

895
00:48:31.039 --> 00:48:32.960
<v Speaker 2>and like if you're at a company and one of

896
00:48:33.000 --> 00:48:37.360
<v Speaker 2>the core things you're building is reliable builds, I feel

897
00:48:37.440 --> 00:48:39.400
<v Speaker 2>like you know that goes hand in hand or using

898
00:48:39.480 --> 00:48:42.920
<v Speaker 2>other I mean, it's sort of like a different mindset, right,

899
00:48:42.960 --> 00:48:45.679
<v Speaker 2>Like if you're hiring an engineer and they care about

900
00:48:45.800 --> 00:48:50.760
<v Speaker 2>using scrappy tools that ones that potentially break from day

901
00:48:50.800 --> 00:48:53.639
<v Speaker 2>to day, the nightly build version of that tool is

902
00:48:53.760 --> 00:48:57.079
<v Speaker 2>broken by default, they're probably not in the right mindset

903
00:48:57.119 --> 00:48:59.719
<v Speaker 2>to be working on something where you need high reliability

904
00:48:59.840 --> 00:49:04.400
<v Speaker 2>or reproducible builds or you know these other technologies. It's

905
00:49:04.440 --> 00:49:06.920
<v Speaker 2>just a complete other side of the spectrum, right.

906
00:49:07.000 --> 00:49:08.000
<v Speaker 3>Yeah, I totally agree.

907
00:49:08.719 --> 00:49:11.360
<v Speaker 4>And yeah, I mean what we've been doing maybe where

908
00:49:11.360 --> 00:49:13.679
<v Speaker 4>we kind of allow Python to come in is you know,

909
00:49:13.679 --> 00:49:16.760
<v Speaker 4>I mentioned we have this kind of evail process. We're

910
00:49:16.800 --> 00:49:19.880
<v Speaker 4>able to try ideas, and so I'm like, okay, if

911
00:49:19.880 --> 00:49:22.880
<v Speaker 4>we're prototyping a direction and there happens to be kind

912
00:49:22.920 --> 00:49:24.920
<v Speaker 4>of like a Python library that does that off the bat,

913
00:49:25.039 --> 00:49:28.079
<v Speaker 4>and we just want to check if that's gonna improve

914
00:49:28.159 --> 00:49:31.320
<v Speaker 4>our performance, you know, the performance of our agent. Like

915
00:49:31.800 --> 00:49:34.280
<v Speaker 4>you prototype something quickly with Python, pull that library in,

916
00:49:34.639 --> 00:49:36.760
<v Speaker 4>run it against our evil framework. Let's see if this

917
00:49:36.840 --> 00:49:41.280
<v Speaker 4>direction has legs. Oh, it does have lengths. It is promising. Okay,

918
00:49:41.320 --> 00:49:44.679
<v Speaker 4>how are we going to build it now for production usage?

919
00:49:44.719 --> 00:49:47.599
<v Speaker 4>And you handle the low we want to handle, and

920
00:49:48.360 --> 00:49:49.880
<v Speaker 4>take care of all the edge cases we want to

921
00:49:49.920 --> 00:49:52.440
<v Speaker 4>take care of and so on, and then we at

922
00:49:52.440 --> 00:49:54.719
<v Speaker 4>that point in time, then we spend the time developing

923
00:49:54.760 --> 00:49:59.000
<v Speaker 4>the the go software and infrastructure.

924
00:49:58.800 --> 00:49:59.639
<v Speaker 2>Makes a lot of sense.

925
00:50:01.000 --> 00:50:03.760
<v Speaker 1>So that's one of the things I want to ask you.

926
00:50:03.760 --> 00:50:07.000
<v Speaker 1>You know, you talked about open sourcing some of the

927
00:50:07.000 --> 00:50:10.079
<v Speaker 1>tools that you're making and contributing back to the community.

928
00:50:11.800 --> 00:50:15.119
<v Speaker 1>That's a huge commitment and it's a it's a conscious

929
00:50:15.159 --> 00:50:18.119
<v Speaker 1>decision by companies because a lot of companies are like, yeah,

930
00:50:18.159 --> 00:50:20.440
<v Speaker 1>we invested this, it's a core part of our business.

931
00:50:20.480 --> 00:50:23.880
<v Speaker 1>We're using it for the business. But then you're saying,

932
00:50:24.280 --> 00:50:26.559
<v Speaker 1>I want to I want to give it back to

933
00:50:27.599 --> 00:50:36.000
<v Speaker 1>the community. How do you how do you tie that

934
00:50:36.119 --> 00:50:40.360
<v Speaker 1>back into your business model and and like justify or

935
00:50:40.960 --> 00:50:43.719
<v Speaker 1>account for the time that and the salaries that you're

936
00:50:43.760 --> 00:50:47.719
<v Speaker 1>spending on people working on an open source product.

937
00:50:49.079 --> 00:50:52.480
<v Speaker 4>Yeah, it's a great question, and you know, I'm sure

938
00:50:52.519 --> 00:50:57.320
<v Speaker 4>everybody will kind of make different judgments there, But for us,

939
00:50:57.320 --> 00:50:59.960
<v Speaker 4>the way we think about it is, Okay, we're developing tests.

940
00:51:00.079 --> 00:51:01.880
<v Speaker 3>I love this kind of q A A I q

941
00:51:02.000 --> 00:51:02.639
<v Speaker 3>A engineer.

942
00:51:03.639 --> 00:51:06.679
<v Speaker 4>You can think of the software that makes up test

943
00:51:06.719 --> 00:51:10.320
<v Speaker 4>Pilot as being into different buckets list in my hand. Right,

944
00:51:10.800 --> 00:51:17.519
<v Speaker 4>one is like the truly domain specific logic and kind

945
00:51:17.519 --> 00:51:21.840
<v Speaker 4>of proprietary aspects of it that make it behave like

946
00:51:21.880 --> 00:51:25.000
<v Speaker 4>a QA engineer, right, and that we're not open sourcing.

947
00:51:26.280 --> 00:51:28.159
<v Speaker 4>But then there's the tools that we wish we had

948
00:51:28.239 --> 00:51:31.719
<v Speaker 4>had that that we had to develop for ourselves that

949
00:51:31.760 --> 00:51:35.239
<v Speaker 4>are applicable to developing all sorts of AI agents and

950
00:51:35.320 --> 00:51:37.000
<v Speaker 4>all sorts of kind of.

951
00:51:36.960 --> 00:51:38.480
<v Speaker 3>AI related products.

952
00:51:39.679 --> 00:51:41.719
<v Speaker 4>And you know, we're a startup, We are trying to

953
00:51:41.719 --> 00:51:45.880
<v Speaker 4>get more eyeballs. We're trying to kind of become more prominent,

954
00:51:46.159 --> 00:51:49.360
<v Speaker 4>get people to hear about us, and so I actually

955
00:51:49.360 --> 00:51:56.920
<v Speaker 4>think of open sourcing almost as a marketing uh exercise. Uh,

956
00:51:57.280 --> 00:51:59.280
<v Speaker 4>we don't have marketers, we're all you know, we're very

957
00:51:59.280 --> 00:52:03.320
<v Speaker 4>technical teams basically engineers. But sometimes I think you can

958
00:52:03.360 --> 00:52:07.199
<v Speaker 4>look as open sources as a way to kind of

959
00:52:07.199 --> 00:52:10.599
<v Speaker 4>bring in that audience. And because our audience are developers, right,

960
00:52:10.599 --> 00:52:13.480
<v Speaker 4>I think if we're in a different vertical, you're serving

961
00:52:13.519 --> 00:52:18.440
<v Speaker 4>different customers, maybe open sourcing doesn't work that way. But

962
00:52:18.880 --> 00:52:21.880
<v Speaker 4>our audience is developers, and if we can create a

963
00:52:21.920 --> 00:52:25.679
<v Speaker 4>reputation of Wow, those guys that genify really know what

964
00:52:25.719 --> 00:52:28.360
<v Speaker 4>they're doing in terms of AI agents and have you

965
00:52:28.440 --> 00:52:30.679
<v Speaker 4>checked you know, have you seen the tools they've made

966
00:52:30.760 --> 00:52:32.920
<v Speaker 4>and the libraries they've made. I think that all just

967
00:52:33.000 --> 00:52:37.119
<v Speaker 4>kind of comes back to the type of business that

968
00:52:37.159 --> 00:52:38.119
<v Speaker 4>we're building.

969
00:52:38.199 --> 00:52:42.119
<v Speaker 2>Right, I totally agree. I mean we went down the

970
00:52:42.159 --> 00:52:44.360
<v Speaker 2>same path a while ago with some of the things

971
00:52:44.360 --> 00:52:47.119
<v Speaker 2>that we've opened source. It is like unfortunate to say

972
00:52:47.280 --> 00:52:50.119
<v Speaker 2>it is like a huge marketing story. It's marketing story

973
00:52:50.159 --> 00:52:54.199
<v Speaker 2>for brand awareness. It's a marketing story for hiring engineers,

974
00:52:54.639 --> 00:52:57.840
<v Speaker 2>so they know about your company or what you do

975
00:52:57.960 --> 00:53:00.440
<v Speaker 2>before that you know, they show up the end interview.

976
00:53:00.960 --> 00:53:02.599
<v Speaker 2>They can research it and see that you have something

977
00:53:02.639 --> 00:53:05.159
<v Speaker 2>technical rather than a website with a couple of links

978
00:53:05.159 --> 00:53:07.679
<v Speaker 2>on it and a knowledge base like that's not a lot, right,

979
00:53:07.719 --> 00:53:10.320
<v Speaker 2>you know, this gives them more ability to have insight

980
00:53:10.440 --> 00:53:13.800
<v Speaker 2>in what you're doing. I mean, there is a pessimistic

981
00:53:13.840 --> 00:53:15.599
<v Speaker 2>side of me that says, like, no one cares what

982
00:53:15.679 --> 00:53:18.840
<v Speaker 2>you put on the internet, Like, no one's that special, right,

983
00:53:18.880 --> 00:53:21.280
<v Speaker 2>your thing doesn't matter. I remember like a bunch of

984
00:53:21.280 --> 00:53:24.000
<v Speaker 2>times like Netflix went and open source a bunch of

985
00:53:24.039 --> 00:53:26.840
<v Speaker 2>huge technologies, and I'm just like, I don't care about

986
00:53:26.880 --> 00:53:29.840
<v Speaker 2>those things. But now some people maybe are using that

987
00:53:29.920 --> 00:53:33.280
<v Speaker 2>in production. I guess could be potentially because I think

988
00:53:33.280 --> 00:53:36.000
<v Speaker 2>they wrote them for Kubernetes or something, and you know,

989
00:53:36.079 --> 00:53:38.239
<v Speaker 2>so that's great, you know, you get that experience. I

990
00:53:38.239 --> 00:53:40.599
<v Speaker 2>think the one thing we try to be really careful

991
00:53:40.599 --> 00:53:42.760
<v Speaker 2>about that I think is important here is that the

992
00:53:42.800 --> 00:53:45.559
<v Speaker 2>thing that you're building needs to be really close to

993
00:53:45.639 --> 00:53:48.880
<v Speaker 2>your value, your actual product, because even if it's like

994
00:53:49.000 --> 00:53:51.800
<v Speaker 2>one or two hops away, then it's the people that

995
00:53:51.800 --> 00:53:55.039
<v Speaker 2>are utilizing it. They don't care what that thing is

996
00:53:55.079 --> 00:53:59.599
<v Speaker 2>that you're actually doing, which is super unfortunate. But I

997
00:53:59.639 --> 00:54:02.039
<v Speaker 2>will say that rather than a marketing tool. There's a

998
00:54:02.079 --> 00:54:05.599
<v Speaker 2>second step here, which is if you're going to open

999
00:54:05.639 --> 00:54:08.000
<v Speaker 2>source something, I feel like you feel like it's more

1000
00:54:08.039 --> 00:54:11.559
<v Speaker 2>important to do it well. And things that are done

1001
00:54:11.599 --> 00:54:14.519
<v Speaker 2>well will live longer and people will see and start

1002
00:54:14.519 --> 00:54:17.039
<v Speaker 2>to utilize more. And that give brings us sort of

1003
00:54:17.079 --> 00:54:20.920
<v Speaker 2>like a your own usage levels it up because you

1004
00:54:21.039 --> 00:54:23.440
<v Speaker 2>actually invested in doing that thing well. And so like,

1005
00:54:23.639 --> 00:54:25.760
<v Speaker 2>even if you weren't a deb box, wasn't sort of

1006
00:54:25.760 --> 00:54:28.559
<v Speaker 2>out there as a cloud thing that you could utilize

1007
00:54:28.599 --> 00:54:31.360
<v Speaker 2>and pay for the fact that you've opened source it

1008
00:54:31.400 --> 00:54:34.599
<v Speaker 2>means that that tool is now serving you, hopefully better

1009
00:54:35.159 --> 00:54:37.400
<v Speaker 2>for your mL development, for your own agent.

1010
00:54:37.519 --> 00:54:42.199
<v Speaker 4>Right, yeah, absolutely, And I actually we're about like different

1011
00:54:43.079 --> 00:54:45.199
<v Speaker 4>benefits that open source my brain. I'll give you a

1012
00:54:45.199 --> 00:54:49.400
<v Speaker 4>third one, at least in my view, which is, you know,

1013
00:54:49.440 --> 00:54:52.119
<v Speaker 4>when you're a startup, I think one of the most

1014
00:54:52.159 --> 00:54:55.280
<v Speaker 4>important things is be talking to users, right, be talking

1015
00:54:55.320 --> 00:54:59.760
<v Speaker 4>to users and learning from them. And we've found that

1016
00:54:59.800 --> 00:55:02.199
<v Speaker 4>when we open source things, we often get to talk

1017
00:55:02.239 --> 00:55:05.360
<v Speaker 4>to more users, but we also take get to talk

1018
00:55:05.400 --> 00:55:08.199
<v Speaker 4>to users that normally would not have talked to us.

1019
00:55:08.320 --> 00:55:12.280
<v Speaker 4>So you take that box. I don't know if we

1020
00:55:12.320 --> 00:55:15.719
<v Speaker 4>can share the specific companies. But there's some big ish

1021
00:55:15.760 --> 00:55:18.559
<v Speaker 4>companies using that box that I think if we had

1022
00:55:19.039 --> 00:55:22.159
<v Speaker 4>just kind of pure proprietary solution and or this little startup,

1023
00:55:22.880 --> 00:55:25.280
<v Speaker 4>they never would have looked at it. I think what

1024
00:55:25.320 --> 00:55:27.000
<v Speaker 4>gave them confidence to look at it is like, oh,

1025
00:55:27.039 --> 00:55:29.639
<v Speaker 4>there is this open source project kind of you know,

1026
00:55:29.679 --> 00:55:33.519
<v Speaker 4>worst case scenario, the startup goes nowhere, we can rely

1027
00:55:33.599 --> 00:55:35.880
<v Speaker 4>on that open source project and we can kind of

1028
00:55:35.920 --> 00:55:39.440
<v Speaker 4>continue improving it and whatnot. And so that's given us

1029
00:55:40.079 --> 00:55:43.599
<v Speaker 4>at least a channel to communicate with those types of

1030
00:55:43.760 --> 00:55:46.480
<v Speaker 4>potential customers and users, and it brings in a ton

1031
00:55:46.519 --> 00:55:49.719
<v Speaker 4>of learning for us in terms of Okay, what features

1032
00:55:49.719 --> 00:55:53.199
<v Speaker 4>are important, what is that class of user or customer

1033
00:55:53.599 --> 00:55:56.440
<v Speaker 4>asking us about and how should that I affect our

1034
00:55:56.480 --> 00:55:58.079
<v Speaker 4>product roadmap and whatnot.

1035
00:55:59.280 --> 00:56:02.320
<v Speaker 1>Oh that's huge, like in my opinion, like one of

1036
00:56:02.360 --> 00:56:06.280
<v Speaker 1>the like the primary objective of every startup is to

1037
00:56:06.280 --> 00:56:10.280
<v Speaker 1>figure out the difference between what you built and what

1038
00:56:09.760 --> 00:56:13.159
<v Speaker 1>you what your customers thought you were building. And so

1039
00:56:13.400 --> 00:56:16.760
<v Speaker 1>open sourcing gives you a way to have that conversation

1040
00:56:16.880 --> 00:56:21.360
<v Speaker 1>without trying to force them down through a sales pipeline, right,

1041
00:56:21.440 --> 00:56:22.159
<v Speaker 1>exactly right.

1042
00:56:23.239 --> 00:56:25.320
<v Speaker 2>It's scary though, because you know when you put it

1043
00:56:25.360 --> 00:56:27.360
<v Speaker 2>out there, it's like, well, people start will start to

1044
00:56:27.400 --> 00:56:32.960
<v Speaker 2>see my actual bad code, or it is scary my

1045
00:56:33.119 --> 00:56:36.440
<v Speaker 2>commitment messages you know that maybe I should have worded differently.

1046
00:56:37.079 --> 00:56:39.320
<v Speaker 4>And I mean it is tricky too, and like, you know,

1047
00:56:39.400 --> 00:56:42.360
<v Speaker 4>I gave you our kind of like ar heuristic for

1048
00:56:42.519 --> 00:56:46.840
<v Speaker 4>figuring out what parts of the spilot are open source

1049
00:56:46.920 --> 00:56:50.400
<v Speaker 4>and which ones aren't. But sometimes you're in some grade

1050
00:56:50.400 --> 00:56:52.519
<v Speaker 4>lines and you're kind of like should I open source

1051
00:56:52.559 --> 00:56:55.360
<v Speaker 4>this or not? Like is it Do I get more

1052
00:56:55.360 --> 00:56:58.920
<v Speaker 4>benefit from opening it up to the community and getting

1053
00:56:58.960 --> 00:57:03.519
<v Speaker 4>the audience and maybe getting some faster adoption, or do

1054
00:57:03.559 --> 00:57:06.599
<v Speaker 4>I get more benefit from keeping this kind of like

1055
00:57:06.639 --> 00:57:09.760
<v Speaker 4>the secret sounds of the company. And you know, there's

1056
00:57:09.800 --> 00:57:15.119
<v Speaker 4>all those stories like Elastic Search and AUS and.

1057
00:57:14.360 --> 00:57:16.559
<v Speaker 3>Everybody gets big and starts changing their licenses.

1058
00:57:16.559 --> 00:57:21.760
<v Speaker 2>So like, son, how I don't know how right I

1059
00:57:21.800 --> 00:57:24.960
<v Speaker 2>am here. We've done some initial research on the topic,

1060
00:57:25.000 --> 00:57:27.840
<v Speaker 2>and it does actually seem like customers that fall into

1061
00:57:28.000 --> 00:57:30.719
<v Speaker 2>a particular bucket never leave that bucket and go to

1062
00:57:30.800 --> 00:57:33.960
<v Speaker 2>a different one. Like a free user never converts to

1063
00:57:34.440 --> 00:57:37.880
<v Speaker 2>your lowest tier paid plan, and the average business plan

1064
00:57:37.960 --> 00:57:41.960
<v Speaker 2>doesn't escalate to enterprise. It just doesn't happen. People self

1065
00:57:42.000 --> 00:57:44.559
<v Speaker 2>identify with whatever bucket they're in, and so whether or

1066
00:57:44.639 --> 00:57:47.960
<v Speaker 2>not you have an open source solution really only functions

1067
00:57:47.960 --> 00:57:50.280
<v Speaker 2>as advertisement. The people who are using it aren't going

1068
00:57:50.320 --> 00:57:52.800
<v Speaker 2>to be more likely to get to like start to

1069
00:57:52.800 --> 00:57:55.800
<v Speaker 2>pay you. And one of the things we recognize, which

1070
00:57:55.800 --> 00:57:58.280
<v Speaker 2>is one of the reasons why our product, authoress is

1071
00:57:58.320 --> 00:58:01.920
<v Speaker 2>not open source for ninety percent of it, is because

1072
00:58:02.440 --> 00:58:06.000
<v Speaker 2>those free users actually generate ninety nine percent of the

1073
00:58:06.039 --> 00:58:09.239
<v Speaker 2>support cases that you need to deal with. So there's

1074
00:58:09.280 --> 00:58:11.800
<v Speaker 2>like a huge cost investment that goes into it, and

1075
00:58:11.880 --> 00:58:14.920
<v Speaker 2>you don't get any reward coming back from that. I mean,

1076
00:58:14.960 --> 00:58:18.239
<v Speaker 2>of course there's some gray areas where there's highly coupled

1077
00:58:18.239 --> 00:58:21.800
<v Speaker 2>technology and where it's being utilized effectively, but often the

1078
00:58:21.840 --> 00:58:23.280
<v Speaker 2>one the customers that are going to pay you the

1079
00:58:23.320 --> 00:58:26.480
<v Speaker 2>most money or be your best customers, like, they don't

1080
00:58:26.559 --> 00:58:30.119
<v Speaker 2>particularly care about running it themselves in most cases, unless

1081
00:58:30.119 --> 00:58:34.039
<v Speaker 2>they're like a government entity or you know, they have

1082
00:58:34.079 --> 00:58:35.559
<v Speaker 2>some regulations they have to deal with.

1083
00:58:36.679 --> 00:58:40.000
<v Speaker 4>Yeah, I mean usually if they really carry some compliance requirement,

1084
00:58:40.039 --> 00:58:42.239
<v Speaker 4>but that might just be pointing to like you need

1085
00:58:42.320 --> 00:58:45.280
<v Speaker 4>to solve that compliance requirement as well, right.

1086
00:58:45.119 --> 00:58:48.039
<v Speaker 2>Like, oh yeah, I mean, compliance doesn't mean security, so

1087
00:58:48.280 --> 00:58:49.719
<v Speaker 2>like that's a completely different story.

1088
00:58:50.199 --> 00:58:50.679
<v Speaker 3>Yeah.

1089
00:58:50.719 --> 00:59:03.679
<v Speaker 1>Absolutely, it's an additional chex right on. That was that

1090
00:59:03.760 --> 00:59:04.760
<v Speaker 1>was intense.

1091
00:59:07.000 --> 00:59:07.480
<v Speaker 3>A good way.

1092
00:59:08.039 --> 00:59:10.440
<v Speaker 1>Yeah, yeah, yeah, definitely in a good way. Definitely a

1093
00:59:10.480 --> 00:59:10.840
<v Speaker 1>good way.

1094
00:59:13.280 --> 00:59:15.559
<v Speaker 2>I mean, I know we jumped through a lot of

1095
00:59:15.559 --> 00:59:18.280
<v Speaker 2>different topics, Daniel. If you feel like there's something, you know,

1096
00:59:18.320 --> 00:59:21.239
<v Speaker 2>one last thing you want to share regarding either dev

1097
00:59:21.280 --> 00:59:25.920
<v Speaker 2>box or the QA copilot test pilot, you know.

1098
00:59:26.920 --> 00:59:32.400
<v Speaker 1>Have about it, let me think famous last words, go.

1099
00:59:34.079 --> 00:59:36.400
<v Speaker 3>Oh man, a lot of pressure. I mean, I don't know.

1100
00:59:36.519 --> 00:59:37.880
<v Speaker 3>I guess I'll just said maybe this.

1101
00:59:37.920 --> 00:59:40.559
<v Speaker 4>Is less about the specific products and just kind of

1102
00:59:41.599 --> 00:59:45.320
<v Speaker 4>things I'm excited about. But I am bullish on on

1103
00:59:45.679 --> 00:59:51.559
<v Speaker 4>AI agents. I mean, obviously I'm building one, but I

1104
00:59:51.599 --> 00:59:54.360
<v Speaker 4>just think there's more and more parts of software development

1105
00:59:54.400 --> 00:59:58.119
<v Speaker 4>that could be taking care of through agents, and I

1106
00:59:58.119 --> 01:00:00.320
<v Speaker 4>think it can be done in a way where we

1107
01:00:00.440 --> 01:00:03.800
<v Speaker 4>take away that kind of repetitive work and we still

1108
01:00:04.320 --> 01:00:07.199
<v Speaker 4>leave a lot of the fun and creativity to the humans.

1109
01:00:08.280 --> 01:00:10.960
<v Speaker 4>I know there's more doomsday scenarios that people talk about

1110
01:00:11.039 --> 01:00:12.639
<v Speaker 4>right where it's like, oh, we're all out of jobs

1111
01:00:12.679 --> 01:00:17.000
<v Speaker 4>and whatnot, But I'm actually hoping it's more like, now

1112
01:00:17.000 --> 01:00:22.400
<v Speaker 4>we can all achieve more because those less interesting parts

1113
01:00:22.639 --> 01:00:26.199
<v Speaker 4>of the cycle are taking care of automatically, and now

1114
01:00:26.199 --> 01:00:30.119
<v Speaker 4>you can focus more on system level thinking, on product

1115
01:00:30.199 --> 01:00:33.840
<v Speaker 4>level thinking and so on. So yeah, maybe I am

1116
01:00:33.840 --> 01:00:35.920
<v Speaker 4>an optimist like you guys were saying before.

1117
01:00:36.360 --> 01:00:40.719
<v Speaker 1>I'm just gonna say to that, no comment, I'm gonna

1118
01:00:40.719 --> 01:00:45.480
<v Speaker 1>agree with you, Daniel, like, regardless regardless of what technology does.

1119
01:00:45.880 --> 01:00:48.800
<v Speaker 1>I know, there's always going to be problems, and I've

1120
01:00:48.920 --> 01:00:52.840
<v Speaker 1>I've made a career out of solving problems, so I'm

1121
01:00:52.880 --> 01:00:54.280
<v Speaker 1>not too worried about it.

1122
01:00:54.599 --> 01:00:57.480
<v Speaker 2>Okay, I'm super worried about it. Should I share?

1123
01:00:57.559 --> 01:00:57.960
<v Speaker 1>Yeah?

1124
01:00:57.960 --> 01:00:59.800
<v Speaker 2>Absolutely, So you.

1125
01:00:59.760 --> 01:01:02.000
<v Speaker 4>Can worried about it, but like, let's make the world

1126
01:01:02.000 --> 01:01:02.320
<v Speaker 4>we want.

1127
01:01:02.880 --> 01:01:03.119
<v Speaker 3>Well.

1128
01:01:03.519 --> 01:01:06.599
<v Speaker 2>I feel like it's not a technology that's right for

1129
01:01:07.159 --> 01:01:13.400
<v Speaker 2>being democratized, for access for everyone to utilize equivalently. The

1130
01:01:13.440 --> 01:01:15.840
<v Speaker 2>people with the most money and the most power will

1131
01:01:15.880 --> 01:01:20.679
<v Speaker 2>have the most powerful agents at their disposal, and that

1132
01:01:20.800 --> 01:01:25.000
<v Speaker 2>just entrenches their own power and prevents them from being ousted,

1133
01:01:25.519 --> 01:01:29.280
<v Speaker 2>and it doesn't leave a lot of opportunity for those

1134
01:01:29.320 --> 01:01:34.039
<v Speaker 2>that are already being disadvantaged to rise up and fight

1135
01:01:34.119 --> 01:01:35.320
<v Speaker 2>against that oppression.

1136
01:01:37.239 --> 01:01:41.920
<v Speaker 1>There's a documentary on this called Terminator check it out.

1137
01:01:43.079 --> 01:01:43.880
<v Speaker 1>I think I've heard it.

1138
01:01:45.039 --> 01:01:52.360
<v Speaker 2>I think it has a well known narrator, right, yeah, yeah, No,

1139
01:01:52.480 --> 01:01:58.679
<v Speaker 2>I mean that's that for me, is that's optimism, that

1140
01:01:59.079 --> 01:02:02.960
<v Speaker 2>documentary scenario.

1141
01:02:06.719 --> 01:02:08.880
<v Speaker 1>All right, Now that we've all made our way onto

1142
01:02:08.920 --> 01:02:11.239
<v Speaker 1>an FBI watch list, let's move on to picks.

1143
01:02:13.880 --> 01:02:17.440
<v Speaker 2>Yeah, sure, so I'll go first today. My pick is

1144
01:02:17.480 --> 01:02:20.079
<v Speaker 2>going to be The Martian, the book by Andy Weir.

1145
01:02:20.840 --> 01:02:23.599
<v Speaker 2>He has a whole bunch of books. I don't know

1146
01:02:23.599 --> 01:02:25.280
<v Speaker 2>if I'll say this one is the best, but it's

1147
01:02:25.320 --> 01:02:29.639
<v Speaker 2>definitely really good. They're all science fiction adjacent. I mean,

1148
01:02:29.639 --> 01:02:34.199
<v Speaker 2>they're not the reality played out in a hypothetical future

1149
01:02:34.239 --> 01:02:39.960
<v Speaker 2>where well it's new scenario, and they're great. I think

1150
01:02:39.960 --> 01:02:43.800
<v Speaker 2>it's really well written. One of the first things I

1151
01:02:43.840 --> 01:02:46.440
<v Speaker 2>ever read from Andy where was actually something called The Egg,

1152
01:02:46.480 --> 01:02:49.079
<v Speaker 2>which is a very short story which I find also

1153
01:02:49.159 --> 01:02:52.119
<v Speaker 2>really good. And I and many many years later, I

1154
01:02:52.199 --> 01:02:55.000
<v Speaker 2>read The Martian and I didn't realize that it was

1155
01:02:55.039 --> 01:02:57.880
<v Speaker 2>the same author. And it's quite interesting to have read

1156
01:02:57.880 --> 01:02:59.639
<v Speaker 2>two pieces by the same author and be like, wait,

1157
01:03:00.039 --> 01:03:01.559
<v Speaker 2>it was this other really good thing that was written

1158
01:03:01.599 --> 01:03:03.920
<v Speaker 2>in a similar way, and like going back and actually

1159
01:03:03.960 --> 01:03:06.599
<v Speaker 2>seeing it's like I actually read that thing. So if

1160
01:03:06.599 --> 01:03:09.159
<v Speaker 2>you haven't read it, I haven't seen the movie yet actually,

1161
01:03:09.199 --> 01:03:11.360
<v Speaker 2>but if you haven't read the book, I highly recommend it.

1162
01:03:12.039 --> 01:03:14.400
<v Speaker 1>Right, and I have done both. I've read the book

1163
01:03:14.480 --> 01:03:18.800
<v Speaker 1>and seen the movie. But I'm happy to hear you

1164
01:03:18.840 --> 01:03:25.320
<v Speaker 1>say that that his other books are better, because that's yeah, yeah.

1165
01:03:24.840 --> 01:03:30.519
<v Speaker 2>So I really liked the short story. He has a

1166
01:03:31.119 --> 01:03:34.880
<v Speaker 2>drawn comic with like an overlap between Alice in Wonderland

1167
01:03:35.039 --> 01:03:39.000
<v Speaker 2>and Dorothy from Wizard of Oz, and I forget who

1168
01:03:39.039 --> 01:03:43.960
<v Speaker 2>the third character is. That's okay. The Martians great. There's

1169
01:03:43.960 --> 01:03:46.079
<v Speaker 2>two other books. I think there's a fourth one coming out.

1170
01:03:46.199 --> 01:03:48.800
<v Speaker 2>They're not related at all. The one Luna I think

1171
01:03:48.880 --> 01:03:51.360
<v Speaker 2>for the Moon. It's not as good but still interesting.

1172
01:03:51.400 --> 01:03:53.599
<v Speaker 2>And then there is one with a Deep Space, which

1173
01:03:53.639 --> 01:03:55.320
<v Speaker 2>is also really fantastic.

1174
01:03:56.519 --> 01:04:00.239
<v Speaker 1>Right on? Cool, Daniel, what'd you bring for pick?

1175
01:04:01.000 --> 01:04:01.480
<v Speaker 3>Awesome?

1176
01:04:01.880 --> 01:04:05.079
<v Speaker 4>So I have a book as well. It's Wild Robot.

1177
01:04:05.159 --> 01:04:08.280
<v Speaker 4>So I think I mentioned earlier. I have two young kids,

1178
01:04:09.039 --> 01:04:10.800
<v Speaker 4>an eight year old and a five year old, and

1179
01:04:10.840 --> 01:04:13.639
<v Speaker 4>so I do a lot of bedtime routine and reading

1180
01:04:13.679 --> 01:04:17.079
<v Speaker 4>with them, and so while Robot is one of the

1181
01:04:17.079 --> 01:04:19.800
<v Speaker 4>books that I'm reading with one of my kids by

1182
01:04:19.800 --> 01:04:23.280
<v Speaker 4>Peter Brown, there's a movie as well, kind of similar

1183
01:04:23.280 --> 01:04:27.639
<v Speaker 4>to the example you gave, But yeah, I just find

1184
01:04:27.639 --> 01:04:30.320
<v Speaker 4>it really interesting to read with my kids, your high level.

1185
01:04:30.320 --> 01:04:34.079
<v Speaker 4>It's about a robot that founds itself in an island,

1186
01:04:34.079 --> 01:04:36.920
<v Speaker 4>doesn't know where it came from, and eventually needs to

1187
01:04:36.960 --> 01:04:41.559
<v Speaker 4>take care of an animal, and it kind of makes

1188
01:04:41.599 --> 01:04:44.239
<v Speaker 4>you reflect on all these questions, like, you know, where

1189
01:04:44.360 --> 01:04:48.639
<v Speaker 4>his parenthood is this robot taking care of this animal?

1190
01:04:49.199 --> 01:04:53.039
<v Speaker 4>You know, is that a parent? What's the relationship between

1191
01:04:53.039 --> 01:04:54.039
<v Speaker 4>that animal and the robot?

1192
01:04:54.119 --> 01:04:56.960
<v Speaker 3>And I don't know. I guess I get a little

1193
01:04:57.000 --> 01:04:58.280
<v Speaker 3>sentimental because I'm reading that.

1194
01:04:58.239 --> 01:05:00.920
<v Speaker 4>With my kids and I have just I've just found

1195
01:05:00.960 --> 01:05:04.119
<v Speaker 4>it like really interesting for both of us to go

1196
01:05:04.159 --> 01:05:04.960
<v Speaker 4>through the story.

1197
01:05:05.519 --> 01:05:09.519
<v Speaker 1>That's cool, that's super cool. All right, Well, we're gonna

1198
01:05:09.519 --> 01:05:11.360
<v Speaker 1>make it a three peat. I'm changing my pick and

1199
01:05:11.400 --> 01:05:13.920
<v Speaker 1>I'm going with a book as well, because Warren you

1200
01:05:13.960 --> 01:05:18.719
<v Speaker 1>said something about, you know, recognizing the writing style. A

1201
01:05:18.760 --> 01:05:25.239
<v Speaker 1>while back, I read a book and really enjoyed it,

1202
01:05:25.280 --> 01:05:28.880
<v Speaker 1>and I was like, Wow, this guy writes so much

1203
01:05:28.960 --> 01:05:33.400
<v Speaker 1>like Stephen King. It's just insane. And the author's name

1204
01:05:33.440 --> 01:05:37.960
<v Speaker 1>is Joe Hill. Turns out it's Stephen King's son, so oh, wow.

1205
01:05:38.599 --> 01:05:38.840
<v Speaker 3>Yeah.

1206
01:05:39.880 --> 01:05:42.639
<v Speaker 1>Yeah. The book the book I read was Heart Shaped Box.

1207
01:05:43.239 --> 01:05:47.280
<v Speaker 1>And if you like Stephen King's writing style, Joe Hill

1208
01:05:47.360 --> 01:05:50.119
<v Speaker 1>just seems to have picked up on that style and

1209
01:05:50.239 --> 01:05:52.119
<v Speaker 1>continued running along with it.

1210
01:05:52.639 --> 01:05:55.599
<v Speaker 2>Is it also like thriller suspense stuff or is it

1211
01:05:55.880 --> 01:05:56.599
<v Speaker 2>a different.

1212
01:05:56.280 --> 01:06:01.119
<v Speaker 1>Genre, same same stuff, same like sick twisted thing where

1213
01:06:01.159 --> 01:06:06.119
<v Speaker 1>you're like, oh wow, I did not see that one coming. Yeah,

1214
01:06:06.199 --> 01:06:06.760
<v Speaker 1>good stuff.

1215
01:06:07.840 --> 01:06:09.800
<v Speaker 2>Do you ever find it a challenge to like pick

1216
01:06:09.840 --> 01:06:11.119
<v Speaker 2>up a book that you know is going to be

1217
01:06:11.199 --> 01:06:13.719
<v Speaker 2>like that and go through it and be like, I'm

1218
01:06:14.119 --> 01:06:15.760
<v Speaker 2>I don't know if I can keep going, like I'm

1219
01:06:15.800 --> 01:06:17.480
<v Speaker 2>really afraid of what I'm going to read next.

1220
01:06:19.719 --> 01:06:20.840
<v Speaker 1>No, I don't. I don't think so.

1221
01:06:24.719 --> 01:06:29.000
<v Speaker 2>Yeah, He's like, I love it. That's what I look

1222
01:06:29.039 --> 01:06:29.519
<v Speaker 2>forward to.

1223
01:06:29.920 --> 01:06:34.400
<v Speaker 1>Right, Yeah, I mean that. I guess. I guess the

1224
01:06:34.400 --> 01:06:36.519
<v Speaker 1>rest of that conversation is for me and my therapist.

1225
01:06:36.559 --> 01:06:42.920
<v Speaker 2>But well, don't worry, we'll shut the camera off here

1226
01:06:42.960 --> 01:06:46.119
<v Speaker 2>in a moment and conversation.

1227
01:06:47.360 --> 01:06:49.840
<v Speaker 1>Or it'll be like no, no, I promise I stopped recording.

1228
01:06:49.920 --> 01:06:51.000
<v Speaker 1>Tell us all about it.

1229
01:06:51.159 --> 01:06:52.960
<v Speaker 2>Well, you see this little red light on the top

1230
01:06:53.039 --> 01:06:54.159
<v Speaker 2>left hand corner.

1231
01:06:55.079 --> 01:06:57.320
<v Speaker 1>It's just a U I glitch. Don't worry about it,

1232
01:07:00.079 --> 01:07:01.800
<v Speaker 1>and thank you so much for joining us. This has

1233
01:07:01.840 --> 01:07:03.559
<v Speaker 1>been a blast, that's fantastic.

1234
01:07:03.960 --> 01:07:06.440
<v Speaker 3>I've enjoyed as well. Thank you guys for having me.

1235
01:07:06.880 --> 01:07:09.440
<v Speaker 1>All right, and to all of our listeners, hopefully you

1236
01:07:09.599 --> 01:07:12.039
<v Speaker 1>enjoyed it as well. Thank you for listening, and we'll

1237
01:07:12.039 --> 01:07:14.400
<v Speaker 1>see everyone next week.
