Meeting Title: Brainforge Final Interview Date: 2026-04-02 Meeting participants: David Rose, Awaish Kumar, Uttam Kumaran, Demilade Agboola


WEBVTT

1 00:00:33.350 00:00:34.000 Awaish Kumar: Hi.

2 00:00:34.940 00:00:36.060 David Rose: Logan.

3 00:00:36.660 00:00:38.230 Awaish Kumar: Hi, David, how are you doing?

4 00:00:38.610 00:00:39.780 David Rose: Good, how are you?

5 00:00:41.040 00:00:42.310 Awaish Kumar: I’m good as well.

6 00:00:43.030 00:00:43.610 David Rose: Good.

7 00:00:50.440 00:00:53.949 Awaish Kumar: Sorry, I think I forgot. Where are you located?

8 00:00:54.470 00:00:56.720 David Rose: Colorado, Denver.

9 00:00:57.350 00:00:58.070 Awaish Kumar: Okay.

10 00:01:00.620 00:01:01.500 David Rose: What about you?

11 00:01:03.150 00:01:04.870 Awaish Kumar: I’m in beauty right now.

12 00:01:05.760 00:01:06.510 David Rose: Nice.

13 00:01:08.340 00:01:10.100 Uttam Kumaran: Hey, David. How are ya?

14 00:01:10.710 00:01:11.830 David Rose: Hello, good.

15 00:01:13.040 00:01:14.690 Uttam Kumaran: Good to see a comfy sweater.

16 00:01:15.980 00:01:23.000 David Rose: Yes, this is my, I would call it my Cosby sweater, but… Not meaningful.

17 00:01:23.000 00:01:27.569 Uttam Kumaran: Not anymore. It’s just a… it’s a… yeah, it’s a…

18 00:01:27.860 00:01:29.820 Uttam Kumaran: Like, I don’t know what you’d say, like…

19 00:01:31.480 00:01:36.910 Uttam Kumaran: Famous, like, actors, you know, sweat around on the house.

20 00:01:38.490 00:01:40.630 Uttam Kumaran: A new sweater makes sense, yeah.

21 00:01:46.430 00:01:52.139 Awaish Kumar: Okay, I think we can start, basically, for this interview, like.

22 00:01:52.310 00:01:55.670 Awaish Kumar: You have done the final exercise.

23 00:01:55.840 00:02:05.970 Awaish Kumar: So what we want is, like, a quick overview of what you’ve done in the project, and if you can discuss, like, trade-offs and the decisions you made in the process.

24 00:02:06.360 00:02:15.019 Awaish Kumar: And while implementing that, Project, and after that, we will have some follow-up questions on that.

25 00:02:16.570 00:02:17.080 Awaish Kumar: Agreed.

26 00:02:17.080 00:02:18.499 David Rose: Do you want me.

27 00:02:18.790 00:02:20.470 Awaish Kumar: Yeah, you can screen share it.

28 00:02:20.470 00:02:22.489 David Rose: Screen share, one second…

29 00:02:41.580 00:02:46.350 Uttam Kumaran: Yeah, I’m curious, also, overall, what you thought about, the exercise itself, too.

30 00:02:47.250 00:02:56.069 David Rose: Yeah, so this is… This is the first time I’ve done, like, a technical take-home interview.

31 00:02:56.270 00:02:59.300 David Rose: So that was…

32 00:02:59.580 00:03:05.990 David Rose: I guess I don’t have anything to compare it to, but, it was interesting, it’s like…

33 00:03:07.070 00:03:17.820 David Rose: Let’s see… sorry, I’m… Trying to multitask here. So… I thought it was…

34 00:03:18.310 00:03:28.790 David Rose: like, it was very straightforward, the way it was set up, so that was nice. I, luckily for me, have been using DuckDB with dbt Core, so it was like…

35 00:03:29.020 00:03:37.469 David Rose: very straightforward of… Exactly, exactly what I’ve been using in my personal workflow,

36 00:03:37.670 00:03:47.260 David Rose: So that was nice, but, yeah, so… Right. Finally, here we go.

37 00:03:52.520 00:03:59.340 David Rose: I have not shared in… Chrome, so I need to change my system settings, but…

38 00:04:00.690 00:04:01.910 Uttam Kumaran: Real quick.

39 00:04:06.120 00:04:08.290 David Rose: So I will be right back.

40 00:04:27.660 00:04:33.820 Demilade Agboola: Also, just a side question, do you, like, how comfortable are you using AI to code?

41 00:04:37.900 00:04:40.989 Uttam Kumaran: I think he may have just left Demi and his team left.

42 00:04:42.240 00:04:43.570 Demilade Agboola: No, I think it’s David.

43 00:04:58.070 00:04:59.380 Demilade Agboola: Did you have to restart?

44 00:05:00.130 00:05:08.119 David Rose: Yeah, I had to… sorry, I hadn’t shared… screen shared from Google Chrome, so I had to change my settings and restart it.

45 00:05:11.140 00:05:12.580 David Rose: So…

46 00:05:12.840 00:05:14.680 Demilade Agboola: I had a quick question about.

47 00:05:15.010 00:05:17.919 Demilade Agboola: Your level of comfort using, AI to code.

48 00:05:18.980 00:05:24.440 David Rose: Sure. So, I have been pretty heavily using

49 00:05:24.690 00:05:35.009 David Rose: I guess, ChatGPT, mostly, Clawad and OpenAI from, I guess, when I started, really

50 00:05:35.140 00:05:52.710 David Rose: doing Python at work daily, like, 3… 3 years ago or so, at my previous company. And then in my current role, where I’m basically in analytics engineering with some data engineering around it, we just started using

51 00:05:52.900 00:06:09.549 David Rose: Codex in January, and our company AI policy allowed us to, you know, get a business account, start using it in there. And I’ve been using it pretty heavily, because I find it incredibly useful. Also.

52 00:06:09.720 00:06:15.890 David Rose: Does, you know, quirks and… and things that, you get aware to, and some of them…

53 00:06:16.070 00:06:18.170 David Rose: I feel like I’m, you know, I’m…

54 00:06:18.280 00:06:24.580 David Rose: a certain level of Python programming knowledge or SQL knowledge that I can go, oh, that’s stupid, I’m not gonna do that.

55 00:06:24.800 00:06:27.450 David Rose: And go in and basically…

56 00:06:27.510 00:06:39.879 David Rose: We’ll use it to help review or generate boilerplate for me, and then I’ll make sure I read through everything that I’m committing myself, and usually clean up a lot of…

57 00:06:39.900 00:06:49.029 David Rose: variable names, or it, you know, it imports things that you might have wanted to do in Python 3.9 that you don’t need to do anymore, or

58 00:06:49.210 00:07:00.099 David Rose: likes to add exceptions for, like, every single possible thing, and it’s more like, you know what, we can just… we don’t need that, we don’t need that, we can have a simple warning or something, we don’t need a…

59 00:07:00.350 00:07:07.400 David Rose: a big old handle, all these different cases, sort of things like that. But, that’s my experience, is just,

60 00:07:07.770 00:07:10.959 David Rose: codecs in VS Code, and

61 00:07:11.210 00:07:19.329 David Rose: And then just, you know, working on a single scripted time or error messages with, Claude or Codex.

