1 00:00:00,240 --> 00:00:02,820 Hello, dear listeners, Bailey here. 2 00:00:03,679 --> 00:00:07,520 Today, we are diving into the fascinating world of web three and 3 00:00:07,520 --> 00:00:11,215 decentralized databases. Join us as Andy 4 00:00:11,215 --> 00:00:14,355 and Frank interview Brennan Lanay, the founder of Quill. 5 00:00:15,295 --> 00:00:18,769 Quill is the 1st decentralized, Community owned SQL 6 00:00:18,910 --> 00:00:22,210 database solution for building advanced dapps and protocols. 7 00:00:23,470 --> 00:00:27,064 From the demand for web3 solutions to the nuances of trustless 8 00:00:27,205 --> 00:00:30,724 applications, we delve into it all. Don't be 9 00:00:30,724 --> 00:00:34,450 alarmed at Frank's absence early on in the show. He 10 00:00:34,450 --> 00:00:38,130 shows up later. As an added bonus, for the 11 00:00:38,130 --> 00:00:41,670 first time in data driven history, Andy does the intro. 12 00:00:42,765 --> 00:00:46,524 So sit back, relax, and get ready to embark on a journey that 13 00:00:46,524 --> 00:00:50,284 will expand your understanding of the ever evolving landscape of technology and 14 00:00:50,284 --> 00:00:53,329 data. Now on to the show. 15 00:00:55,790 --> 00:00:59,550 Hello, and welcome to Data Driven, the podcast where we talk about 16 00:00:59,550 --> 00:01:03,175 artificial intelligence, Machine learning, data engineering, 17 00:01:03,795 --> 00:01:07,174 and all things kind of related to to those topics. 18 00:01:07,395 --> 00:01:11,140 Frank usually does this introduction. That's why I'm kind of skipping through 19 00:01:11,140 --> 00:01:13,780 it. I'm trying my very, very best to not say, 20 00:01:14,820 --> 00:01:18,520 in any of these. Frank's gonna join us a little bit later. 21 00:01:18,805 --> 00:01:22,185 He had something else he needed to do. Our guest today 22 00:01:22,645 --> 00:01:26,405 is Brennan Lamy. Did I say that right? Brennan, both names? 23 00:01:26,405 --> 00:01:29,909 That is correct. Yes. Awesome. And, Brennan, I usually 24 00:01:30,049 --> 00:01:33,350 go to LinkedIn and read through the lengthy 25 00:01:33,409 --> 00:01:37,245 bio. And and here we go. Brennan is a 26 00:01:37,245 --> 00:01:41,085 founder and dev. That's a pretty lengthy bio. That may 27 00:01:41,085 --> 00:01:43,905 be the shortest LinkedIn bio ever, Brennan. 28 00:01:45,480 --> 00:01:49,320 Yeah. I would say, I I don't know. I'm still working on stuff to 29 00:01:49,320 --> 00:01:52,965 put there. But I I'm open to 30 00:01:52,965 --> 00:01:56,405 suggestions. I'm open. Awesome. No. I I think it's great. I think, 31 00:01:57,205 --> 00:02:00,680 you're spending your, your time wisely And you've got your 32 00:02:00,680 --> 00:02:04,440 priorities, pretty much aligned there. You're you're you're doing the 33 00:02:04,440 --> 00:02:07,480 work and then later once you've done the work you can come and fill in 34 00:02:07,480 --> 00:02:10,885 the blanks. That's the goal. That's the goal. Awesome. 35 00:02:11,265 --> 00:02:14,465 Well, why don't you tell us a little bit more about yourself? Maybe what you're 36 00:02:14,465 --> 00:02:18,290 working on, your company? Yeah. Yeah. So, I mean, my name 37 00:02:18,290 --> 00:02:21,970 is Bruno Marney, and I am the founder of Quil. So it's just 38 00:02:21,970 --> 00:02:25,655 k w I l, kinda like the Quil that you, that you can write with. 39 00:02:25,815 --> 00:02:29,355 Cool. And Quill, we are building, decentralized databases. 40 00:02:29,735 --> 00:02:33,415 So relational databases, specifically. Okay. And 41 00:02:33,415 --> 00:02:37,260 really the niche that this This fits into. I don't like to say 42 00:02:37,260 --> 00:02:40,400 that it solves an existing problem, because I think it more 43 00:02:41,020 --> 00:02:44,685 allows people to Capitalized on previously uncapitalized opportunities 44 00:02:44,825 --> 00:02:48,425 and solving some, you know, massive problem. But what a 45 00:02:48,425 --> 00:02:51,910 decentralized database is for is It allows you to build new types of 46 00:02:51,910 --> 00:02:55,670 applications with different trust assumptions. And it it also 47 00:02:55,670 --> 00:02:59,030 allows you to accrue value from your data in new 48 00:02:59,030 --> 00:03:02,775 ways. And so this very much falls into the web three space. I'll 49 00:03:02,775 --> 00:03:06,375 sort of give a high level overview here, and then, Andy, you can sort of 50 00:03:06,375 --> 00:03:10,170 choose where you want to go deeper. But with Quill, you can build 51 00:03:10,170 --> 00:03:13,950 data stores with, complex access control rules, 52 00:03:14,730 --> 00:03:18,255 complex guarantees on the scheme of the data, who's able to write to it, How 53 00:03:18,255 --> 00:03:22,015 they can write to it, when they can write to it. And you can set 54 00:03:22,015 --> 00:03:25,635 this for parties that don't trust each other. So maybe you and Frank are competitors 55 00:03:25,695 --> 00:03:29,470 or maybe you have to agree on some sort of, legal standard and collaborate in 56 00:03:29,470 --> 00:03:32,690 that way, but in all other sense of the word, you are competitors. 57 00:03:33,150 --> 00:03:36,909 And so this allows you to convene around a shared data store with rules 58 00:03:36,909 --> 00:03:40,655 set beforehand. And you can now use this, in real 59 00:03:40,655 --> 00:03:44,495 time to power both of your applications. So kinda at 60 00:03:44,495 --> 00:03:48,160 a high level, that's what we're doing. There's some really interesting caveats In value 61 00:03:48,160 --> 00:03:51,200 accrual as well, but I can sort of jump into anywhere that you want me 62 00:03:51,200 --> 00:03:54,420 to. You know, I'd love to hear more about the value. 63 00:03:55,365 --> 00:03:58,825 Yeah. So the the the real value of this so 64 00:03:59,925 --> 00:04:03,100 it might be helpful with an example. I'll try to high level, and then I 65 00:04:03,100 --> 00:04:06,400 can sort of dive into a couple examples we see right now. But so, 66 00:04:07,900 --> 00:04:11,045 you know, the a lot of companies use data as a moat. 67 00:04:11,444 --> 00:04:15,125 Data protects them from their competitors, but this also means that 68 00:04:15,125 --> 00:04:18,825 you can't collaborate on data in a lot of ways that you might like. 69 00:04:19,089 --> 00:04:22,550 And I think a cool example of this might be user identification 70 00:04:22,770 --> 00:04:25,889 data. So this is pretty low hanging fruit. And for what it's worth, I don't 71 00:04:25,889 --> 00:04:29,535 think it's, a particularly interesting example, But it is basic. 72 00:04:30,634 --> 00:04:34,475 Things like Reddit, Spotify, and Instagram, they they all have the 73 00:04:34,475 --> 00:04:38,090 concept of follower relationships, but they all have different 74 00:04:38,090 --> 00:04:41,310 applications otherwise. And I think in a better world, 75 00:04:41,930 --> 00:04:45,444 no matter what application you go and use, you would have the same 76 00:04:45,444 --> 00:04:49,205 follower relationships and the same interests on all those different platforms if you 77 00:04:49,205 --> 00:04:52,965 consented so. That is a massive, identity problem, so 78 00:04:52,965 --> 00:04:56,440 you now need a way to your identity across those as well as your your 79 00:04:56,440 --> 00:05:00,040 follower relationships and your interests. And all of those 80 00:05:00,040 --> 00:05:03,365 companies are maybe somewhat competitive with each other. 81 00:05:03,764 --> 00:05:07,525 Maybe not totally, but they are somewhat competitive. But in an ideal 82 00:05:07,525 --> 00:05:11,365 world, they would be able to convene around some of the same sets of 83 00:05:11,365 --> 00:05:15,150 data To power their application, this does give them less of 84 00:05:15,150 --> 00:05:18,670 a data moats effect, but it does make the experience much more 85 00:05:18,670 --> 00:05:22,335 convenient for your for their users. Okay. So 86 00:05:22,395 --> 00:05:26,015 now, once again, I don't think that is the most compelling, application, 87 00:05:26,235 --> 00:05:29,940 but, that's like a very high level example. It's a 88 00:05:29,940 --> 00:05:33,380 good example. I was able to follow it. And, you know, it's always a good 89 00:05:33,380 --> 00:05:37,220 sign. Yeah. Right. Glad to hear. I, 90 00:05:37,915 --> 00:05:41,755 So I'm concerned about, as a person who moves data, 91 00:05:41,755 --> 00:05:45,520 I'm a data engineer, and I'm concerned a little bit about, 92 00:05:45,919 --> 00:05:49,520 Personally identifying information, not picking on your example, I 93 00:05:49,520 --> 00:05:52,960 promise, from the for the user's 94 00:05:52,960 --> 00:05:55,075 perspective. And then also, 95 00:05:56,655 --> 00:06:00,335 that, you know, there's there's legal, stuff that goes along with 96 00:06:00,335 --> 00:06:04,000 that in some fields. I do, I do 97 00:06:04,000 --> 00:06:07,680 health care. I do financial. Those insurance. Those all 98 00:06:07,840 --> 00:06:11,655 both health care and legal come together there. Sorry. Healthcare 99 00:06:11,955 --> 00:06:14,294 and finance come together in insurance companies. 100 00:06:15,875 --> 00:06:19,580 And so It you said something 101 00:06:19,580 --> 00:06:23,259 that I found compelling. You said that you could convene around the 102 00:06:23,259 --> 00:06:27,085 data, but you could do it in such a way Where you share 103 00:06:27,085 --> 00:06:30,925 just what you wanna share, I think. And then, you, you 104 00:06:30,925 --> 00:06:34,525 know, you've got a firewall essentially or some kind of separation of 105 00:06:34,525 --> 00:06:38,350 concerns Between that and the rest of the data. So could 106 00:06:38,350 --> 00:06:42,130 you elaborate on that a little bit and, you know, specifically 107 00:06:42,190 --> 00:06:44,875 with, With regard to regulations? 108 00:06:45,815 --> 00:06:49,175 Yeah. So I I think we can sort of split this up into 2 different 109 00:06:49,175 --> 00:06:52,855 topic areas. So one of them is the the logical way of accessing data. 110 00:06:52,855 --> 00:06:56,510 So This is like your application business logic. Should Frank be 111 00:06:56,510 --> 00:07:00,350 able to should he be able to see my name, my age, my social security 112 00:07:00,350 --> 00:07:03,915 number, and what can he see from this dataset? But then 113 00:07:03,915 --> 00:07:07,375 also there is, there's sort of a an issue of 114 00:07:07,595 --> 00:07:11,400 legal regulations. So whether that's GDPR or, you brought up health 115 00:07:11,400 --> 00:07:15,160 care data. A lot of health care data, it matters where physically that 116 00:07:15,160 --> 00:07:18,599 data is being stored. And so to sort of jump into the first one, this 117 00:07:18,599 --> 00:07:22,074 actually gets to really the of our application or maybe one of the cruxes of 118 00:07:22,074 --> 00:07:25,835 our application, which is configurable access control 119 00:07:25,835 --> 00:07:29,540 for your data all within a single a single file or you 120 00:07:29,540 --> 00:07:32,580 can you can do it across multiple files, but the the idea is that you 121 00:07:32,580 --> 00:07:35,860 can do it in a single file. So we have our own language. It's a 122 00:07:35,860 --> 00:07:39,615 DDL language, data definition language called Cuneiform. 123 00:07:40,235 --> 00:07:44,075 And so with Cuneiform, it allows you to do a lot of, you know, regular 124 00:07:44,075 --> 00:07:47,700 SQL DDL for tables and And things like that, but it it 125 00:07:47,700 --> 00:07:51,220 also allows you to specify more complex access controls. 126 00:07:51,220 --> 00:07:55,060 So who can write data? Who can read data? What data can they read from 127 00:07:55,060 --> 00:07:58,745 this? And then we're also working with a couple partners right 128 00:07:58,745 --> 00:08:02,365 now designing a system of role based access control. 129 00:08:02,505 --> 00:08:06,090 So you can assign different roles, roles might apply to different individuals, 130 00:08:06,710 --> 00:08:10,470 or to different companies or really however you want to administer 131 00:08:10,470 --> 00:08:14,315 these roles. And these define, like, with business 132 00:08:14,315 --> 00:08:17,835 logic defined in cuneiform what a specific user is 133 00:08:17,835 --> 00:08:21,590 allowed to access. Moving a bit more 134 00:08:21,590 --> 00:08:25,350 to the regulatory side, this is less of a 135 00:08:25,350 --> 00:08:29,110 question of the actual features of our product itself and more 136 00:08:29,110 --> 00:08:32,664 of, a deployment issue. So you can sort of 137 00:08:32,664 --> 00:08:36,345 think of our when you're using a Quill database, 138 00:08:36,345 --> 00:08:40,169 it's distributed across multiple databases. And we 139 00:08:40,169 --> 00:08:44,010 work with clients to help them distribute those databases as needed, 140 00:08:44,330 --> 00:08:48,145 for their application. And this is, across an entire spectrum. So 141 00:08:48,225 --> 00:08:51,985 On one side of the spectrum where there are no data privacy rules, you 142 00:08:51,985 --> 00:08:55,105 could actually have a network where anybody is allowed to come in and sync this 143 00:08:55,105 --> 00:08:58,920 data from your database. They're able to To get these updates in real time, 144 00:08:58,920 --> 00:09:02,540 and then they can directly join in foreign key and, subquery 145 00:09:02,600 --> 00:09:06,404 against this in their own application. And this obviously no 146 00:09:06,404 --> 00:09:10,084 data, like, no legal restrictions, no access control 147 00:09:10,084 --> 00:09:13,464 restrictions. It's like a totally public, read only dataset. 148 00:09:14,000 --> 00:09:17,600 And then on the other side of the spectrum, you might have 2 companies that 149 00:09:17,600 --> 00:09:21,280 wanna convene on health care data. And that health care data might need to 150 00:09:21,280 --> 00:09:25,065 be geographically located in the State of Texas or maybe in the 151 00:09:25,065 --> 00:09:28,665 case of GDPR, it needs to be, 1, it needs to 152 00:09:28,665 --> 00:09:32,470 be located in European countries, but, 2, they also need to be able 153 00:09:32,470 --> 00:09:36,310 to identify what companies are responsible for storing this data 154 00:09:36,310 --> 00:09:39,725 so they can go after them to make sure they delete it. And so we 155 00:09:39,725 --> 00:09:43,425 can also make sure that, as opposed to the other example 156 00:09:43,485 --> 00:09:47,149 that you are gating who is able to store this data, Where 157 00:09:47,149 --> 00:09:50,990 they're storing it, are you KYCing the other people that are running this 158 00:09:50,990 --> 00:09:54,529 physical infrastructure that is, holding the data for your database? 159 00:09:54,894 --> 00:09:58,495 And we work with clients sort of across that whole spectrum on what they need 160 00:09:58,495 --> 00:10:01,935 for their specific deployment topologies. Well, that 161 00:10:01,935 --> 00:10:05,770 sounds Complex. I think that's the first word that comes 162 00:10:05,770 --> 00:10:08,670 to mind on that, but it also sounds like, 163 00:10:09,450 --> 00:10:12,830 an interesting collection of problems that we have with data. 164 00:10:13,335 --> 00:10:17,015 One of the reasons I get employed as a data engineer is 165 00:10:17,015 --> 00:10:20,715 to solve these kinds of problems where we keep data in one location, 166 00:10:20,855 --> 00:10:24,420 we set, we sometimes ship data to other locations 167 00:10:24,880 --> 00:10:28,639 so that other people can use copies of it. An advantage 168 00:10:28,639 --> 00:10:32,305 that leaps to mind, based on your description, Aquil 169 00:10:32,305 --> 00:10:35,985 is you don't have to make a bajillion copies of the data. You are 170 00:10:35,985 --> 00:10:39,470 able to just share, it sounds like, access. And you're, 171 00:10:39,770 --> 00:10:43,610 defining in in this language that is it, you you pronounce it, I 172 00:10:43,610 --> 00:10:47,390 believe, cuneiform? Yeah. Yeah. Cuneiform. Isn't that the Egyptian 173 00:10:47,690 --> 00:10:51,335 characters For hieroglyphics. Am I getting that 174 00:10:51,335 --> 00:10:54,855 right? Or Yeah. So Cuneiform, it was the 1st written 175 00:10:54,855 --> 00:10:58,620 language. I should now ours is Quill for us is 176 00:10:58,620 --> 00:11:01,680 spelled with a k. It's Unifor, also spelled with a k. Other than that Interesting. 177 00:11:02,460 --> 00:11:05,820 That's kinda cool. I I like it. And, yeah, it sounds 178 00:11:05,820 --> 00:11:09,404 like Based on the problems you're trying to solve, that it would 179 00:11:09,404 --> 00:11:12,865 also be a very, very flexible 180 00:11:13,565 --> 00:11:17,350 and and very, cool language to to learn. And 181 00:11:17,350 --> 00:11:21,190 and I'm just curious if somebody, someone like me so I'll use 182 00:11:21,190 --> 00:11:24,845 me as an example because I would like to know more about it. Is there 183 00:11:24,845 --> 00:11:28,525 some way that I can get in and play around with Quill, get a feel 184 00:11:28,525 --> 00:11:31,265 for it? Yeah. Yeah. So just ide.quill.com. 185 00:11:32,470 --> 00:11:36,230 So IDE and then Quill, k w I l.com. That pulls up 186 00:11:36,230 --> 00:11:40,035 an IDE. It also gets preloaded with 3 different, Somewhat 187 00:11:40,035 --> 00:11:43,795 basic examples, for a type of application you might build on 188 00:11:43,795 --> 00:11:46,755 Quill. So and I'm just pulling this up right now as a reference, but we 189 00:11:46,755 --> 00:11:50,579 have, like, an example video game that's storing data. We have, a 190 00:11:50,579 --> 00:11:54,339 token. We operate a lot in the cryptocurrency space, and then also 191 00:11:54,339 --> 00:11:58,040 an example social network. And all these show how you would use Cuneiform, 192 00:11:58,825 --> 00:12:02,505 to to do this. And it's it's very straightforward. If you know if you're 193 00:12:02,505 --> 00:12:06,025 familiar with the SQL 90 2 standard, I am fully confident you'd be able to 194 00:12:06,025 --> 00:12:09,529 look at this and tell me exactly what is going on in this Application. It's, 195 00:12:10,170 --> 00:12:13,470 it's pretty straightforward. Awesome. I'll take your word for it. 196 00:12:14,010 --> 00:12:17,850 And and I'm fascinated by the idea, the, just the whole idea 197 00:12:17,850 --> 00:12:21,535 of this. A little bit of company background. I'm just curious how long has Quill 198 00:12:21,535 --> 00:12:25,295 been around? So Quill's been around for a little over 2 years 199 00:12:25,295 --> 00:12:28,930 now. Started under a different name and doing something different, 200 00:12:28,930 --> 00:12:32,070 actually. So, we're building a decentralized 201 00:12:32,530 --> 00:12:36,265 social media. So, decentralized communication platform trying 202 00:12:36,265 --> 00:12:40,025 to incentivize serving of data in, areas where 203 00:12:40,025 --> 00:12:43,850 you're not, where you're disincentivized through data. So think Non 204 00:12:43,850 --> 00:12:46,350 Western countries where there's enforced censorship, 205 00:12:47,530 --> 00:12:51,195 and our goal was trying to serve data in those areas. No. That's 206 00:12:51,195 --> 00:12:54,555 a massively hard problem, and there's Yeah. So many, 207 00:12:54,954 --> 00:12:58,520 so many issues with, I mean, consistency and the Cryptographic, 208 00:12:58,920 --> 00:13:02,760 like, verifiability of that data that, we we were trying 209 00:13:02,760 --> 00:13:05,900 to solve that. And in solving that, we sort of solved this, 210 00:13:06,634 --> 00:13:10,475 Database use case of building this decentralized database. And we ended up just running with 211 00:13:10,475 --> 00:13:14,160 that instead because it was much more applicable to, A 212 00:13:14,160 --> 00:13:17,760 wider variety of applications than just the specific one that we were 213 00:13:17,760 --> 00:13:21,360 building. And so we spend about the 1st year building that 214 00:13:21,360 --> 00:13:25,055 social. And then Last, January or February, 215 00:13:25,275 --> 00:13:29,035 we, or yeah. Last January or February, we transitioned to 216 00:13:29,035 --> 00:13:32,870 just doing the database specifically. Okay. Well, 217 00:13:32,870 --> 00:13:36,710 I love the pivoting. I just do. I think that's always a good 218 00:13:36,710 --> 00:13:39,690 thing to go with. And, you know, 219 00:13:40,595 --> 00:13:44,295 I've seen many companies kinda go through these phases where 220 00:13:44,355 --> 00:13:47,875 they'll do exactly what you did. They'll start out trying to solve 1 problem, realize 221 00:13:47,875 --> 00:13:51,280 there's this other niche That they could really serve. 222 00:13:51,580 --> 00:13:55,020 And then later, sometimes even expand back out. That 223 00:13:55,020 --> 00:13:58,815 happens sometimes as well. But I'm old and I've seen a lot 224 00:13:58,815 --> 00:14:02,654 of companies, so that that kind of 225 00:14:02,654 --> 00:14:06,170 happens. Well, so we talked about, 226 00:14:06,570 --> 00:14:09,550 Cuneiform, which is a language. You guys, I guess, invented that? 227 00:14:10,410 --> 00:14:14,024 Yeah. You know, it's It's it's it's really a DDL 228 00:14:14,084 --> 00:14:17,925 language. Like, it's not a whole, like, you know, full, full 229 00:14:17,925 --> 00:14:21,365 language, but it's yeah. It's useful for defining access control. But, yes, that 230 00:14:21,365 --> 00:14:25,100 was That was an old house. So talking about access 231 00:14:25,100 --> 00:14:28,700 control, I know one of the, you know, one of the challenges to that 232 00:14:28,700 --> 00:14:32,524 is Row level or even cell level, you 233 00:14:32,524 --> 00:14:36,285 know, the access control. How how fine a grain do 234 00:14:36,285 --> 00:14:40,030 y'all go to? It's a great question. So, there's sort 235 00:14:40,030 --> 00:14:43,730 of 2 things I can touch on there. So the answer is technically 236 00:14:43,790 --> 00:14:47,605 both. So, with Quill, or with with Cuneiform, we 237 00:14:47,605 --> 00:14:51,365 have this concept of actions. And action, you 238 00:14:51,365 --> 00:14:54,890 can sort of think of it like a function that Anybody can call. It's like 239 00:14:54,890 --> 00:14:58,330 a it's an RPC call that anybody can call or you can set rules for 240 00:14:58,330 --> 00:15:02,165 who's able to call it, and it executes some query against the database. So 241 00:15:02,165 --> 00:15:05,605 this can be an insert statement. It can be a select statement. And so you 242 00:15:05,605 --> 00:15:09,204 might have a select statement that is able to get some users 243 00:15:09,204 --> 00:15:12,890 data, and maybe from May maybe it gets some data from a 244 00:15:12,890 --> 00:15:16,649 few rows and retrieves a couple of the columns within that row. And so in 245 00:15:16,649 --> 00:15:20,190 that way, you can sort of make custom access control for columns. 246 00:15:20,605 --> 00:15:24,045 And then another thing we have and, let me know if this doesn't make sense 247 00:15:24,045 --> 00:15:27,505 because this is a bit more of, like, a web three native concept. 248 00:15:28,399 --> 00:15:32,240 But we have we call it a caller modifier. And so what this is 249 00:15:32,240 --> 00:15:36,079 is that when you're interacting with Quill, you have a key pair, and 250 00:15:36,079 --> 00:15:39,665 this is how we do User identification. And 251 00:15:39,665 --> 00:15:43,505 so, when you are using, when you're using this key pair, 252 00:15:43,505 --> 00:15:47,070 it takes the address of that sort of thing like a public key On 253 00:15:47,070 --> 00:15:50,829 that, either you're signing your, your your your insert statement with 254 00:15:50,829 --> 00:15:54,430 or your update or your select or anything else. And it can 255 00:15:54,430 --> 00:15:57,915 use that Public identifier as a 256 00:15:57,915 --> 00:16:01,755 parameter in an action. So, let's say we have an 257 00:16:01,755 --> 00:16:05,589 application that is storing a list of user data. Let's say let's say it's 258 00:16:05,589 --> 00:16:09,290 just storing your your name and your age and you're identified 259 00:16:09,589 --> 00:16:13,415 by your by your key pair. You might only be able to go 260 00:16:13,415 --> 00:16:17,015 and update the row where the, where the 261 00:16:17,015 --> 00:16:20,830 caller matches your key pair. And so that means that You and Frank 262 00:16:20,830 --> 00:16:24,670 can both have rows in the same database, but only you are able 263 00:16:24,670 --> 00:16:27,950 to update yours. Only he is able to update his. You can also set access 264 00:16:27,950 --> 00:16:31,225 control restrictions on Who is able to read from which ones? 265 00:16:31,685 --> 00:16:34,985 Okay. Does that make sense? It does. That's a great example. 266 00:16:35,445 --> 00:16:39,070 And, you know, especially using, like, customers slash 267 00:16:39,070 --> 00:16:42,590 people table. And I I I'm I'm 268 00:16:42,590 --> 00:16:46,350 impressed by the answer itself. I mean, that's that's a hard problem 269 00:16:46,350 --> 00:16:50,165 to solve as well. So, and doing that and then 270 00:16:51,185 --> 00:16:54,625 when we talk about user access, is this something that is 271 00:16:54,625 --> 00:16:58,230 designed for use? Obviously, it's happening between 272 00:16:58,529 --> 00:17:02,370 companies. You talked about competitors. Is this is this 273 00:17:02,370 --> 00:17:06,175 setting in the wild Or are there, you know, ports open to the 274 00:17:06,175 --> 00:17:09,855 big bad web? Sorry. Could could you restate that 275 00:17:09,855 --> 00:17:13,289 question? I think I might have misheard you. That's okay. So I know you mentioned 276 00:17:13,289 --> 00:17:17,049 that, the database and the access control controls access 277 00:17:17,049 --> 00:17:20,890 between, competing entities, maybe companies that 278 00:17:20,890 --> 00:17:24,494 compete with each other, But they wanna share some portion of data. 279 00:17:24,875 --> 00:17:28,715 So I'm wondering, does is Quill hosted in such a way 280 00:17:28,715 --> 00:17:32,300 that it can be accessed From the, you know, the web at 281 00:17:32,300 --> 00:17:36,140 large, the entire interweb or Internet rather. I said 282 00:17:36,140 --> 00:17:39,360 interweb. I was thinking that and going, don't say it. Don't say it. 283 00:17:40,325 --> 00:17:43,845 The entire Internet. And and and if 284 00:17:43,845 --> 00:17:47,205 so, you know, what are your concerns about 285 00:17:47,205 --> 00:17:49,770 security? Yeah. So that's a great question. So, 286 00:17:51,370 --> 00:17:54,570 once again, this does sort of come back to the the 2 prongs of, 287 00:17:55,130 --> 00:17:58,674 Cuniform access control and then Mhmm. General network 288 00:17:58,815 --> 00:18:02,575 access control for your database. So cuneiform access control, you can 289 00:18:02,575 --> 00:18:06,174 sort of think of this like a rest API where, they they can you 290 00:18:06,174 --> 00:18:09,980 know, It's a client server architecture and anybody can make 291 00:18:09,980 --> 00:18:13,825 calls to the actions you have defined. So maybe it's get the 292 00:18:13,904 --> 00:18:17,445 Get the most recent, you know, record inserted into the database, 293 00:18:18,225 --> 00:18:21,985 or in into a table. May maybe that's an action you have and anybody can 294 00:18:21,985 --> 00:18:25,640 call that and get the most recent record. And so in that way, 295 00:18:26,020 --> 00:18:29,780 you have, I mean, configurable access control. So you 296 00:18:29,780 --> 00:18:33,525 can make that totally public where anybody's able to access that. You can also 297 00:18:33,525 --> 00:18:36,985 make it so only a specific white list of individuals 298 00:18:37,285 --> 00:18:40,885 that you want are able to access that. And right now, how we identify those 299 00:18:40,885 --> 00:18:43,980 individuals is with Key pairs. So, 300 00:18:45,000 --> 00:18:48,540 now we're not specifically tied to the key pair structure. This is just, 301 00:18:49,000 --> 00:18:52,434 it it's really just what our, early clients have needed, and so that's why we 302 00:18:52,434 --> 00:18:56,274 use key pairs for, user authentication. And 303 00:18:56,274 --> 00:19:00,090 then getting To, like, the general because you had 304 00:19:00,090 --> 00:19:03,929 also asked about, people, just anyone in the Internet being able to access 305 00:19:03,929 --> 00:19:07,555 this data. This gets a lot more into network 306 00:19:07,555 --> 00:19:11,075 deployment topology. And so with this, you might have 307 00:19:11,075 --> 00:19:14,789 a database network Where you know everybody that's running these, you 308 00:19:14,789 --> 00:19:18,630 know, the infrastructure for it, and they are running that closed. So, you know, 309 00:19:18,630 --> 00:19:22,169 like a private Postgres or, you know, MySQL server, 310 00:19:22,825 --> 00:19:25,785 nobody like, you are the only ones that are able to access that or you 311 00:19:25,785 --> 00:19:29,545 know everybody who's able to access it. But on the on the I guess 312 00:19:29,545 --> 00:19:33,320 the flip side of that, you can also Run a version where anybody 313 00:19:33,380 --> 00:19:37,140 can come and hook into your data, and it doesn't really cost you anything 314 00:19:37,140 --> 00:19:40,440 extra. So the white list in that case would just be 315 00:19:40,500 --> 00:19:44,085 everyone? Yeah. So, I I think a a 316 00:19:44,085 --> 00:19:47,525 useful way to think about it would be in that case, everybody is able to 317 00:19:47,525 --> 00:19:51,270 see the logs that are coming into your database. So Mhmm. You 318 00:19:51,270 --> 00:19:55,110 know, we have the the actual consensus layer. So we don't use wrap. You 319 00:19:55,110 --> 00:19:58,255 can sort of think of it like a wrap consensus layer. And then below that, 320 00:19:58,255 --> 00:20:01,775 we actually have the data storage. So, they can 321 00:20:01,775 --> 00:20:05,455 essentially come and be a part of that consensus layer. Maybe they can 322 00:20:05,455 --> 00:20:09,029 only, read from it, But, they can come and read from these logs 323 00:20:09,029 --> 00:20:12,570 before they're executed on the database. When you use Q2Form, 324 00:20:12,950 --> 00:20:16,389 that is defining access control for them coming and accessing your 325 00:20:16,389 --> 00:20:20,075 database. They can't see all of the logs. Does that make sense? 326 00:20:20,135 --> 00:20:23,575 It does. And it's a interesting and and very powerful 327 00:20:23,575 --> 00:20:27,390 sounding, paradigm that you've That you've surfaced there. And 328 00:20:27,390 --> 00:20:31,010 it's not that I'm not throwing off on traditional relational databases 329 00:20:31,150 --> 00:20:34,210 when I say that. It's, almost like a combination 330 00:20:34,670 --> 00:20:37,715 of What you would expect from relational databases 331 00:20:38,495 --> 00:20:42,175 or maybe even NoSQL databases, but built 332 00:20:42,175 --> 00:20:45,660 on top of that is a little bit more beef In the 333 00:20:45,660 --> 00:20:49,340 access control space. And that, you know, has 334 00:20:49,340 --> 00:20:53,120 typically been the, kind of the purview of the application 335 00:20:53,180 --> 00:20:56,845 developers. They manage that part. And it sounds like you've 336 00:20:56,845 --> 00:21:00,465 baked that right into your, your database control. 337 00:21:00,605 --> 00:21:04,450 So I I like that a lot. They're part of it. 338 00:21:04,590 --> 00:21:08,110 It's a really interesting trade off because, you know, a lot of early 339 00:21:08,110 --> 00:21:11,375 databases and this is true for, I would say, you know, I mean, Most major 340 00:21:11,375 --> 00:21:14,975 ones, I believe SQL Server, but I know Oracle, MySQL, and 341 00:21:14,975 --> 00:21:18,815 Postgres, they have baked in user access control that most people don't 342 00:21:18,815 --> 00:21:22,280 really use. Most people actually go for access control, you know, at 343 00:21:22,280 --> 00:21:26,120 their on, like, their API layer. Mhmm. But for 344 00:21:26,120 --> 00:21:29,875 our case, because of the unique Environments that this is being used into, we 345 00:21:29,875 --> 00:21:33,395 need to bake an access control logic in a different way than these 346 00:21:33,395 --> 00:21:36,995 databases already do, but we need to bake that in directly to the data 347 00:21:36,995 --> 00:21:40,630 itself. And that is what allows us to sort of open up 348 00:21:40,630 --> 00:21:44,390 new use cases that previously were not possible. Go ahead. 349 00:21:44,390 --> 00:21:47,935 Again, sounds very Powerful. And, I imagine 350 00:21:47,935 --> 00:21:51,695 business is growing. Yeah. Yeah. It's going quite 351 00:21:51,695 --> 00:21:55,049 well. That's that's excellent to hear. I always, 352 00:21:55,690 --> 00:21:59,130 I enjoy hearing success stories. They, they inspire me as 353 00:21:59,130 --> 00:22:02,350 well. Gosh. I'm trying to think of 354 00:22:03,595 --> 00:22:07,115 Some more stuff about it. I got I got my head around the basics, I 355 00:22:07,115 --> 00:22:10,554 think, but it's gonna be I know me. It's gonna be, like, 8 o'clock tonight. 356 00:22:10,554 --> 00:22:14,220 I'm gonna go, I should ask him this. It's 357 00:22:14,220 --> 00:22:17,980 all good. Yeah. I think you're running this 1 this 1 solo without Frank right 358 00:22:17,980 --> 00:22:21,275 now. So Well, yeah. And Frank thinks, So Frank thinks differently, 359 00:22:22,135 --> 00:22:25,175 than I do. We're we both started as, 360 00:22:25,575 --> 00:22:28,555 developers and then we moved into data. 361 00:22:29,190 --> 00:22:32,789 And in Frank's case, I had to beg him for about 10 362 00:22:32,789 --> 00:22:36,309 years to get him to go into data, specifically business 363 00:22:36,309 --> 00:22:39,755 intelligence, Because Frank is an artist at heart, 364 00:22:40,135 --> 00:22:43,895 so he already does pretty pictures, you know, and I still can't color in 365 00:22:43,895 --> 00:22:47,510 the lines. So I was like, you can do this whole analytics thing, 366 00:22:47,510 --> 00:22:51,350 Frank. You've got a good eye for it. And he got there. It was 367 00:22:51,350 --> 00:22:54,495 just he kinda Came around it at a different way. And he's told me about 368 00:22:54,495 --> 00:22:58,095 a 100 times, you were right. Should've done that years 369 00:22:58,095 --> 00:23:01,750 ago. But, And he's a he he 370 00:23:01,830 --> 00:23:05,669 because of the way he thinks, it's it's different than the way that I 371 00:23:05,669 --> 00:23:08,789 think. I kind of approach I don't know. I'm not saying right or wrong. I'm 372 00:23:08,789 --> 00:23:12,285 not Comparing and contrasting. It's just different. 373 00:23:12,745 --> 00:23:16,125 And and I work with a number of people in in different fields where 374 00:23:16,900 --> 00:23:20,660 It's it's very productive to work with. Frank's as a Frank's more of 375 00:23:20,660 --> 00:23:24,500 a data scientist, but he's also a data engineer. He's old school data 376 00:23:24,500 --> 00:23:28,154 science. And I I work, of course, I 377 00:23:28,154 --> 00:23:31,835 work well with him. We were we were friends before we started working together. And 378 00:23:31,835 --> 00:23:35,660 then, a handful of database administrators, I 379 00:23:35,660 --> 00:23:39,420 find it because I whenever I see a problem that needs to be solved, 380 00:23:39,420 --> 00:23:43,125 my developer roots are my first response. That's my knee jerk. 381 00:23:43,285 --> 00:23:47,045 Let's go write some code, you know, to do this in some language and try 382 00:23:47,045 --> 00:23:50,825 and figure it out that way. And my DBA friends are all, well, 383 00:23:51,070 --> 00:23:54,590 You know, we can store some business logic here in a view or a store 384 00:23:54,590 --> 00:23:58,429 procedure and access it that way. And it's it's it's 385 00:23:58,429 --> 00:24:02,014 a different approach. I but I'm You know, I know enough 386 00:24:02,014 --> 00:24:05,855 about both to be dangerous, I'd say. And that's why I'm I'm very it's 387 00:24:05,855 --> 00:24:09,534 very appealing to me. I I've done a little bit of web work, there 388 00:24:09,534 --> 00:24:13,330 for a while. Not not in your 389 00:24:13,330 --> 00:24:16,870 league. I built a website that began to get a little popular 390 00:24:17,410 --> 00:24:20,695 and I hired a web developer to take a look at it 391 00:24:21,735 --> 00:24:25,255 And he looked at it. He cut he his first response to me was, this 392 00:24:25,255 --> 00:24:28,830 looks like an engineer built it. And I'm like, I am an 393 00:24:28,830 --> 00:24:32,510 engineer. That's I thought I took it as a compliment. You laughed because you know 394 00:24:32,510 --> 00:24:35,945 it's not a compliment. Yeah. It's interesting. 395 00:24:36,164 --> 00:24:39,765 We I kinda suffer from the same thing. You know, very very 396 00:24:39,765 --> 00:24:43,370 engineering focused. We have a very engineering focused culture. Like, everyone at our 397 00:24:43,370 --> 00:24:46,670 company writes code, even the guy that does our finances and payroll. 398 00:24:47,130 --> 00:24:50,810 Wow. Everybody here is now in different amounts, 399 00:24:50,810 --> 00:24:54,595 obviously, but Sure. Everyone writes code, and so when it gets to a bit 400 00:24:54,595 --> 00:24:58,115 more of the creative side, I I don't wanna say 401 00:24:58,115 --> 00:25:01,720 we we struggle there, but it's where we have struggled a bit in It's something 402 00:25:01,720 --> 00:25:05,240 we've gotten quite a bit better at. But, yeah, we you can tell our 403 00:25:05,240 --> 00:25:09,080 applications were built by engineers. They're it might not be the prettiest 404 00:25:09,080 --> 00:25:12,505 thing in the world, but they're they're very Pragmatic. Yeah. 405 00:25:12,505 --> 00:25:16,264 Absolutely. So And and see, I don't even notice, when I 406 00:25:16,264 --> 00:25:19,780 see things like that. I don't I don't even notice them. But Frank's back so 407 00:25:19,780 --> 00:25:23,540 we have to stop talking. Well, talking bad about him. We can talk about him 408 00:25:23,540 --> 00:25:27,385 still but we only have to say the good things. Welcome back, Frank. That's 409 00:25:27,385 --> 00:25:31,225 funny. Thank you for your patience. One of these days, I will explain all 410 00:25:31,225 --> 00:25:34,659 of this publicly to our listeners and And whatnot, but, 411 00:25:35,059 --> 00:25:38,899 there's a good reason for my absence there. Yeah. No. 412 00:25:38,899 --> 00:25:41,779 I heard about, it it I heard this funny thing, and this is how Andy 413 00:25:41,779 --> 00:25:45,095 and I met where, you know, you You said these apps look like they're written 414 00:25:45,095 --> 00:25:48,935 by engineers. And that's kind of this back and forth 415 00:25:48,935 --> 00:25:52,620 Andy and I have about, like, Design and whatnot. 416 00:25:52,679 --> 00:25:56,360 So Rank food designer. Yeah. So Brennan 417 00:25:56,360 --> 00:26:00,059 was explaining to me that everyone at Quill codes. 418 00:26:00,755 --> 00:26:04,054 Really? Even the even the finance people. Interesting. 419 00:26:04,434 --> 00:26:07,635 Well, Fortis, we're we're a 7 person team. You know, it's not like we're a 420 00:26:07,635 --> 00:26:10,940 we're a huge company. But, yeah. Everybody I mean, 421 00:26:12,039 --> 00:26:15,640 everybody knows how to code and writes some amount of code. 422 00:26:16,039 --> 00:26:19,055 They might not have done that when they came in, but they they picked it 423 00:26:19,055 --> 00:26:22,735 up in one way or another. How do people react to that? Do they like 424 00:26:22,735 --> 00:26:26,355 the idea, or do they kinda bristle? Or you tell them in the interview 425 00:26:26,440 --> 00:26:30,279 That, hey. We're doing this. So it's interesting. We it's 426 00:26:30,279 --> 00:26:33,320 not like we hire people, like, yeah. You will learn to code when you come 427 00:26:33,320 --> 00:26:36,745 here. It it's almost just an inevitability. We're we're solving a very 428 00:26:36,745 --> 00:26:40,424 technical product for a very technical group of users. Right. And 429 00:26:40,424 --> 00:26:44,190 so it's sort of inevitable that, you know, you're you're gonna learn how to 430 00:26:44,269 --> 00:26:47,870 How to code to some extent, working in that job, 431 00:26:48,029 --> 00:26:51,470 really no matter what, like, what role you have. And so it it's not like 432 00:26:51,470 --> 00:26:54,955 a hard fast rule. We have the company where you to learn how to code. 433 00:26:55,455 --> 00:26:58,894 It just it inevitably has happened every 434 00:26:58,894 --> 00:27:02,680 time. So Interesting. Yeah. And Frank, the 435 00:27:02,760 --> 00:27:06,440 I'll give you my understanding of a synopsis of of 436 00:27:06,440 --> 00:27:09,180 what what their database does. 437 00:27:09,960 --> 00:27:13,765 It's It's like a relational database, but built 438 00:27:13,765 --> 00:27:17,525 into it is this user access control. And 439 00:27:17,525 --> 00:27:21,250 it's, like, coupled, to that to the extent that they 440 00:27:21,250 --> 00:27:25,010 can do not only row level, but row column level security and 441 00:27:25,010 --> 00:27:28,145 access control. Interesting. How do I do, Brennan? 442 00:27:28,685 --> 00:27:32,165 Yeah. No. I I'm I I I think that's good for a high level overview. 443 00:27:32,165 --> 00:27:35,480 I think it's good for a high level. But I'm happy to sort of jump 444 00:27:35,480 --> 00:27:39,100 into any of the specifics that you'd like, Frank. So 445 00:27:39,159 --> 00:27:42,575 so tell me, How do you 446 00:27:43,615 --> 00:27:46,735 how does that work? You do role level control or cell level control? Is it 447 00:27:46,735 --> 00:27:49,955 is it role based access control, attribute access control, 448 00:27:50,370 --> 00:27:52,950 Some combination? Yeah. So, 449 00:27:54,289 --> 00:27:58,005 kind of neither. So, we do authentication with key pairs. So 450 00:27:58,165 --> 00:28:01,685 anybody who wants to use a database, they have to have a, a public 451 00:28:01,685 --> 00:28:05,225 private key pair, like an e c v e c d s a key pair. 452 00:28:05,650 --> 00:28:09,330 And you can set rules for what keys are 453 00:28:09,330 --> 00:28:13,155 able to do what in your database. And and so we have 454 00:28:13,155 --> 00:28:16,835 our own language for defining this. We call it cuneiform. It's 455 00:28:16,915 --> 00:28:20,755 cuneiform was the first ever written language. We thought that might be fitting 456 00:28:20,755 --> 00:28:24,429 for our our language. And so our language, it's a it's a DDL language. 457 00:28:24,429 --> 00:28:28,190 So, it sort of specifies the structure for your database, 458 00:28:28,190 --> 00:28:31,250 and then all of your DML is done with, SQL. 459 00:28:31,865 --> 00:28:35,705 But, with this DDL language, you can specify what 460 00:28:35,705 --> 00:28:38,904 we call actions, and you can sort of think of these like RPC calls or 461 00:28:38,904 --> 00:28:42,290 functions Where, they they're gonna execute some 462 00:28:42,290 --> 00:28:45,890 DML against the underlying database. So this could be an 463 00:28:45,890 --> 00:28:49,695 insert or an update or a delete or it can be a select. And you 464 00:28:49,695 --> 00:28:53,455 can set all these interesting rules for who is able to do this, when 465 00:28:53,455 --> 00:28:56,975 they're able to do this, do they have to transfer some sort of 466 00:28:56,975 --> 00:28:59,820 value and able to do this Either once or every time they do it, 467 00:29:00,940 --> 00:29:04,620 or do they have to have, some role that applies to them that 468 00:29:04,620 --> 00:29:08,255 allows them to do this? And, You know, since we're able to identify 469 00:29:08,255 --> 00:29:12,014 people by their key pair, when Andy comes in and uses 470 00:29:12,014 --> 00:29:15,510 and, you know, interacts with the database, I can tell that he is distinctly different 471 00:29:15,590 --> 00:29:19,350 from you, and I know what Andy is allowed to do. And there's even 472 00:29:19,350 --> 00:29:23,095 a small amount of programmability that can be fit into that. So, you 473 00:29:23,095 --> 00:29:26,535 know, when Andy is hitting one of those actions or RPC 474 00:29:26,535 --> 00:29:30,260 calls, that might give him, results or 475 00:29:30,260 --> 00:29:33,220 allow him to do certain things that you would not be allowed to do if 476 00:29:33,220 --> 00:29:36,360 the database is configured that way. Interesting. 477 00:29:37,435 --> 00:29:41,195 Interesting. So you have really fine grained control over what who can 478 00:29:41,195 --> 00:29:44,955 do what? Yeah. You know, I I might hesitate to 479 00:29:44,955 --> 00:29:47,650 say Fine grained because it's 480 00:29:48,510 --> 00:29:52,270 it it is fine grained. You can really set whatever, however you 481 00:29:52,270 --> 00:29:56,095 can think to specify what someone can do in SQL, you can you 482 00:29:56,095 --> 00:29:59,855 can really do that with access control. But we don't implement 483 00:29:59,855 --> 00:30:03,350 it with a fine grained approach. I think a lot of the time, databases that 484 00:30:03,350 --> 00:30:05,850 are really trying to iterate on the access control front, 485 00:30:06,710 --> 00:30:10,390 they they get really into row and column level 486 00:30:10,390 --> 00:30:13,304 access. And that's not quite what we do. 487 00:30:13,945 --> 00:30:17,465 We sort of see our role as, you know, an iterating for access 488 00:30:17,465 --> 00:30:21,210 control on 2 different layers. The first one is on the actual consensus 489 00:30:21,269 --> 00:30:24,570 layer. So, you know, if you think in a traditional data system, this is where 490 00:30:24,710 --> 00:30:28,549 your raft consensus logs are are sitting before they get executed on your data 491 00:30:28,549 --> 00:30:32,265 layer. We don't use Raft, but, so that is the 492 00:30:32,265 --> 00:30:35,705 1st place where we able to have access controls. So this is, you know, network 493 00:30:35,705 --> 00:30:39,029 wide access control, Who can read what data coming in? 494 00:30:39,330 --> 00:30:43,010 And then secondly, we define, and this is for more 495 00:30:43,010 --> 00:30:46,685 client server access control, or for people that are trying to 496 00:30:46,685 --> 00:30:50,525 read from the database, at any point in time, but you can think of 497 00:30:50,525 --> 00:30:53,805 this I don't wanna say like a REST API, but a little bit more like 498 00:30:53,805 --> 00:30:57,310 a REST API than traditional database where you can have 499 00:30:57,310 --> 00:31:01,070 preset queries and, preset functionality that 500 00:31:01,070 --> 00:31:04,254 certain people are able to do or Certain groups of people are able to do 501 00:31:04,254 --> 00:31:07,934 in certain instances. But the ways 502 00:31:07,934 --> 00:31:11,450 that you can combine these things, You can you can you can 503 00:31:11,450 --> 00:31:15,290 combine it to do very granular access control, but that's not really where 504 00:31:15,290 --> 00:31:19,105 we attack the problem. Where did you get the idea for this? 505 00:31:19,105 --> 00:31:22,785 Because this is fascinating. Yeah. So it's interesting. 506 00:31:22,785 --> 00:31:26,200 It's been a little bit of a of a of a ride. So, 507 00:31:26,440 --> 00:31:29,580 we started by building a a decentralized 508 00:31:30,039 --> 00:31:33,020 communication platform. So really trying to incentivize, 509 00:31:34,305 --> 00:31:37,905 serving data in places where you're otherwise disincentivized. So 510 00:31:37,905 --> 00:31:41,665 think non Western countries where there's enforced censorship or IP 511 00:31:41,665 --> 00:31:45,220 blocking. How can we incentivize people to use things 512 00:31:45,220 --> 00:31:48,980 like HTTP tunnels to, spread data? Not 513 00:31:48,980 --> 00:31:52,585 really hard to build a business on that. And so sort of how we 514 00:31:52,585 --> 00:31:56,185 iterated from there was we took the data infrastructure for that, and we started 515 00:31:56,185 --> 00:32:00,025 providing that as a stand alone service. And this is actually where the access control 516 00:32:00,025 --> 00:32:03,580 part of this Really interesting. We started talking to a 517 00:32:03,580 --> 00:32:07,420 lot of projects that, you know, they're building some sort 518 00:32:07,420 --> 00:32:11,145 of data store. They have some data intensive application, but they're not 519 00:32:11,145 --> 00:32:14,825 looking to build that as a data moat. They're looking to build that as a 520 00:32:14,825 --> 00:32:18,505 composable, you know, data building block that other applications are 521 00:32:18,505 --> 00:32:22,080 able to directly import. Just like how you import a line of code or, you 522 00:32:22,080 --> 00:32:25,520 know, a package of code into your application, you should be able to do that 523 00:32:25,520 --> 00:32:29,039 with data as well, assuming you you're applying to all the different access 524 00:32:29,039 --> 00:32:32,585 controls. And so what we're helping a lot of customers do 525 00:32:32,585 --> 00:32:36,284 now is they can take their different datasets and, 526 00:32:36,664 --> 00:32:39,880 people whether they're collaborators, clients, or competitors, 527 00:32:40,340 --> 00:32:44,100 they can use that data in the ways that, that that 528 00:32:44,100 --> 00:32:47,160 the, you know, originator the original data creator specifies. 529 00:32:48,174 --> 00:32:52,015 And then also they can set interesting mechanisms for how value accrues 530 00:32:52,015 --> 00:32:55,695 back to them. But it's really just been a process of 531 00:32:55,695 --> 00:32:59,490 iteration from, You know, that initial idea of building shared 532 00:32:59,490 --> 00:33:03,090 data stores and then, building more complex access 533 00:33:03,090 --> 00:33:05,029 control mechanisms on top of that. 534 00:33:06,924 --> 00:33:10,605 Does that make sense? No. It makes a lot of sense. It's a fascinating it's 535 00:33:10,605 --> 00:33:14,210 just fascinating, because every time you think that we've we've we've Kind 536 00:33:14,210 --> 00:33:18,050 of solved all the problems, particularly in the in the in the 537 00:33:18,050 --> 00:33:21,810 data storage, in the data querying side of things. There's a whole new 538 00:33:21,810 --> 00:33:25,095 layer that gets on call unfolded, and There's just enormous 539 00:33:25,315 --> 00:33:29,075 opportunity, and, it's really cool because, like, I'm reading your bio, and, like, 540 00:33:29,075 --> 00:33:32,675 you were still in school when you started this company, like, that's and you you 541 00:33:32,675 --> 00:33:36,330 started Your first company when you were 16, and you had 542 00:33:36,330 --> 00:33:40,009 15 you had 15 employees before you even go on 15 or 543 00:33:40,009 --> 00:33:42,909 16 employees before you even go on to college, man. That's that's impressive, 544 00:33:43,745 --> 00:33:46,865 I have to say. Yeah. I mean, I appreciate it. It's honestly just been a 545 00:33:46,865 --> 00:33:49,424 lot of being in the right place at the right time. Not my first company. 546 00:33:49,424 --> 00:33:53,050 It was not a tech company. It was Digging holes and, cutting 547 00:33:53,050 --> 00:33:55,630 down trees and digging up bushes in Idaho. 548 00:33:56,890 --> 00:34:00,445 But that was that was my first company. And then this 549 00:34:00,445 --> 00:34:03,805 one, I started, during COVID on a gap year, from 550 00:34:03,805 --> 00:34:06,785 college. But Very cool. It's honestly just been, 551 00:34:07,970 --> 00:34:11,329 Being in the right place at the right time and, doing something that people find 552 00:34:11,329 --> 00:34:14,929 interesting. That is so cool. I mean, like, you think 553 00:34:14,929 --> 00:34:18,525 about the last couple years, A lot of people would say, oh, it's a terrible 554 00:34:18,525 --> 00:34:22,125 time to start a business, but we've seen a couple of instances where it's actually 555 00:34:22,125 --> 00:34:24,844 turns out to be a really good, like we talked to a bunch of folks, 556 00:34:24,844 --> 00:34:28,139 some, So probably by the time this goes out, the shows will be out, but, 557 00:34:28,139 --> 00:34:31,980 like, this whole there's this whole opportunities that I think are 558 00:34:31,980 --> 00:34:35,475 just popping up left and right because of data, Because of AI, 559 00:34:35,535 --> 00:34:39,375 because of, you know, distributed applications and stuff like 560 00:34:39,375 --> 00:34:43,030 that. There's just it it's We're gonna look back on the 561 00:34:43,270 --> 00:34:46,730 as these as the good old days of entrepreneurship and and opportunity. 562 00:34:47,830 --> 00:34:51,284 Yeah. Hopefully. And and, you know, I I I would say that is actually, 563 00:34:51,685 --> 00:34:55,364 like this the last, year, maybe 564 00:34:55,364 --> 00:34:58,800 18 months has been probably the only time where we could have 565 00:34:58,800 --> 00:35:02,400 started a a, a product like this. So 566 00:35:02,400 --> 00:35:05,985 particularly in the growth of web 3. A lot of our beachhead markets 567 00:35:05,985 --> 00:35:09,525 are sort of bridging that gap from, the traditional 568 00:35:09,745 --> 00:35:13,460 space to web 3. We find a A lot of 569 00:35:13,520 --> 00:35:17,119 our initial partners, they have a lot of their clients are 570 00:35:17,119 --> 00:35:20,820 based in the traditional world, but their data engineering problems 571 00:35:20,880 --> 00:35:24,485 are uniquely solved by what is provided in web 3. And 572 00:35:24,485 --> 00:35:28,245 there's enough demand for this, for our specific solution to 573 00:35:28,245 --> 00:35:31,920 to warrant a product. You know, it's only really existed in the last, 574 00:35:32,320 --> 00:35:36,160 year or so. And so yeah. I you know, whether 575 00:35:36,160 --> 00:35:39,605 or not this is a good time to start a business, I would say, 1, 576 00:35:39,605 --> 00:35:42,885 I don't know, but also, I don't think, I I care too much. Like, 577 00:35:43,765 --> 00:35:47,610 the need for what we are doing has really only just started existing, But it 578 00:35:47,610 --> 00:35:51,450 very clearly does exist, and that's that's something that's pretty exciting 579 00:35:51,450 --> 00:35:55,135 about it. So you said web 3, and I It's interesting 580 00:35:55,135 --> 00:35:58,815 because when when most people think of web 3, they think, they 581 00:35:58,815 --> 00:36:02,655 think blockchain. Right? And thanks to SPF that is kind of 582 00:36:02,655 --> 00:36:06,260 cratered, I would say, although I I I am still don't 583 00:36:06,340 --> 00:36:10,040 the crypto kids better not hate on me, like, I'm still a believer in blockchain 584 00:36:10,100 --> 00:36:13,695 as a whole, as as an idea. I don't think I think currency is only 585 00:36:13,695 --> 00:36:17,135 one of the things that you can do with it. And 586 00:36:17,135 --> 00:36:20,895 2, the the the metaverse. Right? And obviously, I think the 587 00:36:20,895 --> 00:36:24,609 metaverse, Obviously Facebook is stumbling on it like but 588 00:36:24,609 --> 00:36:28,049 but it's interesting that the data portion of it is probably more 589 00:36:28,049 --> 00:36:31,845 relevant than any of the other 2 and you don't hear the negative press about 590 00:36:31,925 --> 00:36:34,965 Kind of this distributed data stores in into the, 591 00:36:36,965 --> 00:36:40,579 I I just interesting. I think that you're part of the web 3. Have 592 00:36:40,579 --> 00:36:44,180 you found that the labeling yourself part of web 3 has been a, 593 00:36:44,980 --> 00:36:48,734 has turned from a positive to a negative, basically? Yeah. 594 00:36:48,734 --> 00:36:52,575 I think so. Yeah. You know, some people, they might get 595 00:36:52,575 --> 00:36:55,295 kinda turned off on it. You know, you might talk to a candidate, and when 596 00:36:55,295 --> 00:36:58,950 we say we're because we do classify ourselves as a web 3 company. 597 00:36:59,170 --> 00:37:02,930 Right. And when we say that, they're like, oh, like, you know, 598 00:37:02,930 --> 00:37:06,595 I I don't really believe in that cryptocurrency stuff. And I I I 599 00:37:06,595 --> 00:37:09,735 think that's fine, but I don't think web 3 is cryptocurrency. 600 00:37:10,275 --> 00:37:14,035 Right. I mean, web 3 is a new type of distributed application 601 00:37:14,035 --> 00:37:17,350 or distributed databases, honestly. We do, 602 00:37:18,070 --> 00:37:21,770 I I I would say not just distributed, permissionless. Decentralized 603 00:37:22,230 --> 00:37:26,075 Mhmm. List. That makes sense. With Web 3 applications were able 604 00:37:26,075 --> 00:37:29,835 to relax a lot of the trust assumptions that are 605 00:37:29,835 --> 00:37:33,490 made in other applications, in particular trust assumptions Between 606 00:37:33,490 --> 00:37:36,070 the client and the server. And so 607 00:37:36,850 --> 00:37:40,630 that's like, just forget about cryptocurrency and the metaverse 608 00:37:40,795 --> 00:37:44,635 And tokens with dogs on them and everything else, that is what web 609 00:37:44,635 --> 00:37:48,315 3 is. It is relaxing trust assumptions in, you 610 00:37:48,315 --> 00:37:52,079 know, otherwise More traditional, you know, 611 00:37:52,079 --> 00:37:55,380 client server and oh, not in client server, but it's just like general, 612 00:37:55,920 --> 00:37:59,685 computer architecture models. And so that's what we are doing. You 613 00:37:59,685 --> 00:38:02,725 know, I don't really care what the price of cryptocurrency does. I don't own any 614 00:38:02,725 --> 00:38:06,565 cryptocurrency. Right. We're just building, you know, trustless 615 00:38:06,565 --> 00:38:10,230 applications. That's a good way to put it because when you, you know, 616 00:38:10,550 --> 00:38:14,150 you're obviously your company's doing well and and and and you're growing and 617 00:38:14,150 --> 00:38:17,405 and you've had a pretty, you know, good run. Well, so you just said web 618 00:38:17,405 --> 00:38:19,985 3 and I'm like, but but you're doing well. 619 00:38:21,244 --> 00:38:24,845 I was like, but but but then then then then like, you know, 620 00:38:24,845 --> 00:38:27,920 after you That's why I wanted to ask that. Now you explain it. You're right. 621 00:38:27,920 --> 00:38:31,680 Like, web 3 is, you know, it's kind 622 00:38:31,680 --> 00:38:35,435 of like, kinda like Beyonce. Right? Like, nobody hardly anyone remembers 623 00:38:35,515 --> 00:38:39,215 What group she was part of. Right? I think, God, Destiny's Child. 624 00:38:39,435 --> 00:38:42,715 There were like 3 or 4 singers in there. Right? But but, you know, one 625 00:38:42,715 --> 00:38:46,520 of them one of them Has the the the fame and staying 626 00:38:46,520 --> 00:38:50,200 power, the other ones not so much, no disrespect to them, if the 627 00:38:50,200 --> 00:38:54,035 weird off chance that they're actually listening to a show About AI and data 628 00:38:54,035 --> 00:38:57,795 science, but, you know, no. I just it's just interesting, like, 629 00:38:57,795 --> 00:39:01,155 you know, and we think of all these technologies, like, I'm old enough to remember 630 00:39:01,155 --> 00:39:05,000 1 web one o. Right? And all the crazy ideas, 631 00:39:06,020 --> 00:39:09,539 particularly one of them was, you know, downloading Java 632 00:39:09,539 --> 00:39:13,305 applets. Right? Downloading software from The Internet and 633 00:39:13,305 --> 00:39:16,825 running it locally. Right? Well, that's called the app store now, we don't even think 634 00:39:16,825 --> 00:39:20,185 about it. Right? But obviously, there are a lot of things that failed in that 635 00:39:20,185 --> 00:39:23,380 era. Right. Same thing with web 2 point o, we're kind of saw that kind 636 00:39:23,380 --> 00:39:26,740 of come and go, and I think the same is gonna be true here, you 637 00:39:26,740 --> 00:39:30,265 know, like, you know, did we really need, You know, sock 638 00:39:30,265 --> 00:39:33,865 puppets to sell us stuff, you know, sell us dog food. Right? 639 00:39:34,665 --> 00:39:38,400 And but, you know, I remember very early 640 00:39:38,400 --> 00:39:42,240 on there was a startup called, they were all the Java people 641 00:39:42,240 --> 00:39:45,760 who made Java basically, started a company called Castanet or 642 00:39:45,760 --> 00:39:49,265 Rumba, I forget Which one it was. But their big thing was they wanted to 643 00:39:49,265 --> 00:39:52,725 create what we would call an app store, but for applications. 644 00:39:52,865 --> 00:39:56,580 Right? And and that idea Resurface somewhere completely 645 00:39:56,640 --> 00:40:00,480 different and now it's just part of, like, just the daily world we live 646 00:40:00,480 --> 00:40:04,015 in. So it's it's interesting. I think that We always seem to 647 00:40:04,015 --> 00:40:06,515 remember the Hindenburgs of history, but not necessarily 648 00:40:08,655 --> 00:40:12,309 kind of the The the the the stuff that actually does work 649 00:40:12,309 --> 00:40:16,069 out. Oh, absolutely. And I I think that'll be the the case with, 650 00:40:16,230 --> 00:40:20,055 you know, web 3 as well. A lot of the 651 00:40:20,055 --> 00:40:23,735 people, in particular, a lot of the really loud people that we're that we're 652 00:40:23,735 --> 00:40:27,550 operating in web 3, you know, now that the The the prices of things 653 00:40:27,550 --> 00:40:30,270 are down. They've kinda gone on to whatever the next thing it is they're gonna 654 00:40:30,270 --> 00:40:34,109 do to try to make a quick buck. But the people that are building really 655 00:40:34,109 --> 00:40:37,914 useful and interesting things, Most of them will stay around. You know, some of 656 00:40:37,914 --> 00:40:41,535 them will fail. You know, businesses fail. But, 657 00:40:42,075 --> 00:40:45,820 you know, it's something I've noticed, because I was also here when web 3 was 658 00:40:45,820 --> 00:40:49,340 really popular, right, when when working in web 3 was the cool thing to be 659 00:40:49,340 --> 00:40:53,035 doing. And something I've noticed is that The 660 00:40:53,035 --> 00:40:56,715 people that are building actually useful applications and solving actually 661 00:40:56,715 --> 00:41:00,395 hard problems, they're still here. You know, they're not 662 00:41:00,395 --> 00:41:04,060 as loud as the other people that were here Or but that that's fine. 663 00:41:04,060 --> 00:41:07,900 Like, the the actual core problems that we want to 664 00:41:07,900 --> 00:41:11,494 solve are still being solved, and and I I think that there's a lot of 665 00:41:11,494 --> 00:41:13,674 value in solving those problems. And so, 666 00:41:15,174 --> 00:41:18,819 there's less people, but there's a higher concentration of High 667 00:41:18,819 --> 00:41:22,500 quality people building in the space now, and I think that's what matters. Well and 668 00:41:22,500 --> 00:41:26,055 now that it's quieted down some, y'all can get more work done. That 669 00:41:27,395 --> 00:41:31,234 is, very true. That's very 670 00:41:31,234 --> 00:41:34,630 true. Yeah. Which has also been quite 671 00:41:34,630 --> 00:41:38,470 helpful. Well, we are gonna transition, to 672 00:41:38,470 --> 00:41:42,035 the questions part. I hope you got a copy of Questions in advance. If you 673 00:41:42,035 --> 00:41:45,634 didn't, I put them in chat. So if you'd like to, peruse 674 00:41:45,634 --> 00:41:49,394 them. The very first one is, I think you've explained 675 00:41:49,394 --> 00:41:52,400 it, But, it's a it's a softball, 676 00:41:53,260 --> 00:41:56,539 for you. How did you find your way into data? Did, 677 00:41:56,859 --> 00:42:00,545 data find you or did you find data? Yeah. 678 00:42:00,545 --> 00:42:04,145 So I kinda inadvertently found my way into data. So I wanted to 679 00:42:04,145 --> 00:42:07,585 solve this other problem that was present in the messaging 680 00:42:07,585 --> 00:42:11,330 application. And, that really required me to dive I 681 00:42:11,330 --> 00:42:14,610 don't wanna say super deep into data. It required me to dive super deep into 682 00:42:14,610 --> 00:42:18,025 a few things, but it was in building 683 00:42:18,025 --> 00:42:21,385 infrastructure for that that I found that there there was a real 684 00:42:21,385 --> 00:42:24,745 opportunity if I went and, you know, doubled down and went even deeper into 685 00:42:24,745 --> 00:42:28,370 data. And so, you know, for me, it was really just 686 00:42:28,510 --> 00:42:32,190 kinda looking at, at what the market wanted, you know, when we're 687 00:42:32,190 --> 00:42:35,885 working with design partners and potential customers, What is their feedback? And it 688 00:42:35,885 --> 00:42:39,005 kind of pointed towards going deeper into data. And so that's how I found my 689 00:42:39,005 --> 00:42:42,670 way into it. Nice. Interesting. So what's 690 00:42:42,670 --> 00:42:45,170 your favorite part of your current gig? 691 00:42:46,510 --> 00:42:50,349 So I would say, like, the the team I work with. So our 692 00:42:50,349 --> 00:42:53,265 team is really tight knit. Most teams now are remote. 693 00:42:53,885 --> 00:42:57,645 Almost every startup now is a remote startup, especially in the, 694 00:42:57,645 --> 00:43:01,210 you know, quote unquote web three space. We're in person. So, 695 00:43:01,610 --> 00:43:05,290 you know, the entire team is in the room right next to me. And, honestly, 696 00:43:05,290 --> 00:43:08,250 we're all really close. We all really believe in the problems we're solving. We do 697 00:43:08,250 --> 00:43:11,925 believe we're building a better and more fair Internet. And so that 698 00:43:11,925 --> 00:43:14,965 makes it really fun to work here, you know, even if the hours might be 699 00:43:14,965 --> 00:43:18,539 a little longer than they would be at another job. It's 700 00:43:18,539 --> 00:43:22,299 it's really fun to work here. We all really get along, and, we work well 701 00:43:22,299 --> 00:43:25,965 together. And so that's certainly my favorite part. And you're in Austin now. Right? 702 00:43:26,125 --> 00:43:29,965 We are in Austin. Yeah. Our team is a really thriving tech scene right 703 00:43:29,965 --> 00:43:33,805 now. Yeah. Yeah. If you're if you're young and work in tech, it's the the 704 00:43:33,805 --> 00:43:37,089 place to be. And so it's very Awesome. Awesome. 705 00:43:37,710 --> 00:43:41,070 So we have 3 complete the sentence statements, not really 706 00:43:41,070 --> 00:43:44,369 questions. The first is when I'm not working, I enjoy 707 00:43:44,510 --> 00:43:48,135 blank. Yeah. So I am I'm a 708 00:43:48,214 --> 00:43:51,655 not a I live in Texas, I guess, not as much. But, I'm a really 709 00:43:51,655 --> 00:43:55,480 big skier. So I grew up snow skiing. That's 710 00:43:55,480 --> 00:43:59,079 cool. Yeah. I I'm from Idaho, and so it's kind of a 711 00:43:59,079 --> 00:44:02,694 common thing there. And so, yeah, I did a ton a 712 00:44:02,694 --> 00:44:06,375 ton of skiing growing up. I do, I ski raced. I do backcountry 713 00:44:06,375 --> 00:44:10,135 skiing now. So a lot of, like, hiking, skiing, like, like, avalanche training, stuff 714 00:44:10,135 --> 00:44:13,960 like that. Yeah. I would say that if I, you know, if 715 00:44:13,960 --> 00:44:17,775 I was no longer working, and I I couldn't, 716 00:44:17,775 --> 00:44:19,694 You know, I I love what I do, and I would do it, you know, 717 00:44:19,694 --> 00:44:23,295 even if I wasn't making money doing it. But if I was no longer working, 718 00:44:23,295 --> 00:44:26,250 I would probably go skiing. Very cool. 719 00:44:29,030 --> 00:44:32,250 Another complete the sentence. I think the coolest thing in technology 720 00:44:32,390 --> 00:44:36,055 today is? Yeah. So, 721 00:44:36,595 --> 00:44:38,615 I'm I'm a little torn here. I think either, 722 00:44:41,475 --> 00:44:45,320 permissionless networks. So, I mean, 723 00:44:45,620 --> 00:44:49,300 people usually think of this as cryptocurrency layer ones, but I 724 00:44:49,300 --> 00:44:53,035 think it extends sort of beyond that. But Any network that is permissionless and 725 00:44:53,035 --> 00:44:56,735 allows people to it it functions as as a protocol, 726 00:44:57,115 --> 00:45:00,690 and it doesn't have biases towards individuals. I think that's really 727 00:45:00,690 --> 00:45:04,290 interesting. It has a lot of potential, or SQLite. I really like 728 00:45:04,290 --> 00:45:08,055 SQLite. I think it's a really awesome piece of technology. I know it's 729 00:45:08,135 --> 00:45:11,895 Not exactly the newest thing, but I think it's still of the things I've 730 00:45:11,895 --> 00:45:14,635 worked with, SQLite is really cool. Nice. 731 00:45:15,575 --> 00:45:19,119 Alright. Our last one, I look forward to the day when I can use 732 00:45:19,119 --> 00:45:22,960 technology to blank. Oh, interesting. Interesting 733 00:45:22,960 --> 00:45:23,460 question. 734 00:45:28,075 --> 00:45:31,755 I think for me, I I'm really looking forward 735 00:45:31,755 --> 00:45:35,515 to being able to use and I I I think we're we're almost 736 00:45:35,515 --> 00:45:38,270 there. But being able to use, 737 00:45:39,290 --> 00:45:43,050 AI programming to help us write unit tests and get full 738 00:45:43,050 --> 00:45:46,895 context of our code base, I've been using GitHub Copilot 739 00:45:47,035 --> 00:45:50,555 for, I think, maybe 9 months now, 8 months now, and it's 740 00:45:50,555 --> 00:45:54,370 honestly changed my life. It's I don't know if you guys have 741 00:45:54,370 --> 00:45:58,210 used GitHub Copilot. Would highly recommend trying it. It 742 00:45:58,210 --> 00:46:01,875 has just my productivity has skyrocketed. And 743 00:46:01,875 --> 00:46:05,715 now it's only able to handle a fairly small set of context. Like, 744 00:46:05,715 --> 00:46:08,755 I believe it only has context for the file or maybe a couple of the 745 00:46:08,755 --> 00:46:12,350 most recent files you've worked in. But, you know, there 746 00:46:12,350 --> 00:46:16,190 there have been a couple, demo models, and, unfortunately, they're in private beta 747 00:46:16,190 --> 00:46:19,775 right now. But where there are AI AI models that 748 00:46:19,934 --> 00:46:23,694 can help you generate unit tests, and they can read through an entire 749 00:46:23,694 --> 00:46:27,474 package of code you've written and see, oh, you might have a security vulnerability 750 00:46:27,615 --> 00:46:31,079 here, or, Are you sure you actually meant to expose this in your 751 00:46:31,079 --> 00:46:34,839 public API? Just those are sort of a lot of the foot 752 00:46:34,839 --> 00:46:38,645 guns I still find myself running into. And I think we're almost at the 753 00:46:38,645 --> 00:46:42,345 point where, that that, is is solved. 754 00:46:44,609 --> 00:46:48,450 Wow. Very cool. Would highly recommend trying out Copilot if 755 00:46:48,450 --> 00:46:52,130 you haven't. It's been it's been pretty crazy. I will check it 756 00:46:52,130 --> 00:46:55,905 out. Yeah. I've done a couple of demos with it, you know, just to 757 00:46:56,065 --> 00:46:59,684 it's kinda like, you know, walk through, follow the instructions type stuff. 758 00:47:00,400 --> 00:47:03,839 It's not the same as when you're trying to solve a real a real problem, 759 00:47:03,839 --> 00:47:07,359 real world problem. So I know enough to know that. I was still 760 00:47:07,359 --> 00:47:10,455 impressed, But I haven't yet taken it to that next level. 761 00:47:10,995 --> 00:47:14,835 Yeah. You know, it it's not super useful for writing large blocks 762 00:47:14,835 --> 00:47:17,895 of code. Mhmm. It is useful as autocomplete. 763 00:47:18,309 --> 00:47:21,990 So, I mean, like, a place I use it, 764 00:47:21,990 --> 00:47:25,510 most of our stack is in Golang. Golang has pretty verbose error 765 00:47:25,510 --> 00:47:29,025 handling. It's really helpful with that. 766 00:47:29,425 --> 00:47:33,265 Like, just with that alone, it's doubled my productivity because it pretty much handles all 767 00:47:33,265 --> 00:47:36,600 of the error handling for me. Wow. So That's impressive. 768 00:47:39,860 --> 00:47:40,600 Very cool. 769 00:47:44,455 --> 00:47:48,135 Share something wait. Which question did we 770 00:47:48,135 --> 00:47:51,920 do? Yes. Just share something that's next in that list, But that's 771 00:47:51,920 --> 00:47:55,120 my list, and it may be out of order. No. No. No. It is. Here's 772 00:47:55,120 --> 00:47:58,880 something, different about yourself. But remember, we like to keep 773 00:47:58,880 --> 00:48:01,845 our Itunes, clean rating. Yeah. 774 00:48:04,065 --> 00:48:07,905 Oh, man. That's a that that's I think that's the toughest 775 00:48:07,905 --> 00:48:11,330 one yet. I I had scanned through these 776 00:48:11,330 --> 00:48:15,170 questions before the podcast, but I, I 777 00:48:15,170 --> 00:48:17,110 did not think of this one. 778 00:48:20,595 --> 00:48:24,410 Man, let me think about 1 for a sec. I don't 779 00:48:24,410 --> 00:48:27,849 know. If you don't mind me asking, what would, what would your answers for this 780 00:48:27,849 --> 00:48:31,450 be? And maybe that'll help me come up with something. Oh, I mean, like, one 781 00:48:31,450 --> 00:48:34,775 of 1 of mine was, because we did this on on each other. We should 782 00:48:34,775 --> 00:48:38,535 probably reupdate, Andy. Because I used one of my 783 00:48:38,535 --> 00:48:42,090 first jobs was I was an EMT in the Bronx. Okay. 784 00:48:42,310 --> 00:48:45,610 Yep. And for me, I I have a similar one to Frank. 785 00:48:46,310 --> 00:48:49,865 I played guitar in a country rock band. Okay. 786 00:48:49,865 --> 00:48:51,565 Wow. That's that's really cool. 787 00:48:53,865 --> 00:48:57,005 Oh, man. I already brought up the the skiing thing. That one's tough. 788 00:48:57,890 --> 00:49:00,930 I mean, how did you here's here's 1. I'll help you out. Like, how did 789 00:49:00,930 --> 00:49:04,770 you start a landscaping company? Like like, when you were 16, like, how many 16 790 00:49:04,770 --> 00:49:08,035 year olds do you know that just say, you know what? I'm gonna, Like, how 791 00:49:08,035 --> 00:49:11,875 did that happen? Like This is impressive. Sure. Yeah. The the thank 792 00:49:11,875 --> 00:49:15,155 you. I appreciate the help here. No problem. It's, 793 00:49:15,555 --> 00:49:19,380 so I I grew up in Idaho, and we were we're a ways outside of 794 00:49:19,380 --> 00:49:22,260 Boise. And so we had quite a bit of land, and it wasn't, you know, 795 00:49:22,260 --> 00:49:25,765 nice. I mean, it it it built around. It's just like a Great place to 796 00:49:25,765 --> 00:49:29,605 live, but it wasn't like, like like you know, we had to do it 797 00:49:29,605 --> 00:49:33,365 like firebreaks, you know, a lot of irrigation work, things like 798 00:49:33,365 --> 00:49:36,460 that. And so, growing up, 799 00:49:37,000 --> 00:49:40,520 we wouldn't you know, me and my brothers were really young, we had a guy 800 00:49:40,520 --> 00:49:43,080 who would come and help us do that. But as we got older, we started 801 00:49:43,240 --> 00:49:46,984 our family did it ourselves. And he hired me, 802 00:49:46,984 --> 00:49:49,545 and I would just kinda help him as an extra hand. He did this for 803 00:49:49,545 --> 00:49:53,065 people all over. And I just kinda had a realization not that far into the 804 00:49:53,065 --> 00:49:55,770 job. It was like, man, I could definitely do this myself, and I think I 805 00:49:55,770 --> 00:49:59,610 could, you know, probably pay myself a little bit better. 806 00:49:59,610 --> 00:50:03,345 And so I just, I I started small, started 807 00:50:03,345 --> 00:50:06,305 with 1. Like, I didn't immediately quit my job or anything. I did quit my 808 00:50:06,305 --> 00:50:10,145 job fairly quickly. But, I started with a couple small clients 809 00:50:10,145 --> 00:50:13,460 just seeing if it was something I can handle. None of it was rocket science, 810 00:50:13,460 --> 00:50:16,900 and so I figured that out. I started scaling up more 811 00:50:16,900 --> 00:50:20,660 from, like, you know, mowing lawns to fire 812 00:50:20,660 --> 00:50:24,315 breaks And digging in drainage ditches, a little bit of demolition work. 813 00:50:24,315 --> 00:50:27,915 It's just a a bit higher margin. But, yeah, 814 00:50:27,915 --> 00:50:30,940 honestly, just started 1 step at a time. I got 1 client. I got 2 815 00:50:30,940 --> 00:50:34,780 clients, and then I got 10. I had a couple buddies that would 816 00:50:34,780 --> 00:50:38,140 come out and help me. And it was just really you know? As opposed to 817 00:50:38,140 --> 00:50:41,965 a business like like this one where it's, It was very technically focused, 818 00:50:41,965 --> 00:50:45,725 and you're raising VC dollars and things like that. This was, I I 819 00:50:45,725 --> 00:50:48,605 I worked out of a Ford Escape until I could afford a pickup truck. And 820 00:50:48,605 --> 00:50:51,599 then I bought a pickup truck, and then I So it was it was it 821 00:50:51,599 --> 00:50:54,240 was a little bit of a different process. But, yeah, that was kinda how I 822 00:50:54,240 --> 00:50:58,000 got into it. No. That's cool. That is cool. Do you listen to 823 00:50:58,000 --> 00:51:01,605 audiobooks? It's funny. I just saw that question. 824 00:51:01,665 --> 00:51:04,645 I just got an Audible subscription 2 days ago. 825 00:51:05,025 --> 00:51:08,770 Wow. Yeah. One of my coworkers recommended a book to me, And 826 00:51:08,770 --> 00:51:11,410 I don't have a lot of time to actually sit down and read, but I 827 00:51:11,410 --> 00:51:15,109 walk a lot. And so, I got Audible for that. So, 828 00:51:15,490 --> 00:51:19,325 I'm It's a really good book. Would really recommend. It's called 829 00:51:19,325 --> 00:51:23,005 Children of Time. It's like if you're into sci fi Mhmm. It's like a 830 00:51:23,005 --> 00:51:26,630 postapocalyptic sci fi book where, they're humans. 831 00:51:26,630 --> 00:51:30,310 They've they've left Earth, and they're, I I forget how far, but they're 832 00:51:30,470 --> 00:51:34,310 they they've been traveling for, like, 2000 years, and they're now trying to recolonize a 833 00:51:34,310 --> 00:51:37,945 new planet. And it's just sort of all the I 834 00:51:37,945 --> 00:51:41,705 don't wanna spoil too much, but, it's about that. But it it's it's really 835 00:51:41,705 --> 00:51:45,270 good. If you like sci fi, I would highly recommend. I'll check it out. 836 00:51:45,270 --> 00:51:48,330 And, you can check it out too to our listeners. 837 00:51:48,710 --> 00:51:51,990 Audible is a sponsor of the show, and you go to the data driven book 838 00:51:51,990 --> 00:51:55,464 .com Or the data driven book .com depending on how you want to pronounce 839 00:51:55,464 --> 00:51:59,065 it. Andy assures me that that link is 840 00:51:59,065 --> 00:52:01,565 working and, I have my faith in Andy. 841 00:52:02,839 --> 00:52:06,519 It was working a couple of hours ago. We did another recording. It's a 842 00:52:06,519 --> 00:52:10,065 2 recording day, and it's working then. Yeah, 843 00:52:10,065 --> 00:52:12,625 no, no. It could have been, it could have been my setup. Cause I was, 844 00:52:12,625 --> 00:52:16,385 I was doing some weird stuff with DNS to get something else working on. It's 845 00:52:16,385 --> 00:52:19,770 always DNS Frank. It's Always DNS. 846 00:52:21,950 --> 00:52:25,630 So where can people I'm sorry. Go ahead, Andy. That's okay. You you do it, 847 00:52:25,630 --> 00:52:29,385 Frank. I was gonna say the same thing. Where can people learn more 848 00:52:29,385 --> 00:52:33,145 about you and what you're up to? Yeah. So, I mean, the first one is 849 00:52:33,145 --> 00:52:34,765 just our website. So quill.comkwil.com. 850 00:52:38,310 --> 00:52:41,830 I've also got a Twitter. That's probably the easiest way to get to me. So 851 00:52:41,830 --> 00:52:44,970 my Twitter is just my name, so Brennan underscore Lamy. 852 00:52:45,835 --> 00:52:49,595 But you can also find links to Quill's Twitter and inevitably to 853 00:52:49,595 --> 00:52:53,115 to mine as well on our website. So I would say the biggest one is 854 00:52:53,115 --> 00:52:56,800 just go into quill.com. It's probably the easiest. 855 00:52:56,800 --> 00:53:00,640 Okay. Excellent. That sounds good. Yeah. And, any 856 00:53:00,640 --> 00:53:04,424 parting thoughts? No. I don't think so. I mean, really, thank 857 00:53:04,424 --> 00:53:08,025 you thank you all for having me. I it it's hard to find 858 00:53:08,025 --> 00:53:11,720 people that, are as passionate about, you know, weird data engineering problems as I 859 00:53:11,720 --> 00:53:15,400 am, and so it's really been a pleasure. Awesome. We're 860 00:53:15,400 --> 00:53:19,225 happy to talk to other people who are into Data engineering, too. Well, that was 861 00:53:19,225 --> 00:53:22,345 quite the show. Alright. I'll let go of it. It's always good to hear a 862 00:53:22,345 --> 00:53:26,000 good entrepreneur origin story. One last thing 863 00:53:26,000 --> 00:53:29,600 before you go. We know you're busy and we appreciate you 864 00:53:29,600 --> 00:53:33,095 listening to our podcast. But we have a favor to 865 00:53:33,095 --> 00:53:36,234 ask. Please rate and review our podcast on Itunes, 866 00:53:36,454 --> 00:53:40,230 Stitcher, or wherever you subscribe to us. You 867 00:53:40,230 --> 00:53:43,450 have subscribed to us? Haven't you? 868 00:53:44,230 --> 00:53:47,910 Having high ratings and reviews helps us improve the quality of our show 869 00:53:47,910 --> 00:53:50,555 and rank us more favorably with the search algorithms. 870 00:53:51,734 --> 00:53:55,035 That means more people listen to us, spreading the joy. 871 00:53:55,815 --> 00:53:59,060 And, Can't the world use a little more joy these days? 872 00:54:00,160 --> 00:54:03,760 So, go do your part to make the world just a little better and be 873 00:54:03,760 --> 00:54:05,540 sure to rate and review the show.