1
00:00:00,120 --> 00:00:02,940
I wouldn't want to program in any other language.

2
00:00:02,940 --> 00:00:07,050
But see, I, I just like the simplicity of the language.

3
00:00:07,080 --> 00:00:09,840
I don't like, uh, the fancy interfaces and I

4
00:00:09,840 --> 00:00:12,900
don't like, you know, things being hidden from me.

5
00:00:12,930 --> 00:00:14,220
So, Pirate's favorite language.

6
00:00:14,220 --> 00:00:17,400
Some people think it might be R but, uh, Pirate's First Love is the c.

7
00:00:20,990 --> 00:00:22,939
The dad jokes, do not get better from here.

8
00:00:27,920 --> 00:00:29,900
Welcome to Screaming in the Cloud.

9
00:00:30,140 --> 00:00:31,400
I'm Corey Quinn.

10
00:00:31,700 --> 00:00:37,910
My guest today is Roi Lipman, who is the CTO at Falco db.

11
00:00:38,330 --> 00:00:39,920
This episode is sponsored in part

12
00:00:39,920 --> 00:00:40,010
by

13
00:00:40,010 --> 00:00:41,810
my day Job Duck Bill.

14
00:00:42,035 --> 00:00:44,614
Do you have a horrifying AWS bill?

15
00:00:44,915 --> 00:00:46,775
That can mean a lot of things.

16
00:00:46,985 --> 00:00:50,074
Predicting what it's going to be, determining what it

17
00:00:50,074 --> 00:00:53,885
should be, negotiating your next long-term contract with

18
00:00:53,885 --> 00:00:57,875
AWS, or just figuring out why it increasingly resembles of.

19
00:00:58,400 --> 00:01:02,030
Phone number, but nobody seems to quite know why that is.

20
00:01:02,330 --> 00:01:05,900
To learn more, visit duck bill hq.com.

21
00:01:06,200 --> 00:01:09,080
Remember, you can't duck the duck bill.

22
00:01:09,110 --> 00:01:13,429
Bill, which my CEO reliably informs me is absolutely

23
00:01:13,429 --> 00:01:14,479
not our slogan.

24
00:01:14,970 --> 00:01:16,500
Chloe, thank you for joining me.

25
00:01:16,590 --> 00:01:18,509
Thank you, co. Happy to be here.

26
00:01:18,810 --> 00:01:20,820
So let's start at the very beginning.

27
00:01:20,850 --> 00:01:22,770
Uh, it seems like you can't swing a dead cat these

28
00:01:22,770 --> 00:01:26,970
days without hitting a different kind of database in

29
00:01:27,149 --> 00:01:31,560
all shapes, sizes, levels of management, et cetera.

30
00:01:32,160 --> 00:01:34,979
What, what type of databases, alco, where does it start?

31
00:01:34,979 --> 00:01:35,610
Where does it stop?

32
00:01:35,670 --> 00:01:39,449
I think, um, over the years there, there was an

33
00:01:39,449 --> 00:01:43,020
explosion of different, uh, databases coming.

34
00:01:43,470 --> 00:01:44,760
Uh, to the market.

35
00:01:44,790 --> 00:01:50,250
Faculty b is a player in the graph database field.

36
00:01:50,880 --> 00:01:53,160
Um, one of many.

37
00:01:53,340 --> 00:01:57,870
Um, you can usually, you know, there are the

38
00:01:57,870 --> 00:02:01,230
relational databases, which everybody probably know.

39
00:02:01,740 --> 00:02:08,729
And then about maybe a decade or two ago, um, we started

40
00:02:08,729 --> 00:02:12,900
to see no SQL databases such as Redis Key Value Store.

41
00:02:13,710 --> 00:02:15,300
Um, of their type.

42
00:02:15,450 --> 00:02:21,930
And within this NoSQL category, you can find document, uh, document

43
00:02:21,930 --> 00:02:27,630
databases such as, uh, Mongo, you see time series databases.

44
00:02:27,720 --> 00:02:30,990
Today you would also find vector databases.

45
00:02:31,470 --> 00:02:37,350
And there's this niche, um, which is the, you know,

46
00:02:37,350 --> 00:02:41,520
graph database field, uh, which we've been in.

47
00:02:42,390 --> 00:02:44,400
For the past 10 years now,

48
00:02:44,490 --> 00:02:48,810
I'm reminded of Forrest Brazil's comic years ago before he joined Google.

49
00:02:49,020 --> 00:02:51,825
Uh, sort of disambiguating all of the different.

50
00:02:52,545 --> 00:02:54,885
AWS managed database services.

51
00:02:55,005 --> 00:02:58,095
'cause it really seemed for a little while there, like the DBA job of the

52
00:02:58,095 --> 00:03:01,725
future was gonna be figuring out which of their 40 databases was the right

53
00:03:01,725 --> 00:03:06,465
option for any given workload And for, uh, the Neptune option that they offered.

54
00:03:06,585 --> 00:03:10,785
The, uh, the flow chart decision was, do you need, uh, graph database?

55
00:03:10,785 --> 00:03:12,885
And the only option was No, you don't.

56
00:03:12,885 --> 00:03:15,945
And it led right back to the previous question, which I thought was.

57
00:03:16,395 --> 00:03:17,415
Pretty amusing.

58
00:03:17,745 --> 00:03:20,715
Uh, it seems these days that graph databases

59
00:03:20,715 --> 00:03:22,815
have found a niche, but, but it is a niche.

60
00:03:22,815 --> 00:03:25,665
It's, it's a, it's, I've not built anything on top of one yet.

61
00:03:25,935 --> 00:03:30,585
And I talking to other folks, I don't think I'm very alone in that.

62
00:03:30,644 --> 00:03:31,755
Am I, am I the freak?

63
00:03:32,115 --> 00:03:33,465
No, I don't think so.

64
00:03:33,465 --> 00:03:38,355
I think that, uh, it's very natural for, to, for people to think.

65
00:03:38,805 --> 00:03:39,795
In tables.

66
00:03:39,915 --> 00:03:43,785
Well, it comes very natural to say, oh, my data fits into

67
00:03:43,785 --> 00:03:48,644
a table, so I'm gonna go with relational, uh, database.

68
00:03:49,065 --> 00:03:56,954
Um, those who are aware of this entity called Graph, uh, these are

69
00:03:56,954 --> 00:04:02,834
either, um, people who have encountered this probably during their time.

70
00:04:03,150 --> 00:04:04,350
At the university

71
00:04:04,680 --> 00:04:05,760
or working at Facebook

72
00:04:06,090 --> 00:04:13,380
or, yeah, I mean, if they think about, you know, how uh, the data in Facebook

73
00:04:13,380 --> 00:04:19,680
is modeled then, or in other, in any other social network, you would see this

74
00:04:19,680 --> 00:04:27,450
shape of a network or more generally We like to call it a graph forms, so, um.

75
00:04:28,020 --> 00:04:31,200
Apparently, uh, or as it, as it turns out, there is

76
00:04:31,200 --> 00:04:35,580
this very famous saying, uh, everything is a graph.

77
00:04:35,940 --> 00:04:46,260
So even if you are aware of it or not, um, it's very likely that a lot of

78
00:04:46,260 --> 00:04:54,480
domains are behind the scene or can be relatively easy described as a graph.

79
00:04:54,600 --> 00:04:57,060
Just, just throwing out a few examples.

80
00:04:57,615 --> 00:05:05,325
A social network obviously is a graph, roads and intersections, maps.

81
00:05:05,835 --> 00:05:07,185
These are graphs.