62 00:07:21.980 00:07:23.150 Demilade Agboola: Yeah, that’s fine.

63 00:07:24.350 00:07:33.789 David Rose: Alright, right. So… So for my overview, I guess…

64 00:07:33.890 00:07:38.179 David Rose: The… everything, just for me, starts with looking at the,

65 00:07:38.270 00:07:55.699 David Rose: raw data, so in this case, I kind of remember that I’ve been in the same schema for so long, basically our company’s schema for our healthcare data, that I hadn’t inspected a new schema and learned what’s going on, in quite a while, but,

66 00:07:55.700 00:08:10.439 David Rose: this is pretty simple order customer product, so, that’s… that’s always step one for me. So, read through everything that we have in here, and then build the staging layer basically before I…

67 00:08:10.650 00:08:13.600 David Rose: Look at the rest of the,

68 00:08:14.500 00:08:33.520 David Rose: look at the rest of the code, because I feel like that… that staging layer is, in this case, it’s… it’s not a ton of extra data that you’re going to want to trim down and… and only use, like, a certain set of columns, so I didn’t really need to go look at what the marts and intermediate layers are going to be using. It’s kind of, okay, we’re going to stage

69 00:08:33.700 00:08:45.080 David Rose: Everything that’s in the raw, since there’s not… That much there, so… I… Yeah, start there with… oh…

70 00:08:45.480 00:08:48.819 David Rose: We are gonna start with checking out the right branch, how about that?

71 00:08:54.830 00:08:57.839 David Rose: To do, sorry.

72 00:08:58.580 00:09:15.569 David Rose: So yeah, start there with staging. I’ve found… I’ve used one-to-one with my YAML files for documentation. I wasn’t 100% sure, my interpretation of the instructions was…

73 00:09:15.790 00:09:31.199 David Rose: kind of document it how you would, I guess, normally document it. I think a company would probably have a style guide. At my company. The style guide is just what I say we should be doing, because I introduced dbt to our team, so we try to go

74 00:09:31.440 00:09:40.790 David Rose: one-to-one with, every… every model has a YAML associated with it. I find it just gets confusing if you put

75 00:09:40.980 00:09:51.419 David Rose: A little more confusing if you… if you have one for… for all tables in a certain layer, especially with how many… how big our, repositories are that we’re working in right now.

76 00:09:51.570 00:09:56.790 David Rose: So yeah, I guess my approach in general is a lot of…

77 00:09:57.590 00:10:05.539 David Rose: inline comments and, and like, you know, every… what is… what’s the purpose of this CTE, and try to keep things…

78 00:10:05.550 00:10:20.840 David Rose: more modular. So, I always want to have my good names at the end of the staging, and cast basically everything might be overkill, because it might already be Varchar in there, but this is…

79 00:10:20.940 00:10:25.589 David Rose: prevented problems for me in the past, so it’s… I guess it’s a practice,

80 00:10:25.920 00:10:27.980 David Rose: That I’ve picked up, so…

81 00:10:28.100 00:10:41.850 David Rose: Yeah, I guess step one, look at the raw data and inspect it. So in this case, in the DuckDB UI, which I love and use every day in my job right now, because it’s the best that I’ve used.

82 00:10:42.190 00:10:44.980 David Rose: Start… started there, and then just…

83 00:10:45.090 00:10:49.700 David Rose: Followed the instructions, seemed pretty straightforward to me, so…

84 00:10:50.740 00:10:52.280 Demilade Agboola: So, so I have a question.

85 00:10:53.410 00:10:58.319 Demilade Agboola: I’ll look through your code a bit. My first question will be about, like, in staging customers.

86 00:10:59.500 00:11:02.359 Demilade Agboola: I noticed that you partitioned on the email.

87 00:11:02.740 00:11:06.430 Demilade Agboola: not necessarily the customer ID, and I was curious as to

88 00:11:06.680 00:11:09.320 Demilade Agboola: When you are… when you are normalizing it.

89 00:11:10.390 00:11:11.390 Demilade Agboola: Oh, that would’ve…

90 00:11:11.500 00:11:13.190 David Rose: So,

91 00:11:14.110 00:11:26.700 David Rose: I… my philosophy is to not ever pretend I know something when I don’t, and to be honest, this is the first time I’ve done a partition, so I was leaning on AI, and this is what I… I was like, I don’t have time to…

92 00:11:26.790 00:11:35.110 David Rose: really dig in and read all of this, and I’ll be honest about that use at this point. So, that was what was recommended, and I…

93 00:11:36.110 00:11:48.210 David Rose: I just went with it, and it looked correct to me in the… in the stage layer, so I’m not sure if that’s… that could be wrong, to be honest, but that was my interpretation of how it was…

94 00:11:48.410 00:11:52.359 David Rose: Reading in here was that there’s multiple…

95 00:11:52.920 00:11:57.020 David Rose: What, multiple customer IDs with the same email, so you wanna…

96 00:11:57.460 00:12:04.679 David Rose: trimmed down to eliminate those extra customer IDs, so I may have… may have interpreted that or written this incorrectly.

97 00:12:06.360 00:12:11.099 Demilade Agboola: Okay, that’s fine. I just wanted to understand the logic behind what made you choose what you did.

98 00:12:11.420 00:12:12.010 David Rose: Yep.

99 00:12:13.050 00:12:14.140 David Rose: Yep.

100 00:12:14.140 00:12:16.920 Awaish Kumar: So, what has been the most challenging

101 00:12:17.730 00:12:20.699 Awaish Kumar: thing for you while doing this exercise.

102 00:12:23.610 00:12:41.240 David Rose: Probably the… yeah, the partitioning was new, like, this is a new function for me, so I read a little bit into it, but, the exercise was taking me a while, so I decided I didn’t want to dig in too much more. And then the…

103 00:12:41.240 00:12:49.430 David Rose: incremental model, which I read… basically read through the dbt documentation on their incremental modeling, but that…

104 00:12:49.440 00:12:52.320 David Rose: That took a while to put together.

105 00:12:52.960 00:13:09.229 David Rose: But other than that, I think it was… I guess it’s straightforward to build a staging layer, and, running everything looks very familiar to me, because it’s the same items that I, I’m used to… same setup I’m used to using.

106 00:13:09.770 00:13:16.039 Awaish Kumar: Since you mentioned the incremental Can you elaborate more what that is, and when should we use that?

107 00:13:16.390 00:13:22.900 David Rose: Yeah, so my understanding is, incremental model is don’t rebuild.

108 00:13:23.050 00:13:31.709 David Rose: And redo a bunch of models if you don’t have to. So, in this case, my understanding is that we’re creating these,

109 00:13:32.040 00:13:35.109 David Rose: These output buckets of the,

110 00:13:35.660 00:13:39.040 David Rose: Is it year, or the country, and then the…

111 00:13:39.150 00:13:55.329 David Rose: the year-month revenue, and if nothing has changed in the underlying orders for that country, then we don’t want to waste our time redoing the same calculations over to get the same result, because we know nothing has changed. So…

112 00:13:55.410 00:13:59.860 David Rose: That’s the, I believe, the basic principle behind incremental.

