Meeting Title: Brainforge-Weekly-Kickoff Date: 2024-09-17 Meeting participants: Nicolas Sucari, Uttam Kumaran, Ryan Luke Daque, Patrick Trainer, Anne Narido
WEBVTT
1 00:00:07.370 ⇒ 00:00:08.020 Patrick Trainer: Yo, yeah.
2 00:00:08.020 ⇒ 00:00:10.090 Uttam Kumaran: Oh, sorry about that!
3 00:00:10.090 ⇒ 00:00:11.280 Patrick Trainer: It’s all good.
4 00:00:13.470 ⇒ 00:00:16.861 Uttam Kumaran: Okay, it was a. It was an important meeting. So worth.
5 00:00:17.670 ⇒ 00:00:18.950 Patrick Trainer: I I believe you.
6 00:00:19.250 ⇒ 00:00:21.319 Uttam Kumaran: Worth being late. But I hate.
7 00:00:21.380 ⇒ 00:00:22.719 Uttam Kumaran: I just like
8 00:00:23.460 ⇒ 00:00:28.740 Uttam Kumaran: sometimes it’s like, Oh, it was 30 min was too much. Sometimes it’s like 30 min was like way too little.
9 00:00:28.950 ⇒ 00:00:29.500 Patrick Trainer: Yeah.
10 00:00:30.530 ⇒ 00:00:33.720 Patrick Trainer: I always think like I mean, 30 min is
11 00:00:33.790 ⇒ 00:00:36.050 Patrick Trainer: 30 min is too quick, because, like
12 00:00:36.060 ⇒ 00:00:40.010 Patrick Trainer: you always bullshit for like 5, 10 min at the beginning.
13 00:00:40.090 ⇒ 00:00:42.720 Patrick Trainer: and then, like you kind of get into it.
14 00:00:42.910 ⇒ 00:00:44.140 Patrick Trainer: And then.
15 00:00:44.210 ⇒ 00:00:45.290 Patrick Trainer: like you.
16 00:00:45.990 ⇒ 00:00:47.589 Patrick Trainer: you think about like
17 00:00:47.830 ⇒ 00:00:58.209 Patrick Trainer: like questions come up or clarified clarification comes up, and that’s another 10 min. And then at that time it’s like there’s only 5 min left, and it’s like, What can you do with that?
18 00:00:58.290 ⇒ 00:00:59.320 Patrick Trainer: And so.
19 00:00:59.760 ⇒ 00:01:07.300 Uttam Kumaran: But dude there, you’d be surprised. There are some meetings where I really don’t want to be in like with people who are not fun to talk to.
20 00:01:07.300 ⇒ 00:01:07.860 Patrick Trainer: Yeah, I’ve.
21 00:01:08.760 ⇒ 00:01:09.510 Patrick Trainer: For sure.
22 00:01:10.720 ⇒ 00:01:11.610 Uttam Kumaran: And
23 00:01:12.860 ⇒ 00:01:15.340 Uttam Kumaran: yeah, it was clever.
24 00:01:15.340 ⇒ 00:01:17.059 Patrick Trainer: Yeah, it’s like, it’s like.
25 00:01:17.260 ⇒ 00:01:20.037 Uttam Kumaran: That could have been an email. Please just like, send me.
26 00:01:20.290 ⇒ 00:01:22.479 Patrick Trainer: That’s that’s the importance of like
27 00:01:22.640 ⇒ 00:01:24.290 Patrick Trainer: strict agenda
28 00:01:24.490 ⇒ 00:01:25.580 Patrick Trainer: for like
29 00:01:25.890 ⇒ 00:01:31.969 Patrick Trainer: non fun meetings. Like, all right, we’re gonna talk about this this this. And then we’re gonna fuck off.
30 00:01:32.290 ⇒ 00:01:33.030 Uttam Kumaran: Yeah.
31 00:01:36.510 ⇒ 00:01:41.877 Uttam Kumaran: Okay, a couple. I guess I I will see if anyone else is joining. I think hopefully, Miguel and
32 00:01:42.210 ⇒ 00:01:43.700 Uttam Kumaran: sneak over there.
33 00:01:45.028 ⇒ 00:01:48.161 Uttam Kumaran: Miguel might might have fell asleep by now, though.
34 00:01:53.919 ⇒ 00:01:57.610 Uttam Kumaran: I guess I wanted to talk a little bit about
35 00:02:05.710 ⇒ 00:02:06.400 Uttam Kumaran: hmm!
36 00:02:16.230 ⇒ 00:02:17.870 Uttam Kumaran: I wanted to talk about the
37 00:02:18.850 ⇒ 00:02:19.470 Uttam Kumaran: the
38 00:02:20.440 ⇒ 00:02:24.420 Uttam Kumaran: The article I sent today, the AI Analysis one.
39 00:02:24.620 ⇒ 00:02:26.249 Uttam Kumaran: Maybe we could just like.
40 00:02:27.273 ⇒ 00:02:31.659 Uttam Kumaran: take a look at that. And like, I kind of wanted to get your guys thoughts in particular.
41 00:02:31.890 ⇒ 00:02:33.200 Uttam Kumaran: And then.
42 00:02:33.320 ⇒ 00:02:37.640 Uttam Kumaran: yeah, I wanted to share a little bit about what we’re working on with vitacoco.
43 00:02:38.189 ⇒ 00:02:42.851 Uttam Kumaran: I think it would be also good, Ryan. Maybe we can share a little bit about how we
44 00:02:43.290 ⇒ 00:02:45.650 Uttam Kumaran: did the dashboard review yesterday?
45 00:02:46.253 ⇒ 00:02:48.599 Uttam Kumaran: With Patrick, because I think that was actually.
46 00:02:48.800 ⇒ 00:02:52.039 Uttam Kumaran: I mean that I think that was such a productive meeting.
47 00:02:52.344 ⇒ 00:02:55.405 Uttam Kumaran: And then I want. And then the last thing I want to talk about is
48 00:02:56.550 ⇒ 00:02:56.985 Uttam Kumaran: the
49 00:02:57.420 ⇒ 00:02:58.200 Nicolas Sucari: Hi guys.
50 00:02:58.850 ⇒ 00:03:06.300 Uttam Kumaran: Hey, Nico, want to talk about the the template repo, and like kind of the dock, maybe path that that we’re working on later
51 00:03:06.620 ⇒ 00:03:09.680 Uttam Kumaran: and then can get like a general update. So maybe
52 00:03:09.760 ⇒ 00:03:14.789 Uttam Kumaran: I guess the fun article is like, if you guys are in pool parts, you’ll see that article that I sent today.
53 00:03:15.993 ⇒ 00:03:17.000 Uttam Kumaran: Which is.
54 00:03:17.690 ⇒ 00:03:24.229 Uttam Kumaran: And I’ll share this. It’s this article from this company that I’ve been stalking, called Ripman Analytics.
55 00:03:24.400 ⇒ 00:03:27.310 Uttam Kumaran: It’s basically like another consulting company.
56 00:03:27.510 ⇒ 00:03:28.530 Uttam Kumaran: That
57 00:03:29.886 ⇒ 00:03:37.210 Uttam Kumaran: I don’t really. I mean, like, I think they’ve been. I think they’ve been in business a while. But their website’s okay. I think there’s some stuff that’s really nice, some.
58 00:03:37.210 ⇒ 00:03:40.059 Patrick Trainer: Isn’t isn’t Ripman the Seattle data guy.
59 00:03:41.010 ⇒ 00:03:47.310 Uttam Kumaran: No, there’s a not Seattle data guys. This guy, I think his name is Benjamin Ripman. These guys are like some Uk guys.
60 00:03:48.590 ⇒ 00:03:49.330 Uttam Kumaran: Okay.
61 00:03:49.330 ⇒ 00:03:51.030 Patrick Trainer: Why? Why do I know?
62 00:03:52.320 ⇒ 00:03:54.470 Uttam Kumaran: Keep this guy posts on Linkedin a bunch.
63 00:03:54.470 ⇒ 00:03:57.060 Patrick Trainer: Why do? Why do I know them? I think I met.
64 00:03:57.060 ⇒ 00:03:58.140 Uttam Kumaran: I just.
65 00:03:58.680 ⇒ 00:04:00.419 Patrick Trainer: Or met the dude at at
66 00:04:00.500 ⇒ 00:04:01.570 Patrick Trainer: Snowflake
67 00:04:01.610 ⇒ 00:04:03.620 Patrick Trainer: Conference like a couple of years ago.
68 00:04:04.060 ⇒ 00:04:07.919 Uttam Kumaran: Yeah, I just like, because their their articles are actually very technical.
69 00:04:08.050 ⇒ 00:04:10.690 Uttam Kumaran: which is surprising. So it’s like.
70 00:04:10.690 ⇒ 00:04:11.360 Patrick Trainer: Any
71 00:04:11.870 ⇒ 00:04:15.949 Patrick Trainer: by a guy named James Weekly. It’s called Umnata.
72 00:04:16.820 ⇒ 00:04:17.440 Uttam Kumaran: Hmm.
73 00:04:18.760 ⇒ 00:04:20.149 Uttam Kumaran: Oh, yeah. Yeah.
74 00:04:20.290 ⇒ 00:04:20.950 Patrick Trainer: Yeah.
75 00:04:23.610 ⇒ 00:04:26.029 Uttam Kumaran: Well, I don’t know why I was looking at these guys.
76 00:04:26.030 ⇒ 00:04:26.790 Patrick Trainer: Yeah.
77 00:04:28.180 ⇒ 00:04:28.930 Patrick Trainer: yeah, I’m not.
78 00:04:28.930 ⇒ 00:04:30.350 Uttam Kumaran: Oh, yeah. Yeah.
79 00:04:30.350 ⇒ 00:04:33.020 Patrick Trainer: James James is legit like he.
80 00:04:33.090 ⇒ 00:04:34.320 Patrick Trainer: He knows his shit
81 00:04:36.770 ⇒ 00:04:38.079 Patrick Trainer: anyway. Sorry.
82 00:04:39.200 ⇒ 00:04:42.000 Uttam Kumaran: Yes, I was looking at this article today.
83 00:04:42.630 ⇒ 00:04:46.890 Uttam Kumaran: like I, I don’t know we’re I’m constantly thinking about like
84 00:04:48.120 ⇒ 00:04:53.219 Uttam Kumaran: constantly thinking about and like, challenged with how to get better on the analysis side.
85 00:04:54.080 ⇒ 00:04:55.370 Uttam Kumaran: and I think
86 00:04:55.410 ⇒ 00:05:03.969 Uttam Kumaran: you know, the the primary source of the issue is that there just aren’t, I think, compared to data, engineering, or analytics. Engineering.
87 00:05:04.070 ⇒ 00:05:06.559 Uttam Kumaran: I think there is like
88 00:05:06.870 ⇒ 00:05:15.860 Uttam Kumaran: there are. There’s a higher volume of analysts, but a lower volume of great analysts meaning the floor for being analyst is very low.
89 00:05:15.880 ⇒ 00:05:17.310 Uttam Kumaran: but the ceiling
90 00:05:17.370 ⇒ 00:05:26.160 Uttam Kumaran: is is like very high. I think if you are a data engineer, the ceiling, the floor is higher than if you’re if you’re like the worst data engineer.
91 00:05:26.790 ⇒ 00:05:30.139 Uttam Kumaran: you’re you’re probably better than the worst data analyst.
92 00:05:30.470 ⇒ 00:05:33.699 Uttam Kumaran: And that’s kind of a negative way of thinking about it. But the opposite is like.
93 00:05:33.710 ⇒ 00:05:36.240 Uttam Kumaran: if you’re the best data engineer
94 00:05:38.080 ⇒ 00:05:42.019 Uttam Kumaran: like you’re there’s probably like a if you’re versus the best analyst
95 00:05:42.190 ⇒ 00:05:44.789 Uttam Kumaran: like, I think there’s a difference meaning
96 00:05:45.090 ⇒ 00:05:54.649 Uttam Kumaran: there aren’t that many great, great, great analysts, I think a lot of them are probably like ex bankers, or like people that have worked in that situation where you can. Really.
97 00:05:54.810 ⇒ 00:06:00.660 Uttam Kumaran: they do 2 things kind of well, one, they’re sort of people that are like, get the
98 00:06:00.830 ⇒ 00:06:10.870 Uttam Kumaran: get to the final point by any means necessary. Whether it’s a data tool excel, talking to people. The second thing is like, I think it’s a real focus on the business.
99 00:06:11.050 ⇒ 00:06:12.830 Uttam Kumaran: I don’t. I just think that
100 00:06:13.000 ⇒ 00:06:17.390 Uttam Kumaran: there are so many analysts that have a just have a trouble
101 00:06:17.430 ⇒ 00:06:18.870 Uttam Kumaran: dealing with
102 00:06:19.120 ⇒ 00:06:33.189 Uttam Kumaran: technology or or other things. And I just think that like it’s constantly a challenge. And so one of the things that I’m always looking for is like, how can we get those people that are great. I think a lot of those people are in other industries.
103 00:06:33.280 ⇒ 00:06:37.992 Uttam Kumaran: or are just like very expensive. And I don’t have a great like network in that world.
104 00:06:38.460 ⇒ 00:06:44.190 Uttam Kumaran: So it’s like, Okay, I’m always reading about, how can we use AI for stuff? And one of the things that I was thinking about was like
105 00:06:44.320 ⇒ 00:06:59.650 Uttam Kumaran: we even talked about. This yesterday was like, is there a chance we could pass like a real dashboard image into AI, or we could pass a table in. And actually, what these guys did using. You know, Gemini is something similar to like passing in, they basically pass in like a
106 00:07:01.430 ⇒ 00:07:04.840 Uttam Kumaran: like a Kpi summary table.
107 00:07:04.900 ⇒ 00:07:10.790 Uttam Kumaran: not only like what the Kpis are over time, but like percentage changes historical values.
108 00:07:11.256 ⇒ 00:07:22.300 Uttam Kumaran: indicators. And they had the AI basically come up with the analysis. And I thought this was like a nice 1st step into this direction that was actually really interesting. So basically what they did.
109 00:07:22.636 ⇒ 00:07:29.020 Uttam Kumaran: It’s worth reading because they actually go through and like, talk about the specific technologies. But they’re basically trying to produce something like this.
110 00:07:29.260 ⇒ 00:07:30.259 Uttam Kumaran: which is like
111 00:07:30.460 ⇒ 00:07:33.390 Uttam Kumaran: an AI like summary.
112 00:07:33.490 ⇒ 00:07:39.060 Uttam Kumaran: And what we do what they do is basically they create this Kpi history table, which is like.
113 00:07:39.540 ⇒ 00:07:43.489 Uttam Kumaran: has a date spine has, like all these Kpis.
114 00:07:43.910 ⇒ 00:07:50.859 Uttam Kumaran: But additionally, it has information that, like our ratios and percentages, so that show
115 00:07:50.890 ⇒ 00:07:53.279 Uttam Kumaran: just derivative changes right.
116 00:07:53.370 ⇒ 00:07:57.349 Uttam Kumaran: they pass it in as like a as like a Json string.
117 00:07:57.420 ⇒ 00:08:07.400 Uttam Kumaran: This is probably, maybe not as relevant. This is more about the execution. And then they basically are asking it to give us. Give it a summary
118 00:08:07.897 ⇒ 00:08:11.380 Uttam Kumaran: that they would provide to a CEO right like this is the prompt
119 00:08:13.000 ⇒ 00:08:15.899 Uttam Kumaran: and they’re able to actually
120 00:08:15.940 ⇒ 00:08:18.110 Uttam Kumaran: get outputted like results.
121 00:08:18.535 ⇒ 00:08:22.770 Uttam Kumaran: And I don’t know. This is not really like zooming in very well.
122 00:08:25.020 ⇒ 00:08:27.909 Uttam Kumaran: but it looks like it’s like the net profit was this.
123 00:08:28.050 ⇒ 00:08:32.389 Uttam Kumaran: the decline was attributed to this? This suggests that this
124 00:08:32.710 ⇒ 00:08:35.909 Uttam Kumaran: right, like these sorts of things that I think
125 00:08:36.380 ⇒ 00:08:38.490 Uttam Kumaran: even this is a little bit like
126 00:08:38.919 ⇒ 00:08:44.770 Uttam Kumaran: it’s. It’s kind of how I always describe, which is like there’s like layer, one layer, 2 level layer, 3 questions
127 00:08:44.850 ⇒ 00:08:49.710 Uttam Kumaran: for me. The the significant win is just to even show
128 00:08:49.990 ⇒ 00:08:54.350 Uttam Kumaran: you. Look for the dashboard, and you want to know, like, what should I focus on? That’s 1 win.
129 00:08:54.590 ⇒ 00:09:03.139 Uttam Kumaran: The second win is not only what should I focus on? It’s like, why I should focus on it. The 3rd one is like, what should I do about it? Right?
130 00:09:03.520 ⇒ 00:09:06.849 Uttam Kumaran: That’s the stages that we do. An analysis is like.
131 00:09:07.510 ⇒ 00:09:13.080 Uttam Kumaran: what am I looking at? What do I need to look at? And that’s all accurate as everything
132 00:09:13.230 ⇒ 00:09:15.739 Uttam Kumaran: like, what in particular are the changes.
133 00:09:15.930 ⇒ 00:09:25.259 Uttam Kumaran: and then like what contributed the changes? And then what should I do about it? Right? A lot of people stop at every single stop light in that, you know. Here’s a dashboard.
134 00:09:25.810 ⇒ 00:09:37.350 Uttam Kumaran: Okay? Okay? Well, here’s a dashboard with the changes and blinking lights. Okay, cool? Well, like? Looks at the blinking lights was caused by this right, like the cost to do this went up or like, there’s this error.
135 00:09:37.880 ⇒ 00:09:46.079 Uttam Kumaran: The final thing that’s like, really really amazing is like, when you can say, not only did this thing go up, you should probably call these people and renegotiate this.
136 00:09:46.150 ⇒ 00:09:50.519 Uttam Kumaran: or you should probably we should probably look into this Xyz change right?
137 00:09:50.780 ⇒ 00:09:56.320 Uttam Kumaran: So I want to kind of break down this problem of like analysis into those like logical chunks.
138 00:09:57.880 ⇒ 00:10:04.169 Uttam Kumaran: But I think the way they kind of have this as a great starting point for us to think about whenever we do.
139 00:10:04.380 ⇒ 00:10:07.500 Uttam Kumaran: whenever we’re doing analysis in the future.
140 00:10:08.920 ⇒ 00:10:24.299 Uttam Kumaran: our goal is always to have data accurate and full, and you know, as thorough as possible. But I think the opportunity for us to put together these summaries, and then proactively pass that to AI and have it generate some summary
141 00:10:24.490 ⇒ 00:10:28.290 Uttam Kumaran: gives the analysts, or whoever on our team is tasked with
142 00:10:28.570 ⇒ 00:10:30.410 Uttam Kumaran: doing that analyst function.
143 00:10:30.610 ⇒ 00:10:35.640 Uttam Kumaran: I had a head start. What percentage head start? I don’t know. But some head start.
144 00:10:35.900 ⇒ 00:10:45.939 Uttam Kumaran: And then we start to think about okay, they’re at a head start. They know what to look at. Okay, then the second head start is okay. They actually know that they need to look at this, these contributing factors
145 00:10:46.170 ⇒ 00:10:48.640 Uttam Kumaran: the final piece of like. What to do
146 00:10:49.050 ⇒ 00:10:52.139 Uttam Kumaran: I don’t know, but I do think those 1st 2 pieces
147 00:10:52.230 ⇒ 00:10:56.360 Uttam Kumaran: it seems super clear about how we can get there with some sort of system like this.
148 00:10:56.890 ⇒ 00:10:57.460 Uttam Kumaran: and.
149 00:10:57.460 ⇒ 00:11:16.569 Nicolas Sucari: Utam if we work on having like the tables, I mean, and the data in some sort of yeah. Csv, or I don’t know how, how it’s using it here. I think it’s like a string, and then passing a Csv. Can we use like, I think we can set up like a cloud project. Give. Give it a little bit of context
150 00:11:17.064 ⇒ 00:11:26.799 Nicolas Sucari: it won’t produce that kind of dashboard looking nice, but it could provide like a summary on what is the data that we are providing? And where should we focus right.
151 00:11:27.280 ⇒ 00:11:33.200 Uttam Kumaran: Yeah, 100%. I mean, that’s exactly what we do is like every day or every once a week, you basically get.
152 00:11:33.290 ⇒ 00:11:35.500 Uttam Kumaran: hey? These things changed.
153 00:11:36.100 ⇒ 00:11:43.889 Uttam Kumaran: And then the second stage is like these, things change because you should. You may want to look into Xyz for each major change.
154 00:11:43.950 ⇒ 00:11:55.410 Uttam Kumaran: Those are all things that what we would do is basically generate this table. And then it looks like basically, what they did is they took the the whole table, and they created like a Json string that turned
155 00:11:57.800 ⇒ 00:12:03.268 Uttam Kumaran: that turned all the results into like one big Json. That’s probably how we would do it.
156 00:12:03.760 ⇒ 00:12:07.030 Uttam Kumaran: cause. That just makes things a lot easier. And then, yeah, we
157 00:12:07.060 ⇒ 00:12:13.199 Uttam Kumaran: we wouldn’t. I would say we shouldn’t do this via the Ui, we will just actually pass this via
158 00:12:13.480 ⇒ 00:12:14.280 Uttam Kumaran: the Api.
159 00:12:14.300 ⇒ 00:12:15.160 Ryan Luke Daque: Yeah.
160 00:12:15.160 ⇒ 00:12:17.239 Uttam Kumaran: To like an assistant
161 00:12:17.420 ⇒ 00:12:24.299 Uttam Kumaran: right? And so the nice thing about like, if you guys have looked at like, I don’t know if Claude has assistance.
162 00:12:26.550 ⇒ 00:12:27.210 Patrick Trainer: They have
163 00:12:27.390 ⇒ 00:12:30.290 Patrick Trainer: access to tools, but you have to
164 00:12:30.720 ⇒ 00:12:31.370 Patrick Trainer: build it.
165 00:12:31.370 ⇒ 00:12:42.650 Uttam Kumaran: Yeah, then we would just do. We would just use open AI assistance, most likely to give you guys a sense of like, what how to think about assistance. Assistance has access to
166 00:12:44.350 ⇒ 00:13:04.570 Uttam Kumaran: Persistent like prompts. They have assistance to tools, and they have assistance of calling functions right. And so the nice thing is we could call yeah, I mean, and Miguel can totally explain it. Basically, we would. We would have a fixed like analysis assistant. You would have access to execute like
167 00:13:04.740 ⇒ 00:13:18.620 Uttam Kumaran: python code. So it could take that execute more analysis on that. For example, it could call other Apis to get more data and then it would be able to maybe post that to slack. Right? So think of this as like
168 00:13:18.870 ⇒ 00:13:23.030 Uttam Kumaran: we would just call this Api and toss in the Json into here.
169 00:13:23.548 ⇒ 00:13:25.419 Uttam Kumaran: That’s like the 1st
170 00:13:25.690 ⇒ 00:13:27.150 Uttam Kumaran: example of this.
171 00:13:27.920 ⇒ 00:13:29.497 Ryan Luke Daque: Yeah, I think this is fairly
172 00:13:29.840 ⇒ 00:13:33.550 Ryan Luke Daque: similar to what we are already trying to do with the
173 00:13:34.070 ⇒ 00:13:40.169 Ryan Luke Daque: open AI to do like the code reviews. For in Github. But of course, this is a different context, because this is like
174 00:13:40.260 ⇒ 00:13:41.780 Ryan Luke Daque: looking into the data.
175 00:13:41.970 ⇒ 00:13:43.042 Ryan Luke Daque: And I think.
176 00:13:43.520 ⇒ 00:13:47.950 Ryan Luke Daque: like what I’m just like, this is what I’m thinking right now. It’s it’s probably
177 00:13:48.430 ⇒ 00:13:49.770 Ryan Luke Daque: like where we would.
178 00:13:49.890 ⇒ 00:13:52.269 Ryan Luke Daque: The challenge would be is like
179 00:13:52.380 ⇒ 00:13:54.100 Ryan Luke Daque: getting the correct, prompt
180 00:13:56.440 ⇒ 00:14:03.260 Ryan Luke Daque: for the AI to do the analysis and not just giving it enough data that’s not too general and not.
181 00:14:04.270 ⇒ 00:14:05.590 Uttam Kumaran: Well, you know what we do.
182 00:14:05.590 ⇒ 00:14:06.210 Ryan Luke Daque: Enough.
183 00:14:06.210 ⇒ 00:14:11.179 Uttam Kumaran: Like, right? What we would do is like, we have all of our notion documents about the client.
184 00:14:11.360 ⇒ 00:14:18.489 Uttam Kumaran: Right? Yeah. So for every client we’re starting to put together, basically like what the client is
185 00:14:18.560 ⇒ 00:14:26.279 Uttam Kumaran: like, what the projects we’re doing for them. All of that is actually the context, right? The the issue that you know these guys have in their
186 00:14:26.330 ⇒ 00:14:29.910 Uttam Kumaran: in in this is that this is literally
187 00:14:30.330 ⇒ 00:14:31.440 Uttam Kumaran: the prompt.
188 00:14:31.810 ⇒ 00:14:32.560 Ryan Luke Daque: Right.
189 00:14:32.560 ⇒ 00:14:34.310 Uttam Kumaran: That’s not good enough, right?
190 00:14:34.660 ⇒ 00:14:35.460 Ryan Luke Daque: Right.
191 00:14:35.840 ⇒ 00:14:47.309 Uttam Kumaran: This whole process of getting into the AI, and everything is fine like makes a lot of sense. This is something where this is the reason why I really believe you can’t create like a very generic
192 00:14:47.410 ⇒ 00:14:49.270 Uttam Kumaran: AI analyst.
193 00:14:49.430 ⇒ 00:14:55.620 Uttam Kumaran: And it’s where companies like Zen Lytic. I don’t know. Pat, do you know these guys I know. Have you heard of this company?
194 00:14:55.620 ⇒ 00:14:56.370 Patrick Trainer: No.
195 00:14:57.120 ⇒ 00:15:01.589 Uttam Kumaran: I know the founders. Clint introduced me to the founders. They’re they’re doing well.
196 00:15:01.700 ⇒ 00:15:02.690 Uttam Kumaran: but like.
197 00:15:02.920 ⇒ 00:15:03.300 Patrick Trainer: Yeah.
198 00:15:03.300 ⇒ 00:15:03.990 Uttam Kumaran: This is where, like.
199 00:15:03.990 ⇒ 00:15:07.079 Patrick Trainer: I totally agree with you that you can’t make like General.
200 00:15:07.080 ⇒ 00:15:07.890 Ryan Luke Daque: Janice. Yes.
201 00:15:07.890 ⇒ 00:15:10.659 Patrick Trainer: It’s. It’s so context, dependent.
202 00:15:11.040 ⇒ 00:15:11.590 Ryan Luke Daque: Right.
203 00:15:11.590 ⇒ 00:15:12.970 Uttam Kumaran: Yeah, like, like.
204 00:15:12.970 ⇒ 00:15:16.590 Patrick Trainer: Prompting is the hardest part in.
205 00:15:16.590 ⇒ 00:15:17.040 Ryan Luke Daque: Right.
206 00:15:17.040 ⇒ 00:15:18.199 Patrick Trainer: AI, and it’s like.
207 00:15:18.590 ⇒ 00:15:20.599 Patrick Trainer: can’t make that
208 00:15:21.210 ⇒ 00:15:22.550 Patrick Trainer: super general
209 00:15:22.810 ⇒ 00:15:23.679 Patrick Trainer: and like.
210 00:15:23.680 ⇒ 00:15:26.589 Uttam Kumaran: Yeah, I I think, basically the way a lot of these
211 00:15:26.640 ⇒ 00:15:31.559 Uttam Kumaran: these things are competing away at that is you basically need to put in like.
212 00:15:31.820 ⇒ 00:15:57.350 Uttam Kumaran: you basically need to put in context, what is the company? What do they care about? And this is where actually, it all goes back to having amazing documentation is that if all of your tables have great context, if your tables are commented, well, if we have good notion, docs, about what a company does, and what business problems we’re trying to solve. We shove all of that in right
213 00:15:57.610 ⇒ 00:16:06.469 Uttam Kumaran: like that. That is the moat. And that’s why a tool like every AI tool you see now is trying. There’s 2 paths.
214 00:16:06.550 ⇒ 00:16:17.110 Uttam Kumaran: And I can explain, because we’re using all these tools. There’s tools like copy AI or Zen Lytic, where they’re building a general purpose blank
215 00:16:17.150 ⇒ 00:16:19.869 Uttam Kumaran: that they believe can handle
216 00:16:19.950 ⇒ 00:16:22.860 Uttam Kumaran: most of the general use cases
217 00:16:22.870 ⇒ 00:16:30.850 Uttam Kumaran: in a specific sector. Then there’s tools like relevance. There’s tools like gum loop. There’s tools like flow wise, that are builders
218 00:16:31.000 ⇒ 00:16:33.130 Uttam Kumaran: who their opinion is that
219 00:16:33.440 ⇒ 00:16:39.260 Uttam Kumaran: you’re you’re actually you can’t. We’re actually just going to give you the building blocks to do the building.
220 00:16:39.390 ⇒ 00:16:44.580 Uttam Kumaran: and you can put in all the contacts, and you’ll just have the tools to do it right. So instead of having to
221 00:16:45.280 ⇒ 00:16:47.060 Uttam Kumaran: save prompts, they have like
222 00:16:47.100 ⇒ 00:16:59.489 Uttam Kumaran: knowledge bases, instead of having to do the tooling and stuff like that, they have nice tools out of the box. But they allow this building block method, like those are the 2 paradigms right now. And so in our situation.
223 00:17:00.010 ⇒ 00:17:04.460 Uttam Kumaran: these guys. And although I do wish them a lot of luck.
224 00:17:05.210 ⇒ 00:17:18.749 Uttam Kumaran: They are in the business of trying to build a general purpose thing, and so they are, of course, gonna be at odds of allowing all this custom customization. The bad thing is all of the alpha is in the customization.
225 00:17:20.240 ⇒ 00:17:20.810 Uttam Kumaran: you know.
226 00:17:21.180 ⇒ 00:17:26.900 Patrick Trainer: Yeah, it’s like these SQL query builders and these
227 00:17:27.079 ⇒ 00:17:29.910 Patrick Trainer: analysts to ask AI like.
228 00:17:30.670 ⇒ 00:17:47.259 Patrick Trainer: I don’t think like like they’re they’re unimaginative. And like they’re just like, I don’t. I don’t think they’re gonna work. I think it’s people riding on the coat tails of like quick AI trends. And like, what’s this. What’s the simplest thing we can build?
229 00:17:47.300 ⇒ 00:17:52.550 Patrick Trainer: Or they think that this is like in some like, there’s a million of them right.
230 00:17:52.550 ⇒ 00:17:54.809 Uttam Kumaran: Well, they just think this is the way data is done, and.
231 00:17:54.810 ⇒ 00:17:55.150 Patrick Trainer: Yeah, they.
232 00:17:55.150 ⇒ 00:17:57.400 Uttam Kumaran: We, and we do this every day. It’s not how it sucked.
233 00:17:57.400 ⇒ 00:18:01.900 Patrick Trainer: It’s it’s not. And like those sorts of tools are like.
234 00:18:02.510 ⇒ 00:18:05.839 Patrick Trainer: like, you can build your own really quickly. And they’re crap.
235 00:18:05.910 ⇒ 00:18:08.860 Patrick Trainer: And so
236 00:18:09.250 ⇒ 00:18:10.840 Patrick Trainer: it’s, I think.
237 00:18:11.580 ⇒ 00:18:16.190 Patrick Trainer: using or trying to use AI in that way where it’s like.
238 00:18:16.870 ⇒ 00:18:18.540 Patrick Trainer: not a
239 00:18:19.090 ⇒ 00:18:23.030 Patrick Trainer: tool. But instead, ask like a replacement like.
240 00:18:23.130 ⇒ 00:18:28.289 Patrick Trainer: that’s where AI that that’s where it fails like there’s not seeing the like
241 00:18:28.860 ⇒ 00:18:32.193 Patrick Trainer: the value. And what AI actually brings
242 00:18:33.070 ⇒ 00:18:34.579 Patrick Trainer: and that’s the whole like
243 00:18:35.010 ⇒ 00:18:38.159 Patrick Trainer: AI. It’s not going to replace jobs it. It
244 00:18:38.180 ⇒ 00:18:39.640 Patrick Trainer: is going to
245 00:18:40.080 ⇒ 00:18:40.840 Patrick Trainer: like.
246 00:18:41.750 ⇒ 00:18:42.609 Ryan Luke Daque: Enhanced production.
247 00:18:42.610 ⇒ 00:18:43.620 Patrick Trainer: Yeah, yeah.
248 00:18:43.620 ⇒ 00:18:44.150 Ryan Luke Daque: Its product.
249 00:18:44.150 ⇒ 00:18:45.610 Patrick Trainer: Activity. And it’s like
250 00:18:45.660 ⇒ 00:18:49.739 Patrick Trainer: trying to replace an entire analyst is just like it’s.
251 00:18:49.740 ⇒ 00:18:50.620 Uttam Kumaran: Yeah, like, I think.
252 00:18:50.620 ⇒ 00:18:51.569 Patrick Trainer: Make, sense.
253 00:18:51.570 ⇒ 00:18:57.560 Uttam Kumaran: I think all of us on this call, or have the capability of saying, given these like 5 contributing factors.
254 00:18:58.100 ⇒ 00:19:06.039 Uttam Kumaran: tell me what happened. We can go do that. But it’s the work before that. That’s actually like quite taxing. And that’s what we’re trying to kind of like.
255 00:19:06.080 ⇒ 00:19:07.310 Uttam Kumaran: basically
256 00:19:07.715 ⇒ 00:19:11.290 Uttam Kumaran: alleviate in some way. And so that’s why I think, like.
257 00:19:11.520 ⇒ 00:19:16.800 Uttam Kumaran: I think, a lot of the work we’re doing in relevance. I think some of the work we’ll start doing in the assistance. Api.
258 00:19:16.910 ⇒ 00:19:24.719 Uttam Kumaran: We will start to do this, and I think, Ryan, some of the work you started to do on the Chat Gpt side, I think will come in like really handy. But
259 00:19:24.970 ⇒ 00:19:26.999 Uttam Kumaran: I want to give you guys a sense of like
260 00:19:27.550 ⇒ 00:19:29.740 Uttam Kumaran: we’re always going to try
261 00:19:29.830 ⇒ 00:19:34.709 Uttam Kumaran: to use every tool possible, but we will find what works for us.
262 00:19:34.770 ⇒ 00:19:40.450 Uttam Kumaran: And for the most part, after trying a lot of these tools over the past year, it’s seemingly like
263 00:19:40.530 ⇒ 00:19:43.109 Uttam Kumaran: the best situation is to go towards
264 00:19:43.190 ⇒ 00:19:55.800 Uttam Kumaran: the either the most raw, like calling Apis or these like agent builder platforms. Instead of going to like these general purpose tools, not only because these platforms are dirt cheap.
265 00:19:55.990 ⇒ 00:19:56.820 Uttam Kumaran: but
266 00:19:57.110 ⇒ 00:20:01.179 Uttam Kumaran: like Zenlytic and things like that, they’re startups.
267 00:20:01.530 ⇒ 00:20:26.050 Uttam Kumaran: The startups. Their incentives is to pitch you on something that’s gonna change your world and deliver like, absolutely none of that. And so that’s like what their incentive is going to be. And so we want to try to partner with the tools that are actually working and then develop something. Custom to us. Right? I don’t care, actually don’t care. These guys have other customers. I don’t care that they’re solving other problems. I care about our problems squarely.
268 00:20:26.070 ⇒ 00:20:35.900 Uttam Kumaran: And so if it doesn’t work, it doesn’t work. And right, that’s why they don’t even they don’t like. You can get a demo and do all these things. But like I can go on relevance for free and generate a bunch of things.
269 00:20:35.950 ⇒ 00:20:42.569 Uttam Kumaran: I could try the assistance Api for free. And we are an engineering company. We don’t need to wait for these guys to solve our problems.
270 00:20:42.790 ⇒ 00:20:49.749 Uttam Kumaran: Right? Like we’re gonna go, we’ll go make this happen ourselves. And the nice thing is like, we have examples of parts of it working
271 00:20:49.950 ⇒ 00:20:54.279 Uttam Kumaran: where, like, okay, cool, we can see, like, how we can take this to the next level. So that was the
272 00:20:54.540 ⇒ 00:20:58.700 Uttam Kumaran: the kind of big thing I wanted to share. So this is a great article to look at for folks.
273 00:20:59.063 ⇒ 00:21:01.466 Uttam Kumaran: I’ll send. I’ll send this again and
274 00:21:03.130 ⇒ 00:21:06.419 Uttam Kumaran: And I think I might have sent this already in engineering. But
275 00:21:09.320 ⇒ 00:21:10.930 Uttam Kumaran: I’ll send in articles.
276 00:21:15.850 ⇒ 00:21:21.820 Uttam Kumaran: cool, I think. Maybe, Pat, do you want to show the the repo off? I didn’t get a chance to look at it.
277 00:21:21.820 ⇒ 00:21:23.110 Patrick Trainer: Oh, yeah. Yeah.
278 00:21:23.110 ⇒ 00:21:24.559 Uttam Kumaran: Interested for everybody to see.
279 00:21:24.560 ⇒ 00:21:26.260 Patrick Trainer: Yeah, I can do that one.
280 00:21:26.260 ⇒ 00:21:29.859 Uttam Kumaran: And I haven’t played around with the templates. Templated repos before. So.
281 00:21:30.230 ⇒ 00:21:31.339 Patrick Trainer: Okay, yeah.
282 00:21:31.520 ⇒ 00:21:33.090 Patrick Trainer: hold on. Let’s
283 00:21:34.610 ⇒ 00:21:36.929 Patrick Trainer: get my shit up here.
284 00:21:40.110 ⇒ 00:21:41.280 Patrick Trainer: I’ll share soon.
285 00:21:44.030 ⇒ 00:21:52.289 Patrick Trainer: Cool. So basically, like the problem that we were trying to go with with was just like
286 00:21:52.610 ⇒ 00:21:54.040 Patrick Trainer: quickly standing up
287 00:21:54.547 ⇒ 00:21:56.039 Patrick Trainer: like client projects.
288 00:21:56.330 ⇒ 00:21:57.929 Patrick Trainer: So I created this template.
289 00:21:58.210 ⇒ 00:22:06.019 Patrick Trainer: And what we have here like this is just like a a like basic. Read me, that’s just showing our
290 00:22:06.660 ⇒ 00:22:25.369 Patrick Trainer: how everything’s laid out and like every what’s the common denominator of every every project we’re going to have dbt, and I have real and then we’re gonna have like github assets. So like actions, workflows. But then, also every
291 00:22:25.470 ⇒ 00:22:29.349 Patrick Trainer: thing. And Github’s going to have issues as well as poll requests.
292 00:22:29.620 ⇒ 00:22:36.729 Patrick Trainer: And so in that we have templates for those so issues, we have book reports, feature requests and pull request templates.
293 00:22:36.970 ⇒ 00:22:41.330 Patrick Trainer: And so like, we can just see that, like we have this like client name.
294 00:22:41.330 ⇒ 00:22:42.050 Uttam Kumaran: Huge.
295 00:22:42.446 ⇒ 00:22:45.220 Patrick Trainer: We’ve got like just models already built.
296 00:22:45.290 ⇒ 00:22:49.820 Patrick Trainer: just as an example we’ve got like a base
297 00:22:49.940 ⇒ 00:22:51.826 Patrick Trainer: project there.
298 00:22:52.970 ⇒ 00:22:57.319 Patrick Trainer: And some like. Just the the scaffolding for for that
299 00:22:57.620 ⇒ 00:23:02.109 Patrick Trainer: in Brill we have, like our like source, Yaml.
300 00:23:02.130 ⇒ 00:23:04.900 Patrick Trainer: like the Brill Yaml, and just like
301 00:23:05.070 ⇒ 00:23:05.830 Patrick Trainer: the
302 00:23:06.040 ⇒ 00:23:07.290 Patrick Trainer: untitled.
303 00:23:07.490 ⇒ 00:23:12.700 Patrick Trainer: We’ve got models in in the dashboard. These are just empty files.
304 00:23:12.790 ⇒ 00:23:16.059 Patrick Trainer: And then we’ve got like docs of, just like
305 00:23:16.260 ⇒ 00:23:18.240 Patrick Trainer: for basic documentation.
306 00:23:18.290 ⇒ 00:23:21.099 Patrick Trainer: And then you’ll also see that, like each
307 00:23:21.220 ⇒ 00:23:23.570 Patrick Trainer: Directory has its own
308 00:23:23.780 ⇒ 00:23:25.220 Patrick Trainer: like, read me.
309 00:23:25.460 ⇒ 00:23:27.359 Patrick Trainer: and so that
310 00:23:27.540 ⇒ 00:23:34.750 Patrick Trainer: we just keep everything like nice and and clean like workflows. Has a read me actions, has a read me.
311 00:23:34.790 ⇒ 00:23:37.949 Patrick Trainer: and then we’ve got these templates. So the way
312 00:23:38.410 ⇒ 00:23:43.199 Patrick Trainer: you use these templates super super nice, super easy.
313 00:23:43.547 ⇒ 00:23:48.730 Patrick Trainer: What we can do here is like, say you want to come in, you create a new issue.
314 00:23:48.770 ⇒ 00:23:53.179 Patrick Trainer: This, this is going to pop up like, if you have a bug report or a feature request
315 00:23:53.260 ⇒ 00:24:01.659 Patrick Trainer: so like you can click and get started in a bug report. And it’s going to populate like your description. So you can add a bug like this
316 00:24:01.890 ⇒ 00:24:07.860 Patrick Trainer: doesn’t work right? And then you get all this like good stuff of
317 00:24:07.960 ⇒ 00:24:10.099 Patrick Trainer: like what’s already there.
318 00:24:10.230 ⇒ 00:24:12.220 Patrick Trainer: And then you can create that issue.
319 00:24:12.310 ⇒ 00:24:17.310 Patrick Trainer: Do this, and then it applies a bug label automatically.
320 00:24:17.340 ⇒ 00:24:24.420 Patrick Trainer: which is really nice. And then that’s the same thing with like a pull request. So let’s say.
321 00:24:24.430 ⇒ 00:24:26.889 Patrick Trainer: like, we just want to
322 00:24:27.630 ⇒ 00:24:28.840 Patrick Trainer: to like.
323 00:24:29.060 ⇒ 00:24:30.530 Patrick Trainer: create a branch and
324 00:24:32.460 ⇒ 00:24:34.009 Patrick Trainer: actually don’t want to do that.
325 00:24:34.400 ⇒ 00:24:36.000 Patrick Trainer: Let’s.
326 00:24:36.680 ⇒ 00:24:39.140 Patrick Trainer: I’ll just edit the readme real quick.
327 00:24:39.310 ⇒ 00:24:41.429 Patrick Trainer: We’ll edit it in place.
328 00:24:43.650 ⇒ 00:24:44.390 Patrick Trainer: oops.
329 00:24:50.670 ⇒ 00:24:54.249 Patrick Trainer: Hello, world, okay, we’ll do that.
330 00:24:54.270 ⇒ 00:24:56.049 Patrick Trainer: We’ll commit these changes.
331 00:24:56.070 ⇒ 00:24:57.700 Patrick Trainer: create a new branch.
332 00:24:59.110 ⇒ 00:25:00.639 Patrick Trainer: has that change.
333 00:25:02.140 ⇒ 00:25:04.500 Patrick Trainer: and we are going to
334 00:25:06.600 ⇒ 00:25:10.329 Patrick Trainer: create this pull request
335 00:25:11.640 ⇒ 00:25:13.410 Patrick Trainer: and
336 00:25:15.690 ⇒ 00:25:18.339 Patrick Trainer: just kidding it didn’t create from that template
337 00:25:20.550 ⇒ 00:25:22.269 Patrick Trainer: we should have.
338 00:25:23.130 ⇒ 00:25:33.239 Patrick Trainer: I don’t know why that didn’t work out. I’ll I’ll fix that. But we do have these templates for for pull requests and the pull requests. Basically.
339 00:25:33.310 ⇒ 00:25:42.980 Patrick Trainer: we’ve got it. Notes like the type of change describing the changes. It’s just like boilerplate to make things easy on you, and it gives like
340 00:25:43.330 ⇒ 00:25:46.259 Patrick Trainer: checklists. So once we do have
341 00:25:48.440 ⇒ 00:25:57.279 Patrick Trainer: like style guidelines. And it’s it’s just like checklist to to think that like what you should be aware of when doing this.
342 00:25:57.946 ⇒ 00:26:01.754 Patrick Trainer: And so then the way you use this
343 00:26:02.880 ⇒ 00:26:04.869 Patrick Trainer: is like, say.
344 00:26:04.990 ⇒ 00:26:07.210 Patrick Trainer: you’re in your
345 00:26:09.050 ⇒ 00:26:10.460 Patrick Trainer: you’re in your
346 00:26:10.680 ⇒ 00:26:13.879 Patrick Trainer: like terminal here, and you’re wanting to create like a new project.
347 00:26:13.990 ⇒ 00:26:16.520 Patrick Trainer: You’re just going to like
348 00:26:17.740 ⇒ 00:26:19.140 Patrick Trainer: repo, create
349 00:26:19.694 ⇒ 00:26:21.615 Patrick Trainer: and then you’re going to
350 00:26:22.415 ⇒ 00:26:22.750 Ryan Luke Daque: Look.
351 00:26:22.750 ⇒ 00:26:24.489 Patrick Trainer: From like a template.
352 00:26:24.610 ⇒ 00:26:26.209 Patrick Trainer: And then you can do like
353 00:26:26.450 ⇒ 00:26:27.920 Patrick Trainer: there’s just like
354 00:26:28.440 ⇒ 00:26:29.300 Patrick Trainer: new
355 00:26:30.720 ⇒ 00:26:32.470 Patrick Trainer: project, right?
356 00:26:32.740 ⇒ 00:26:33.820 Patrick Trainer: And then
357 00:26:33.960 ⇒ 00:26:35.550 Patrick Trainer: it’s gonna be Brainforge.
358 00:26:36.580 ⇒ 00:26:39.480 Patrick Trainer: And then it’s it’s gonna be private.
359 00:26:40.080 ⇒ 00:26:41.539 Patrick Trainer: And so then we have.
360 00:26:41.540 ⇒ 00:26:42.150 Uttam Kumaran: Nice.
361 00:26:42.150 ⇒ 00:26:44.690 Patrick Trainer: We can have this choosing the template
362 00:26:45.380 ⇒ 00:26:47.170 Patrick Trainer: and
363 00:26:47.430 ⇒ 00:26:48.460 Patrick Trainer: do that.
364 00:26:50.080 ⇒ 00:26:52.160 Patrick Trainer: and then you can clone it locally
365 00:26:52.640 ⇒ 00:26:55.019 Patrick Trainer: and then see the new project.
366 00:26:55.880 ⇒ 00:26:58.909 Patrick Trainer: and see, we already have everything set up here.
367 00:26:59.180 ⇒ 00:26:59.880 Patrick Trainer: So
368 00:27:01.760 ⇒ 00:27:04.860 Patrick Trainer: we got everything set up in that already.
369 00:27:06.820 ⇒ 00:27:09.149 Ryan Luke Daque: That’s absolutely awesome.
370 00:27:09.150 ⇒ 00:27:11.339 Patrick Trainer: Yeah, now, we have Bootstrap.
371 00:27:11.340 ⇒ 00:27:12.020 Ryan Luke Daque: Thing.
372 00:27:12.520 ⇒ 00:27:14.380 Patrick Trainer: Yeah, everything. Our own.
373 00:27:15.810 ⇒ 00:27:16.760 Patrick Trainer: everything.
374 00:27:17.340 ⇒ 00:27:17.980 Ryan Luke Daque: Cool.
375 00:27:21.140 ⇒ 00:27:22.899 Ryan Luke Daque: this is awesome.
376 00:27:23.250 ⇒ 00:27:23.690 Patrick Trainer: Yeah.
377 00:27:23.690 ⇒ 00:27:25.320 Nicolas Sucari: Yeah, it’s great.
378 00:27:25.790 ⇒ 00:27:27.359 Patrick Trainer: And that is that.
379 00:27:27.880 ⇒ 00:27:32.929 Uttam Kumaran: So the the benefit of this is like, as so that kind of the evolution is
380 00:27:33.430 ⇒ 00:27:47.150 Uttam Kumaran: we. We’ve done a couple of Dbt projects right, and we got opinionated about what the project structure should be. We produced our style guide, and then this is actually the application and the enforcement of the style guide
381 00:27:47.330 ⇒ 00:28:03.490 Uttam Kumaran: right and same thing on real same thing on sequel, Fluff. Same thing when we do secret scanning whenever we come up with the style, guide. The problem with style guides is is the enforcement. It’s actually not like the creation of them. And so we’re gonna look for more and more ways
382 00:28:03.600 ⇒ 00:28:20.690 Uttam Kumaran: to like, basically without having to think as a developer, you are using the best practices right? And so even the immediate changes that I know we can make is like we have some great real updates that we make you for pool parts that we can update the real project file with
383 00:28:20.700 ⇒ 00:28:47.170 Uttam Kumaran: for the Dbt project. Once we get a little bit tighter on the schema structures and some of the naming conventions, we can Update the Dbt project file with with those about where things land based on what folder they’re in. So the nice thing is like all those changes we don’t need to go. We just can make there and then that becomes a place to copy from or be like. How do you do that? Oh, go look at the boilerplate repo. It’s all set up. So I’m pumped for that. I think, as we start to use more and more technologies.
384 00:28:48.800 ⇒ 00:28:54.499 Uttam Kumaran: this will get, you know, easier and easier. The other thing. I’ve been playing around today, also playing around with this AI
385 00:28:54.510 ⇒ 00:29:04.651 Uttam Kumaran: local Cli to call Adr, have you? Have you tried that? Pat? Yes, I was using that today for something. Basically, the thing I really enjoyed about it is
386 00:29:06.220 ⇒ 00:29:09.360 Uttam Kumaran: that is probably gonna end up being the way
387 00:29:09.810 ⇒ 00:29:12.119 Uttam Kumaran: you we do development
388 00:29:12.170 ⇒ 00:29:32.319 Uttam Kumaran: in like a cli based environment. Using AI, basically, what you do is it can take in the context of your cli. You pass in files. Tell it for something to do. It will try to do it, modify files, and then it can actually execute commands and then take the outputs of those commands basically starting to do that whole iterative process.
389 00:29:32.540 ⇒ 00:29:35.280 Uttam Kumaran: So that’s probably what we can try
390 00:29:35.610 ⇒ 00:29:38.019 Uttam Kumaran: when we do. For example, if we were to say.
391 00:29:38.430 ⇒ 00:29:42.889 Uttam Kumaran: this is a great example is like what I’m going to probably try to do is take our style, guide.
392 00:29:43.260 ⇒ 00:29:51.659 Uttam Kumaran: open the repo locally, put the style guide into Adr, and say, like, based on the Style guide, are there any other updates I can make to my Dbt project
393 00:29:51.950 ⇒ 00:29:55.220 Uttam Kumaran: Yaml file that can enforce the schema structure?
394 00:29:55.340 ⇒ 00:29:59.399 Uttam Kumaran: How else would I do this? Well, okay, I gotta go look at the Dbt docs, and remember, like.
395 00:29:59.490 ⇒ 00:30:03.729 Uttam Kumaran: how I can do the based on the folder. You append this thing
396 00:30:03.740 ⇒ 00:30:18.810 Uttam Kumaran: right? That maybe takes like 30 min. And then I get distracted. Anyways. So it’s like, I’m just gonna try to do that with AI. And then I also saw that you can actually have it pull files from websites. So if I were to even give it the docs and say, probably, look here for the docs.
397 00:30:19.389 ⇒ 00:30:22.349 Uttam Kumaran: That’s 1 way. The other way, too, is like
398 00:30:22.430 ⇒ 00:30:33.557 Uttam Kumaran: the other way I’ve been using. Let’s say I want to interact with like a website or a document. I’ve been trying to use perplexity because I could actually just put in the URL and put in the
399 00:30:34.260 ⇒ 00:30:35.720 Uttam Kumaran: put in the
400 00:30:36.880 ⇒ 00:30:38.079 Uttam Kumaran: question I have.
401 00:30:38.150 ⇒ 00:30:44.999 Uttam Kumaran: and the last thing is, it looks like adr has a playwright. Integration playwright is a scripting engine.
402 00:30:45.070 ⇒ 00:30:46.360 Uttam Kumaran: and it looks like
403 00:30:46.650 ⇒ 00:30:49.369 Uttam Kumaran: if I just can get us a playwright Api key.
404 00:30:49.380 ⇒ 00:30:54.489 Uttam Kumaran: we can use that to pull stuff locally. So that’s like that would be the flow. Basically to update that, you know.
405 00:30:57.680 ⇒ 00:31:05.864 Uttam Kumaran: So cool. I mean, I think the test for this is, I’m gonna I’m just gonna I’m actually gonna ask Brian right now to just use that for the Javi coffee stuff.
406 00:31:07.410 ⇒ 00:31:08.270 Uttam Kumaran: so
407 00:31:08.740 ⇒ 00:31:11.119 Uttam Kumaran: that’s amazing. I think that’s dope.
408 00:31:11.120 ⇒ 00:31:12.239 Ryan Luke Daque: It’s yeah.
409 00:31:12.890 ⇒ 00:31:15.529 Ryan Luke Daque: Thanks for that, Patrick. That’s that was great.
410 00:31:16.240 ⇒ 00:31:17.100 Patrick Trainer: Yeah, of course.
411 00:31:18.330 ⇒ 00:31:26.489 Ryan Luke Daque: Can we like? Maybe add, I just noticed, like in the pr checklist, can we probably add a review? We’re a checklist as well, or something.
412 00:31:26.490 ⇒ 00:31:34.910 Patrick Trainer: Yeah, yeah, we can. I mean, we can change it. However, we want like, there’s definitely stuff in there. That’s like, we probably don’t
413 00:31:35.000 ⇒ 00:31:36.839 Patrick Trainer: need like it
414 00:31:37.300 ⇒ 00:31:46.870 Patrick Trainer: like we can make it as strict or as like lenient as as we want, and just fit it directly to our needs. As it is right now, it’s just kind of like, a.
415 00:31:48.610 ⇒ 00:31:52.840 Patrick Trainer: yeah, it’s just yeah. More boilerplate like, generic type. Template?
416 00:31:55.190 ⇒ 00:31:55.880 Patrick Trainer: but
417 00:31:56.420 ⇒ 00:31:58.409 Patrick Trainer: yeah, yeah, yeah, yeah.
418 00:31:58.410 ⇒ 00:31:59.020 Ryan Luke Daque: Cool.
419 00:32:00.250 ⇒ 00:32:00.780 Ryan Luke Daque: Yeah.
420 00:32:00.780 ⇒ 00:32:09.323 Patrick Trainer: And then we can hook it into as well as like as it creates like issues. And like tags. The
421 00:32:10.770 ⇒ 00:32:14.619 Patrick Trainer: what do they call it labels, and all, all of that
422 00:32:14.820 ⇒ 00:32:18.669 Patrick Trainer: have that kick off different workflows, and so we can get pretty fancy with it.
423 00:32:19.930 ⇒ 00:32:20.330 Ryan Luke Daque: I.
424 00:32:22.380 ⇒ 00:32:29.523 Uttam Kumaran: Oh, I think 2 other things to kind of get through today. One, I think, Nico, maybe you want to give a like a 2 min explainer on the
425 00:32:30.040 ⇒ 00:32:32.830 Uttam Kumaran: the Vitacoco project for
426 00:32:33.320 ⇒ 00:32:34.999 Uttam Kumaran: I know Anne’s on the call.
427 00:32:35.000 ⇒ 00:32:36.140 Patrick Trainer: Coconut, water.
428 00:32:36.510 ⇒ 00:32:36.860 Uttam Kumaran: Yeah.
429 00:32:36.860 ⇒ 00:32:37.500 Nicolas Sucari: Yeah.
430 00:32:37.500 ⇒ 00:32:39.950 Patrick Trainer: Okay, I drink that stuff all the time.
431 00:32:39.950 ⇒ 00:32:50.469 Uttam Kumaran: Yeah, yeah. So I’ll cut it. I guess I’ll let. I’ll let Nico talk about the project, and then I can tell you kind of like how we ended up getting it kind of like what the vision is there. But yeah.
432 00:32:51.110 ⇒ 00:33:12.060 Nicolas Sucari: So the the goal there is they are having an issue that they don’t know where would when they are getting out of stock in the different target stores. So what we’re trying to do is to scrape the different target pages with with the different stores for a certain product and see if we if they got, though, that product in store
433 00:33:12.396 ⇒ 00:33:34.580 Nicolas Sucari: and if they don’t have that product in stock, we can let that know to the to be that by the coco people, and they can restock to to the target stores. Okay, what we are doing there. It’s a flow that Miguel created on Browser Base that we are scraping the different stores by Zip code. We are checking each of different stores
434 00:33:34.982 ⇒ 00:33:44.839 Nicolas Sucari: and checking for a certain product and see if the page has the add to cart button, visible or available. And if that is okay, we just
435 00:33:44.930 ⇒ 00:34:02.230 Nicolas Sucari: get a message that the product is in stock, and if we don’t see that button we say that we are out of stock, and we just register every time we run that script, so that we know if we have the product in stock or out of stock in each of the different stores.
436 00:34:02.606 ⇒ 00:34:16.109 Nicolas Sucari: Yeah. The output right now is like a spreadsheet. We’re getting just a file with the the name of the store. The link of each of the different stores. And if we got this, the the product on stock or not.
437 00:34:16.421 ⇒ 00:34:33.259 Nicolas Sucari: But yeah, the idea is to scale it for more stores and more products at some point. So yeah, the the flow is is going is working. We are testing it with only one product right now, and some stores. But we are all already receiving that that message. And yeah, it’s something
438 00:34:33.389 ⇒ 00:34:49.979 Nicolas Sucari: great that we are gathering like new data on something that target is not providing. And this is like you super useful data for the clients so that they can know when or or how frequent is that is, their product being sold at each of the different stores.
439 00:34:51.110 ⇒ 00:34:53.879 Patrick Trainer: So Target doesn’t provide their vendors
440 00:34:53.920 ⇒ 00:34:55.889 Patrick Trainer: with their stock information.
441 00:34:57.943 ⇒ 00:35:12.780 Nicolas Sucari: I think I like we. We don’t know if if target is providing that information to the clients, but they don’t give any information on, on, on, on the clients. That’s what I understood from our meeting yesterday. Uta. But
442 00:35:13.096 ⇒ 00:35:33.980 Nicolas Sucari: yeah, I mean, I I think. They they at some point they will send some information on, how is the stock on each of the different stores? But they don’t get that information like in a daily basis. Right? So the idea is to run the script daily so that they can know how their their product is selling in each of the different places.
443 00:35:34.840 ⇒ 00:35:37.559 Uttam Kumaran: Yeah. So we’re waiting on a, we’re waiting on a couple more.
444 00:35:37.650 ⇒ 00:35:42.810 Uttam Kumaran: Yeah, we’re waiting on a couple of more specific details. About like what their
445 00:35:43.000 ⇒ 00:35:50.479 Uttam Kumaran: current processes. But basically what we learned is they’re they’re they’re not getting in a timely manner or at all.
446 00:35:50.680 ⇒ 00:35:53.299 Uttam Kumaran: When these stores are running out of stock.
447 00:35:53.300 ⇒ 00:35:54.549 Patrick Trainer: Right? Which so.
448 00:35:54.550 ⇒ 00:35:55.209 Uttam Kumaran: Basically it’s like.
449 00:35:55.210 ⇒ 00:36:00.380 Patrick Trainer: Having to like literally send a like a rep to each store.
450 00:36:00.550 ⇒ 00:36:09.059 Uttam Kumaran: Well, what they do now is they have someone. They have someone go online and look to see if it’s in stock, as like from the consumer, facing side.
451 00:36:09.060 ⇒ 00:36:11.450 Patrick Trainer: That’s absolutely insane.
452 00:36:11.450 ⇒ 00:36:11.970 Uttam Kumaran: Yeah.
453 00:36:11.970 ⇒ 00:36:13.379 Patrick Trainer: It’s like there’s a
454 00:36:13.790 ⇒ 00:36:23.080 Patrick Trainer: well shit that makes a lot of sense like. So there’s like one of the grocery stores here is called Rouse’s right, and there’s a ton of rouse’s all over
455 00:36:23.840 ⇒ 00:36:27.250 Patrick Trainer: like Louisiana, Alabama, Florida.
456 00:36:27.380 ⇒ 00:36:31.759 Patrick Trainer: and they sell the Vitacoco stuff, and like a lot of the times like they’re out
457 00:36:31.920 ⇒ 00:36:32.490 Patrick Trainer: and.
458 00:36:32.490 ⇒ 00:36:33.130 Uttam Kumaran: Yeah.
459 00:36:33.130 ⇒ 00:36:34.300 Patrick Trainer: And so
460 00:36:35.230 ⇒ 00:36:38.579 Patrick Trainer: I’m guessing it’s like either up to
461 00:36:38.600 ⇒ 00:36:40.980 Patrick Trainer: rouses to order from them.
462 00:36:41.150 ⇒ 00:36:42.220 Patrick Trainer: or
463 00:36:42.770 ⇒ 00:36:44.730 Patrick Trainer: like that.
464 00:36:45.240 ⇒ 00:36:48.790 Patrick Trainer: That’s absolutely mind blowing to me. It’s like you.
465 00:36:48.790 ⇒ 00:36:49.580 Uttam Kumaran: Yeah. The.
466 00:36:49.580 ⇒ 00:36:52.249 Patrick Trainer: Order online on, rouse’s like you can on target.
467 00:36:52.390 ⇒ 00:36:54.790 Patrick Trainer: And so, like, I’m wondering like.
468 00:36:55.110 ⇒ 00:37:00.180 Patrick Trainer: is it it? They’re literally have, like no visibility into how their product is selling.
469 00:37:00.180 ⇒ 00:37:11.180 Uttam Kumaran: Well, here’s what here’s like. What I explained the to to Nico and the guys yesterday is like the retailers have all the leverage in the situation. Meaning they make
470 00:37:11.220 ⇒ 00:37:13.749 Uttam Kumaran: getting into retail as like a
471 00:37:13.800 ⇒ 00:37:23.800 Uttam Kumaran: Cpg is like the Holy Grail, because what do you get? You get large, predictable, pos like people. They buy a ton of your product.
472 00:37:23.820 ⇒ 00:37:26.500 Uttam Kumaran: It gets out good mass distribution.
473 00:37:26.760 ⇒ 00:37:28.610 Uttam Kumaran: and they like
474 00:37:28.670 ⇒ 00:37:33.839 Uttam Kumaran: order again and again and again. The problem is, there’s you don’t own the customer at all.
475 00:37:34.010 ⇒ 00:37:45.440 Uttam Kumaran: and you have no understanding of like is your product in the right part of the shelf? Is it displayed properly like, who’s buying it? When are people buying it? Are we out? Because not not only do
476 00:37:45.500 ⇒ 00:37:50.179 Uttam Kumaran: do they not want to provide that data, they probably don’t even have the data to be quite honest.
477 00:37:50.230 ⇒ 00:37:52.670 Uttam Kumaran: Right? And so the nice thing is in target
478 00:37:52.820 ⇒ 00:37:58.500 Uttam Kumaran: target, I guess, has this customer facing side, and I’ve used it before to see whether something is in stock.
479 00:37:58.630 ⇒ 00:38:02.410 Uttam Kumaran: But for Vitacoco, this huge public company
480 00:38:02.440 ⇒ 00:38:07.749 Uttam Kumaran: like Cpg. Company, they don’t have an understanding from target. Whether their product is there or not?
481 00:38:08.338 ⇒ 00:38:11.689 Uttam Kumaran: And they’re having staff go online
482 00:38:11.770 ⇒ 00:38:19.229 Uttam Kumaran: randomly and look at if it’s in stock at certain stores. And they said, There’s there’s about 2,000 stores they need to look at every day.
483 00:38:20.020 ⇒ 00:38:35.320 Uttam Kumaran: and they’re they’re they’re they’re asked for us was like, Can you look at every single store for this one product every day and give us a Csv file of whether it’s in stock or not. I was like, we’ll do you one better. Well, we can do that every day, and we’ll tell you when it went on stock.
484 00:38:35.530 ⇒ 00:38:36.630 Uttam Kumaran: And then
485 00:38:36.700 ⇒ 00:38:42.900 Uttam Kumaran: again, what is our goal? Our goal is, say, like, do you need this for other retailers? You need this for other products so immediately.
486 00:38:43.180 ⇒ 00:38:45.359 Uttam Kumaran: The one thing that I you know it’s been
487 00:38:45.680 ⇒ 00:38:56.849 Uttam Kumaran: Miguel has been leading on that is like we immediately were like, cool. What are different tools like playwright, like browser base that are actually headless browsers. So browser base is a headless browser tool. Basically.
488 00:38:57.150 ⇒ 00:39:14.679 Uttam Kumaran: their site is heavy. React. So it’s not HTML, you can’t just go. The components have to generate on the fly, and we have to interact with the browser like we have to go type in a Zip code, then wait for the results to render. Then get the HTML so browser base. We got a demo from them last week.
489 00:39:14.945 ⇒ 00:39:21.589 Uttam Kumaran: That was really good. There’s a couple of other headless browser tools, and so it’s nice. We’ve had fun like scraping, using some of these new
490 00:39:21.800 ⇒ 00:39:22.902 Uttam Kumaran: sort of I’ll
491 00:39:23.420 ⇒ 00:39:29.550 Uttam Kumaran: or new, like, kind of headless browser. Some are AI powered, some aren’t. But yeah, it’s been. It’s been interesting. So
492 00:39:30.160 ⇒ 00:39:31.130 Uttam Kumaran: and
493 00:39:31.720 ⇒ 00:39:34.709 Uttam Kumaran: so, yeah, that’s the kind of stuff on the Vitacoco side.
494 00:39:34.810 ⇒ 00:39:40.670 Uttam Kumaran: And then I think the last thing I think Anne’s on, and I don’t know if you have any website updates or anything you
495 00:39:40.780 ⇒ 00:39:45.175 Uttam Kumaran: want to share with the team. I saw you shared with me a figma project. But
496 00:39:45.640 ⇒ 00:39:47.220 Uttam Kumaran: let me know if there’s anything else.
497 00:39:50.732 ⇒ 00:39:53.397 Anne Narido: Hi, guys. So for now,
498 00:39:54.450 ⇒ 00:39:57.730 Anne Narido: I just fixed the folders in Figma
499 00:39:59.150 ⇒ 00:40:00.280 Anne Narido: cause
500 00:40:00.650 ⇒ 00:40:03.369 Anne Narido: the file that you have sent or were the
501 00:40:03.410 ⇒ 00:40:06.219 Anne Narido: website is is, I don’t know if
502 00:40:07.840 ⇒ 00:40:12.430 Anne Narido: it’s in your private folder, but I’m not seeing it in the
503 00:40:12.980 ⇒ 00:40:18.549 Anne Narido: reinforge. A folder in Figma. So I move things around. And then.
504 00:40:19.275 ⇒ 00:40:20.730 Anne Narido: we talk about
505 00:40:21.140 ⇒ 00:40:24.090 Anne Narido: the design system en GB.
506 00:40:25.530 ⇒ 00:40:31.879 Anne Narido: So we’re going to fix it. But still adopting the fun styles in the website
507 00:40:32.623 ⇒ 00:40:36.167 Anne Narido: same. But just we’re just going to
508 00:40:37.060 ⇒ 00:40:38.420 Anne Narido: separate them.
509 00:40:40.800 ⇒ 00:40:41.593 Uttam Kumaran: Cool. Okay.
510 00:40:44.610 ⇒ 00:40:47.240 Uttam Kumaran: okay, cool. And then I just sent. I just sent one.
511 00:40:47.570 ⇒ 00:40:52.630 Uttam Kumaran: I just sent one thing on the website slack about that one page having, like
512 00:40:53.401 ⇒ 00:40:56.289 Uttam Kumaran: old text that maybe we should get rid of.
513 00:40:57.740 ⇒ 00:41:07.790 Nicolas Sucari: Yeah, it’s a it’s a template that we had there on blog post, so we can delete it from the Cms. Maybe we can ask Jp. To do it, or we can do it awesome. I can go there and just delete it.
514 00:41:08.870 ⇒ 00:41:09.600 Uttam Kumaran: Okay.
515 00:41:11.380 ⇒ 00:41:12.100 Uttam Kumaran: Yep.
516 00:41:13.900 ⇒ 00:41:16.139 Uttam Kumaran: okay, cool. I think that might be it.
517 00:41:16.190 ⇒ 00:41:20.560 Uttam Kumaran: For today. I know we covered a bunch of stuff. Anything else we wanted to chat about.
518 00:41:23.180 ⇒ 00:41:50.369 Nicolas Sucari: Something. So updates on Javi coffee, maybe we are having the meeting today, and we’re gonna show the notion page that we are creating for them. We already created a template for new clients, too, as we have the repo. Maybe we can include a guide on of how to create that, or how to use that repo template on the onboarding document for new clients with them. And also the template for new clients on notion like the actual share
519 00:41:50.370 ⇒ 00:42:06.209 Nicolas Sucari: shared page that we are using with clients so that’s already working. And when we got new clients we’re gonna start using it. Each client has, like a personalization, we try to add like a banner image, and like their logo. So they
520 00:42:06.360 ⇒ 00:42:08.880 Nicolas Sucari: so they look at that page and
521 00:42:08.920 ⇒ 00:42:21.669 Nicolas Sucari: feel that is kind of theirs. And all of the information that we’re working is there? So yeah, we are still trying out with with the new clients and see if we need to change more stuff. But it’s it’s it’s there. And working.
522 00:42:22.710 ⇒ 00:42:23.690 Uttam Kumaran: Cool.
523 00:42:27.010 ⇒ 00:42:28.834 Uttam Kumaran: Okay, great, I think.
524 00:42:30.040 ⇒ 00:42:38.890 Uttam Kumaran: yeah, I think if there’s anything else, let me know. I think me and Pat are meeting later to kind of start on this like 1st week onboarding, Doc, so we’ll kind of get started there.
525 00:42:39.300 ⇒ 00:42:45.420 Uttam Kumaran: And then I think otherwise, I think, Ryan, you’re mainly working on stuff for pool parts.
526 00:42:48.400 ⇒ 00:42:55.989 Uttam Kumaran: yeah, I’ll be available, like probably more after like 3 o’clock, if anyone wants to chat. But otherwise we’ll talk in slack.
527 00:42:57.790 ⇒ 00:42:58.830 Patrick Trainer: Tweet to y’all.
528 00:42:59.090 ⇒ 00:42:59.649 Uttam Kumaran: Thanks guys.
529 00:42:59.650 ⇒ 00:43:00.130 Ryan Luke Daque: It’s good.
530 00:43:00.130 ⇒ 00:43:00.450 Uttam Kumaran: Thanks it.
531 00:43:00.450 ⇒ 00:43:00.990 Ryan Luke Daque: Thanks. Everyone.
532 00:43:00.990 ⇒ 00:43:02.229 Nicolas Sucari: Guys. Bye-bye.