82
00:05:07,485 --> 00:05:16,335
Any type of, um, uh, network where data flows is, is a graph.

83
00:05:17,295 --> 00:05:21,645
Um, so graph do pop up, uh, in a lot of use cases.

84
00:05:21,645 --> 00:05:23,985
It's, it's just, uh, the.

85
00:05:24,765 --> 00:05:28,425
You know, the way in which we're viewing the problem and

86
00:05:28,905 --> 00:05:33,525
realizing that, oh, uh, I'm dealing with a graph here.

87
00:05:34,185 --> 00:05:40,844
So maybe instead of trying to false a graph structure into a different,

88
00:05:40,965 --> 00:05:47,205
uh, data model, such as the document store or a relational database

89
00:05:47,205 --> 00:05:52,724
with tables, maybe I should use the right data model for my domain.

90
00:05:53,295 --> 00:05:54,465
Or for my problem.

91
00:05:54,615 --> 00:06:00,165
And just to, to wrap this up, think about a navigation system.

92
00:06:00,195 --> 00:06:09,615
The one that you might have in your car whenever somebody changes, uh, the map.

93
00:06:09,675 --> 00:06:16,275
Let's say a new road was added, or uh, some road was removed

94
00:06:16,275 --> 00:06:19,425
because there's some construction and then the road is closed.

95
00:06:20,700 --> 00:06:25,380
Every update to that map need to go through a validation that

96
00:06:25,380 --> 00:06:30,419
says, uh, for example, in a given, if in a given state or

97
00:06:30,419 --> 00:06:35,849
in a given country, you should be able to drive from every

98
00:06:36,270 --> 00:06:42,419
location to any other location on that map or within that state.

99
00:06:42,510 --> 00:06:44,250
That is definition of how roads should work.

100
00:06:44,309 --> 00:06:44,580
Yeah.

101
00:06:44,580 --> 00:06:45,599
And it's pretty obvious.

102
00:06:45,599 --> 00:06:51,599
I mean, you should get from point A to point B. Try to solve this

103
00:06:51,630 --> 00:06:58,799
problem or make this verification when modeling this data as a table or

104
00:06:58,859 --> 00:07:03,929
as a set of tables or a set of documents, it's practically impossible.

105
00:07:04,140 --> 00:07:05,549
You need, you need a graph.

106
00:07:05,549 --> 00:07:08,940
It's a, it's a graph problem to begin with.

107
00:07:09,630 --> 00:07:17,190
And so, yes, I think that graphs are still a niche, but they do, uh, with.

108
00:07:17,760 --> 00:07:21,450
The explosion of ai, we do see them coming back.

109
00:07:22,185 --> 00:07:25,635
Real strong with this idea of knowledge graphs.

110
00:07:25,635 --> 00:07:30,885
For a while my default go-to was DynamoDB, and that was great for a

111
00:07:30,885 --> 00:07:33,645
variety of reasons for small throwaway projects, but something you

112
00:07:33,645 --> 00:07:36,825
learn pretty quickly when you start reaching for, uh, the every, uh.

113
00:07:37,290 --> 00:07:39,060
Every, every, you know, the tool you have is a hammer.

114
00:07:39,060 --> 00:07:40,230
Every problem looks like your thumb.

115
00:07:40,590 --> 00:07:43,560
Uh, when you're using Dynamo, it works really well.

116
00:07:43,560 --> 00:07:46,080
If and only if you know exactly what your access

117
00:07:46,080 --> 00:07:48,180
patterns are going to look like in advance.

118
00:07:48,450 --> 00:07:52,170
As soon as you start changing that due to evolving requirements,

119
00:07:52,290 --> 00:07:55,320
suddenly you're in a world of pain because you get to reimagine your

120
00:07:55,320 --> 00:07:58,560
entire table model, redo a bunch of stuff, possibly do a migration.

121
00:07:58,830 --> 00:08:02,910
So I have found that reaching by default for something like Postgre

122
00:08:02,910 --> 00:08:06,780
squeal tends to be the right answer for a lot of these things.

123
00:08:07,120 --> 00:08:10,570
But also increasingly I find that I don't care what

124
00:08:10,570 --> 00:08:13,330
database it uses 'cause I'm not the one building the code.

125
00:08:13,330 --> 00:08:18,370
I am hurling it over the wall for an AI tool to wind up building out for me.

126
00:08:18,820 --> 00:08:23,440
Uh, how are you seeing, I guess, the rise of graph in that universe?

127
00:08:23,770 --> 00:08:24,775
In the universe of.

128
00:08:25,315 --> 00:08:27,715
People building applications with ai,

129
00:08:27,715 --> 00:08:29,695
throwing it over the wall to AI so that it

130
00:08:29,695 --> 00:08:31,765
just decides whatever it's going to build.

131
00:08:31,765 --> 00:08:34,195
I, it has preferences and in some cases I've switched

132
00:08:34,195 --> 00:08:37,495
providers just because I got tired of fighting against it.

133
00:08:37,495 --> 00:08:40,315
Like, no use Amplify, don't want, I want to use Versal Fine.

134
00:08:40,315 --> 00:08:40,885
Use Versal.

135
00:08:40,885 --> 00:08:42,294
Just stop bothering me with it.

136
00:08:42,534 --> 00:08:51,055
I personally, personally, try to avoid handing off my work, uh, to ai.

137
00:08:51,175 --> 00:08:53,995
So I use it mostly for.

138
00:08:54,540 --> 00:08:55,709
Doing code review.

139
00:08:56,459 --> 00:09:02,219
So I, I don't have enough experience to to, to answer that question.

140
00:09:02,219 --> 00:09:05,339
I, I'm not in the position where I constantly

141
00:09:05,880 --> 00:09:08,910
hand up handing off, handing off work to an ai.

142
00:09:09,360 --> 00:09:09,420
So

143
00:09:10,500 --> 00:09:10,800
Right.

144
00:09:10,800 --> 00:09:13,770
In fairness, that's, that is where most developers are.

145
00:09:13,770 --> 00:09:16,620
I have the advantage of being a different kind of developer where

146
00:09:16,620 --> 00:09:19,740
my only two languages I know are brute force and enthusiasm.

147
00:09:20,010 --> 00:09:24,180
When I want a line of business app to glue two things together, well, that

148
00:09:24,180 --> 00:09:27,125
would've been a multi-day undertaking previously, and now it's, eh, just.

149
00:09:27,400 --> 00:09:29,590
There'll be a clicky thing so I can stop copying and

150
00:09:29,590 --> 00:09:31,870
pasting between two things like I have for four years.

151
00:09:32,170 --> 00:09:36,130
It's, it's basically the glue applications between things.

152
00:09:36,490 --> 00:09:41,890
And historically I found that I cared a lot more about things like

153
00:09:41,890 --> 00:09:45,310
data structures, the underlying code, how this stuff all ties together.

154
00:09:45,579 --> 00:09:47,680
Increasingly, I find as long as I have a solid

155
00:09:47,680 --> 00:09:50,140
test harness, I can, I don't have to care as much.

156
00:09:50,260 --> 00:09:53,439
Now, will this have problems if I start scaling any of these things?

157
00:09:53,620 --> 00:09:54,940
Oh, absolutely.

158
00:09:55,180 --> 00:09:58,360
But that's not a, that's not a risk for the way that

159
00:09:58,360 --> 00:10:00,880
I am building a lot of these things to begin with.

160
00:10:01,150 --> 00:10:04,180
It's more or less building everything with the idea from the outset