113 00:13:59.940 00:14:17.009 David Rose: updates would be, you know, your models are gonna run faster and be… run faster, or you’re gonna save on compute costs, or what have you, because you’re not redoing some work that doesn’t need to be rerun. Which, in my company right now, we’re sort of like…

114 00:14:17.180 00:14:25.610 David Rose: just… use a thousand threads, who cares? Versus changing the… Incremental…

115 00:14:25.980 00:14:36.509 David Rose: management, but that might be changing in the near future, so that’ll be something that I’m… I’m learning, which is nice. But that’s my basic understanding. And then for… for this…

116 00:14:36.940 00:14:55.020 David Rose: specific, fact monthly revenue table. This was basically… I read the DBT documentation, I had Codex tell me what it thought would be the correct way to implement this, in this, or with the correct form of,

117 00:14:55.410 00:15:03.349 David Rose: incremental materialization to use in this case, and this is… this is what I’ve decided on, and so that’s what I went with.

118 00:15:06.740 00:15:16.640 Demilade Agboola: just a couple questions. I think first it will be, like, what warehouses have you worked in, slash, are you comfortable, like, working in?

119 00:15:19.720 00:15:22.190 David Rose: Yeah, so, right now.

120 00:15:22.580 00:15:30.449 David Rose: mostly DuckDB and Redshift. My company is, like, Redshift only. It’s, like, part of their marketing is, hey, you can have Redshift, which is…

121 00:15:30.820 00:15:35.000 David Rose: kind of funny, sometimes. And then…

122 00:15:35.250 00:15:38.589 David Rose: Postgres is what I was using in my last company, because I was…

123 00:15:38.690 00:15:45.100 David Rose: Able to convince them that we didn’t need to go with Snowflake, at least for, I was like, you know.

124 00:15:45.360 00:15:50.260 David Rose: Maybe in 3 to 5 years, if our sales have

125 00:15:50.370 00:16:02.369 David Rose: gone 10X’d, then we’ll need this, and at that point, we’re gonna be going gangbusters, and we can update, but for now, I have this already working, so let’s just use it. So, not a lot of,

126 00:16:02.720 00:16:13.569 David Rose: That’s Snowflake I’ve set up for, you know, doing dbt, fundamentals back in the day, but, other than that, just Redshift, Postgres, DuckDB.

127 00:16:14.890 00:16:18.850 Demilade Agboola: Okay, so I have a follow-up question to that, with…

128 00:16:19.120 00:16:23.749 Demilade Agboola: Redshift in particular, because I have used Redshift quite extensively.

129 00:16:23.870 00:16:26.710 Demilade Agboola: In the past, if you had,

130 00:16:28.300 00:16:32.560 Demilade Agboola: Queries or, like, tables that were getting very heavy.

131 00:16:33.060 00:16:40.820 Demilade Agboola: And we’re taking a long time to run. How would you optimize such queries, or just ensure that those tables…

132 00:16:40.940 00:16:42.510 Demilade Agboola: Build quicker.

133 00:16:44.270 00:16:59.290 David Rose: Like I said earlier, just turn up the… turn up the threads and let Redshift do the hard work for us, is… is one approach that we’ve taken here. The other, my understanding of… would be,

134 00:16:59.430 00:17:02.060 David Rose: I’m blanking on the word right now, but

135 00:17:02.190 00:17:10.209 David Rose: I guess, partitioning the data, so that’s something that I’ve briefly looked into, and I’m doing a lot of work that’s, like, it’s patient.

136 00:17:10.210 00:17:22.509 David Rose: And date-focused, so those would be, you know, we would try to be partitioning by patient or partitioning by dates in our input data, is my high-level understanding, but that’s not something

137 00:17:22.550 00:17:25.770 David Rose: I’ve actually implemented yet, so…

138 00:17:28.010 00:17:30.850 Uttam Kumaran: I guess Paul’s watching is, like, something about, like.

139 00:17:31.460 00:17:43.040 Uttam Kumaran: like, how… how, similar or different is this, like, EVT project that you’re… that you have versus the one that we’re used to, like, at work? Like, what are some of the key differences?

140 00:17:43.760 00:17:45.239 Uttam Kumaran: Yeah, I’m disappearing this.

141 00:17:45.750 00:17:51.119 David Rose: Sure, I mean, it’s different, different type of data, of course, it’s not,

142 00:17:51.810 00:18:11.209 David Rose: I guess I didn’t get super into testing the data quality is obviously good. You’re not… you don’t have, I think there’s some nulls in there, but there’s not, like, the data we get in healthcare is quite… quite bad, and the first thing we’re doing is looking at the… just the basic completeness and,

143 00:18:12.810 00:18:26.750 David Rose: That’s the other word I’m looking for. Like, I have tests in there for, you know, there’s 5 different statuses for your orders. That would be something that if there’s, like, you know, a patient’s results status, there’s, you know, 10% of them actually have,

144 00:18:28.080 00:18:43.119 David Rose: have a result that’s a final or something, because it doesn’t get updated, or a lot of times it’s delayed claims data that comes in 2 months later, that the… okay, the test results are final. So you have to look at that and make a decision of… of whether you’re…

145 00:18:43.260 00:18:53.480 David Rose: whether you’re going to use, like… I’m only going to use claims that are closed, I’m only going to use observations that are final, but if I do that, and I’m going to cut out 90% of the.

146 00:18:53.490 00:19:02.069 Uttam Kumaran: Is that like a… I guess, let’s take that case. Is that a negotiation you’re doing on your own, or are you doing with the business, or talk to me even about, like.

147 00:19:02.200 00:19:14.710 Uttam Kumaran: the paths were, like, okay, I have this directive to create this metric or model. I found this data that’s, like, super crappy. Talk to me about how you’re handling that, like, negotiation with the business.

148 00:19:14.980 00:19:15.900 Uttam Kumaran: So there’s…

149 00:19:15.940 00:19:23.110 David Rose: There’s two different things for that, so basically everything that I’m getting working on, I get a specification from,

150 00:19:23.440 00:19:38.049 David Rose: from, like, an official governing body, and they will sometimes say, you cannot use observation unless it’s final. If they don’t say that, then it’s up to your own interpretation, and basically our team will discuss and say, like,

151 00:19:38.530 00:19:51.180 David Rose: usually with our specific client, and ask them what direction they want to go with it. We don’t do… so we… my company is, we’re not really data consulting, we provide

152 00:19:51.330 00:20:02.789 David Rose: Redshift back to our customers as a… as a service, essentially, and then we will come in and help them if they’re having issues. But when we’re doing metrics like that.

153 00:20:02.930 00:20:11.990 David Rose: We’ll… we’ll come back to them and ask them, explain the issue, and they’re usually technically good enough to know, the… the data in the

154 00:20:12.190 00:20:18.989 David Rose: clinical format and JSONs, and then when we get the same stuff in our flattened database, they’ll know what we’re talking about.

155 00:20:20.210 00:20:26.420 David Rose: Well, yeah, it’s basically for us to check our specifications first, and make sure… see if they have a specific thing, because…

156 00:20:26.440 00:20:29.749 Uttam Kumaran: Sometimes they leave it up to you to interpret.

