Meeting Title: Brainforge Interview w- Awaish Date: 2026-04-28 Meeting participants: David Adejumo, Awaish Kumar
WEBVTT
1 00:03:50.220 ⇒ 00:03:50.990 Awaish Kumar: Hi.
2 00:03:51.980 ⇒ 00:03:53.000 David Adejumo: Hi.
3 00:03:54.170 ⇒ 00:03:54.929 Awaish Kumar: Give me a drink.
4 00:03:55.420 ⇒ 00:03:56.510 David Adejumo: I’m very well.
5 00:03:57.500 ⇒ 00:03:58.310 Awaish Kumar: Just…
6 00:03:59.100 ⇒ 00:04:01.960 David Adejumo: Email? Not sure when I got mine.
7 00:04:02.390 ⇒ 00:04:03.220 David Adejumo: What?
8 00:04:03.430 ⇒ 00:04:04.979 Awaish Kumar: Where are you located?
9 00:04:05.900 ⇒ 00:04:08.209 David Adejumo: I’m currently located in Lagos, Nigeria.
10 00:04:12.700 ⇒ 00:04:13.590 Awaish Kumar: Okay.
11 00:04:16.329 ⇒ 00:04:24.460 Awaish Kumar: Let’s see… So… basically, Oh, man.
12 00:04:25.590 ⇒ 00:04:29.249 Awaish Kumar: This interview session, we are just going to
13 00:04:29.500 ⇒ 00:04:33.480 Awaish Kumar: Talk a little bit more about your background and your experience.
14 00:04:33.810 ⇒ 00:04:35.650 Awaish Kumar: And I’m just going to…
15 00:04:36.230 ⇒ 00:04:45.250 Awaish Kumar: Yeah, like, for the most part, and then at the end, we will have some time for you to answer any questions you have regarding paid for.
16 00:04:46.260 ⇒ 00:04:47.050 Awaish Kumar: Okay.
17 00:04:47.310 ⇒ 00:04:50.500 Awaish Kumar: All right. We can kick it off with your introduction.
18 00:04:52.010 ⇒ 00:04:53.260 David Adejumo: Alright, thank you.
19 00:04:53.430 ⇒ 00:04:57.339 David Adejumo: Is it nice to call you Awaesh or Kumar? Which one?
20 00:04:57.340 ⇒ 00:04:58.000 Awaish Kumar: Vish.
21 00:04:58.520 ⇒ 00:05:04.799 David Adejumo: Okay, alright, thank you. So, I had my background in project management.
22 00:05:04.920 ⇒ 00:05:08.460 David Adejumo: And, so shortly after that, I…
23 00:05:08.840 ⇒ 00:05:20.720 David Adejumo: That was what I basically studied, and after that, I proceeded into joining an Indigenous consulting firm called Nerulos International. So there, I basically learned
24 00:05:20.720 ⇒ 00:05:29.930 David Adejumo: The basic of our boundaries of how business really works, right? Then different business frameworks and, different terminologies on how
25 00:05:29.980 ⇒ 00:05:38.070 David Adejumo: day-to-day operations around, business consulting. And shortly after that, it was while doing that, I…
26 00:05:38.070 ⇒ 00:06:00.380 David Adejumo: I just accidentally landed on how data analytics really works. So, I first started off my career, that was back in 2018, learning how Power BI works, you know, built different, dashboards, of course, understanding business concepts on how Power BI really works. And around 2019, right, I landed my first role as a data analyst, at Food Concepts PLC,
27 00:06:00.380 ⇒ 00:06:04.739 David Adejumo: here in Lagos, Nigeria, where I single-handedly manage their data across
28 00:06:04.740 ⇒ 00:06:16.850 David Adejumo: 200 stores, and one in Ghana at the time. Shortly after that, of course, out of curiosity, I joined financial institution. Yeah, so I stayed a bit of time there.
29 00:06:16.850 ⇒ 00:06:34.350 David Adejumo: Before I then proceeded to a place called COBO3 System, or also known as PayVaster of, so there, that’s where I’ll be able to actually work on different concepts, at least the engineering team, know how things really work on the back end. And currently, where I am, I work as an engineer at Hydrogen.
30 00:06:34.350 ⇒ 00:06:40.829 David Adejumo: Hydrogen is a payment infrastructure, a payment system of one of the largest banks in Africa called Access Bank.
31 00:06:40.830 ⇒ 00:06:45.189 David Adejumo: And, so that’s basically my role here. And, on a day-to-day
32 00:06:45.190 ⇒ 00:06:52.920 David Adejumo: basis, of course, I use a couple of tools, right? I’m a tool agnostic person, and how do I mean?
33 00:06:52.920 ⇒ 00:07:14.249 David Adejumo: Because I realized that sometimes you may be so used to a tool, and the cost, or… yeah, the cost of running that tool may be expensive, so I’m a tool explains person, but of course, trying to ensure that, please, whatever is good for the business, I leverage on that. And in addition to that, I am a project management professional, and I’m currently the organizer for DBT Lagos Nigeria.
34 00:07:14.320 ⇒ 00:07:17.940 David Adejumo: Or yeah, basically. So that’s just a brief about me. Thank you.
35 00:07:18.770 ⇒ 00:07:22.649 Awaish Kumar: Okay, so seems like you have a lot of experience with the dbt.
36 00:07:24.970 ⇒ 00:07:29.370 Awaish Kumar: Yeah, can we discuss, like, How we…
37 00:07:29.630 ⇒ 00:07:33.660 Awaish Kumar: handle slowly changing dimensions in dbt.
38 00:07:34.760 ⇒ 00:07:49.770 David Adejumo: All right, thank you. So, when you’re working on dbt models, of course, you know, where you’re pulling your data from your data warehouse or from your data source, right, you migrate it to the staging environment, right, so that’s going to be, like, a landing page.
39 00:07:49.770 ⇒ 00:08:08.150 David Adejumo: right, in your landing page, then you now use, the source refresh, right, where you then check for the test, of course, doing the source refresh on your intermediate layer, right? So on the intermediate layer, then you then, apply null, or… so the slow changing dimension you are referring to depends on the type.
40 00:08:08.150 ⇒ 00:08:12.010 David Adejumo: It could be probably Level 1, where you want to overwrite what is currently there.
41 00:08:12.010 ⇒ 00:08:16.250 David Adejumo: or it could be level 2, where you just want to update a particular column, right? So you can…
42 00:08:16.250 ⇒ 00:08:38.900 David Adejumo: have a column and another column called updates at, right? So it could be that when a new data come in, it picks the update at new column, right? Then make that based on the recent changes. So, it basically depends on the model that you want to leverage on, but the usual one is, you do, like, an overrides position, where a new data come into a column, you have basically overrides that. Then that’s going to now
43 00:08:38.900 ⇒ 00:08:51.790 David Adejumo: right to the data mat, right? On the data mat is where the business are basically, picking their data from, or that’s what is going to be feeding into the dashboard. It could be Power BI, any of these basic tools. So.
44 00:08:51.790 ⇒ 00:09:06.840 David Adejumo: really, it could be… you can run an update at column, where if a new column comes in, you just pick the new date, or it could be product. For instance, another SCD that I maybe want to check is, could it be that we have a new column, where a merchant updates their phone number?
45 00:09:07.070 ⇒ 00:09:07.720 David Adejumo: Okay.
46 00:09:07.720 ⇒ 00:09:13.749 Awaish Kumar: I understand what you’re trying to do, but I’m saying, how can we easily handle that thing in dbt?
47 00:09:14.810 ⇒ 00:09:17.769 David Adejumo: So that’s having the new column called, updated ad column.
48 00:09:17.910 ⇒ 00:09:19.400 David Adejumo: It’s gonna do that for you.
49 00:09:19.970 ⇒ 00:09:21.650 Awaish Kumar: Sorry? Sorry, can you come again, Tom?
50 00:09:21.650 ⇒ 00:09:28.130 David Adejumo: add column, so you can have an update at column, or modify dates at column.
51 00:09:28.380 ⇒ 00:09:33.309 Awaish Kumar: So, what do you think of… are you familiar with snapshots and dbt?
52 00:09:34.050 ⇒ 00:09:40.350 David Adejumo: Yeah, there’s a snapshot, but that’s under, yeah, that’s… we have the analytics, we have the snapshot, you have the macro environment.
53 00:09:40.350 ⇒ 00:09:45.129 Awaish Kumar: Using snapshots, Are you not able to handle the…
54 00:09:45.230 ⇒ 00:09:48.709 Awaish Kumar: The updated ad thing that you are trying to create.
55 00:09:49.040 ⇒ 00:09:54.279 Awaish Kumar: Can we use networks to have the similar functionality?
56 00:09:55.620 ⇒ 00:09:56.600 David Adejumo: Please come again.
57 00:09:57.730 ⇒ 00:10:04.160 Awaish Kumar: So, the thing that you’re trying to recreate using updated data or a modified 8 column.
58 00:10:05.570 ⇒ 00:10:08.400 Awaish Kumar: Can we utilize snapshots?
59 00:10:09.510 ⇒ 00:10:13.719 Awaish Kumar: To… to basically just implement that, that, that you’re trying to implement.
60 00:10:13.720 ⇒ 00:10:20.459 David Adejumo: Yes, that works as well. Snapshots actually works as well, because Snapshot big deal. It works.
61 00:10:21.580 ⇒ 00:10:29.379 Awaish Kumar: Yeah, so snapshots are basically a way to handle these kind of scenarios where you have slowly changing dimensions, specifically.
62 00:10:29.550 ⇒ 00:10:37.290 Awaish Kumar: So… Yeah, so there’s… That’s it. And then, I have a few more questions regarding dbt itself.
63 00:10:39.930 ⇒ 00:10:45.400 Awaish Kumar: How… If you have a table which is really… Slow.
64 00:10:45.980 ⇒ 00:10:46.610 Awaish Kumar: Hmm.
65 00:10:46.610 ⇒ 00:10:47.210 David Adejumo: Okay.
66 00:10:49.400 ⇒ 00:10:51.389 Awaish Kumar: In terms of curing.
67 00:10:51.530 ⇒ 00:11:01.669 Awaish Kumar: like, curie… retrieval… performance is… Bad for a table.
68 00:11:01.840 ⇒ 00:11:03.610 Awaish Kumar: How can you improve that?
69 00:11:05.200 ⇒ 00:11:08.940 David Adejumo: So, if you have a query improvement, right, a query performance.
70 00:11:10.010 ⇒ 00:11:17.129 Awaish Kumar: So, like, I have a query, it’s not performing well, it’s really slow, and the details result after 5 minutes.
71 00:11:17.390 ⇒ 00:11:20.310 Awaish Kumar: Right? I want this query to be optimized.
72 00:11:20.830 ⇒ 00:11:25.410 Awaish Kumar: To be performant and return the results in less than 30 seconds.
73 00:11:25.900 ⇒ 00:11:38.339 Awaish Kumar: So what are the steps or the process that you would follow? What changes you would do in the query? What changes you would do in the table structure that can help you optimize the query processing time?
74 00:11:39.450 ⇒ 00:11:50.320 David Adejumo: All right, thank you for that question. One of the things I would look at is to check the indexes, right? Do we have proper indexes on the DB, right? Is it
75 00:11:50.400 ⇒ 00:12:05.760 David Adejumo: the table that I’m trying to query, is it properly indexed? It could be on the private transaction table, it could be on the, transaction reference and all of that. So is it properly indexed? If it’s properly indexed, then the thing is to check, am I using a subquery, or am I…
76 00:12:10.360 ⇒ 00:12:19.340 David Adejumo: using a CTE, right? Because starting off my experience, CTE performs better than a subquery. So then to check, am I aggregating, or I’m just trying to pull
77 00:12:19.340 ⇒ 00:12:29.040 David Adejumo: the all records together, right? Because if I’m not aggregating, if I’m not doing a proper aggregation, it could be that… imagine that you’re trying to pull select all on a table.
78 00:12:29.040 ⇒ 00:12:39.770 David Adejumo: Right, so then I need to confirm, am I using a SOP or am I using CTE? If I check this tool, then the query should have been able to improve a bit, right, then just check to…
79 00:12:39.780 ⇒ 00:12:53.799 David Adejumo: indexes, then confirm, am I using the right join? Could it be that way I’m supposed to use the left join? I’m using inner join? You know, just check all of these metrics, and of course, leverage on city, because CT is wrong faster than any other store.
80 00:12:55.600 ⇒ 00:12:56.240 Awaish Kumar: Okay.
81 00:12:56.430 ⇒ 00:12:58.680 Awaish Kumar: Is there anything else that you can do?
82 00:13:00.150 ⇒ 00:13:10.160 David Adejumo: Okay, so I think aside those two, it depends on the table, right? Because from Databricks experience, you can optimize the table.
83 00:13:10.520 ⇒ 00:13:13.009 David Adejumo: Not cost optimized on database, where…
84 00:13:13.760 ⇒ 00:13:18.299 Awaish Kumar: So, yeah, you have to optimize the Q&A performance. I am…
85 00:13:18.500 ⇒ 00:13:26.240 Awaish Kumar: I am a… I’m your client, for example, or… or someone who just wants… I just care about that my carry runs.
86 00:13:26.430 ⇒ 00:13:39.020 Awaish Kumar: as soon as possible. I don’t care how you structure it, how you… if you optimize the query, if you are in the backend optimizing the table, if you are doing something with database.
87 00:13:39.670 ⇒ 00:13:45.420 Awaish Kumar: end user doesn’t really care about any of these things, so you can basically feel free to discuss
88 00:13:46.030 ⇒ 00:13:51.360 Awaish Kumar: anything, right? If you want to make some changes in database, you want to make some changes in
89 00:13:51.900 ⇒ 00:13:53.859 Awaish Kumar: carry, whatever.
90 00:13:55.670 ⇒ 00:14:08.200 David Adejumo: Alright, so, the best thing, I mean, the first is, of course, the indexing, because indexing is very critical. It could be a composite or a different type of indexes. Then, check the query, right, to see whether I’m using the right join.
91 00:14:08.240 ⇒ 00:14:10.029 David Adejumo: And that’s at the second level.
92 00:14:10.040 ⇒ 00:14:17.340 David Adejumo: And after that, confirm whether I’m using a select all. I’m picking selected statement, I’m speaking selected column.
93 00:14:17.340 ⇒ 00:14:30.900 David Adejumo: Right, from the table that I’m currently working on. If that is there, then let me confirm whether I’m using a subquery. If I’m not using a subquery, then leverage on CTE, and I should have the, rights to results. I think that’s what I would just… those are the few things I would just do.
94 00:14:30.900 ⇒ 00:14:32.800 David Adejumo: At a glance, yeah.
95 00:14:33.210 ⇒ 00:14:35.490 Awaish Kumar: Are you familiar with partitioning?
96 00:14:36.690 ⇒ 00:14:37.230 David Adejumo: Cool.
97 00:14:37.350 ⇒ 00:14:38.980 David Adejumo: Yeah, so…
98 00:14:39.290 ⇒ 00:14:51.800 David Adejumo: Thank you for that question. Yes, so you can also partition your table, really. I think because I didn’t think it’s that end, so you can partition whether by customer ID or by customer name, it depends on the kind of partition. Yes, I’m familiar partition.
99 00:14:52.130 ⇒ 00:14:53.320 David Adejumo: Thank you for that.
100 00:14:54.110 ⇒ 00:14:54.890 Awaish Kumar: Okay.
101 00:14:55.040 ⇒ 00:14:56.340 Awaish Kumar: And,
102 00:14:56.570 ⇒ 00:15:04.540 Awaish Kumar: Okay, now we are in the same scenario. We have to optimize the table, but we discussed the
103 00:15:05.230 ⇒ 00:15:10.390 Awaish Kumar: retrieval… Workflow, where we are retrieving the data
104 00:15:10.550 ⇒ 00:15:13.869 Awaish Kumar: And we want to optimize that. Now, there is a…
105 00:15:14.300 ⇒ 00:15:17.719 Awaish Kumar: art where we want to load the reveal. So, data loading, right?
106 00:15:17.990 ⇒ 00:15:22.519 David Adejumo: It’s raining, and I just want to quickly close my window.
107 00:15:22.840 ⇒ 00:15:23.580 Awaish Kumar: I’m.
108 00:15:23.580 ⇒ 00:15:24.210 David Adejumo: be good.
109 00:15:36.310 ⇒ 00:15:37.590 David Adejumo: Okay, I’m here.
110 00:15:38.150 ⇒ 00:15:49.990 Awaish Kumar: Okay, so now we can discuss the loading part of the table. So we have the same table, but now the… and that is being built as a dbt model.
111 00:15:50.140 ⇒ 00:15:57.940 Awaish Kumar: So we have a table, which is kind of a dbt model, and loading that table is taking long, like, longer than expected.
112 00:15:58.140 ⇒ 00:16:01.629 Awaish Kumar: It’s… and then how would you… Optimize that.
113 00:16:03.030 ⇒ 00:16:11.160 David Adejumo: Okay, so if you are loading a table, it depends on, are we doing incremental load, or are we doing a full refresh?
114 00:16:12.780 ⇒ 00:16:15.719 Awaish Kumar: I don’t know, like, what you would like to do in that case.
115 00:16:16.440 ⇒ 00:16:31.679 David Adejumo: Okay, so, it depends… one of the things I’m going to check when I’m trying to load a table, either to a model, or I’m trying to load a table to… probably I’m moving from the production environment to the data warehouse, or I want to load from production to
116 00:16:31.680 ⇒ 00:16:39.039 David Adejumo: either as your blob storage or somewhere, right? So one of the things I’m going to do first is to confirm whether I’m leveraging on
117 00:16:39.040 ⇒ 00:16:49.690 David Adejumo: incremental model, that is, am I loading just transactions that came in between yesterday and today, or I’m loading all historical transactions?
118 00:16:49.690 ⇒ 00:17:04.450 David Adejumo: If I’m loading historical transaction, right, then I need to confirm, probably I need to partition it by date, such that at least I aggregated that data, right, instead of me speaking, so, basically, I can partition, right, when bringing data into.
119 00:17:04.450 ⇒ 00:17:05.140 Awaish Kumar: What’s your bike?
120 00:17:05.140 ⇒ 00:17:06.119 David Adejumo: customer ID.
121 00:17:06.630 ⇒ 00:17:09.440 Awaish Kumar: That just… ingestion part will happen, that…
122 00:17:09.560 ⇒ 00:17:11.890 Awaish Kumar: you mentioned that I will load data.
123 00:17:12.140 ⇒ 00:17:15.849 Awaish Kumar: That new data that came since yesterday, right?
124 00:17:16.260 ⇒ 00:17:16.910 David Adejumo: Yes.
125 00:17:16.910 ⇒ 00:17:20.989 Awaish Kumar: how this ingestion is happening? Is it happening in dbt, or outside of dbt?
126 00:17:22.230 ⇒ 00:17:23.259 David Adejumo: the injection.
127 00:17:24.710 ⇒ 00:17:34.149 David Adejumo: Yeah, so the injection will happen outside of dbt, which could either be… I can leverage on a tool, either I’m using, Airbyte, right? I can use AirByte to pull data, okay?
128 00:17:34.150 ⇒ 00:17:36.390 Awaish Kumar: Yeah, let’s say, for example, you…
129 00:17:36.570 ⇒ 00:17:41.560 Awaish Kumar: you are loading data via iRyte, and it is ingested into a warehouse.
130 00:17:41.830 ⇒ 00:17:45.069 Awaish Kumar: And it is only adding updated data.
131 00:17:45.550 ⇒ 00:17:46.740 Awaish Kumar: Okay.
132 00:17:46.960 ⇒ 00:17:53.220 Awaish Kumar: After that, on top of the raw data, you have your own model, DBT model.
133 00:17:53.510 ⇒ 00:17:54.110 David Adejumo: Yes.
134 00:17:54.110 ⇒ 00:17:56.180 Awaish Kumar: That is taking long to create.
135 00:17:56.740 ⇒ 00:17:59.899 Awaish Kumar: Right? So what would you basically do?
136 00:18:00.010 ⇒ 00:18:02.490 Awaish Kumar: To… optimize that.
137 00:18:04.730 ⇒ 00:18:06.110 David Adejumo: Okay, so
138 00:18:07.030 ⇒ 00:18:17.589 David Adejumo: One of the things I would do… I’m coming, I’m just trying to pick… I’m just trying to think at this end-to-end, so that I’m able to give you the right answer, right? Right? Is to…
139 00:18:19.460 ⇒ 00:18:26.720 David Adejumo: Just check, really, the data that I’m picking, am I using either
140 00:18:26.980 ⇒ 00:18:28.770 David Adejumo: Am I referencing the right table?
141 00:18:29.010 ⇒ 00:18:29.910 David Adejumo: Right?
142 00:18:30.140 ⇒ 00:18:49.910 David Adejumo: help I’m able to provide insights? Am I referencing the right table? And also check the source data that I’m picking from it. Do I even have incremental model in my source… in my data model, right? Or under my model when I’m picking the data? Do I have incremental model implemented on my dbt, right? If that is not there, then definitely implement that, and
143 00:18:49.910 ⇒ 00:18:59.560 David Adejumo: I think that should basically help me, right, to check. And also in my query, or in the dbt mode that I’m trying to bring in, I need to confirm whether that is
144 00:18:59.560 ⇒ 00:19:17.109 David Adejumo: the table properly partitioned, or I cannot aggregate the data that I’m bringing in into dbt, right? If it’s loading… instead of me loading the entire columns, right, I can aggregate such that it’s able to load that proper data into my staging environment, or into the intermediate environment.
145 00:19:18.980 ⇒ 00:19:19.690 Awaish Kumar: Okay.
146 00:19:22.670 ⇒ 00:19:32.310 Awaish Kumar: Okay, so I’m… What are the, what are some built-in Mec… macros.
147 00:19:32.490 ⇒ 00:19:36.010 Awaish Kumar: in DBT, that, we can use.
148 00:19:36.890 ⇒ 00:19:37.650 David Adejumo: What I do?
149 00:19:38.070 ⇒ 00:19:43.859 Awaish Kumar: What are some… Can you give me an example of some built-in macros?
150 00:19:44.570 ⇒ 00:19:51.179 Awaish Kumar: that come with dbt package itself, that we can use without implementing.
151 00:19:52.320 ⇒ 00:19:53.040 Awaish Kumar: Separately.
152 00:19:53.040 ⇒ 00:19:53.840 David Adejumo: Yeah.
153 00:19:55.220 ⇒ 00:20:13.400 David Adejumo: I know there is reference… I’m not able to pick the exact one, but I know there is reference one where you have the percentage rev… I’m not able to pick the exact one, really, at the moment, but I know, there’s percentage reference one. I’m not able to remember the exact one, really, at the moment.
154 00:20:13.520 ⇒ 00:20:18.200 Awaish Kumar: Do you have experience, recent experience in DBT?
155 00:20:18.450 ⇒ 00:20:22.709 Awaish Kumar: Or is it more of a past work that you have done in DBT?
156 00:20:23.290 ⇒ 00:20:26.040 David Adejumo: I’ve worked a couple of, works on DBT, really.
157 00:20:26.750 ⇒ 00:20:29.959 Awaish Kumar: I mean, you are working in DBT right now, right?
158 00:20:30.650 ⇒ 00:20:31.460 David Adejumo: Yes.
159 00:20:31.650 ⇒ 00:20:36.060 David Adejumo: But sometimes, you know, it depends on how the data that I’m bringing in.
160 00:20:36.060 ⇒ 00:20:40.179 Awaish Kumar: So, what are some of the functions that we use, like ref.
161 00:20:40.670 ⇒ 00:20:43.049 Awaish Kumar: There’s a function called source.
162 00:20:43.730 ⇒ 00:20:44.380 David Adejumo: We did it?
163 00:20:44.380 ⇒ 00:20:47.999 Awaish Kumar: So, there’s also a macro called isincremental.
164 00:20:48.290 ⇒ 00:20:49.050 David Adejumo: Yes?
165 00:20:49.650 ⇒ 00:20:51.609 Awaish Kumar: Are you familiar with all these? Have you been…
166 00:20:51.920 ⇒ 00:20:54.630 Awaish Kumar: Have you been using them in your.
167 00:20:54.630 ⇒ 00:21:00.470 David Adejumo: Yes, I… yes, the source is the one where you want to do source referencing the table that is coming in. Yes, I know.
168 00:21:00.750 ⇒ 00:21:06.020 Awaish Kumar: So yeah, these are really, like, basic… Macros that we use.
169 00:21:06.560 ⇒ 00:21:10.570 Awaish Kumar: In our, like… Even if, in a very simple project.
170 00:21:11.290 ⇒ 00:21:11.850 Awaish Kumar: We had…
171 00:21:11.850 ⇒ 00:21:15.689 David Adejumo: You know, I mentioned ref, actually, we get that. Am I missing something?
172 00:21:15.690 ⇒ 00:21:17.469 Awaish Kumar: No, I know, you mentioned REF.
173 00:21:17.800 ⇒ 00:21:20.650 Awaish Kumar: But you’re not really sure, right? You…
174 00:21:20.650 ⇒ 00:21:22.699 David Adejumo: No, no, I was just trying to… okay, thank you.
175 00:21:23.520 ⇒ 00:21:26.240 Awaish Kumar: You did mention ref, I agree.
176 00:21:27.520 ⇒ 00:21:28.670 David Adejumo: Okay, thank you.
177 00:21:29.110 ⇒ 00:21:29.710 Awaish Kumar: Yeah.
178 00:21:33.290 ⇒ 00:21:39.090 Awaish Kumar: Okay, so… Let’s see… let’s say we have a scenario.
179 00:21:39.500 ⇒ 00:21:42.470 Awaish Kumar: We have a DBT project.
180 00:21:43.560 ⇒ 00:21:47.099 Awaish Kumar: That is running against a Postgres database.
181 00:21:48.030 ⇒ 00:21:51.820 Awaish Kumar: I… do you have… Familiarity with Postgres?
182 00:21:52.580 ⇒ 00:21:53.420 David Adejumo: Postgres.
183 00:21:53.630 ⇒ 00:21:54.350 Awaish Kumar: Yep.
184 00:21:55.070 ⇒ 00:22:00.880 David Adejumo: I haven’t used Progress that much, really. I haven’t used Progress that much. I have merged Progress that much.
185 00:22:01.860 ⇒ 00:22:06.579 Awaish Kumar: Okay, but this is something like a logical thing, it’s not a… like, you don’t.
186 00:22:06.580 ⇒ 00:22:07.650 David Adejumo: Okay, that’s fine.
187 00:22:07.990 ⇒ 00:22:15.409 Awaish Kumar: you don’t need to give me an exact, syntax, it’s just how you would, implement that, right? Just an
188 00:22:15.590 ⇒ 00:22:20.740 Awaish Kumar: Overview of your… for your process. So, for example, I…
189 00:22:21.070 ⇒ 00:22:29.020 Awaish Kumar: have a table. So normally, you know the… when you use indexing, The data loading becomes slower.
190 00:22:30.270 ⇒ 00:22:32.229 Awaish Kumar: If you have a lot of indexes on your table.
191 00:22:32.230 ⇒ 00:22:33.009 David Adejumo: Yes, yes.
192 00:22:33.010 ⇒ 00:22:34.659 Awaish Kumar: The data loading becomes slower.
193 00:22:34.850 ⇒ 00:22:37.920 Awaish Kumar: So… I want to have a dbt model.
194 00:22:38.300 ⇒ 00:22:40.359 Awaish Kumar: That has the indexes on it.
195 00:22:40.930 ⇒ 00:22:46.420 Awaish Kumar: Right? For query… for the… to improve the query performance, right?
196 00:22:47.390 ⇒ 00:22:49.550 Awaish Kumar: The problem is, whenever I run an
197 00:22:49.720 ⇒ 00:22:52.750 Awaish Kumar: whenever that, like, I run a DVD build.
198 00:22:53.170 ⇒ 00:22:56.449 Awaish Kumar: That building of that model just takes a lot of time.
199 00:22:56.740 ⇒ 00:23:02.750 Awaish Kumar: I would take an approach where I want to… I want to drop the indexes.
200 00:23:04.020 ⇒ 00:23:11.959 Awaish Kumar: Right? So I want to take an approach using dbt that whenever I run a dbt build for this model.
201 00:23:12.080 ⇒ 00:23:14.729 Awaish Kumar: It will drop the indexes for that table.
202 00:23:14.960 ⇒ 00:23:16.890 Awaish Kumar: Then build the table.
203 00:23:17.200 ⇒ 00:23:20.150 Awaish Kumar: And then finally adds back the indexes.
204 00:23:20.990 ⇒ 00:23:25.799 Awaish Kumar: Is there a feature in dbt that you can use to implement that?
205 00:23:27.720 ⇒ 00:23:29.430 David Adejumo: Okay,
206 00:23:29.930 ⇒ 00:23:44.509 David Adejumo: Yes, I know if you want to… so if you want to… if I get this clearly now, you have a table, right, and you… the table is there, and there’s an index on it, so when you want to build the model, you want to drop the index, right? Then.
207 00:23:44.510 ⇒ 00:23:52.509 David Adejumo: after I’ve dropped the index, the butyrun, then after that, the index should come back. If I’m not mistaken.
208 00:23:52.680 ⇒ 00:23:54.650 David Adejumo: I think dbt Compile.
209 00:23:56.310 ⇒ 00:23:57.680 Awaish Kumar: Sorry, DBT what?
210 00:23:58.060 ⇒ 00:23:58.980 David Adejumo: Pompeo.
211 00:24:00.540 ⇒ 00:24:07.410 Awaish Kumar: Yeah, dbt compile is… just compiles the code and gives you the compiled version of your query.
212 00:24:07.520 ⇒ 00:24:09.450 Awaish Kumar: It does not drop the indexes.
213 00:24:10.840 ⇒ 00:24:16.620 David Adejumo: Bruh… I’m not sure I can remember that, I think. No, no, I don’t know that.
214 00:24:16.720 ⇒ 00:24:17.220 David Adejumo: Really?
215 00:24:18.060 ⇒ 00:24:18.580 Awaish Kumar: Okay.
216 00:24:18.580 ⇒ 00:24:20.569 David Adejumo: Okay, I’m happy to learn that from you.
217 00:24:21.490 ⇒ 00:24:26.689 Awaish Kumar: Yeah, so there are some… Hooks, pre-hooks, and the post-hook hooks.
218 00:24:26.960 ⇒ 00:24:33.460 Awaish Kumar: concept in the dbt. You can run a pre-hook on a table that drops the
219 00:24:33.800 ⇒ 00:24:39.409 Awaish Kumar: indexes, then it builds the model, and then you can run a postdoc.
220 00:24:39.590 ⇒ 00:24:40.410 David Adejumo: That’s cool.
221 00:24:40.630 ⇒ 00:24:43.089 Awaish Kumar: In the configuration, you can provide
222 00:24:43.340 ⇒ 00:24:50.060 Awaish Kumar: Pre-hook configuration and post-hook configuration, and you can exactly tell the command that what you have to do
223 00:24:50.170 ⇒ 00:24:53.309 Awaish Kumar: In this… before the model and after the model is built.
224 00:24:53.590 ⇒ 00:24:57.909 Awaish Kumar: And… And in that, you will write your SQL statement, right?
225 00:24:57.910 ⇒ 00:24:58.370 David Adejumo: Whoa.
226 00:24:58.370 ⇒ 00:25:03.529 Awaish Kumar: index, and they add alter table, add index kind of thing, and it will just do that.
227 00:25:05.430 ⇒ 00:25:06.270 David Adejumo: Okay.
228 00:25:07.190 ⇒ 00:25:13.499 Awaish Kumar: No worries, I think I’m good with my questions. We have still a few minutes left.
229 00:25:13.860 ⇒ 00:25:16.300 Awaish Kumar: I will leave this time for you to ask any question.
230 00:25:17.280 ⇒ 00:25:36.030 David Adejumo: Yeah, thank you so much, right? And I know I missed that part of you. Of course, I’ve read about it, but really, I didn’t know that’s the exact thing that it actually does, right? The pre-work and the post-book. Thank you so much. But I’m just curious about brain fraud, what are the things that basically the…
231 00:25:36.090 ⇒ 00:25:44.890 David Adejumo: Like, what’s the structure like, right? And also, is it more like it’s a, like, what’s the structure like, basically?
232 00:25:45.710 ⇒ 00:25:48.529 Awaish Kumar: Structure is, like, we are a startup company.
233 00:25:48.710 ⇒ 00:25:54.700 Awaish Kumar: It is a fast-paced startup company with, With different teams.
234 00:25:55.380 ⇒ 00:25:57.540 Awaish Kumar: Like, sales, marketing?
235 00:25:57.710 ⇒ 00:26:01.780 Awaish Kumar: data… data team, and then AI team.
236 00:26:02.340 ⇒ 00:26:06.950 Awaish Kumar: In the data team, it’s already… it’s divided into 3 different parts.
237 00:26:07.210 ⇒ 00:26:11.359 Awaish Kumar: Data engineering, data analytics engineering, and data analysts.
238 00:26:12.260 ⇒ 00:26:16.989 Awaish Kumar: So this is our, like, the… organizational structure.
239 00:26:17.530 ⇒ 00:26:22.900 Awaish Kumar: And then, inside of that, we work on multiple clients.
240 00:26:24.620 ⇒ 00:26:29.190 Awaish Kumar: So, each person, ideally, is assigned to more than
241 00:26:29.590 ⇒ 00:26:35.089 Awaish Kumar: more than one or two clients. So, it… it could be two or three.
242 00:26:35.250 ⇒ 00:26:40.099 Awaish Kumar: So, yeah, so it’s always… You will be, like…
243 00:26:40.720 ⇒ 00:26:44.209 Awaish Kumar: If you’re hired, you… at Brainford, you’ll always have to work
244 00:26:44.530 ⇒ 00:26:48.169 Awaish Kumar: For 2 or 3 clients.
245 00:26:50.240 ⇒ 00:26:57.500 Awaish Kumar: And… But, it does not mean that your working hours going to…
246 00:26:58.270 ⇒ 00:27:06.650 Awaish Kumar: increase. It’s just, like, that you… you will divide your time, like, 40 hours per week, Into multiple kinds.
247 00:27:07.370 ⇒ 00:27:09.170 Awaish Kumar: And,
248 00:27:10.210 ⇒ 00:27:17.289 Awaish Kumar: Then we have a lot of, like, we have multiple data clients, then, like, we have mid to larger-scale enterprises that we…
249 00:27:17.470 ⇒ 00:27:18.140 Awaish Kumar: Pop.
250 00:27:19.120 ⇒ 00:27:20.659 Awaish Kumar: Provide services to?
251 00:27:22.140 ⇒ 00:27:25.460 Awaish Kumar: For those clients, we basically Hmm.
252 00:27:26.330 ⇒ 00:27:37.020 Awaish Kumar: yeah, we basically assign people based on the needs of the customer and the expertise of our team. So if, for example, a new client comes in, it needs 20 hours of a DE work.
253 00:27:37.130 ⇒ 00:27:43.749 Awaish Kumar: It needs 20 hours of AE work, and 20 hours from analyst, and 10 hours from AI team.
254 00:27:43.920 ⇒ 00:27:50.449 Awaish Kumar: So, basically, we will pick This time from each individual service line we have.
255 00:27:50.720 ⇒ 00:27:53.880 Awaish Kumar: And then, and build a team for a client.
256 00:27:59.050 ⇒ 00:28:07.770 Awaish Kumar: we have in the team. And then, in terms of collaboration, we use linear internally for organizing our tickets and the project management.
257 00:28:07.890 ⇒ 00:28:11.929 Awaish Kumar: And then we also have… we have Slack for Ascent communication.
258 00:28:12.100 ⇒ 00:28:14.930 Awaish Kumar: We use Zoom for all our meetings.
259 00:28:15.920 ⇒ 00:28:20.179 Awaish Kumar: And then we use… a lot of AI in our workflow.
260 00:28:20.320 ⇒ 00:28:25.269 Awaish Kumar: So, everybody here is, AI, like, does AI-driven developments.
261 00:28:25.420 ⇒ 00:28:26.190 Awaish Kumar: Pony.
262 00:28:26.530 ⇒ 00:28:29.099 Awaish Kumar: I would say AI-driven
263 00:28:29.280 ⇒ 00:28:43.409 Awaish Kumar: workflows, because not just developers use AI here. Every team here, including sales, marketing, all utilize AI to increase… optimize their workflow.
264 00:28:45.650 ⇒ 00:28:52.550 David Adejumo: That’s… that’s great. Thank you so much for that. And the other question is,
265 00:28:53.220 ⇒ 00:29:04.520 David Adejumo: Okay, so what do you think about the interview so far? I know you might not be able to give me the right answer on the question on this, right, but what do you think? I mean, just a kind of feedback, and I’m happy to… to work on that.
266 00:29:04.780 ⇒ 00:29:07.650 Awaish Kumar: Yeah, that’s been great, you know.
267 00:29:07.850 ⇒ 00:29:11.650 Awaish Kumar: I admit… I have had opportunity to talk to you.
268 00:29:13.070 ⇒ 00:29:17.660 Awaish Kumar: You’re, like, like, sitting across the continent.
269 00:29:17.880 ⇒ 00:29:21.809 Awaish Kumar: And I had an opportunity to speak with you and learn
270 00:29:22.120 ⇒ 00:29:24.299 Awaish Kumar: Like, talk more about the data.
271 00:29:24.500 ⇒ 00:29:30.340 Awaish Kumar: And… and Haden, yeah, thank you for giving us opportunity to… Know more about your…
272 00:29:30.600 ⇒ 00:29:33.960 Awaish Kumar: Your experience, and what you have been doing.
273 00:29:34.180 ⇒ 00:29:36.130 Awaish Kumar: So far. So, yeah, it’s great.
274 00:29:36.910 ⇒ 00:29:46.649 David Adejumo: All right, and the last question is, have there been other times where probably, brain force, probably have been brain farts on a project, or probably a medium size where
275 00:29:46.850 ⇒ 00:29:57.429 David Adejumo: you were asked probably to cut costs, right? I mean, you know, now in the world where we live in, you can build a lot of AI workflow, but with a startup, there are a lot of costs
276 00:29:57.430 ⇒ 00:30:16.169 David Adejumo: Especially when it comes to infrastructure, or a medium-sized organization. So, could there be any way where probably you are focusing more, probably today you are doing cost cutting, tomorrow, when it comes to probably for your clients, and tomorrow you are to work on probably building an infra, or an infrastructure for another client?
277 00:30:16.170 ⇒ 00:30:18.479 David Adejumo: Has there been possible cases like that?
278 00:30:19.700 ⇒ 00:30:20.769 David Adejumo: Do you get it?
279 00:30:22.350 ⇒ 00:30:25.950 Awaish Kumar: Yeah, can you… Yeah, can you come again?
280 00:30:26.580 ⇒ 00:30:43.519 David Adejumo: Okay, so what I’m saying, have there been any possible cases where you have to do cost cutting, probably for one of your clients, in terms of their infrastructure? Let’s say, for example, today they are using Azure. I have to migrate them from Azure, probably to an open source environment, just for the sake of cost cutting and all of that.
281 00:30:45.030 ⇒ 00:30:48.599 Awaish Kumar: Yeah, it depends from client to client, and it also…
282 00:30:48.700 ⇒ 00:30:51.630 Awaish Kumar: But it, it, it is, it is not just,
283 00:30:51.950 ⇒ 00:31:00.539 Awaish Kumar: it can’t just happen on… based on the user’s request, right? Most… majority of the time that our… our, like.
284 00:31:00.660 ⇒ 00:31:09.989 Awaish Kumar: direct point of context are C-level executives, and they are, like, CEOs, CFOs, like, really the…
285 00:31:10.220 ⇒ 00:31:18.110 Awaish Kumar: non-technical stakeholders, or with limited knowledge of technical things. So, we don’t, like, they don’t, like, we don’t just…
286 00:31:18.380 ⇒ 00:31:29.399 Awaish Kumar: do as they say, right? But that’s because that’s not correct. They will just come up with their requirements. This is what we want to do. The cost cutting or optimization for the cost is our target.
287 00:31:29.730 ⇒ 00:31:33.139 Awaish Kumar: They come to us, and we do the, basically, the auditing.
288 00:31:33.550 ⇒ 00:31:45.799 Awaish Kumar: we provide the auditing service that, okay, let’s… let’s do the audit of your data infrastructure and figure out what would be the possible solution here to optimize the cost. And we can then show them the
289 00:31:45.990 ⇒ 00:31:48.190 Awaish Kumar: Different alternate solutions.
290 00:31:48.470 ⇒ 00:31:54.259 Awaish Kumar: For each solution, you will have some pros and cons, and then they will make a decision based on that.
291 00:31:56.690 ⇒ 00:31:59.979 Awaish Kumar: I’ve done already a lot of it in our company.
292 00:32:01.380 ⇒ 00:32:08.279 David Adejumo: That makes sense. I think that’s basically… Just my question, but that’s beautiful.
293 00:32:08.640 ⇒ 00:32:11.110 Awaish Kumar: Yeah, thank you for your time, David.
294 00:32:11.470 ⇒ 00:32:18.170 Awaish Kumar: Cool, yeah, I’m… I think, yeah, I’m going to get back to Kayla.
295 00:32:18.440 ⇒ 00:32:22.310 Awaish Kumar: With my feedback, and then, yeah, she will get back to you as soon as possible.
296 00:32:22.950 ⇒ 00:32:23.860 David Adejumo: Alright, thank you.
297 00:32:24.340 ⇒ 00:32:24.730 Awaish Kumar: Are you doing?