161
00:10:04,180 --> 00:10:06,460
that it's probably not gonna work and I'll throw it away and replace

162
00:10:06,460 --> 00:10:09,670
it in two months with something else, which is frankly, a luxury.

163
00:10:10,090 --> 00:10:12,130
But I do find that it gets me experimenting with

164
00:10:12,130 --> 00:10:14,740
different technologies I otherwise would not have.

165
00:10:15,315 --> 00:10:20,320
Had the ramp up time or focus to dive, really dive into, have

166
00:10:20,320 --> 00:10:23,205
you seen, have you seen folks that is coming to Falco from,

167
00:10:23,325 --> 00:10:26,415
well, AI suggested it, so now I'm curious, or is that not

168
00:10:26,415 --> 00:10:29,265
really the, the path that leads folks to a graph database?

169
00:10:29,385 --> 00:10:32,805
The way that our prospects of customers are ending

170
00:10:32,805 --> 00:10:36,975
up using Falco D Beta are usually two main paths.

171
00:10:37,275 --> 00:10:39,975
It's either they realize that they need a

172
00:10:39,975 --> 00:10:43,365
graph and they, they do a quick, uh, search.

173
00:10:43,709 --> 00:10:47,339
And they, uh, come up with a, a number of contends

174
00:10:48,300 --> 00:10:51,630
and, uh, hopefully they would pick a faculty.

175
00:10:52,230 --> 00:10:55,020
So those are sometimes they, they are,

176
00:10:55,829 --> 00:10:59,880
uh, coming fresh to this type of database.

177
00:10:59,880 --> 00:11:04,469
They did not have experience before, but they understand that the problem

178
00:11:04,469 --> 00:11:09,660
that they're trying to solve is best or is suited for a graph database.

179
00:11:10,050 --> 00:11:11,219
That's one path.

180
00:11:12,495 --> 00:11:18,135
The other one is, uh, prospects who had some experience with

181
00:11:18,135 --> 00:11:22,605
the grab database, maybe a short while or even for a few years.

182
00:11:23,295 --> 00:11:28,755
Um, and for any, you know, there might be multiple reasons

183
00:11:28,965 --> 00:11:32,145
that they're not happy with their current provider.

184
00:11:32,805 --> 00:11:38,505
Um, and so they, they want to try something else, usually.

185
00:11:39,135 --> 00:11:45,315
Uh, those people who are turning to fle DB are turning in, uh,

186
00:11:45,585 --> 00:11:52,395
because they have concerns regard to either scaling or performance.

187
00:11:52,395 --> 00:11:55,005
So this is where fle DB shines.

188
00:11:55,425 --> 00:12:01,185
Um, when you try to compare it to the other vendors, um, we have a unique

189
00:12:01,185 --> 00:12:06,465
approach to how we go about representing graphs and traversing them.

190
00:12:06,915 --> 00:12:12,555
But we also make it extremely easy for you to scale out, uh, in case

191
00:12:12,555 --> 00:12:16,560
you have multiple tenants or multiple graphs that you want to host.

192
00:12:17,430 --> 00:12:20,010
On your, uh, Falco DB database.

193
00:12:20,069 --> 00:12:23,670
Something that I, I noticed about Falco that ties into, I guess, a

194
00:12:23,670 --> 00:12:27,540
preexisting bias I've had because for a number of years it seems that

195
00:12:27,540 --> 00:12:31,920
folks have been pushing really hard to make Vector Search a its own

196
00:12:31,920 --> 00:12:36,360
database type, but it, it's become pretty clear across the board,

197
00:12:36,360 --> 00:12:38,729
across these are the database types that I spend more time with.

198
00:12:38,969 --> 00:12:41,699
That vector search is a feature, it is

199
00:12:41,699 --> 00:12:45,000
not an engine itself, and it appears that.

200
00:12:45,740 --> 00:12:49,970
Falcor has, Falco DB has taken this in a similar direction where you, you

201
00:12:49,970 --> 00:12:53,360
obviously have done a fair bit of enrichment with, uh, your own graph rag

202
00:12:53,360 --> 00:12:58,310
stuff, but vector search is a, is a already a feature that Falco DB does.

203
00:12:58,700 --> 00:12:59,750
Where do you land on that

204
00:13:00,470 --> 00:13:06,170
vector search or semantic search is, um, really.

205
00:13:06,570 --> 00:13:11,880
Important type of search that you, you can perform at the very

206
00:13:11,880 --> 00:13:15,660
beginning, or at least this is how I remember things a few years

207
00:13:15,660 --> 00:13:23,010
back with the, with the, with the ability to compute, embeddings

208
00:13:23,730 --> 00:13:30,570
and then search, given some data point, which you also turn into

209
00:13:30,570 --> 00:13:35,610
a, a, a vector, and then you search through the, the vector space.

210
00:13:36,194 --> 00:13:43,244
Uh, the first product that came out were actually vector databases.

211
00:13:43,244 --> 00:13:47,175
Companies such as Pine Cone, wate, I think

212
00:13:47,444 --> 00:13:50,204
Quadrant, and there, there are plenty.

213
00:13:51,074 --> 00:13:57,135
Um, and eventually the other players, relational databases

214
00:13:57,135 --> 00:14:01,214
of databases, any type of database looked at it as if.

215
00:14:01,949 --> 00:14:03,630
I don't think I want this feature.

216
00:14:03,630 --> 00:14:10,140
I want the ability to perform semantic search over my own, you know, data.

217
00:14:10,140 --> 00:14:14,520
I don't need a, a, a new database to add to the stack and manage.

218
00:14:15,720 --> 00:14:18,449
I look at it as a, as a search capability.

219
00:14:18,480 --> 00:14:23,655
And we already have indices doing full text, doing exact match.

220
00:14:24,875 --> 00:14:27,689
Why not doing also, uh, geo.

221
00:14:28,485 --> 00:14:33,465
Why not ex extend the index capability with, with Symantec?

222
00:14:34,215 --> 00:14:36,525
And this is what the entire industry had done.

223
00:14:36,525 --> 00:14:42,915
You would see these days, um, throughout the spectrum, almost

224
00:14:42,915 --> 00:14:48,345
any, any database would now support, uh, a vector capability.

225
00:14:48,525 --> 00:14:54,915
Now, I'm not saying that there's no no room for vector databases out there.

226
00:14:54,944 --> 00:14:57,525
I mean, if you are hosting.

227
00:14:58,230 --> 00:15:07,170
Uh, hundreds of, of millions or, uh, or even more vectors and that's,

228
00:15:07,170 --> 00:15:12,750
you know, the only type of information that you are storing for your

229
00:15:12,750 --> 00:15:18,120
application, then yeah, the vector database, you know, might make sense.

230
00:15:18,300 --> 00:15:19,590
Um, but.

231
00:15:20,775 --> 00:15:27,075
If your numbers are relatively, you know, reasonable, and you need those

232
00:15:27,075 --> 00:15:34,245
vectors just to do semantic search over the broader, uh, data set that you have.

233
00:15:34,485 --> 00:15:38,085
Uh, for example, let's say you have a, a database

234
00:15:38,085 --> 00:15:41,300
containing users and every user has a profile.

235
00:15:41,954 --> 00:15:46,005
Image and then you are getting a new image and you want

236
00:15:46,005 --> 00:15:50,895
to see, you know, which the top five users that are,

237
00:15:51,194 --> 00:15:54,735
you know, they look like the, the given query image.

238
00:15:55,035 --> 00:16:00,285
Then okay, use, use a vector index capability.

239
00:16:00,975 --> 00:16:02,055
So that's what we've done.