157 00:20:29.750 00:20:39.399 David Rose: Sometimes they’re very specific because they don’t want, they want to improve the data quality, and they push it back to say, no, you’re not allowed to

158 00:20:39.840 00:20:53.660 David Rose: you know, not use that final status just so you can have, a better result. We’re actually gonna… your score is gonna be terrible, and that’s gonna incentivize you to get better data quality, at the source.

159 00:20:56.320 00:20:57.950 Demilade Agboola: But I…

160 00:20:58.070 00:21:05.690 Demilade Agboola: I have a couple questions, so the first one, because I know you’ve worked in health, how do you handle, PII?

161 00:21:07.130 00:21:08.879 David Rose: So we…

162 00:21:09.950 00:21:18.000 David Rose: the, like, we’re all HIPAA trained, and then there’s, contracts where, I can’t remember the exact…

163 00:21:18.880 00:21:26.480 David Rose: wording for it, but essentially we’re an authorized user of that data. So, basically.

164 00:21:26.540 00:21:48.080 David Rose: I guess we’re allowed to look at and train to be looking at the PII data. We always, like, technically, we can bring it down locally to our machines, but we always try not to, unless there’s a good reason to. We’re never gonna do that. We’re, you know, I’m gonna look at it in Table Plus, but I’m not gonna…

165 00:21:48.210 00:22:02.080 David Rose: download and export of the file or something. We do… we have had cases where we’ve had to do that, and, we have a process of making sure everyone’s cleaning up and have to go through a checklist and… and submit to our,

166 00:22:02.260 00:22:18.270 David Rose: to our clients that, here’s the process we went through, and everyone went through and, erased everything. We also provide the data back with PII in it, so I’ve not done a lot of, flagging.

167 00:22:18.310 00:22:28.130 David Rose: That was something that we investigated for a little that we weren’t sure if we would need or not, but since it’s our client’s data that they’re letting us use, we’re able to just give it back to them.

168 00:22:28.270 00:22:40.850 David Rose: Essentially, we’re building schemas in Redshift and saying, hey, look, here, this is where your analytics are, you can take it from here. And so we’re not doing any de-identifying or flagging or masking.

169 00:22:41.650 00:22:42.630 David Rose: Right now.

170 00:22:43.030 00:22:50.810 David Rose: But just generally, I guess, good data safety. Don’t download things to your computer if you don’t have to, etc.

171 00:22:52.720 00:22:59.110 Demilade Agboola: And also, I heard you talk about, like, orders and, like, other statuses and things of that nature.

172 00:22:59.360 00:23:02.919 Demilade Agboola: I was curious how you would handle a situation where

173 00:23:03.740 00:23:06.200 Demilade Agboola: You had one row per order.

174 00:23:06.640 00:23:11.539 Demilade Agboola: And the status kept changing, so maybe, you know, initially it was paid.

175 00:23:11.790 00:23:16.650 Demilade Agboola: Then he transitions to in progress, then he transitions to delivered.

176 00:23:17.220 00:23:22.829 Demilade Agboola: And then, how would you be able… but it’s only just one room, so the status just keeps changing over time.

177 00:23:22.990 00:23:28.259 Demilade Agboola: how would you be able to keep track of the status? If I wanted to know how long

178 00:23:28.430 00:23:30.300 Demilade Agboola: That order was NC.

179 00:23:30.680 00:23:31.910 Demilade Agboola: in progress.

180 00:23:32.020 00:23:34.889 Demilade Agboola: the status in progress, how would I keep track of that?

181 00:23:39.600 00:23:43.110 David Rose: I guess I would build a… a table that…

182 00:23:45.930 00:23:54.049 David Rose: Updates and, you know, if there’s a change in the underlying table, we’ll add a new row with the new status and a new… a new timestamp of…

183 00:23:54.190 00:24:06.250 David Rose: Of when it got updated, maybe similar to the incremental one that was in the example where we were checking if the updated order was updated, something along those lines.

184 00:24:07.000 00:24:11.019 Awaish Kumar: Is there any dbt feature that can help you do that?

185 00:24:11.920 00:24:17.389 David Rose: I guess incremental materialization, maybe?

186 00:24:17.670 00:24:26.410 David Rose: snapshots I’ve not really used, but I… it’s just a fancy term to me, maybe, in there, but I couldn’t name the exact one for you right now.

187 00:24:31.250 00:24:32.460 Demilade Agboola: Okay,

188 00:24:33.790 00:24:40.450 Demilade Agboola: Also, what… I know, Nancy, you didn’t put… necessarily put a lot of tests, which is fine, as we’re trying to just do…

189 00:24:42.100 00:24:43.150 Demilade Agboola: a prototype.

190 00:24:43.350 00:24:50.420 Demilade Agboola: But ideally, what kind of tests do you look at? And how do you ensure that

191 00:24:50.810 00:24:54.660 Demilade Agboola: When those tests break, you are aware of

192 00:24:55.610 00:24:58.339 Demilade Agboola: The status of those tests, basically.

193 00:24:59.410 00:25:07.850 David Rose: Sure. So, you’d set your dbt project, level, so, you know, if you want the test to error or just warn.

194 00:25:08.100 00:25:09.540 David Rose: Between those two.

195 00:25:09.810 00:25:11.789 David Rose: And then, I guess, in general.

196 00:25:11.860 00:25:25.009 David Rose: Most of the testing I set up in that project was, not nulls and unique on ID fields, because that can bite you and screw up your joins in the future and get wrong results.

197 00:25:25.010 00:25:38.710 David Rose: And then I added some accepted value tests, too, so, things like the order status is in this set, and can only be in this set, and that might be something that you would want to have as a warning, because maybe

198 00:25:38.710 00:25:46.959 David Rose: There’s a different order status that’s not in the dataset that I don’t know about right now. I think it would err in my code right now, I’m not actually 100% sure if I put in

199 00:25:47.040 00:25:48.260 David Rose: the,

200 00:25:48.450 00:26:00.129 David Rose: test severity, but you can either, you know, you can set it by paths to the tests in your project YAML, or you can configure it right in the exact test, specifically, so…

201 00:26:00.250 00:26:03.280 David Rose: Yeah, I would use… use those.

202 00:26:10.990 00:26:12.919 Uttam Kumaran: These are questions I have for now.

203 00:26:15.430 00:26:19.360 Uttam Kumaran: Yeah, I guess I just had one question,

204 00:26:19.500 00:26:36.700 Uttam Kumaran: Yeah, like, if… are you running, like, a test suite on your… on your dbt repo that, like, you guys are using at work right now? And, like, how… how did that kind of come about? Like, what is, like, what happens when the test, you know, sort of fails? So, kind of walk me through that.

205 00:26:37.260 00:26:37.790 David Rose: Yep.

206 00:26:38.750 00:26:48.179 David Rose: So, the project I’m working on now, we have golden data for, which is very nice. So, the test suite we have is we,

207 00:26:48.180 00:26:59.730 David Rose: We see the input data, we see the results, the correct results, and we have a final, comparison test. I forget the specific dbt utility test, but all columns for all

208 00:27:00.050 00:27:08.129 David Rose: basically every patient has to have the exact right results. So that’s a really nice regression test for us, and just,