240
00:16:02,055 --> 00:16:04,245
This is what the entire industry had done.

241
00:16:04,574 --> 00:16:08,355
That, that I think, put a question mark on

242
00:16:08,655 --> 00:16:11,564
whether or not do we really need vector databases.

243
00:16:12,285 --> 00:16:17,415
I think that for the extreme cases, yes, but for the majority you would

244
00:16:17,415 --> 00:16:22,695
see people are using Postgres and they're doing TAL cells within Postgres.

245
00:16:23,025 --> 00:16:26,175
Others are doing it within file cord tb because you know, they

246
00:16:26,175 --> 00:16:29,295
have a graph and then they, they want this semantic capability.

247
00:16:29,579 --> 00:16:32,369
Which tracks, I mean, I'm not here to crop on other people's use cases.

248
00:16:32,400 --> 00:16:36,150
It's, it's one of those areas where people get very sensitive about it.

249
00:16:36,150 --> 00:16:37,050
It's like they're children.

250
00:16:37,050 --> 00:16:38,640
It's like, oh, so which is your favorite child?

251
00:16:38,640 --> 00:16:42,030
I can't stand any of them if I'm being direct now, it's,

252
00:16:42,060 --> 00:16:47,219
it becomes a almost a religious debate at some point.

253
00:16:47,489 --> 00:16:47,579
Mm-hmm.

254
00:16:48,479 --> 00:16:50,280
Where did Falco DB come from?

255
00:16:50,339 --> 00:16:52,709
What is the, what is the origin story of it?

256
00:16:52,739 --> 00:16:55,020
Because frankly, I, one day someone decided

257
00:16:55,020 --> 00:16:56,910
to sit down, I'm gonna write a graph database.

258
00:16:56,939 --> 00:17:00,390
Sounds like a supervi origin story more than anything else.

259
00:17:00,540 --> 00:17:03,060
Well, that's, that's what happened 10 years ago.

260
00:17:03,329 --> 00:17:03,959
Uh, with me.

261
00:17:05,399 --> 00:17:12,179
I was, um, I took a course, uh, at the university that had dealt

262
00:17:12,179 --> 00:17:16,560
with graph, and I just fell in love with this idea of graphs.

263
00:17:17,099 --> 00:17:22,649
Um, and, uh, I thought that back then I thought that it would be

264
00:17:22,649 --> 00:17:29,190
interesting to extend Redis capability with, uh, a graph data type.

265
00:17:29,250 --> 00:17:36,060
Back then Redis just came out with its ability to extend, uh, the database

266
00:17:36,060 --> 00:17:41,580
with modules, read this modules, and I thought it would be a nice idea

267
00:17:41,580 --> 00:17:46,169
to have a graph data type and some graph capabilities within reds.

268
00:17:46,935 --> 00:17:50,595
So, um, I worked on that project for a while.

269
00:17:50,595 --> 00:17:53,715
I think it was about, uh, six months.

270
00:17:53,835 --> 00:17:58,034
And then I met with the, the Redis folks and I, you know, showed them

271
00:17:58,034 --> 00:18:02,445
what I've been up to and they said, oh, that's really interesting.

272
00:18:02,445 --> 00:18:04,905
You should come and join Redis.

273
00:18:05,264 --> 00:18:11,100
Um, so I did, and within Redis I've built Redis graph.

274
00:18:11,445 --> 00:18:13,780
So we turned this six month.

275
00:18:14,745 --> 00:18:19,635
Uh, worth of work at home into an actual product.

276
00:18:20,235 --> 00:18:24,975
Um, I've done that at Redis for about six to seven years,

277
00:18:25,635 --> 00:18:31,304
building and developing Redis graph, um, which eventually

278
00:18:31,544 --> 00:18:36,105
Redis decided to abandon or, you know, shut down the project.

279
00:18:36,824 --> 00:18:40,034
And, uh, myself and two other colleagues of mine

280
00:18:40,034 --> 00:18:42,345
thought that it would be a shame to see this project.

281
00:18:43,065 --> 00:18:44,385
Go down the drain.

282
00:18:44,895 --> 00:18:49,455
And so we decided to spin out of Redis and turn

283
00:18:49,725 --> 00:18:55,095
Redis graph into what now is known as Fal Cord db.

284
00:18:55,095 --> 00:19:00,315
So we've basically just continue on from where we've left off at Redis.

285
00:19:00,855 --> 00:19:05,145
Um, and we've been doing that for over two years now.

286
00:19:05,385 --> 00:19:08,415
So around 10 years in total.

287
00:19:08,504 --> 00:19:11,450
I'm involved in building and, you know.

288
00:19:12,225 --> 00:19:17,145
Getting a graph database out there, which is competitive.

289
00:19:17,505 --> 00:19:21,795
Um, so yeah, that's, that's the background story behind File Core.

290
00:19:23,115 --> 00:19:26,655
This episode is sponsored by my own company, duck Bill.

291
00:19:26,925 --> 00:19:29,895
Having trouble with your AWS bill, perhaps

292
00:19:29,895 --> 00:19:32,565
it's time to renegotiate a contract with them.

293
00:19:32,925 --> 00:19:35,055
Maybe you're just wondering how to predict

294
00:19:35,055 --> 00:19:38,325
what's going on in the wide world of AWS.

295
00:19:38,355 --> 00:19:40,995
Well, that's where Duck Bill comes to help.

296
00:19:41,205 --> 00:19:43,965
Remember, you can't duck the duck bill.

297
00:19:43,965 --> 00:19:45,765
Bill, which I am reliably

298
00:19:45,765 --> 00:19:50,145
informed by my business partner is absolutely not our motto.

299
00:19:50,405 --> 00:19:53,675
To learn more, visit bill hq com.

300
00:19:54,425 --> 00:19:57,995
How do you find that it has been to run effectively?

301
00:19:57,995 --> 00:20:01,455
What is a. I, I, I have to be careful using terms like open

302
00:20:01,455 --> 00:20:04,034
source, people get salty about this, but you are source available.

303
00:20:04,245 --> 00:20:09,225
Uh, do you find that it is tricky to run a viable business where

304
00:20:09,225 --> 00:20:12,465
there's also the story of, or you can just use the code and all

305
00:20:12,465 --> 00:20:15,824
the stuff that we build for free and make available to everyone?

306
00:20:16,040 --> 00:20:18,465
I, I, I think I understand that it's somewhat of a leading

307
00:20:18,465 --> 00:20:21,135
question and a naive one, but I am curious to get your take on it.

308
00:20:21,344 --> 00:20:23,175
Yeah, I mean, it's tricky.

309
00:20:23,235 --> 00:20:24,735
It's a question that pops up.

310
00:20:25,020 --> 00:20:29,070
Uh, from time to time, I think that the, the benefits of having your

311
00:20:29,070 --> 00:20:34,199
product as an open source are greater than having it as a closed source.

312
00:20:34,590 --> 00:20:41,129
Um, what happens is that your adoption rate is much, is much greater when

313
00:20:41,129 --> 00:20:48,090
you have your product, um, available for free on the other, on the other end.

314
00:20:48,090 --> 00:20:50,100
Yes, it's a bit frustrating to see all of

315
00:20:50,100 --> 00:20:51,915
those people who are using the product and.

316
00:20:53,010 --> 00:20:55,620
Are not chipping, chipping in.

317
00:20:56,129 --> 00:20:59,940
Uh, but I mean, at the end of the day, for me, it's a,

318
00:20:59,940 --> 00:21:05,250
it's a huge, um, it's, it's just a pleasure to see, uh,