209 00:27:08.340 00:27:23.950 David Rose: Basically, tells us we need to keep developing if it’s failed, because we’re missing a particular edge case, usually some really specific date thing, whether it’s, like, you know, this event was on this date, or before this date, or how you handle,

210 00:27:24.890 00:27:44.730 David Rose: like, you know, the very intersection of a date or whatever, but, that’s the main set we have. We’re also flattening data ourselves. The input data is always JSONs for healthcare. We’re not always JSONs, but the big standard is around JSON data, so we’re flattening into our own schema and calculating

211 00:27:44.800 00:27:55.420 David Rose: metrics in SQL, so we… because we’re doing that flattening, we’re always… we’re, assigning IDs and child tables, so we’re doing relationship tests.

212 00:27:56.890 00:28:03.659 David Rose: on all of our, like, child tables, and we’re doing unique and not nulls on all of our IDs, which,

213 00:28:03.790 00:28:20.389 David Rose: should basically not break, because it’s a Python script that’s static and doesn’t have a changing output, but it’s kind of like, at this point, it’s not… it’s not hurting us time-wise to have, so we’ll leave it in there. And then, the layer that we’ve been…

214 00:28:21.400 00:28:32.169 David Rose: sort of planning to add, but haven’t gotten the specifics on what we want, because our client has, a specific set as sort of data health. So, we’re gonna take,

215 00:28:32.350 00:28:50.819 David Rose: basically, we have final results testing, we have, input, you know, are we flattening and doing a good job in our flattening pipeline? And then we’re going to be adding, data quality tests to our staging layer. So, those are going to be optional tests, so…

216 00:28:50.840 00:29:01.220 David Rose: I was reading the documentation on dbt selectors last week, and probably be using that for a, you know, here’s a production run versus, like, a complete,

217 00:29:01.630 00:29:10.799 David Rose: data quality run. And then I’ve been personally just added on elementary data to get a nice little dashboard out,

218 00:29:11.200 00:29:22.339 David Rose: because it was really easy, they had good docs to set it up, and I can get a nice dashboard on the test times and such. So, I was able to get… get that merged in. That was very happy.

219 00:29:22.340 00:29:22.700 Uttam Kumaran: Yes.

220 00:29:22.700 00:29:30.060 David Rose: I’m a little more excited than I should be, but that took a while to convince people to let me just put it on there as an optional thing, even, so…

221 00:29:30.170 00:29:30.830 David Rose: Yeah.

222 00:29:30.830 00:29:31.550 Uttam Kumaran: Nice.

223 00:29:33.390 00:29:36.710 Uttam Kumaran: Cool. Yeah, I know we… yeah, go ahead, Demi.

224 00:29:36.870 00:29:45.080 Demilade Agboola: Just one more question from my end. I know we have, like, the marts, we have the different cohorts again, I’ve looked into that, and I have seen that you’ve done, like.

225 00:29:45.230 00:29:48.940 Demilade Agboola: First time purchase, subsequent… first month, subsequent month, and all of that.

226 00:29:50.380 00:29:58.870 Demilade Agboola: It’s small data, but my question to you was, if we wanted to split the granularity to include first products purchased as well.

227 00:29:58.980 00:30:01.339 Demilade Agboola: So we wanted the cohorts to not just be…

228 00:30:01.500 00:30:07.350 Demilade Agboola: the month of purchase, but I want to be the month as well as product of purchase, how would you go about,

229 00:30:08.380 00:30:10.060 Demilade Agboola: Adding that to it.

230 00:30:10.280 00:30:17.760 David Rose: So, I think, let me show my project again, but right now… right now I have,

231 00:30:18.690 00:30:21.730 David Rose: I… I decided to put a specific

232 00:30:23.300 00:30:25.460 David Rose: Intermediate table that was sort of…

233 00:30:25.860 00:30:33.750 David Rose: planned in for, adding more cohorts, so at this point, it’s only outputting this one, but I would add, you know.

234 00:30:33.900 00:30:51.569 David Rose: a second cohort that’s based on that, and then into the same, like, intermediate cohort assignment model at this point, and then, a new fact table for that cohort analysis, just because I think that would be…

235 00:30:51.720 00:31:04.220 David Rose: a little cleaner and easier to follow than having, like, the same information in another… in the same marts table would be. I’m sure there’d be some way you could convey all of that, but it would just be confusing.

236 00:31:04.450 00:31:09.949 David Rose: So yeah, you’d come back to, I guess, the…

237 00:31:10.800 00:31:15.190 David Rose: Let’s see, intermediate cohort assignment, and

238 00:31:16.660 00:31:27.759 David Rose: assign, and first month, add another, another field in there of the products they bought, which would probably fan this out quite a bit. But, yeah.

239 00:31:27.960 00:31:36.079 David Rose: Same, update our intermediate model and add a new fact model for that specific cohort analysis.

240 00:31:37.980 00:31:39.589 Demilade Agboola: Oh, okay, thank you.

241 00:31:43.870 00:32:02.659 Uttam Kumaran: Cool. Yeah, I just wanted to… I know we just have a bit of time left, I guess. David, my question is, like, where, like, when you think about your experience as an AE so far, like, where do you want to go deeper on? Like, is there a certain part of the stack or part of the technology? I mean, to give you a little bit of background on us.

242 00:32:02.720 00:32:04.730 Uttam Kumaran: I mean, we’re sort of like…

243 00:32:05.690 00:32:25.649 Uttam Kumaran: we’re almost, like, first responders in terms of data, so we… typically, when we come into a client, it’s usually because things are messed up, or things aren’t set up at all. It’s rarely we get called because things are, like, going super well, and, like, we’re just there to, like, tag along. So, in one sense, the ability to, like, pick up new technology.

244 00:32:25.650 00:32:43.300 Uttam Kumaran: And think about, like, the parallels between systems is really, really important. Like, you kind of… you kind of hit it on the head, which is, like, whether it’s Redshift, whether it’s Snowflake, like, dbt is the through line across them. These concepts of fact, models are the through line.

245 00:32:43.330 00:32:44.839 Uttam Kumaran: But I’m just curious, like.

246 00:32:44.970 00:32:57.969 Uttam Kumaran: after a few years, like, and, like, kind of looking forward the next, like, one or two years, like, where are you trying to go deeper on? Like, what sort of has been giving you a lot of, like, energy or interest in, like, sort of the analytics engineering world?

247 00:32:59.940 00:33:13.849 David Rose: I think the optimization of the models, which is funny, because I’m saying I haven’t really done it, but that’s what I want to get into, because we’re, at least on my project right now, we’re very worried about

248 00:33:13.880 00:33:24.250 David Rose: you know, we’re… we’re using sample populations, and we’re worried about how the performance is going to be on, real… real-world, population analytics.

249 00:33:24.580 00:33:26.159 David Rose: But,

250 00:33:26.510 00:33:37.879 David Rose: It’s also a really strange time because of AI and how I, I don’t know, a year ago, I probably would have said, there’s no way AI is gonna take my job, I can’t write one… one script, and now I’m like.

251 00:33:37.880 00:33:48.729 David Rose: I threw around the idea of putting a, like, having Codex one-shot this interview on the side and see how it looked compared to mine, and be like, am I just…