319
00:21:05,250 --> 00:21:09,810
the work that I've done being used all over the place.

320
00:21:09,870 --> 00:21:12,629
And it, it comes as a surprise.

321
00:21:12,629 --> 00:21:15,060
You know, we, we are not aware of all of the use

322
00:21:15,060 --> 00:21:17,370
cases and all of the people who are using the product.

323
00:21:17,370 --> 00:21:19,110
And when somebody reaches out.

324
00:21:20,129 --> 00:21:23,100
Uh, and we, you know, have a conversation with him and you see the

325
00:21:23,100 --> 00:21:28,500
product being used for a variety of, uh, workloads and use cases.

326
00:21:28,919 --> 00:21:32,159
It, you know, you feel, you feel great about that.

327
00:21:32,669 --> 00:21:37,139
In addition, the fact that it, it is source available, people

328
00:21:37,139 --> 00:21:41,790
can submit issues, people can have a conversation about it.

329
00:21:42,449 --> 00:21:45,300
Um, there is, there is benefit to it.

330
00:21:45,389 --> 00:21:47,850
So if you look at our Gita page, you'll see.

331
00:21:48,780 --> 00:21:50,760
Um, plenty of issues.

332
00:21:50,939 --> 00:21:55,350
Um, and I think it's, it's great to have GitHub issues because

333
00:21:55,350 --> 00:21:57,989
it shows that people are, are using the product and they're,

334
00:21:58,110 --> 00:22:02,550
and, and they care enough to go and, and open an issue.

335
00:22:03,149 --> 00:22:05,879
Um, and so we, we learn from that.

336
00:22:05,879 --> 00:22:11,850
I mean, it's kind of like a free QA to the product we might be able

337
00:22:11,850 --> 00:22:16,949
to produce or to generate more revenue if we were closed source.

338
00:22:17,325 --> 00:22:20,175
But I think that the, the benefits of having something open

339
00:22:20,175 --> 00:22:23,790
and making some contribution to the open source community.

340
00:22:24,840 --> 00:22:29,370
Um, does pay off, uh, at the, at the long climb,

341
00:22:29,489 --> 00:22:30,120
apparently.

342
00:22:30,179 --> 00:22:35,040
Uh, back in 2024, you folks did a, uh, an

343
00:22:35,040 --> 00:22:38,399
announcement about rewriting Alcore DB and rust.

344
00:22:38,429 --> 00:22:38,520
Mm-hmm.

345
00:22:38,909 --> 00:22:39,959
Uh, that often.

346
00:22:39,959 --> 00:22:43,560
I, my snide comment has always been the primary IDE of a rust

347
00:22:43,560 --> 00:22:46,229
developer is PowerPoint because it's impossible to do anything

348
00:22:46,229 --> 00:22:48,540
in rust without doing a whole dog and pony show around it.

349
00:22:48,780 --> 00:22:49,770
Uh, has that been completed?

350
00:22:49,770 --> 00:22:50,189
How'd it go?

351
00:22:50,310 --> 00:22:52,290
No, it's still a walk in progress.

352
00:22:52,939 --> 00:22:58,399
Um, my other, uh, co-founder Avi, is in

353
00:22:58,399 --> 00:23:02,149
charge of doing the, the vast right at first.

354
00:23:02,149 --> 00:23:05,689
We've tried to do that in a gradual form, so

355
00:23:05,689 --> 00:23:09,949
we have this relatively large C code base.

356
00:23:09,980 --> 00:23:10,790
I'm a big.

357
00:23:11,324 --> 00:23:12,524
C fan.

358
00:23:12,584 --> 00:23:18,824
I, I am a, I wouldn't want to program in any other language, but C Oh,

359
00:23:19,245 --> 00:23:21,405
that, that'll get you hate mail just for that statement alone.

360
00:23:22,814 --> 00:23:25,185
Uh, maybe I, I mean, I'm 42 years old.

361
00:23:25,185 --> 00:23:29,895
Um, so maybe that's the, you know, the, the age.

362
00:23:30,095 --> 00:23:34,475
Yeah, we are a gentleman of a certain age and yeah, at some point learning the

363
00:23:34,475 --> 00:23:39,095
latest new, trendy things, it just feels like it's more trouble than it's worth.

364
00:23:39,095 --> 00:23:40,325
If I'm being direct,

365
00:23:40,475 --> 00:23:43,595
I, I just like the simplicity of the language.

366
00:23:43,625 --> 00:23:46,415
I don't like, uh, the fancy interfaces and I

367
00:23:46,415 --> 00:23:49,355
don't like, you know, things being hidden from me.

368
00:23:49,685 --> 00:23:53,254
The type of programming that it is needed for, to develop a high

369
00:23:53,254 --> 00:23:58,085
performance curve database, you need to be aware or, and in control of.

370
00:23:59,130 --> 00:24:02,910
Practically anything that happens in your system and any language that

371
00:24:02,970 --> 00:24:08,520
hides stuff from you, uh, and the language that would not give you

372
00:24:08,520 --> 00:24:15,270
absolute control over the instructions and the memory layout, you would

373
00:24:15,270 --> 00:24:19,590
simply, you know, would not be able to fully utilize the hardware.

374
00:24:19,680 --> 00:24:22,590
Just circling back to the Russ question, so

375
00:24:22,590 --> 00:24:25,530
we, we, the first, we try to do it gradually.

376
00:24:26,175 --> 00:24:30,630
Taking apart, uh, components that are ancy and reit them in

377
00:24:31,065 --> 00:24:35,655
and integrating them back, that didn't work too well for us.

378
00:24:35,955 --> 00:24:39,735
And so, uh, after a year of trying this out,

379
00:24:39,795 --> 00:24:42,735
we've decided that this approach would not work.

380
00:24:42,825 --> 00:24:47,445
And so we're gonna write everything in one go the entire thing from Sketch.

381
00:24:47,685 --> 00:24:52,035
So that, that's gonna take a while in my mind.

382
00:24:53,025 --> 00:24:56,535
Um, they're, they're due, you know, they did make a

383
00:24:56,535 --> 00:25:00,795
good progress, uh, but it's still not there just yet.

384
00:25:01,935 --> 00:25:04,905
Um, I'm more focused on the C,

385
00:25:05,205 --> 00:25:06,465
so Pirate's favorite language.

386
00:25:06,465 --> 00:25:09,044
Some people think it might be R, but the Pirate's first.

387
00:25:09,044 --> 00:25:09,735
Love is the C

388
00:25:13,395 --> 00:25:13,635
Dad.

389
00:25:13,635 --> 00:25:15,135
Jokes do not get better from here.

390
00:25:16,635 --> 00:25:18,014
I store them in a database.

391
00:25:18,290 --> 00:25:20,480
There's a separate, there's a whole spiel we

392
00:25:20,480 --> 00:25:23,149
can go into and we'll avoid for brevity's sake.

393
00:25:23,210 --> 00:25:27,050
What I guess is the, the challenge I've always had, and I suspect I'm not

394
00:25:27,050 --> 00:25:31,490
alone in this, is I keep seeing graph databases and I see things that are

395
00:25:31,490 --> 00:25:36,810
interesting, but I, I'm missing a toy problem that feels like a good fit for it.

396
00:25:36,824 --> 00:25:37,044
Um.

397
00:25:37,980 --> 00:25:43,320
Take a relational database and great, I'm going to go and build even

398
00:25:43,320 --> 00:25:46,500
something dumb like a to-do app, which is still overkill for some of that.