252 00:33:48.950 00:34:02.760 David Rose: am I even doing anything at this point? But like, you know, I’m using it to generate a lot of boilerplate code and read through and go, oh, that’s bad, that’s good. So I think in general, I’m… I’m just trying to…

253 00:34:03.720 00:34:21.160 David Rose: take my career towards, I guess, the higher level managing versus writing boilerplate stuff, which is if, you know, if I didn’t have Codex or ChatGPT, I would probably be getting really expert at writing dbt structure, etc, which,

254 00:34:21.389 00:34:36.569 David Rose: like, I have a good understanding of, I think, but I think the higher level parts that you want a human making the decisions for, like optimizing, yeah, I guess optimizing in those more complicated models that I’ve not used much, or,

255 00:34:37.100 00:34:52.179 David Rose: even just the decisions around what to use, I had to push really hard to get us to use DuckDB and get other people to use it, and now they absolutely love it, but it took our, you know, cycle time on

256 00:34:52.290 00:34:54.759 David Rose: I make an update to a model, now I…

257 00:34:55.250 00:35:00.750 David Rose: I wait for 2 minutes and run, and that was when I first started here. I had to basically replicate

258 00:35:00.870 00:35:03.369 David Rose: Some projects, and it was like.

259 00:35:03.780 00:35:18.329 David Rose: here’s a repo with some random folders, and okay, here’s the instructions, it’s materialize these tables, then go in and make views on these, and then go in and do this, and I was like, this is crazy, I’m just gonna rewrite the whole thing.

260 00:35:18.470 00:35:24.920 David Rose: And then the next time we had to calculate the annual reports, I just changed the variables in the project.

261 00:35:25.330 00:35:27.890 David Rose: Check that the underlying data wasn’t

262 00:35:28.170 00:35:38.550 David Rose: had the same schema and data quality and said, here you go, and took us a day instead of, like, a month. So, I guess my answer would be…

263 00:35:38.710 00:35:43.339 David Rose: the next step after that, I think, would be, yeah, just…

264 00:35:43.720 00:35:49.119 David Rose: higher level architecture, or, like, those sort of key decisions, like, I think…

265 00:35:49.250 00:35:59.399 David Rose: me adding, saying, hey, we can use this for development, and we can generate SQL in both environments, we can validate that they’re exact same SQL,

266 00:35:59.610 00:36:09.720 David Rose: That runs from, like, the target outputs and… and log any differences and why, and see if it makes a change, and, like, something like that just brought me so much…

267 00:36:09.840 00:36:17.310 David Rose: Joy, because, like, we would have had to hire 5, 10 more people, just because of how slow our cycle was.

268 00:36:18.170 00:36:31.830 Uttam Kumaran: Yeah, and I feel like I tend to agree, and all of us on the call have been doing dbt for quite a while, and I think all of us use AI to write models and things like that, but there’s sort of fundamentals about the ways of doing things that

269 00:36:31.880 00:36:39.550 Uttam Kumaran: the AI right now can’t understand some of the trade-offs, or would loop for way too long, or maybe would get you there, but…

270 00:36:39.640 00:36:47.909 Uttam Kumaran: the setup would be really, really, like, sort of crude or super verbose, and so, like, I think still all of us are…

271 00:36:48.080 00:37:08.009 Uttam Kumaran: leaning on our fundamental understanding of, like, dbt and table structures. But also, again, our job is changing to spend more time with, like, the end customer and understand, okay, what… what are the nuances that maybe, like, if I was just sitting right in dbt all day, we could never get to? So what are there ways we can exceed expectations now that, like, I have some more cycle time?

272 00:37:08.060 00:37:15.069 Uttam Kumaran: Right? What is the ways that we can… you know, I used to… we used to write, like, tests by hand, like, one by one by one.

273 00:37:15.170 00:37:31.119 Uttam Kumaran: now we can generate, like, an entire test suite and measure that, like, okay, like, how do we share that with the client that we’re exceeding our expectations? How do we use that to actually, like, make sure that, you know, our systems are running? Is sort of how we think about it as well.

274 00:37:31.380 00:37:31.930 David Rose: Damn.

275 00:37:34.380 00:37:41.399 Uttam Kumaran: Cool, any questions, for us, or anything we can answer as well?

276 00:37:41.560 00:37:43.560 David Rose: Yes,

277 00:37:44.040 00:38:01.499 David Rose: I’ve got a list here, so… What… so as a… I guess I’d be a contractor, so I’m assuming I’d have, like, billable hours to the customer, so I’m curious how much time, like, as a… as an employee for you, would I be billable hours versus,

278 00:38:01.940 00:38:19.270 David Rose: outside of that, maybe learning a new area, or if the scope of this role is just… you come in, you do AE, and that’s it, and you crush that, and we don’t want you spending any time doing this or this that you might be interested in, or that’s just not your role, sort of thing.

279 00:38:19.650 00:38:22.079 Uttam Kumaran: Yeah, so, I think, like.

280 00:38:22.540 00:38:35.019 Uttam Kumaran: it’s… it’s sort of probably… I mean, I guess we don’t really think of it as concretely as that. Like, right now, everybody on the team, you know, has, like, an allocation to, like, one or two or three clients at a time.

281 00:38:35.080 00:38:47.840 Uttam Kumaran: Right now, under AE, that really fits under Demolade’s, sort of, service line. Sort of, Demolade leads everything around analytics engineering, so it would really be up to him on what percentage of time

282 00:38:47.870 00:39:00.000 Uttam Kumaran: On his team is allocated to which clients, and then what do we do with the remaining time? But I think I can speak for everybody here, that we all do a lot of learning and a lot of collaboration, and so…

283 00:39:00.000 00:39:16.110 Uttam Kumaran: It’s… this is… our company runs much closer to a product company, I would say, than a typical consulting company, in that there’s tons and tons of collaboration. It’s a true, like, team, not only across different services, but across, like.

284 00:39:16.490 00:39:36.219 Uttam Kumaran: engineering in general. So, we… everybody collaborates with each other. You may go on a client where we’re doing strategy work for them, we’re doing data work, and we’re doing AI work. We have some clients where it’s purely just dbt work. And so, I think the allocations on where you’re gonna land and what clients

285 00:39:36.220 00:39:44.050 Uttam Kumaran: That’s sort of up to Demi, but I think there’s plenty of time in terms of both learning on the job, like, new techniques.

286 00:39:44.050 00:39:48.359 Uttam Kumaran: As well as, like, collaboration within your service line, and collaboration within

287 00:39:48.420 00:39:50.920 Uttam Kumaran: The broader engineering team, you know, as a whole.

288 00:39:51.490 00:39:52.050 David Rose: Okay.

289 00:39:53.200 00:40:10.430 Uttam Kumaran: It’s like 80-20, I would say, is maybe fair. I don’t… I can’t give you the exact ratio, but I would say it’s, it’s not… it’s… it’s pretty far from, what I was used to when I used to work as a contractor at a couple of, like, agencies or consultancies, like…

290 00:40:10.570 00:40:14.900 Uttam Kumaran: It’s so far, it’s really much similar to, like,

291 00:40:15.060 00:40:19.439 Uttam Kumaran: sort of product company, internal, you know, there’s a lot of collaboration.

292 00:40:19.710 00:40:20.380 David Rose: Okay.

293 00:40:23.070 00:40:29.170 David Rose: That’s those guidelines, and then… Just so I…

294 00:40:29.360 00:40:37.510 David Rose: I know the job posting talks about being remote, so I live in Colorado, and I’m on… on the hours, no problem, for that.

295 00:40:37.600 00:40:52.010 David Rose: I’m wondering… you guys have people working internationally. It’s always been a dream of mine to be able to work in Canada during a ski season, and I’m wondering if that is something I could do at this company, or not.

296 00:40:54.280 00:40:56.599 Uttam Kumaran: Yeah, I don’t know, Demi, you want to answer? Go ahead.

297 00:40:56.600 00:41:08.329 Demilade Agboola: Yeah, I mean, yeah, so we… we’re basically, like, a global team, so I’m based in Malta, Oasis in Pakistan, Utami’s in Texas, so, like, across the world, we work together.

298 00:41:08.530 00:41:27.730 Demilade Agboola: And the idea is always about collaboration and communication, so as long as you’re able to, get what you need to get out when it’s expected, and communicate around, you know, any possible delays or any possible issues you’re having, we don’t really care where you’re based or what you’re doing, like, outside, you know.

299 00:41:27.920 00:41:36.840 Demilade Agboola: We don’t micromanage, we’re not here to say, hey, these are your hours. In fact, you can actually be a bit more flexible, to be honest, because I… because I’m in motor, I’m 6,

300 00:41:36.980 00:41:38.629 Demilade Agboola: I was ahead of E.T.

301 00:41:39.490 00:41:44.899 Demilade Agboola: So sometimes, there are days when I will start my day much earlier, get… get through stuff.

302 00:41:45.070 00:41:49.840 Demilade Agboola: just attend meetings, and I can wind down earlier, in the day.

303 00:41:49.970 00:41:56.630 Demilade Agboola: And there are also days where I just match myself to the US time, which is what I usually do. I match myself to the US time.

304 00:41:56.770 00:42:02.700 Demilade Agboola: And work till, like, 5PM ET. So it’s… it’s really up to you to kind of…

305 00:42:02.840 00:42:08.360 Demilade Agboola: Determine how best you can be productive, but also communicate with the team as to what’s going on.

306 00:42:08.480 00:42:10.359 Demilade Agboola: We do so that we know how to expect.

307 00:42:11.610 00:42:15.340 David Rose: That’s great. I actually, over Christmas, visited my,

308 00:42:15.600 00:42:31.379 David Rose: girlfriend’s family and stayed and worked in South Africa, and then was way off the timeline, but some of it was really not nice, because you couldn’t message someone and get an answer when you needed, but it was also really nice to have it be like, you know what, if I work these 4 hours, no one’s gonna interrupt me at all, and I can just…

309 00:42:31.930 00:42:34.450 David Rose: Stay focused, and so it’s kind of a…

310 00:42:34.760 00:42:41.519 David Rose: A balance there, but luckily my team is all really good at communicating, so it wasn’t, didn’t cause any issues.

311 00:42:42.300 00:42:48.070 David Rose: Mmm… Okay, so I have two more questions. One of them’s just, like, contract…

312 00:42:48.360 00:43:02.029 David Rose: question, so I don’t know if that would be for you or for, Ayla, if I should just ask her, but that’s, like, the, you know, the contract terms, or if it would be, you know, just contract work and…

313 00:43:02.430 00:43:11.260 David Rose: after a certain period, you go, okay, we would take you on full-time, or if you would stay on as a contractor. I’ve never worked as a contractor, so I’m not sure how that would…

314 00:43:11.600 00:43:24.370 Uttam Kumaran: Yeah, I think it’s a fair question for Kayla. I mean, I think the main… the main reason around contractors, we’re just sort of, like, an early business. So, we’re growing, especially for folks in the States. I think we’re driving towards

315 00:43:24.370 00:43:37.549 Uttam Kumaran: you know, offering… being able to offer W-2 and benefits, like, over the next year. But for everybody, the goal is to have people working, you know, like, a full-time amount, so 40 hours.

316 00:43:37.550 00:43:49.199 Uttam Kumaran: And then we’re… we’re basically… these would be just, like, long-term contracts. So it wouldn’t be, like, tied to one client, and then you’re sort of, like, if that client, something happens, you’re like.

317 00:43:49.330 00:44:03.469 Uttam Kumaran: out of work, it’s… it’s tied to Brainforge, and then we’re… we’re always working on several clients at a time, so you’d be assigned to… to one or many. So that’s kind of, like, how… how that would work, but also fair question for Kayla, for sure.

318 00:44:03.790 00:44:04.400 David Rose: Okay.

319 00:44:04.750 00:44:10.839 David Rose: Great. Actually, just remembered one more, which is,

320 00:44:11.040 00:44:23.729 David Rose: So I… I was like, you know what, I’m gonna… this is the contract roll for this sort of thing. It says it should take 4 to 6 hours. I’m gonna log my time on here, and it took me about 7 hours, so I’m wondering if that’s,

321 00:44:24.260 00:44:29.180 David Rose: you know, it’s like an assessment of where I am as an AE, if that’s, you know…

322 00:44:29.450 00:44:39.029 David Rose: we would expect someone could get this done in 4 hours, no problem, and that’s way too long, or if, you know, I’d like an honest assessment of that.

323 00:44:40.000 00:44:43.309 Uttam Kumaran: Yeah, I think, Demi, maybe I’ll let you… yeah, go ahead.

324 00:44:43.310 00:44:46.470 Demilade Agboola: I mean… any task.

325 00:44:46.600 00:44:52.329 Demilade Agboola: We have, like, a range of what we expect, but obviously we understand that when you’re working on projects…

326 00:44:52.410 00:45:10.870 Demilade Agboola: Due to multiple reasons, could be familiarity with the data itself, familiarity with the systems. Also, like, as you mentioned on the task, you also had to, like, create a bunch of certain things around, like, dbt usage and all of that, which is great, like, I’m always an advocate of people

327 00:45:11.000 00:45:17.240 Demilade Agboola: Using that opportunity to, like, learn, and properly learn how to use these things, because that’s very important.

328 00:45:17.390 00:45:30.520 Demilade Agboola: So I wouldn’t say it’s necessarily, like, a reflection of anything beyond just, like, this is what it took you to do it this time. Potentially, like, you know, if you were to do it again, it would probably take you up, maybe 5 hours, maybe 6 hours.

329 00:45:30.640 00:45:39.869 Demilade Agboola: And I feel like it’s just familiarity. Once you are able to get the idea of what you’re doing, and why you’re doing certain things, it makes it easier to plan.

330 00:45:40.060 00:45:47.429 Demilade Agboola: the route, and also when you’re prompting AI, it also speeds up that process, because you know specifically what you want to tell AI to do.

331 00:45:47.870 00:45:48.550 David Rose: Yep.

332 00:45:50.180 00:45:59.200 David Rose: Great, and then my last question is, like, what is your favorite part about working for Brainforge?