399
00:25:46,740 --> 00:25:50,370
Or I'm going to build something that will track books in a library,

400
00:25:50,400 --> 00:25:53,520
uh, with, and you get multi table stories with authors and books.

401
00:25:53,520 --> 00:25:57,510
And the rest I, what is, I guess, the toy problem, uh, minimum

402
00:25:57,510 --> 00:26:01,170
viable footprint that isn't insane for a graph database.

403
00:26:01,320 --> 00:26:03,750
So I have, uh, maybe two examples.

404
00:26:03,750 --> 00:26:06,270
We've recently done a webinar about.

405
00:26:06,855 --> 00:26:12,315
Our UDF capabilities, user, user defined functions, uh, within the database.

406
00:26:12,375 --> 00:26:18,885
And, uh, the, um, project which showcased this was farm to table.

407
00:26:19,245 --> 00:26:26,085
So the idea was in this graph you have nodes, entities representing forms.

408
00:26:26,475 --> 00:26:28,650
Those are connected to delivery hubs.

409
00:26:29,595 --> 00:26:32,415
Which might connect to other delivery hubs, but

410
00:26:32,415 --> 00:26:36,195
eventually they would reach a store like Trader Joe's.

411
00:26:36,915 --> 00:26:42,495
And basically what you want to do is to find a path that would get the

412
00:26:42,495 --> 00:26:49,425
produce fruits and vegetables and keep them as fresh as possible to the store.

413
00:26:49,515 --> 00:26:51,945
So in other words, it's an implementation of the traveling salesman problem.

414
00:26:52,035 --> 00:26:55,665
Yes, you can You, I mean, you can think about it that way.

415
00:26:55,725 --> 00:26:57,495
It's a path finding problem.

416
00:26:58,020 --> 00:27:02,129
Where you want to optimize, uh, some function in,

417
00:27:02,220 --> 00:27:05,700
in our case, it was the, the freshness of the food.

418
00:27:06,330 --> 00:27:11,160
Uh, but you can also look at it and say, okay, I want to, uh,

419
00:27:11,190 --> 00:27:16,320
find the path which has the minimum cost of transportation.

420
00:27:16,649 --> 00:27:20,610
So that's maybe one example where, you know,

421
00:27:20,610 --> 00:27:24,750
we got databases, uh, are, are a great fit.

422
00:27:24,750 --> 00:27:26,385
Another one, which, you know, people.

423
00:27:26,745 --> 00:27:29,564
It can relate to is access management.

424
00:27:30,014 --> 00:27:34,004
So think about a big organization with lots of users and those users

425
00:27:34,004 --> 00:27:38,054
are, uh, grouped into groups and there might be a group hierarchy.

426
00:27:38,060 --> 00:27:43,125
And then there are resources such as servers and files and folders.

427
00:27:43,635 --> 00:27:46,574
And every time a user tried to access one of those

428
00:27:46,574 --> 00:27:50,205
resources, you need to make sure that he has the right axis.

429
00:27:50,264 --> 00:27:54,165
And so this once again becomes a, a path finding problem.

430
00:27:54,165 --> 00:27:56,189
If you think of it, you need to see if there is a path.

431
00:27:57,345 --> 00:28:01,275
Connecting that user through a set of different

432
00:28:01,515 --> 00:28:05,445
groups to the end, uh, to the end resource.

433
00:28:05,625 --> 00:28:07,260
So we actually have a number of.

434
00:28:08,235 --> 00:28:10,545
Customers who are using Falco tb Exactly.

435
00:28:10,545 --> 00:28:11,295
For this,

436
00:28:11,385 --> 00:28:14,355
my last question before we wind up calling this an

437
00:28:14,355 --> 00:28:17,505
episode is open source, source available, et cetera.

438
00:28:17,505 --> 00:28:17,865
Great.

439
00:28:17,925 --> 00:28:18,345
Awesome.

440
00:28:18,405 --> 00:28:22,335
Your code is on GitHub and accepts contributions from the larger community.

441
00:28:23,085 --> 00:28:26,085
I have heard a lot of open source maintainers.

442
00:28:26,145 --> 00:28:26,505
Uh.

443
00:28:26,679 --> 00:28:28,600
I have some minor stuff up, but you know, we're talking

444
00:28:28,600 --> 00:28:30,250
to actual people who are serious about this stuff.

445
00:28:30,490 --> 00:28:36,970
Uh, they are inundated with a barrage of AI generated pull requests.

446
00:28:37,240 --> 00:28:42,580
The quality of which is, uh, will be polite and say varies widely.

447
00:28:43,149 --> 00:28:44,860
What has your experience been with that

448
00:28:45,100 --> 00:28:45,700
faculty?

449
00:28:45,700 --> 00:28:50,860
B is is not an easy product to contribute code to.

450
00:28:51,645 --> 00:28:56,145
So if we're getting some contributions, it's, it's

451
00:28:56,145 --> 00:28:59,145
very rare and we're very happy to receive them.

452
00:28:59,895 --> 00:29:05,055
That said, a few, a few years back before, uh, you

453
00:29:05,055 --> 00:29:08,925
know, all of those new AI tools, whenever a PR showed.

454
00:29:09,255 --> 00:29:13,545
Uh, it was obvious that the, there was a person behind that PI

455
00:29:14,175 --> 00:29:19,395
who took the time and wrote the, the piece of code that he wanted,

456
00:29:19,545 --> 00:29:19,785
right?

457
00:29:19,785 --> 00:29:21,015
Someone cared.

458
00:29:21,075 --> 00:29:22,995
Uh, my fir, one of my early exposures to the open

459
00:29:22,995 --> 00:29:25,005
source world in that sense was with SaltStack.

460
00:29:25,305 --> 00:29:28,545
Tom Hatch was a phenomenal founder of that

461
00:29:28,545 --> 00:29:30,660
project and company 'cause he would accept.

462
00:29:31,264 --> 00:29:36,635
My shitty poll request, and then he would thank me for it and then immediately

463
00:29:36,784 --> 00:29:42,004
rewrite it so it was good, and then submit that as a second poll request

464
00:29:42,155 --> 00:29:48,280
within minutes, which does not scale for crap, but it was so welcoming and so.

465
00:29:48,959 --> 00:29:51,389
You belong here, that it really led to an

466
00:29:51,389 --> 00:29:54,360
amazing community for a while that doesn't scale.

467
00:29:54,360 --> 00:29:56,790
And I'm not suggesting anyone should necessarily follow

468
00:29:56,790 --> 00:30:00,030
that pattern, but man, was I fortunate to encounter that,

469
00:30:00,425 --> 00:30:03,720
that, I mean, that was a great gesture on his behalf.

470
00:30:03,899 --> 00:30:12,209
Um, I feel like, you know, if, if I am, if I think that PI is, uh,

471
00:30:13,470 --> 00:30:18,449
addresses a real issue and uh, there's a good justification to add it.

472
00:30:18,885 --> 00:30:23,355
It's, it's very likely that I would do some rewriting to it or ask the, the,

473
00:30:23,415 --> 00:30:25,365
you can also, this was also a different era.

474
00:30:25,425 --> 00:30:27,255
You can assume good faith.

475
00:30:27,315 --> 00:30:31,425
Back in 2012 when I was doing these things, now for all, you

476
00:30:31,425 --> 00:30:34,755
know, someone just threw something into a slop cannon and

477
00:30:34,755 --> 00:30:37,755
basically said, I need to have another one for my resume.

478
00:30:37,785 --> 00:30:39,585
Go, go submit a pr.

479
00:30:39,615 --> 00:30:41,535
And they don't, they don't know what the project is.

480
00:30:41,535 --> 00:30:42,735
They don't care about it.

481
00:30:42,885 --> 00:30:46,545
At least historically, it used to be people going through and fixing the comma.

482
00:30:46,655 --> 00:30:49,024
Placement in your docks fine, whatever.

483
00:30:49,295 --> 00:30:50,915
Now it's a lot harder to tell.

484
00:30:50,975 --> 00:30:53,435
We actually open, uh, a few.

485
00:30:53,615 --> 00:30:57,065
We have a number of issues that we are opening to get help

486
00:30:57,065 --> 00:31:00,875
from the public and we're willing to pay for those prs.

487
00:31:01,595 --> 00:31:05,975
Oh, no, that, I'm sure this will not cause an in influx of AI generated prs.

488
00:31:06,035 --> 00:31:06,545
Oh no.

489
00:31:06,605 --> 00:31:09,725
Yeah, that's exactly what is happening these days.

490
00:31:09,754 --> 00:31:11,465
Uh, people try to know too.

491
00:31:12,195 --> 00:31:18,465
Address those PIs and collect, uh, that money by simply throwing an AI at it.

492
00:31:18,825 --> 00:31:22,095
And then we're, we're, you know, we're bombarded.

493
00:31:22,095 --> 00:31:23,085
We've seen crap like this.

494
00:31:23,085 --> 00:31:27,045
Like I get at this on my security email inbox all the time for last

495
00:31:27,045 --> 00:31:30,525
week in AWS, which is again, a podcast and an email newsletter.

496
00:31:30,764 --> 00:31:33,675
It is not a SaaS app or anything like it.

497
00:31:33,675 --> 00:31:36,135
And they're always finding the same things of you're not.

498
00:31:36,245 --> 00:31:40,655
Enforcing hard fail for SPF on your emails because if you do that, it will in

499
00:31:40,655 --> 00:31:44,104
fact cause some problems with email forwarding in some newsletter edge cases.

500
00:31:44,435 --> 00:31:46,145
So there you should fix that.

501
00:31:46,145 --> 00:31:46,985
Pay me please.

502
00:31:47,014 --> 00:31:48,604
Like, what the hell is this?

503
00:31:48,695 --> 00:31:50,254
It's the lowest effort.

504
00:31:50,254 --> 00:31:51,395
It's the beg bounty.

505
00:31:51,935 --> 00:31:52,445
It's awful.

506
00:31:52,564 --> 00:31:52,985
Awful.

507
00:31:53,074 --> 00:31:54,485
We're getting those as well.

508
00:31:54,784 --> 00:31:57,185
Um, I mean, at least twice a week.

509
00:31:57,185 --> 00:31:59,854
I'm getting an email of that sort.

510
00:32:00,570 --> 00:32:01,010
I don't know.

511
00:32:01,010 --> 00:32:02,330
It's a, it's a new era.

512
00:32:03,044 --> 00:32:03,615
I think

513
00:32:03,825 --> 00:32:06,375
it is, and I would not wanna be starting my career in this era.

514
00:32:06,375 --> 00:32:08,054
I, I don't have a better path for this.

515
00:32:08,060 --> 00:32:10,695
The, the roads you and I walked have long since closed.

516
00:32:10,695 --> 00:32:12,405
It's the world's a different place.

517
00:32:12,495 --> 00:32:16,575
I, I'm always scared to give Boomer tear advice of, well, back in my day, just

518
00:32:16,665 --> 00:32:20,145
you print out your resume, a nice paper, and you walk into the office and you

519
00:32:20,145 --> 00:32:23,175
demand to speak to the owner and you have a firm handshake and hit the bricks.

520
00:32:23,175 --> 00:32:24,435
You'll have a job by sundown.

521
00:32:24,585 --> 00:32:25,125
Yeah, sure.

522
00:32:25,125 --> 00:32:25,514
That'll work.

523
00:32:26,264 --> 00:32:27,645
Now they'll call the police.

524
00:32:27,705 --> 00:32:31,889
I see people, colleagues of mine or you know, family who.

525
00:32:32,620 --> 00:32:35,980
Who are working, uh, in the tech industry and the

526
00:32:35,980 --> 00:32:40,030
picture that they paint is, is, is pretty awful.

527
00:32:40,090 --> 00:32:47,260
I mean, from my perspective, people who, you know, call themselves poels, are

528
00:32:47,260 --> 00:32:52,719
not, are not typing anything in the keyboard except for handing, handing their,

529
00:32:52,810 --> 00:32:58,570
uh, work over to an AI and then just ing stuff in without even looking at it.

530
00:32:59,385 --> 00:33:02,625
And then you ask them, you know, okay, how does it work?

531
00:33:02,985 --> 00:33:04,845
Or maybe you can walk me through this.

532
00:33:04,905 --> 00:33:07,065
And the answer is, I have no idea.

533
00:33:07,545 --> 00:33:08,715
AI generated it.

534
00:33:09,705 --> 00:33:14,235
And so I think, I think that's a very dangerous route to take.

535
00:33:14,475 --> 00:33:15,765
I mean, there is the counterpoint too.

536
00:33:15,765 --> 00:33:17,355
I look at this thing like, how does this work?

537
00:33:17,355 --> 00:33:18,015
I don't know.

538
00:33:18,015 --> 00:33:19,725
I wrote it six months ago like that.

539
00:33:19,725 --> 00:33:21,105
That was always my answer too.

540
00:33:21,105 --> 00:33:22,995
It's like, honestly, I don't know what the hell me

541
00:33:22,995 --> 00:33:25,095
of six months ago was doing, but he was terrible.

542
00:33:26,385 --> 00:33:29,175
I can, I can relate to that as well.

543
00:33:29,410 --> 00:33:29,629
But

544
00:33:30,795 --> 00:33:33,615
how many times in your career have you been like, what idiot wrote this?

545
00:33:33,615 --> 00:33:36,015
And you fire up, get blame, and it turns out it was you.

546
00:33:36,015 --> 00:33:39,405
So you quietly fix it, don't say a word, and then just go ahead and patch it.

547
00:33:39,735 --> 00:33:40,155
Yeah.

548
00:33:40,215 --> 00:33:40,575
Yeah.

549
00:33:40,635 --> 00:33:45,945
It's fun to look back and see, you know, how you as an individual.

550
00:33:46,455 --> 00:33:49,395
Developed over, over the years, especially if you are involved with certain

551
00:33:49,395 --> 00:33:50,235
values of fun.

552
00:33:50,235 --> 00:33:50,775
Yes.

553
00:33:52,425 --> 00:33:56,685
Uh, I mean, if you are involved in the project for, uh, for

554
00:33:56,685 --> 00:34:00,885
a few years, then hopefully you, you do get to evolve and

555
00:34:01,545 --> 00:34:04,365
it's nice, you know, to have this last retrospect and see.

556
00:34:05,820 --> 00:34:08,580
How, how was the code that you, you have written

557
00:34:08,580 --> 00:34:11,310
five years ago and, and where you're at right now?

558
00:34:11,460 --> 00:34:15,719
Hopefully, hopefully you have improved, but, but, but these days, you

559
00:34:15,719 --> 00:34:23,219
know, people who are, uh, using ai, uh, to the point where they, they don't

560
00:34:23,219 --> 00:34:27,779
give it, they don't, don't even get the chance to practice their craft.

561
00:34:28,830 --> 00:34:31,020
Um, yeah, I think that's problematic.

562
00:34:31,020 --> 00:34:32,940
People are saying it is, you know.