333 00:45:59.320 00:46:02.909 David Rose: From each of you, like, what makes it a great company?

334 00:46:04.170 00:46:04.750 Awaish Kumar: Yeah.

335 00:46:05.460 00:46:06.720 Awaish Kumar: But Tom, you can…

336 00:46:07.260 00:46:07.800 David Rose: I might be on.

337 00:46:07.800 00:46:08.690 Uttam Kumaran: Yeah.

338 00:46:08.710 00:46:10.079 David Rose: I don’t know if the CEO, but.

339 00:46:10.200 00:46:17.719 Uttam Kumaran: No, no, no, I, I can, I can answer and log off, I don’t mind. I,

340 00:46:18.360 00:46:19.910 Uttam Kumaran: I…

341 00:46:20.810 00:46:26.979 Uttam Kumaran: Well, I’m… so my background’s in data. I work as a… I’ve been working as a data engineer and a BI engineer my whole career.

342 00:46:27.190 00:46:39.750 Uttam Kumaran: I’ve been using dbt since, like, 2018. I love doing data work, and so ultimately, when I started the business, I was… just really wanted to work with awesome data people and crush

343 00:46:40.030 00:46:46.820 Uttam Kumaran: dbt and data were for clients. I felt like working at one place, doing that, you oftentimes, like.

344 00:46:47.250 00:46:54.319 Uttam Kumaran: It becomes a lot of politics, you want to do so many things, and you’re hamstrung by, like, other people’s, like.

345 00:46:54.730 00:47:08.930 Uttam Kumaran: oh, IT doesn’t approve this, and, like, blah blah blah, and, like, I really hated that, and both of the guys on this call will tell you that they know me, like, I’m always thinking, trying to think about ways where we can over-deliver for clients, use the latest technology.

346 00:47:08.930 00:47:18.800 Uttam Kumaran: the latest methodology to do things. And so, for me, I just love the fact that we have so many smart, capable people at the company that are, like.

347 00:47:18.890 00:47:26.129 Uttam Kumaran: able to absolutely destroy data work for clients. I think it’s so awesome, like, we are really, really good at what we do.

348 00:47:27.440 00:47:38.300 Uttam Kumaran: like, I feel like we’ve succeeded in building, like, an amazing data team, and you’re seeing that in the folks that we’re being able to, you know, bring in and nurture. And so, for me, it’s just…

349 00:47:38.350 00:47:52.470 Uttam Kumaran: being able to work with smart people, like, after being in many companies where that wasn’t always the case is, like, such a joy, you know? Like, I feel pushed, I feel like I’m able to push. Everybody’s, like, focused on attacking the problem, not, like, each other.

350 00:47:53.580 00:47:57.649 Uttam Kumaran: That’s what I like. I still do a lot of data work, by the way, like, every day, so…

351 00:47:57.650 00:48:14.769 Uttam Kumaran: I’m not, like… I’m not, like… I’m just… I’m doing a bunch of business stuff, too, but I, I’m still in the weeds, and I’m feeling like we’re pushing the envelope and using AI to write… to do data work, data engineering, BI work, and that’s sort of also the next frontier for us, so… yeah.

352 00:48:17.190 00:48:21.080 Awaish Kumar: Okay, and for me, like, for working at I’m from Disneyland.

353 00:48:21.810 00:48:23.709 Awaish Kumar: I have been working at startups.

354 00:48:23.920 00:48:32.169 Awaish Kumar: Before that, like, for… for almost for, like, 9 years, I’ve worked as a data engineer. I’ve been at…

355 00:48:32.500 00:48:37.650 Awaish Kumar: startup and growth stage companies, so it’s naturally aligned with what I…

356 00:48:37.790 00:48:46.709 Awaish Kumar: where I want… want to see myself, but then, there’s a lot of, like, kind of, as Utha mentioned, a lot of flexibility around,

357 00:48:46.980 00:48:51.230 Awaish Kumar: What you can, like, how you want to… approach.

358 00:48:51.520 00:48:58.989 Awaish Kumar: solutions… And, like, try new tools, technologies, and figuring out your own ways.

359 00:48:59.360 00:49:05.249 Awaish Kumar: So you have a lot of flexibility and ownership of the things that you’re doing.

360 00:49:08.020 00:49:16.360 Demilade Agboola: Yeah, for me, likewise. I think it’s a lot of collaboration, you’re basically in the mix of people with

361 00:49:16.650 00:49:23.440 Demilade Agboola: Good ideas, good concepts, and good drive, and that also pushes you to…

362 00:49:23.840 00:49:32.710 Demilade Agboola: Be the best version of yourself, either through collaboration, through constructive criticism slash feedback, Through,

363 00:49:33.230 00:49:37.590 Demilade Agboola: just, like, brainstorming together. Like, there’s so many ways in which you can grow.

364 00:49:38.100 00:49:42.929 Demilade Agboola: And also, personally, I just really like problem solving, and so…

365 00:49:43.780 00:49:49.380 Demilade Agboola: part of being in consulting is that there’s always something somewhere to solve.

366 00:49:49.840 00:49:59.320 Demilade Agboola: And just that consistent ability to, like, hop around and kind of, like, hey, I’m solving this problem for one client, and then another problem for another client. I’ve been able to think through

367 00:49:59.530 00:50:05.230 Demilade Agboola: It’s a beautiful thing to be able to feel like, oh yeah, they had an issue.

368 00:50:05.450 00:50:19.729 Demilade Agboola: And now that that’s gone, and in fact, they’re able to use the data that we built out to make better decisions, and now they are on top of, you know, their marketing, or, you know, their finances, whatever the use case may be.

369 00:50:21.270 00:50:21.920 David Rose: Right.

370 00:50:24.570 00:50:28.410 David Rose: Well, that’s everything on my list, so… thank you guys very much.

371 00:50:29.020 00:50:34.320 Uttam Kumaran: Yeah, thanks, David. Appreciate it. Where are you based right? You’re in Colorado. Where in Colorado are you?

372 00:50:34.570 00:50:36.500 David Rose: I’m in Golden, so just outside.

373 00:50:36.500 00:50:37.230 Uttam Kumaran: Okay.

374 00:50:38.200 00:50:43.090 Uttam Kumaran: Cool. I was rea- I was just in Boulder, like, maybe 2-3 months ago, basically.

375 00:50:43.090 00:50:46.470 David Rose: Yeah, I just moved from Boulder down here, last year.

376 00:50:46.470 00:50:47.200 Uttam Kumaran: Nice.

377 00:50:47.470 00:50:48.430 Uttam Kumaran: Fair enough. Okay.

378 00:50:48.590 00:50:50.000 Uttam Kumaran: Yeah. Awful.

379 00:50:50.480 00:50:56.199 Uttam Kumaran: Okay. Well, thanks so much for the time, I appreciate it, and thank you so much for spending the time on the exercise, and this was awesome, so…

380 00:50:56.490 00:50:58.720 Uttam Kumaran: Hope to be in touch soon.

381 00:50:59.060 00:51:00.459 David Rose: Great, thank you all.

382 00:51:00.460 00:51:01.649 Demilade Agboola: Alright, thank you.

383 00:51:02.140 00:51:03.680 Uttam Kumaran: Thank you. Bye.