563
00:34:33,360 --> 00:34:38,190
Um, in, in my area, people are saying that new developers,

564
00:34:38,190 --> 00:34:43,620
juniors are very, are having a really hard time, um, getting work.

565
00:34:44,040 --> 00:34:51,120
And so I, I, I wonder, uh, where, where would we find the, the seniors, the

566
00:34:52,290 --> 00:34:57,120
15 years ahead of us, the, the seniors from, where are they gonna come from?

567
00:34:57,675 --> 00:34:59,565
That's the thing that I've been pointing out to people.

568
00:34:59,565 --> 00:35:01,995
When I first found that AI could write some code and showed it

569
00:35:01,995 --> 00:35:04,905
to some friends, their responses, well, this is great to replace

570
00:35:04,905 --> 00:35:07,695
junior engineers, but it won't replace senior engineers up.

571
00:35:08,235 --> 00:35:10,515
Where, where do you think senior engineers come from, buddy?

572
00:35:10,515 --> 00:35:13,305
Uh, they don't spread early form from the forehead of some God somewhere.

573
00:35:13,365 --> 00:35:14,115
Exactly.

574
00:35:14,120 --> 00:35:17,985
And, and maybe some would argue that in the, you

575
00:35:17,985 --> 00:35:21,435
know, in the near future, seniors can also be.

576
00:35:21,779 --> 00:35:22,589
Replaced.

577
00:35:23,460 --> 00:35:24,419
I, I don't know.

578
00:35:24,480 --> 00:35:27,960
I think that at the moment LLMs are having

579
00:35:27,960 --> 00:35:32,009
difficulty to work with large code bases.

580
00:35:32,399 --> 00:35:37,589
Uh, I do see them as a great utility to start out something new.

581
00:35:38,009 --> 00:35:41,460
Whenever there's a clean slate and you ask it, okay, bill

582
00:35:41,460 --> 00:35:45,450
for me from scratch something, it might, you know, work

583
00:35:45,450 --> 00:35:50,129
well, it might work well for applications that are not.

584
00:35:51,120 --> 00:35:58,080
At the system level, um, maybe fronted front end type of work, maybe some

585
00:35:58,080 --> 00:36:07,140
backend type of work, but to build, I dunno, 20,000 line worth of, uh.

586
00:36:07,560 --> 00:36:12,990
Some high performance, high quality, uh, application database.

587
00:36:13,259 --> 00:36:13,379
Yeah.

588
00:36:13,379 --> 00:36:16,319
My version of UX is around ergonomics of command line tools.

589
00:36:16,319 --> 00:36:18,000
I am not a front end person.

590
00:36:18,000 --> 00:36:21,509
This, this has been an unlock for a lot of different use cases

591
00:36:21,509 --> 00:36:24,419
there, and it's powerful, but I'm also not sitting here thinking

592
00:36:24,419 --> 00:36:27,089
I can build a reasonable front end for anything of scale.

593
00:36:27,629 --> 00:36:30,330
The counterpoint is, I think that's a, that's a dangerous point.

594
00:36:30,330 --> 00:36:33,359
Like, well, that's not gonna scale at in any meaningful way.

595
00:36:34,185 --> 00:36:37,425
It's a back of house application for one email

596
00:36:37,425 --> 00:36:39,675
newsletter to get from one API to another.

597
00:36:39,675 --> 00:36:41,535
Maybe it doesn't have to scale.

598
00:36:41,715 --> 00:36:44,955
Maybe in the event that there's an outage in something,

599
00:36:45,075 --> 00:36:47,175
we can send the newsletter a half hour later.

600
00:36:47,175 --> 00:36:47,535
Maybe.

601
00:36:47,535 --> 00:36:48,675
It's not a concern.

602
00:36:48,915 --> 00:36:52,095
It's, it's fit the problem for business case, because by the

603
00:36:52,095 --> 00:36:54,795
time you go from concept that you're puttering around with

604
00:36:54,795 --> 00:36:57,525
one evening on your laptop to a hyperscale service, you're

605
00:36:57,525 --> 00:36:59,865
gonna have rewritten that thing a dozen times over already.

606
00:36:59,865 --> 00:37:00,285
Anyway,

607
00:37:00,525 --> 00:37:01,245
I, I agree.

608
00:37:01,815 --> 00:37:03,404
Like my favorite part, especially a startup founder

609
00:37:03,404 --> 00:37:06,045
myself, is every time you hire someone, they're better

610
00:37:06,045 --> 00:37:08,505
at the thing that you're hiring 'em for than you are.

611
00:37:08,715 --> 00:37:11,895
So it's a constant state of being humbled by these things

612
00:37:11,985 --> 00:37:14,145
and watching people in the interview trying to put a

613
00:37:14,145 --> 00:37:17,384
diplomatic corporate spin on what the hell is wrong with you?

614
00:37:17,384 --> 00:37:18,525
Why would you do it this way?

615
00:37:18,615 --> 00:37:23,085
Which, well, it got us this far to hire you, so please come help fix it.

616
00:37:24,555 --> 00:37:29,085
Uh, if, if people wanna learn more about Falco DV and graph

617
00:37:29,085 --> 00:37:31,875
databases at large, where's the best place for them to go?

618
00:37:31,965 --> 00:37:37,095
Well, they can check out our website, uh, they can check out our documentation.

619
00:37:37,335 --> 00:37:42,195
Uh, I dunno if, uh, we're gonna, uh, include the links to those or Well, we

620
00:37:42,195 --> 00:37:44,025
absolutely can put those in the show notes for you.

621
00:37:44,025 --> 00:37:44,805
It'll be fine.

622
00:37:44,865 --> 00:37:50,415
Then our documentation, our website and our disco channel.

623
00:37:50,475 --> 00:37:51,134
This is where.

624
00:37:51,720 --> 00:37:56,940
Uh, you can reach out and, uh, learn about, uh, our

625
00:37:56,944 --> 00:38:01,259
product or our service and on graph, uh, generally.

626
00:38:01,830 --> 00:38:05,580
And if you are, you know, interested in the actual source code

627
00:38:05,580 --> 00:38:09,240
and see seeing what I'm working on, then you can check out

628
00:38:09,240 --> 00:38:14,549
our GitHub, which is Falco db at falco db or slash falco db.

629
00:38:15,480 --> 00:38:17,520
All of that will wind up in the show notes.

630
00:38:17,720 --> 00:38:19,830
Roi, thank you for taking the time to speak with me.

631
00:38:19,830 --> 00:38:20,430
I appreciate it.

632
00:38:20,430 --> 00:38:20,495
Thank you,

633
00:38:20,504 --> 00:38:20,855
Colby.

634
00:38:21,600 --> 00:38:22,319
It was fun.

635
00:38:22,470 --> 00:38:27,000
Likewise, Roi Lipman, CTO, and co-founder of Falco db.

636
00:38:27,299 --> 00:38:30,690
I'm Cloud economist Corey Quinn, and this is Screaming in the Cloud.

637
00:38:30,990 --> 00:38:31,980
If you've enjoyed this podcast.

638
00:38:32,430 --> 00:38:35,609
Please leave a five star review on your podcast platform of choice.

639
00:38:35,640 --> 00:38:39,210
Whereas if you didn't enjoy this podcast, please leave a five star

640
00:38:39,210 --> 00:38:42,480
review on your podcast platform of choice, along with an angry,

641
00:38:42,480 --> 00:38:45,240
confused comment that makes it sound like you're a zookeeper.

642
00:38:45,240 --> 00:38:47,879
Understanding why giraffes need their own database.