Meeting Title: Sprint Review: AI Team Date: 2025-10-10 Meeting participants: Casie Aviles, Samuel Roberts, Rico Rejoso, Uttam Kumaran, Mustafa Raja
WEBVTT
1 00:00:23.650 ⇒ 00:00:24.610 Samuel Roberts: Hey, Casey.
2 00:00:26.840 ⇒ 00:00:28.389 Casie Aviles: Hey. Hey, Sean.
3 00:00:29.530 ⇒ 00:00:30.739 Samuel Roberts: How’s your day been?
4 00:00:32.400 ⇒ 00:00:35.139 Casie Aviles: Yeah, doing good. I’m just…
5 00:00:35.400 ⇒ 00:00:40.960 Casie Aviles: You know, I messaged you earlier, I was getting into the repo now.
6 00:00:40.960 ⇒ 00:00:41.720 Samuel Roberts: Yeah.
7 00:00:42.550 ⇒ 00:00:44.149 Casie Aviles: So, yeah.
8 00:00:45.420 ⇒ 00:00:45.990 Samuel Roberts: Cool.
9 00:00:49.740 ⇒ 00:00:55.920 Samuel Roberts: Yeah, let me know if you have any questions about anything. Hersha should be pretty helpful.
10 00:00:56.020 ⇒ 00:00:58.910 Samuel Roberts: Because it’s a NextApp, and it knows NextApps pretty well.
11 00:00:59.430 ⇒ 00:01:00.460 Casie Aviles: Yeah, of course.
12 00:01:01.010 ⇒ 00:01:07.509 Samuel Roberts: But there’s some, like… I was showing Utom some stuff earlier, yesterday, I think, when he was trying to do some stuff as well.
13 00:01:07.740 ⇒ 00:01:16.010 Samuel Roberts: And I really, like… It’s… it’s all migrated pretty much directly as possible from the old Front end.
14 00:01:16.300 ⇒ 00:01:17.370 Casie Aviles: Okay, yeah.
15 00:01:18.290 ⇒ 00:01:19.719 Samuel Roberts: So, it’s not…
16 00:01:20.230 ⇒ 00:01:30.560 Samuel Roberts: necessarily the most well-organized. Like, I think there’s a lot we can do for, like, componentizing stuff and reusing pieces, because it’s very… I think it’s been built very ad hoc, as needed, you know?
17 00:01:30.650 ⇒ 00:01:31.739 Casie Aviles: Yeah. So…
18 00:01:31.920 ⇒ 00:01:43.229 Samuel Roberts: Just a warning, there’ll be pieces all over the place that do probably similar things and stuff, so if you’re, you know, making functions that need to be used in multiple places, there’s a utils folder you can use to put stuff in.
19 00:01:44.170 ⇒ 00:01:45.530 Casie Aviles: Oh, okay, yeah.
20 00:01:45.530 ⇒ 00:01:47.140 Samuel Roberts: And then… Yeah.
21 00:01:47.370 ⇒ 00:01:51.709 Samuel Roberts: Yeah, I’m just trying to… I wanna… I mean, this is a bigger project where I probably need to…
22 00:01:52.160 ⇒ 00:01:54.730 Samuel Roberts: Map out a little bit of what can be
23 00:01:54.920 ⇒ 00:02:00.520 Samuel Roberts: standardized a bit better, but I just want to give you a heads up before you jump in, because…
24 00:02:00.790 ⇒ 00:02:05.269 Samuel Roberts: It’s… It’s not the… you know, it’s not the worst code, but it’s not the,
25 00:02:05.880 ⇒ 00:02:09.520 Samuel Roberts: Cleanest repository in general, so just heads up that way.
26 00:02:09.759 ⇒ 00:02:13.919 Samuel Roberts: Yeah, that’s totally fine. Courser’s been helpful, you know, I just…
27 00:02:13.939 ⇒ 00:02:15.999 Casie Aviles: Ask high-level questions, like.
28 00:02:16.000 ⇒ 00:02:16.769 Samuel Roberts: Exactly, yeah.
29 00:02:16.770 ⇒ 00:02:19.169 Casie Aviles: Okay, what, what, what do I… which…
30 00:02:19.290 ⇒ 00:02:23.229 Casie Aviles: file do I go to to edit this or to make this change? And I just ask.
31 00:02:23.230 ⇒ 00:02:23.630 Samuel Roberts: Yeah.
32 00:02:23.630 ⇒ 00:02:24.380 Casie Aviles: like that.
33 00:02:24.790 ⇒ 00:02:30.429 Samuel Roberts: Yeah, and the next JS docs will be helpful as well, to see, like, the file structure and stuff that gets used.
34 00:02:31.970 ⇒ 00:02:36.089 Samuel Roberts: Yeah. But yeah, Cursor… Cursor has all that, so we should be good.
35 00:02:38.790 ⇒ 00:02:39.540 Samuel Roberts: Cool.
36 00:02:39.900 ⇒ 00:02:41.259 Samuel Roberts: Here we go, hey, Tom.
37 00:02:41.810 ⇒ 00:02:42.680 Uttam Kumaran: Ayy.
38 00:02:45.620 ⇒ 00:02:46.200 Mustafa Raja: Hey.
39 00:02:47.920 ⇒ 00:02:48.970 Samuel Roberts: No.
40 00:02:59.450 ⇒ 00:03:03.800 Rico Rejoso: Yeah, so, I… Sprint Review, we’re just here to…
41 00:03:04.100 ⇒ 00:03:08.100 Rico Rejoso: Go over the tickets that we’ve gone through the sprint.
42 00:03:08.240 ⇒ 00:03:12.929 Rico Rejoso: And especially this completed one. Maybe, Sam, you can leave this one.
43 00:03:16.920 ⇒ 00:03:24.710 Samuel Roberts: Let me get, in your up into this… Oh, internet. Excuse me.
44 00:03:27.550 ⇒ 00:03:29.609 Samuel Roberts: Let me show the linear real quick.
45 00:03:37.540 ⇒ 00:03:45.919 Samuel Roberts: Okay, so… What did we complete? We got that spam tracker…
46 00:03:47.010 ⇒ 00:03:50.109 Samuel Roberts: Uten, didn’t you say there was something else there that wasn’t working?
47 00:03:50.410 ⇒ 00:03:54.070 Uttam Kumaran: No, this is working fine. I just need to add one more step that actually just, like.
48 00:03:54.070 ⇒ 00:03:55.050 Samuel Roberts: That’s what it was.
49 00:03:55.050 ⇒ 00:03:57.100 Uttam Kumaran: box, but I’ll handle that.
50 00:03:57.310 ⇒ 00:04:03.480 Samuel Roberts: Cool, okay, I wasn’t sure if that was there or not. This, got… Done.
51 00:04:06.360 ⇒ 00:04:13.489 Samuel Roberts: I’m now moving on further stuff with this, but I have some questions about that we’ll get to. But this is obviously
52 00:04:13.700 ⇒ 00:04:16.690 Samuel Roberts: Done and in place, and then we’re gonna give some feedback on…
53 00:04:16.980 ⇒ 00:04:25.880 Samuel Roberts: on the UI now, and I’m adding a couple other tickets, but this is… titles and descriptions, like, a metadata table got created, and everything there is good.
54 00:04:26.090 ⇒ 00:04:29.630 Samuel Roberts: So… I’m good there, backfilling.
55 00:04:29.880 ⇒ 00:04:31.699 Samuel Roberts: This got taken care of as well.
56 00:04:32.870 ⇒ 00:04:41.865 Samuel Roberts: So I believe… yeah, there’s the Turbo Potter link. I believe this is now related to…
57 00:04:44.220 ⇒ 00:04:45.480 Samuel Roberts: Did we…
58 00:04:45.910 ⇒ 00:04:47.849 Mustafa Raja: It’s an internal review.
59 00:04:48.670 ⇒ 00:04:54.869 Samuel Roberts: Oh, thank you, I’m looking down there, yeah. So yeah, so now that enables this, which there is a PR for.
60 00:04:55.370 ⇒ 00:05:00.429 Mustafa Raja: and a review app also. I’ve posted those in…
61 00:05:00.460 ⇒ 00:05:02.300 Samuel Roberts: AI channel.
62 00:05:02.840 ⇒ 00:05:06.590 Samuel Roberts: Okay. Yeah, I have not gotten a chance to look at that yet, but,
63 00:05:06.900 ⇒ 00:05:09.079 Samuel Roberts: Did these things get addressed?
64 00:05:10.530 ⇒ 00:05:11.210 Mustafa Raja: Yeah.
65 00:05:11.860 ⇒ 00:05:12.740 Samuel Roberts: Okay, cool.
66 00:05:13.650 ⇒ 00:05:15.669 Mustafa Raja: The last point didn’t…
67 00:05:17.700 ⇒ 00:05:20.870 Samuel Roberts: I mean, so how is the… how are these working now, then?
68 00:05:21.090 ⇒ 00:05:40.460 Mustafa Raja: Yeah, so, so, we had filters for participants and for dates also, and those are now working. Those were previously not working because, it was only searching through content, and now it’s, looking for other fields. Also.
69 00:05:40.460 ⇒ 00:05:41.130 Samuel Roberts: Okay.
70 00:05:41.130 ⇒ 00:05:43.419 Mustafa Raja: And… yeah.
71 00:05:43.590 ⇒ 00:05:44.850 Mustafa Raja: So this should be good.
72 00:05:45.610 ⇒ 00:05:46.180 Samuel Roberts: Okay.
73 00:05:46.610 ⇒ 00:05:48.880 Samuel Roberts: Yeah, I’ll try to get a chance to look at it later.
74 00:05:49.070 ⇒ 00:05:50.240 Samuel Roberts: Then right here.
75 00:05:50.240 ⇒ 00:05:53.110 Mustafa Raja: Let me know if anything changed wrong.
76 00:05:53.110 ⇒ 00:05:55.619 Samuel Roberts: Yeah. I was gonna say, Utam, do you want to check that out, too?
77 00:05:55.730 ⇒ 00:05:57.240 Samuel Roberts: And then we can push it to done.
78 00:05:57.890 ⇒ 00:06:02.670 Uttam Kumaran: Yeah. Yeah, if we can… if we… I mean, we can review it right now, or whatever.
79 00:06:03.000 ⇒ 00:06:08.060 Samuel Roberts: Yeah, that’s what’s not. I was just going to go through the tickets first, but we can definitely review that, save that for after, if you want.
80 00:06:08.230 ⇒ 00:06:12.670 Samuel Roberts: And then, I just want to go through, in progress.
81 00:06:13.480 ⇒ 00:06:16.689 Samuel Roberts: Still working the multiple meetings.
82 00:06:17.110 ⇒ 00:06:21.719 Samuel Roberts: Casey, you just got access, right, for the NVARs and stuff?
83 00:06:22.390 ⇒ 00:06:25.099 Casie Aviles: Yeah, I’m actually… it right now.
84 00:06:25.780 ⇒ 00:06:26.450 Samuel Roberts: Cool.
85 00:06:26.450 ⇒ 00:06:27.219 Casie Aviles: I’m gonna do it.
86 00:06:28.430 ⇒ 00:06:33.399 Samuel Roberts: And then I’ve got… oh, let’s see. How is the departments going?
87 00:06:33.400 ⇒ 00:06:37.020 Mustafa Raja: Yeah, I’m working on insomnia right now, so,
88 00:06:37.260 ⇒ 00:06:39.400 Mustafa Raja: I’ll look into this today, though.
89 00:06:40.610 ⇒ 00:06:43.719 Samuel Roberts: Okay, do you think this’ll get done today, though?
90 00:06:45.810 ⇒ 00:07:01.329 Mustafa Raja: Yeah, the UI parts, might be, there’s two parts to it, right? One is to get the UI going, and the other one is to be able to classify the meetings. I have to update Superbase 2, according to the new departments and…
91 00:07:01.330 ⇒ 00:07:10.809 Mustafa Raja: people, because I don’t think that, that we have appropriate people in, in Superbase anymore. It wasn’t really updated anywhere, so…
92 00:07:11.030 ⇒ 00:07:15.070 Mustafa Raja: The structure, I need to look into how it is laid out in Japanese.
93 00:07:15.240 ⇒ 00:07:22.699 Mustafa Raja: And then, after that, I’ll have two.
94 00:07:22.940 ⇒ 00:07:29.820 Mustafa Raja: update the Zoom Summarizer workflow to include a department ID.
95 00:07:30.970 ⇒ 00:07:43.329 Samuel Roberts: Okay. Yeah, I would say focus on that. Like, the people… the departments obviously need to get updated. The people… I have a spike, I think, for next cycle, hopefully, to figure out Google syncing all that.
96 00:07:43.740 ⇒ 00:07:49.250 Samuel Roberts: So I wouldn’t go too deep into, like, the people’s table yet.
97 00:07:49.250 ⇒ 00:07:53.630 Mustafa Raja: Yeah, but all of that… all of that is necessary… Yeah, but it’s.
98 00:07:53.630 ⇒ 00:07:56.789 Uttam Kumaran: Isn’t the basics here just, like, map?
99 00:07:57.740 ⇒ 00:08:08.330 Uttam Kumaran: Yeah, I guess, like, this seems like we’re overcomplicating, right? Like, can’t we just look at, like, who… it’ll take you 10 seconds to make sure that Superbase and the people… we’re only 15 people, so that’s, like, 10 seconds of work.
100 00:08:08.330 ⇒ 00:08:09.600 Samuel Roberts: That’s true, that’s true, yeah.
101 00:08:09.600 ⇒ 00:08:10.350 Mustafa Raja: Yeah.
102 00:08:10.350 ⇒ 00:08:10.880 Uttam Kumaran: So…
103 00:08:10.880 ⇒ 00:08:11.800 Samuel Roberts: Yeah, you’re right, you’re right.
104 00:08:11.800 ⇒ 00:08:14.320 Uttam Kumaran: What if someone is in the participants?
105 00:08:14.320 ⇒ 00:08:14.700 Mustafa Raja: Yeah.
106 00:08:15.190 ⇒ 00:08:19.950 Uttam Kumaran: look at the department they’re in, and then map… map it? Like, what’s the complication?
107 00:08:19.950 ⇒ 00:08:29.629 Samuel Roberts: Yeah, I guess I was thinking it was going to be more work than that for the people, but I’m thinking of the future, like, syncing the people, right? But yeah, just make sure it’s updated. If you have questions about it, there should be…
108 00:08:29.630 ⇒ 00:08:30.189 Mustafa Raja: Yeah, yeah.
109 00:08:30.190 ⇒ 00:08:33.360 Samuel Roberts: An org chart further up in this ticket, I think, right?
110 00:08:33.360 ⇒ 00:08:34.900 Mustafa Raja: Yeah, yeah, it’s there.
111 00:08:35.130 ⇒ 00:08:37.270 Mustafa Raja: Okay, cool. Up in the description.
112 00:08:37.940 ⇒ 00:08:38.669 Samuel Roberts: Okay.
113 00:08:38.909 ⇒ 00:08:41.929 Samuel Roberts: Yeah, well, I mean, it should have people and everything, too, to help you out.
114 00:08:44.039 ⇒ 00:08:44.689 Uttam Kumaran: I guess they can’t.
115 00:08:44.690 ⇒ 00:08:45.810 Mustafa Raja: I shouldn’t have those.
116 00:08:46.240 ⇒ 00:09:05.039 Uttam Kumaran: Well, I guess, like, where… like, where is this… like, where is the meeting classification happening right now? And, like, I just… I just… I just feel like we’re taught… this is, like, this seems so simple to me, like, what… what is the complication? Because isn’t it just, like, look to see who’s in the meeting, and then map it to their department? Like, map the meeting to the department?
117 00:09:05.260 ⇒ 00:09:09.680 Uttam Kumaran: And, like… What is the… what is, like, really difficult about this?
118 00:09:10.240 ⇒ 00:09:11.419 Mustafa Raja: Yeah,
119 00:09:12.160 ⇒ 00:09:20.520 Mustafa Raja: The classification, I have to set it up right now. There isn’t, the workflow isn’t there for it yet.
120 00:09:20.520 ⇒ 00:09:23.379 Uttam Kumaran: Where would that, like, where would that live?
121 00:09:23.380 ⇒ 00:09:28.819 Mustafa Raja: In the… no, no, no, in the… what’s it called? Zoom Summarizer workflow.
122 00:09:28.820 ⇒ 00:09:30.090 Casie Aviles: Anything, yeah.
123 00:09:30.090 ⇒ 00:09:31.859 Samuel Roberts: And yeah, it’s an Indian flow, yeah.
124 00:09:34.880 ⇒ 00:09:36.100 Samuel Roberts: Just adding another step in there.
125 00:09:36.100 ⇒ 00:09:37.239 Mustafa Raja: Yeah, yeah, yeah, yeah.
126 00:09:37.240 ⇒ 00:09:37.830 Samuel Roberts: Okay.
127 00:09:39.430 ⇒ 00:09:47.619 Samuel Roberts: Yeah, I mean, keeping, like, updating the people and the departments to make sure that that works is probably not too much, and then adding that is probably the bulk of it.
128 00:09:48.800 ⇒ 00:09:49.910 Casie Aviles: Yeah, there is…
129 00:09:49.910 ⇒ 00:09:58.310 Uttam Kumaran: Chrysler and NNN, like, Is that literally just, like, Python code, or, like, why is that still in the…
130 00:09:58.310 ⇒ 00:10:05.209 Mustafa Raja: Yeah, I was, I was thinking of doing any AI steps on the transcript and all.
131 00:10:06.390 ⇒ 00:10:10.479 Samuel Roberts: But you’re thinking, Utam, just look at the participants and not even do the AI.
132 00:10:10.480 ⇒ 00:10:13.240 Uttam Kumaran: Well, I guess I’m just… yeah, well…
133 00:10:14.580 ⇒ 00:10:18.650 Uttam Kumaran: Well, I guess, yeah, but I don’t know, I just feel like even…
134 00:10:18.750 ⇒ 00:10:22.760 Uttam Kumaran: This seems like a… just like a… yeah, I guess this seems like a step…
135 00:10:24.560 ⇒ 00:10:33.350 Uttam Kumaran: I mean, we definitely need to pass the transcript to AI, and pass the participants, and then just get, like, the string output, right?
136 00:10:34.070 ⇒ 00:10:34.940 Mustafa Raja: Yeah, yeah.
137 00:10:35.120 ⇒ 00:10:37.160 Uttam Kumaran: But why? I guess, like, and…
138 00:10:38.710 ⇒ 00:10:48.009 Uttam Kumaran: I guess my question is, why does that need to happen in Edin? Like, why can’t that happen on the ingestion script for
139 00:10:48.320 ⇒ 00:10:54.220 Uttam Kumaran: Or, like, why can’t you run, like, a batch job or, like, a webhook that does it on every new meeting?
140 00:10:54.690 ⇒ 00:10:59.269 Uttam Kumaran: It’s just like passing in a bunch of contacts, and you’re getting a structured output out, right?
141 00:10:59.270 ⇒ 00:11:04.429 Mustafa Raja: Yeah, so let me open that up…
142 00:11:04.430 ⇒ 00:11:09.200 Uttam Kumaran: It doesn’t need to happen as part of the… it doesn’t need to happen as part of the Dagster job, but…
143 00:11:09.460 ⇒ 00:11:15.459 Uttam Kumaran: You can probably create a simple trigger that’s, like, every new event, one of the columns has to get updated.
144 00:11:15.920 ⇒ 00:11:22.269 Mustafa Raja: Yeah, so I already have a webhook set up for this table, Zoom table,
145 00:11:22.510 ⇒ 00:11:42.430 Mustafa Raja: What that does is it triggers, the Dagster job to add the meeting to the, TurboPuffer. What I was thinking was, using that, webhook, I could, get the,
146 00:11:42.610 ⇒ 00:11:44.430 Mustafa Raja: Department out also.
147 00:11:47.880 ⇒ 00:11:50.860 Samuel Roberts: That’s for, like, a Zoom webhook that triggers the Dagster?
148 00:11:50.860 ⇒ 00:11:53.519 Mustafa Raja: No, no, no. Can I share my screen?
149 00:11:55.570 ⇒ 00:11:57.950 Samuel Roberts: Where’s my little box?
150 00:11:59.000 ⇒ 00:12:00.740 Samuel Roberts: There he is.
151 00:12:02.860 ⇒ 00:12:26.930 Mustafa Raja: Yeah, so this is the Zoom summarizer workflow over here. And here, this webhook triggers when there’s a new record entered in the Zoom Super Base Table. So whenever there’s a new record in Zoom Super Base Table, this webhook triggers this Dagster job. I was thinking, you know, since I’m getting all of the information.
152 00:12:27.300 ⇒ 00:12:31.010 Mustafa Raja: And that would be the content and all.
153 00:12:31.630 ⇒ 00:12:40.850 Mustafa Raja: the transcript and participants and everything, I could just, add a… add an AI step, and then a superbase node to update that.
154 00:12:40.850 ⇒ 00:12:44.970 Samuel Roberts: Is there… is there not already… like, where is it being inserted into Superbase, though?
155 00:12:46.210 ⇒ 00:12:47.210 Samuel Roberts: Dagster, or is that here?
156 00:12:47.210 ⇒ 00:12:49.719 Mustafa Raja: No, no, that would be windmill.
157 00:12:50.310 ⇒ 00:12:51.430 Samuel Roberts: That’s windmill, okay.
158 00:12:51.430 ⇒ 00:12:52.550 Mustafa Raja: I think, yeah.
159 00:12:52.750 ⇒ 00:12:54.299 Casie Aviles: Yeah, that’s… Okay, so yeah.
160 00:12:54.300 ⇒ 00:12:57.769 Samuel Roberts: That’s what I… I thought there was a step here that was doing, like, summarized.
161 00:12:57.770 ⇒ 00:12:59.260 Mustafa Raja: and stuff. Okay.
162 00:13:00.830 ⇒ 00:13:06.860 Samuel Roberts: Yeah, I would say if it’s getting triggered on new… entries.
163 00:13:07.490 ⇒ 00:13:09.639 Mustafa Raja: Yeah, it does, because… Yeah.
164 00:13:09.640 ⇒ 00:13:14.470 Samuel Roberts: Yeah, just make that a… make that another thing that’ll happen there. I think…
165 00:13:14.770 ⇒ 00:13:20.350 Samuel Roberts: there’s… I mean, this is part of a bigger thing of moving some of this stuff into code anyway, and breaking pieces apart that can be…
166 00:13:20.890 ⇒ 00:13:27.429 Samuel Roberts: Used in different… Structures and stuff, and… Windmill plus Dyxter plus N8N.
167 00:13:27.740 ⇒ 00:13:31.090 Samuel Roberts: is a chunk of things that I feel like we can streamline a little bit.
168 00:13:31.090 ⇒ 00:13:41.049 Uttam Kumaran: I’m just, like, this just seems so, like, this just doesn’t seem, like, that complicated, but, like, I’m just really concerned, like, why something this, like, a small thing like this, we can’t get done, like…
169 00:13:41.240 ⇒ 00:13:41.940 Uttam Kumaran: It’s…
170 00:13:41.940 ⇒ 00:13:47.719 Samuel Roberts: Yeah, there’s… this is the issue is there’s no central thing that’s just, like, orchestrating this all. There’s, like, 3 different pieces.
171 00:13:47.900 ⇒ 00:13:49.650 Samuel Roberts: Where different things are happening.
172 00:13:49.650 ⇒ 00:13:52.169 Uttam Kumaran: But, like, what is the plan here to change that?
173 00:13:52.170 ⇒ 00:13:58.040 Samuel Roberts: Yeah, no, there’s… I mean, there’s a rough plan to move some of this stuff to code, but we just haven’t had the time to even, like.
174 00:13:58.800 ⇒ 00:14:01.510 Samuel Roberts: Architect that out and start ticketing things for that.
175 00:14:03.220 ⇒ 00:14:14.230 Samuel Roberts: But we can prioritize that, I think, which is important to do moving forward, because all the, like, UI stuff is gonna depend on a lot of the stuff underneath that is relatively stable, and we should harden with the code, yeah.
176 00:14:14.620 ⇒ 00:14:19.900 Uttam Kumaran: Yeah, this is where I just, like, we’re just not able to get, like, this department’s thing I’ve asked for for, like, 2 months.
177 00:14:20.160 ⇒ 00:14:29.000 Uttam Kumaran: And I don’t know how we can, like, make this happen, because at the moment, we’re not able to do our AI functionality on… in our…
178 00:14:29.300 ⇒ 00:14:32.900 Uttam Kumaran: inter-company meetings, right? Which is a huge loss.
179 00:14:35.890 ⇒ 00:14:39.359 Uttam Kumaran: Like, you can only… you have to go find the meeting in the dashboard. There’s no.
180 00:14:39.360 ⇒ 00:14:43.420 Samuel Roberts: That’s what I was gonna say, yeah, that’s how I tend to use it, because I… better.
181 00:14:43.420 ⇒ 00:14:54.729 Uttam Kumaran: But this seems, like, so overcomplicated. We have, in Supabase, transcripts for the meeting, as well as the participants, right? Why… isn’t, like…
182 00:14:55.060 ⇒ 00:15:09.490 Uttam Kumaran: Isn’t there a way where you can just wait to see if a new entry is made, update a column in there that says the department based on passing the transcript and the people in, and then you do a lookup?
183 00:15:09.700 ⇒ 00:15:14.199 Samuel Roberts: That’s what he’s saying, is adding it to write this flow that is currently triggering on inserts.
184 00:15:14.470 ⇒ 00:15:15.059 Mustafa Raja: Yeah, that is.
185 00:15:15.060 ⇒ 00:15:17.650 Uttam Kumaran: I guess, why does it have to live in NHN?
186 00:15:18.560 ⇒ 00:15:23.469 Samuel Roberts: It doesn’t, but I wouldn’t want to start fracturing this into other places yet until we get this in code.
187 00:15:23.470 ⇒ 00:15:28.380 Mustafa Raja: It’s already happening, the event trigger is already happening from Superbase.
188 00:15:28.630 ⇒ 00:15:29.960 Mustafa Raja: So, that…
189 00:15:29.960 ⇒ 00:15:36.050 Uttam Kumaran: Can you not do all of this in Superbase, or all of this in, like, a backend function?
190 00:15:36.050 ⇒ 00:15:42.590 Mustafa Raja: No, no, I guess I could trigger a… trigger an edge function in Superbase?
191 00:15:42.770 ⇒ 00:15:43.290 Mustafa Raja: But…
192 00:15:43.290 ⇒ 00:15:48.810 Uttam Kumaran: Yeah, like, is it, like, wouldn’t this be a good case for, like… it’s like, this is sort of, like, what a lambda function would do, right?
193 00:15:49.760 ⇒ 00:15:51.220 Uttam Kumaran: Or something? Like… Yeah.
194 00:15:51.220 ⇒ 00:15:57.329 Samuel Roberts: Yeah, we could definitely… this might be a good first time to add it, then, to something on the backend that’s starting to move some of this NNN stuff out.
195 00:15:57.330 ⇒ 00:16:01.290 Uttam Kumaran: This is a pure backend function that triggers a new row insert.
196 00:16:01.830 ⇒ 00:16:07.699 Samuel Roberts: Yeah, that’s got going, and then we can start adding more things to that, like, we could move this HTTP turbopuffer out of that into…
197 00:16:08.430 ⇒ 00:16:12.159 Samuel Roberts: into the Next.js app, we could,
198 00:16:12.620 ⇒ 00:16:17.250 Samuel Roberts: start moving… well, this is the only one that’s triggered on an insert, everything else is doing the work to get that in there, right?
199 00:16:17.810 ⇒ 00:16:21.480 Uttam Kumaran: So, like, edge functions and databases, that, like, that’s…
200 00:16:21.720 ⇒ 00:16:24.929 Uttam Kumaran: That is, like, what this is made… that’s made for this.
201 00:16:25.940 ⇒ 00:16:30.039 Samuel Roberts: Yeah, I… kinda. We could do that. I would…
202 00:16:30.290 ⇒ 00:16:32.920 Samuel Roberts: Probably rather have it as part of a function on the next app.
203 00:16:32.920 ⇒ 00:16:33.890 Mustafa Raja: Yeah, yeah, yeah.
204 00:16:33.890 ⇒ 00:16:35.649 Samuel Roberts: We’re gonna control that more.
205 00:16:35.760 ⇒ 00:16:42.840 Samuel Roberts: we don’t need to have some superbase app functions, or Superbase Edge functions, and some app functions, because those are all… also just.
206 00:16:42.840 ⇒ 00:16:43.450 Uttam Kumaran: Okay.
207 00:16:43.450 ⇒ 00:16:45.179 Samuel Roberts: back-end points.
208 00:16:45.180 ⇒ 00:16:46.410 Uttam Kumaran: So, yeah.
209 00:16:46.410 ⇒ 00:16:49.119 Samuel Roberts: If you weren’t hosting a platform, Superbase would be the right thing to do here.
210 00:16:49.570 ⇒ 00:16:50.360 Uttam Kumaran: Okay, okay.
211 00:16:51.730 ⇒ 00:16:57.170 Uttam Kumaran: Yeah, yeah, no, then I would vote, Mustafa, then to write it within the next app.
212 00:16:58.660 ⇒ 00:17:01.239 Uttam Kumaran: As a function that happens on new…
213 00:17:01.610 ⇒ 00:17:06.709 Uttam Kumaran: record insert, like, right? That’s… again, this is where I’m at, a little bit out of my depth, but…
214 00:17:06.890 ⇒ 00:17:19.259 Uttam Kumaran: like, I would assume that we can sort of wait to see when a new row gets inserted into the meetings table, there is enough, like, there’s a dependent thing that has to say what department is this?
215 00:17:19.400 ⇒ 00:17:21.900 Uttam Kumaran: And then that just a string output, right?
216 00:17:23.109 ⇒ 00:17:26.929 Samuel Roberts: Yeah, so most of a high level, you know, you trigger whatever this webhook is.
217 00:17:27.059 ⇒ 00:17:30.839 Mustafa Raja: This is being triggered from Supabase, right? An event trigger?
218 00:17:30.839 ⇒ 00:17:34.969 Samuel Roberts: So you would just have this go to whatever we set up, API slash…
219 00:17:35.209 ⇒ 00:17:39.669 Samuel Roberts: I don’t know, Supabase slash insert, or, you know, meeting slash insert, whatever you want to call it.
220 00:17:40.909 ⇒ 00:17:46.729 Samuel Roberts: And then that’s just an API route that we hit, and you can do this kind of logic there instead of the NAN.
221 00:17:47.950 ⇒ 00:17:55.300 Mustafa Raja: Yeah, my only question would be, do we need an AI step, or are we going to do, Bayesian participants only, then?
222 00:17:56.330 ⇒ 00:18:04.810 Uttam Kumaran: Well, I mean, ideally, you should look at both, because I’m gonna be in a bunch of internal meetings, so you’re not going to be able to turn, right? Yeah.
223 00:18:05.100 ⇒ 00:18:10.139 Uttam Kumaran: You should look like… there should be a prompt that’s like, was… What were the topics?
224 00:18:10.530 ⇒ 00:18:11.599 Uttam Kumaran: And then… Yeah.
225 00:18:11.710 ⇒ 00:18:13.950 Uttam Kumaran: Who was in it, and then…
226 00:18:14.060 ⇒ 00:18:17.080 Uttam Kumaran: Given all of that, make a determination on, like.
227 00:18:17.410 ⇒ 00:18:24.829 Uttam Kumaran: this… you have 10 options, right? You have department options, pick the right department, and then you should submit to a log.
228 00:18:25.890 ⇒ 00:18:26.310 Samuel Roberts: Okay.
229 00:18:26.310 ⇒ 00:18:30.139 Uttam Kumaran: to create a log event that just says Y, that way we can…
230 00:18:30.280 ⇒ 00:18:34.249 Uttam Kumaran: We can isolate if it miscategorizes and fix it.
231 00:18:34.740 ⇒ 00:18:35.420 Mustafa Raja: Yeah.
232 00:18:36.120 ⇒ 00:18:38.479 Mustafa Raja: So I’ll be using Nostra for that, right?
233 00:18:40.240 ⇒ 00:18:49.349 Uttam Kumaran: So, I guess, can you… even, like, I think what would be helpful, too, even saying for me, because this is where I’ve never asked, like, where would this happen in… in our GitHub code?
234 00:18:49.480 ⇒ 00:18:54.799 Uttam Kumaran: Like, Where would we… where in there would we write something like this? Yeah.
235 00:18:55.020 ⇒ 00:19:00.080 Samuel Roberts: This, so in the next app, there’s the app folder that, like, serves pages.
236 00:19:00.570 ⇒ 00:19:13.469 Samuel Roberts: And then there’s an API folder, where you declare, like, the same way as pages, what the route is. So there, you’d have an API folder, we could make a Subabase folder, and that folder would be maybe a meetings
237 00:19:13.750 ⇒ 00:19:21.780 Samuel Roberts: thing, and then in that meetings folder, you would create a… I believe it’s a route.ts file?
238 00:19:21.780 ⇒ 00:19:22.160 Mustafa Raja: Yeah.
239 00:19:22.160 ⇒ 00:19:37.229 Samuel Roberts: And then inside there, you can declare get, post, put, delete, all, like, the standard HTTP verbs, and just have functions there that execute as a, like, just like an edge function would. But it would just be happening…
240 00:19:37.330 ⇒ 00:19:49.750 Samuel Roberts: in our… in our… on our backend on Heroku, instead of, like, the Edge, you know, which we don’t need that. So, that’s where… that’s the idea, where, like, we’re actually using those right now for the platform, which is a whole other thing to talk about, because, like.
241 00:19:50.360 ⇒ 00:19:52.860 Samuel Roberts: You know, we’re hitting, you know, we can’t just easily…
242 00:19:52.990 ⇒ 00:19:58.709 Samuel Roberts: put something like GitHub access on the front end, right? It has to… you don’t want to put the tokens out.
243 00:19:59.280 ⇒ 00:20:01.759 Uttam Kumaran: For sure, for sure.
244 00:20:01.760 ⇒ 00:20:08.339 Samuel Roberts: Back-end code. Yeah, it’s all got backend built in. That’s not kind of why we moved to Next, because it had the ability to do all the, like.
245 00:20:08.630 ⇒ 00:20:11.700 Samuel Roberts: Back-end stuff that was happening in a separate repo, all in one.
246 00:20:11.700 ⇒ 00:20:12.270 Uttam Kumaran: Whoa.
247 00:20:12.940 ⇒ 00:20:13.890 Samuel Roberts: Yeah, this was, I mean.
248 00:20:13.890 ⇒ 00:20:16.480 Uttam Kumaran: How much stress is that? We put it in…
249 00:20:16.780 ⇒ 00:20:20.589 Uttam Kumaran: the API folder, and then we create a route. I guess my question would be.
250 00:20:20.820 ⇒ 00:20:26.999 Uttam Kumaran: You could… you would have something that listens to, like, a webhook for… like, how would you actually do the…
251 00:20:27.770 ⇒ 00:20:32.480 Uttam Kumaran: like, the polling to, like, the Supabase database, or is that, like, how, like, how would that work?
252 00:20:32.880 ⇒ 00:20:38.999 Samuel Roberts: So, Superbase has event triggers, so I believe there’s one already created that triggers that thing in N8N.
253 00:20:39.110 ⇒ 00:20:45.329 Samuel Roberts: And you just basically say, like, when something is inserted, or when something is updated, or any number of…
254 00:20:45.630 ⇒ 00:20:48.470 Samuel Roberts: Any number of things here.
255 00:20:51.430 ⇒ 00:20:57.729 Samuel Roberts: Let you say, like, okay, there was an insert to this, hit this webhook, and send all the data that got inserted.
256 00:20:58.360 ⇒ 00:20:59.570 Uttam Kumaran: Okay, okay, okay.
257 00:20:59.710 ⇒ 00:21:02.590 Samuel Roberts: So yeah, so the trigger will be Superbase getting an update.
258 00:21:02.820 ⇒ 00:21:12.030 Samuel Roberts: the webhook instead will be, you know, platform.brainforge.ai slash API slash whatever, whatever, whatever.
259 00:21:12.140 ⇒ 00:21:25.540 Samuel Roberts: And then, just the same way it comes into N8N and goes through its flow there, we’ll just write code for it. Some of it will be MASTRA, some of it will be, you know, just regular code, non-AI stuff. And that way, it’s also easier to do something like this, where, like, oh.
260 00:21:25.800 ⇒ 00:21:29.410 Samuel Roberts: On every meeting, we need to do this too, we can just add it to that endpoint.
261 00:21:31.250 ⇒ 00:21:43.600 Samuel Roberts: Which I think is long-term where I want to get some of this N8N stuff anyway. This is a good first thing to do, which is a good catch here, because I was just like, we’ll get it out of N8N later, in my mind, but this one makes sense.
262 00:21:43.600 ⇒ 00:21:45.600 Uttam Kumaran: I think you just mix it now, yeah, force it now.
263 00:21:45.600 ⇒ 00:22:01.419 Samuel Roberts: Yeah, no, I didn’t really… in my mind, I thought there was more happening after an insert, but I guess this is the first one. The other side of things is getting stuff into Superbase, which is why we have Windmill and Dagster, and then also the client hub’s pulling from that, so there’s a whole bunch of stuff to sort out there, but for this use case.
264 00:22:01.550 ⇒ 00:22:03.660 Samuel Roberts: We can definitely move that over.
265 00:22:03.930 ⇒ 00:22:04.750 Samuel Roberts: Okay.
266 00:22:06.040 ⇒ 00:22:18.300 Samuel Roberts: I would say, actually, while you’re… well, I don’t know if while you’re doing that, but what is the N8N… is that just hitting another endpoint, for Truro buffer? So when you hit that in N8N, go back to the flow real quick?
267 00:22:19.190 ⇒ 00:22:23.620 Samuel Roberts: what HTTP requests. So yeah, this can still happen pretty easily.
268 00:22:24.010 ⇒ 00:22:24.410 Mustafa Raja: Yeah.
269 00:22:24.410 ⇒ 00:22:33.039 Samuel Roberts: without Mastra. So, you know, you’d kick off this request, and also do the other logic. Yeah, but that seems like a very good use case, actually.
270 00:22:35.220 ⇒ 00:22:35.880 Mustafa Raja: Yep.
271 00:22:37.300 ⇒ 00:22:37.860 Samuel Roberts: Cool.
272 00:22:38.840 ⇒ 00:22:39.450 Mustafa Raja: Okay.
273 00:22:42.210 ⇒ 00:22:44.710 Samuel Roberts: Alright, so we’re good on that then? You’re good to…
274 00:22:44.850 ⇒ 00:22:45.920 Mustafa Raja: Do that.
275 00:22:45.920 ⇒ 00:22:46.840 Samuel Roberts: Alright. Yeah.
276 00:22:47.290 ⇒ 00:22:50.559 Samuel Roberts: How do you feel? Is it still, what is it, 3 points here?
277 00:22:50.870 ⇒ 00:22:52.620 Samuel Roberts: Yeah, it should be.
278 00:22:53.070 ⇒ 00:22:57.570 Samuel Roberts: Okay, cool. Yeah, let me know if you have any issues with the Next.js app or any of the backend stuff.
279 00:22:57.570 ⇒ 00:22:58.550 Mustafa Raja: Okay.
280 00:22:59.620 ⇒ 00:23:00.260 Uttam Kumaran: Cool.
281 00:23:00.420 ⇒ 00:23:05.170 Samuel Roberts: Again, cursor knows next pretty well, so that’s really convenient here, part of why we did it, so…
282 00:23:05.880 ⇒ 00:23:12.330 Samuel Roberts: Great. Okay, so this is still, to do, yeah, bump that to in progress, I guess.
283 00:23:12.470 ⇒ 00:23:17.470 Samuel Roberts: The other one’s here…
284 00:23:17.800 ⇒ 00:23:20.460 Samuel Roberts: I was working on this a little bit,
285 00:23:21.140 ⇒ 00:23:25.100 Samuel Roberts: Hannah didn’t get back to me, actually. Tom, you might be able to help with this. Do we want…
286 00:23:25.330 ⇒ 00:23:29.169 Samuel Roberts: To have potentially multiple clients tied to any assets, you know?
287 00:23:33.350 ⇒ 00:23:38.640 Samuel Roberts: So the thing here was, Hannah was asking, like, she… she wanted theme, type, and industry.
288 00:23:38.930 ⇒ 00:23:45.700 Samuel Roberts: And then she’s realizing as she’s filling them all in, industry isn’t always the appropriate thing to do, so she wants to be able to just, like, sort by clients.
289 00:23:46.250 ⇒ 00:23:47.859 Samuel Roberts: And so I’m…
290 00:23:48.000 ⇒ 00:23:53.179 Samuel Roberts: My guess is there could be multiple things where it might apply, but I don’t fully know.
291 00:23:53.370 ⇒ 00:24:02.540 Samuel Roberts: And the only issue… the reason I bring this up is because it’s not super trivial to do one versus many, and tie it to the clients that are in the database already. I just have to kind of know which way to go with it.
292 00:24:06.080 ⇒ 00:24:09.130 Uttam Kumaran: I think, probably not.
293 00:24:10.270 ⇒ 00:24:11.000 Samuel Roberts: One client.
294 00:24:11.110 ⇒ 00:24:15.269 Uttam Kumaran: science on something, yeah, like, if anything, however…
295 00:24:16.460 ⇒ 00:24:20.269 Uttam Kumaran: Yeah, like, I don’t… I don’t think we’re gonna have assets tied to more than one client for now.
296 00:24:20.270 ⇒ 00:24:26.110 Samuel Roberts: Okay, that’s fine, I can do it that way, and if it changes… it’s just, the problem is, like, I can store a single foreign key.
297 00:24:26.110 ⇒ 00:24:26.520 Uttam Kumaran: Yeah.
298 00:24:26.520 ⇒ 00:24:31.399 Samuel Roberts: easily. Superbase and Postgres in general doesn’t really allow you to store, like, an array of foreign keys without.
299 00:24:31.400 ⇒ 00:24:32.700 Uttam Kumaran: Yeah, yeah, yeah, yeah.
300 00:24:32.700 ⇒ 00:24:41.620 Samuel Roberts: separate tables, and so I… that simplifies this, because I was going to say it’s become more than one point if it’s multiple, but then I can do that. I was just kind of waiting on Hannah to let me know that.
301 00:24:41.620 ⇒ 00:24:42.300 Uttam Kumaran: mine.
302 00:24:42.300 ⇒ 00:24:48.430 Samuel Roberts: I… this one was trivial. In fact, one of the things I noticed here is I can’t give it zero points on the AI team.
303 00:24:49.270 ⇒ 00:24:58.200 Samuel Roberts: That’s an… that’s another, like, setting that’s, like, team-based and organization-based, I think, so when you’re sorting out, like, statuses and stuff…
304 00:24:58.730 ⇒ 00:25:00.969 Uttam Kumaran: Standardize that if we’re gonna use zero points.
305 00:25:01.030 ⇒ 00:25:11.770 Samuel Roberts: And I think zero points is good not just for small things, but eventually, if we have, like, big tickets, we can break them into sub-issues, and the parent ticket can have zero, and sub-issues can be where all the estimates lie.
306 00:25:12.710 ⇒ 00:25:13.270 Uttam Kumaran: Okay.
307 00:25:13.530 ⇒ 00:25:19.180 Samuel Roberts: But I noticed, I think some teams have it, and some teams don’t, and I’m… I don’t know if that’s a thing you can enforce from the top down, or have to go…
308 00:25:19.380 ⇒ 00:25:22.489 Samuel Roberts: Team by team before, but just wanted to surface that.
309 00:25:24.330 ⇒ 00:25:34.349 Samuel Roberts: So this is… this is done in the branch I’m working on now. I just basically matched the kind of, border around everything, so it just kind of sits out like the dashboards do.
310 00:25:36.220 ⇒ 00:25:44.490 Samuel Roberts: Which is pretty basic, which is good, because the other one’s taking me a little longer, the clients were doing. This was one, she wanted to be able to put in
311 00:25:44.720 ⇒ 00:25:47.740 Samuel Roberts: links to, like, Notion pages and YouTube and stuff.
312 00:25:49.040 ⇒ 00:25:49.630 Uttam Kumaran: Oh.
313 00:25:49.630 ⇒ 00:25:51.700 Samuel Roberts: I’m doing it… I’m doing this…
314 00:25:52.170 ⇒ 00:25:56.870 Samuel Roberts: Kind of the quick and dirty way, because there’s a thing that is related to this, which is getting
315 00:25:57.020 ⇒ 00:26:01.830 Samuel Roberts: off of GitHub completely, and using, like, an S3 bucket to store all this stuff, which would allow
316 00:26:01.960 ⇒ 00:26:04.849 Samuel Roberts: Uploading from this page, and things like that.
317 00:26:05.520 ⇒ 00:26:09.020 Samuel Roberts: The code is very…
318 00:26:09.440 ⇒ 00:26:14.830 Samuel Roberts: what’s the word I’m trying to think of? Like, tied to GitHub right now, because it was initially just displaying GitHub stuff.
319 00:26:15.170 ⇒ 00:26:18.220 Samuel Roberts: So, I, I…
320 00:26:18.400 ⇒ 00:26:24.659 Samuel Roberts: I’ve added the URL field, like, I don’t… you can’t actually see it here, but, let me share the whole thing, actually.
321 00:26:25.970 ⇒ 00:26:30.420 Samuel Roberts: so what I’ve got going now…
322 00:26:33.000 ⇒ 00:26:42.750 Samuel Roberts: So yeah, you can see here I just added a little bit of padding around it, just like the dashboard pages. So this is a test one. It doesn’t have any GitHub URL, it has a custom URL.
323 00:26:44.020 ⇒ 00:26:49.729 Samuel Roberts: So I don’t think we’ll be able to track hits, necessarily, unless we want to do some kind of forwarding thing, like we’re doing for Files.
324 00:26:49.970 ⇒ 00:26:53.309 Samuel Roberts: But, this now links out, so I can click out.
325 00:26:53.550 ⇒ 00:26:56.750 Samuel Roberts: And it takes me to an ad for…
326 00:26:57.210 ⇒ 00:27:01.359 Samuel Roberts: Getting Rickrolled. And then this copies it, this edits it.
327 00:27:01.950 ⇒ 00:27:10.030 Samuel Roberts: I know you didn’t love modals, but I still think… I don’t have a cleaner way to do all this, because we’re not displaying everything here, like the URL and stuff.
328 00:27:10.030 ⇒ 00:27:12.769 Uttam Kumaran: For creation, it’s fine.
329 00:27:12.770 ⇒ 00:27:13.090 Samuel Roberts: Okay.
330 00:27:13.090 ⇒ 00:27:17.290 Uttam Kumaran: for consumption is where I’m more of a stickler, like.
331 00:27:17.590 ⇒ 00:27:27.840 Uttam Kumaran: I don’t mind if it’s creating things, yes, you’ll need flows, but for consuming, I want to make it because you’re going to have users that won’t know what to click, necessarily, you know?
332 00:27:27.840 ⇒ 00:27:39.730 Samuel Roberts: 100%. No, I totally agree. That’s… I just wouldn’t… I wasn’t sure, because I have, like, the edit field, and now there’s an add one, where you put in the URL, so I gotta add the URL to that one, but eventually the idea, I think, would be to, like.
333 00:27:39.870 ⇒ 00:27:46.420 Samuel Roberts: Drag a file, drop it into this page, and basically it’ll do an upload and populate this field for you.
334 00:27:46.820 ⇒ 00:27:50.389 Samuel Roberts: And then you can fill out the rest, and then create entry.
335 00:27:50.550 ⇒ 00:27:56.909 Samuel Roberts: And then it’ll just be probably in a SuperBase S3 bucket, because it has basic uploading built right in.
336 00:27:57.790 ⇒ 00:28:04.219 Samuel Roberts: So this is somewhat related to that. I’m hacking around GitHub a little bit right now, which is making it a little more complicated, but I think it’d be…
337 00:28:04.410 ⇒ 00:28:09.589 Samuel Roberts: Like, it’s worthwhile to do the upload, but that’s a whole other migration of files over, so…
338 00:28:09.590 ⇒ 00:28:11.820 Uttam Kumaran: Okay, yeah, yeah, yeah. I mean, again.
339 00:28:11.820 ⇒ 00:28:12.190 Samuel Roberts: I’m getting…
340 00:28:12.190 ⇒ 00:28:18.110 Uttam Kumaran: And the reason we did GitHub is because you can do the cloud fare pretty easily, but we didn’t do UI first, so… yeah.
341 00:28:18.320 ⇒ 00:28:19.920 Samuel Roberts: Yeah, yeah, no, I think, I think…
342 00:28:20.340 ⇒ 00:28:22.490 Samuel Roberts: once they’re in S3, we can probably…
343 00:28:22.630 ⇒ 00:28:25.779 Samuel Roberts: You know, figure that out pretty easily for…
344 00:28:26.700 ⇒ 00:28:38.319 Samuel Roberts: the forwarding through files. But this is why I’m not touching GitHub stuff, I’m just kind of working my way around it for, like… this one doesn’t have a GitHub URL, it just has a custom URL, and so I have to do a few things, but…
345 00:28:38.860 ⇒ 00:28:49.960 Samuel Roberts: it’ll all get cleaned up after we move, but that adds more complexity to other things, so I’m just not working on that, but effectively, this will get done probably in the next hour or two, with this and then the client stuff.
346 00:28:50.390 ⇒ 00:28:56.140 Samuel Roberts: So, that’s kind of my update on the other stuff in the sprint, which was… where?
347 00:28:56.670 ⇒ 00:28:57.970 Samuel Roberts: Where do they need to go?
348 00:28:58.490 ⇒ 00:29:05.340 Samuel Roberts: So yeah, that’s the update on this. I was just working on it as we jumped on. So that’s everything in the sprint we went over? Is that fair?
349 00:29:06.290 ⇒ 00:29:10.829 Samuel Roberts: I think that’s everything. So then, do you want to go through Turbo Puffer now and do a test together?
350 00:29:11.270 ⇒ 00:29:12.280 Uttam Kumaran: Yeah, let’s do it.
351 00:29:12.560 ⇒ 00:29:19.930 Samuel Roberts: Cool, okay, let me… You said the link was in… Yeah, team general, yeah.
352 00:29:21.850 ⇒ 00:29:22.860 Samuel Roberts: Okay.
353 00:29:26.040 ⇒ 00:29:29.169 Uttam Kumaran: Bradders, review app and the PR, let me get those open.
354 00:29:30.280 ⇒ 00:29:33.769 Samuel Roberts: Oh, on the loom, actually. I didn’t see that yet.
355 00:29:35.410 ⇒ 00:29:36.190 Samuel Roberts: Alright.
356 00:29:36.600 ⇒ 00:29:40.899 Samuel Roberts: So that’s the… that’s the loom. Is this the… I opened both the…
357 00:29:42.780 ⇒ 00:29:45.629 Samuel Roberts: Alright guys, bear with me. Review.
358 00:29:48.590 ⇒ 00:29:53.110 Samuel Roberts: I feel like I’m pushing my MacBook to its limit sometimes here, and things are starting to lag, and I’m not loving that.
359 00:29:54.890 ⇒ 00:29:57.650 Samuel Roberts: But that’s just me overusing it. Alright, cool.
360 00:29:57.770 ⇒ 00:30:00.730 Samuel Roberts: So I am in here now, let me share this.
361 00:30:01.520 ⇒ 00:30:03.209 Samuel Roberts: And we can all walk through it.
362 00:30:04.010 ⇒ 00:30:13.050 Samuel Roberts: Okay. So, before… I believe this was just working, the search, right? So if I type…
363 00:30:13.670 ⇒ 00:30:15.100 Samuel Roberts: I don’t know, ABC.
364 00:30:15.930 ⇒ 00:30:19.830 Samuel Roberts: we would see things like that. Oh, nice, this is new. I haven’t seen this yet.
365 00:30:20.040 ⇒ 00:30:25.299 Samuel Roberts: It’s a… yeah, so it shows where it’s found.
366 00:30:26.020 ⇒ 00:30:26.910 Uttam Kumaran: Nice.
367 00:30:27.660 ⇒ 00:30:31.269 Samuel Roberts: I… I love that it shows it. I’m wondering if there’s, like, we do…
368 00:30:31.670 ⇒ 00:30:35.940 Samuel Roberts: different chips, you know what I mean? Because colors might be helpful here, even.
369 00:30:36.130 ⇒ 00:30:37.399 Mustafa Raja: Yeah. But that’s a…
370 00:30:37.560 ⇒ 00:30:39.850 Samuel Roberts: nitpicky thing, I’m not gonna hold the PR up over that.
371 00:30:39.850 ⇒ 00:30:43.290 Uttam Kumaran: I agree. I also don’t… yeah, I agree.
372 00:30:43.290 ⇒ 00:30:47.550 Mustafa Raja: I was thinking of maybe doing a similar thing that Magic
373 00:30:47.830 ⇒ 00:30:51.770 Mustafa Raja: Patented, over the green thumbnail.
374 00:30:51.770 ⇒ 00:30:55.820 Uttam Kumaran: Can you search for, like, the word… search for the word magic? Let’s see if it comes up with any.
375 00:31:05.260 ⇒ 00:31:07.379 Samuel Roberts: Yeah, it’s got a lot of meaning in the search here, doesn’t it?
376 00:31:08.410 ⇒ 00:31:11.619 Mustafa Raja: It usually doesn’t take that amount.
377 00:31:11.620 ⇒ 00:31:16.300 Samuel Roberts: Alright, I wonder if there’s something going on, or if this is just… .
378 00:31:20.990 ⇒ 00:31:23.510 Mustafa Raja: Can we search for something else, I guess?
379 00:31:23.510 ⇒ 00:31:26.789 Samuel Roberts: Yeah, hold on, I’m trying to see, search results for magic. Oh, I got them!
380 00:31:27.320 ⇒ 00:31:32.259 Samuel Roberts: Nope, it’s just loading, yeah, server error. Okay, sorry, go ahead, something else? Just start another search?
381 00:31:32.590 ⇒ 00:31:34.530 Mustafa Raja: Yeah, let’s do quiz.
382 00:31:37.630 ⇒ 00:31:45.349 Samuel Roberts: Oops, I didn’t mean to click that, sorry guys. Oh, here’s another thing I’ve noticed. We need to start doing things in the URL for when this gets used.
383 00:31:45.860 ⇒ 00:31:51.520 Samuel Roberts: Because, like, the back button, if you, like, do something and want to go back to your search.
384 00:31:52.330 ⇒ 00:31:53.240 Samuel Roberts: You know what I mean?
385 00:31:53.240 ⇒ 00:31:54.320 Mustafa Raja: Oh, yeah, yeah, yeah.
386 00:31:54.480 ⇒ 00:32:01.759 Samuel Roberts: That’s… but again, like, this is… there’s lots of things. I’m just mentioning things I’ve noticed, but haven’t really ticketed or voiced, but, you know, if I search magic…
387 00:32:02.930 ⇒ 00:32:04.689 Samuel Roberts: It should be, like, you know.
388 00:32:05.120 ⇒ 00:32:08.879 Samuel Roberts: Query string, you know, search equals magic, something like that.
389 00:32:11.840 ⇒ 00:32:13.950 Mustafa Raja: I think Magic might not have any matches.
390 00:32:14.600 ⇒ 00:32:16.170 Samuel Roberts: Oh, you think it’s just nothing?
391 00:32:16.170 ⇒ 00:32:21.100 Mustafa Raja: Yeah. What’s another one that will, like, be mentioned in things, but not, like, a title or something?
392 00:32:21.100 ⇒ 00:32:22.150 Samuel Roberts: Whiz.
393 00:32:22.570 ⇒ 00:32:24.819 Samuel Roberts: And hopefully that doesn’t… yeah, there we go, okay, cool.
394 00:32:25.090 ⇒ 00:32:26.719 Samuel Roberts: Nice, yeah, okay.
395 00:32:27.120 ⇒ 00:32:33.320 Mustafa Raja: Yeah, I think magic doesn’t… wasn’t in there, and it kept loading, I’ll, I’ll update, so if.
396 00:32:33.320 ⇒ 00:32:34.110 Samuel Roberts: Good catch, yeah.
397 00:32:34.570 ⇒ 00:32:38.410 Mustafa Raja: There is nothing, it shouldn’t just keep looting.
398 00:32:38.670 ⇒ 00:32:42.039 Samuel Roberts: Yeah, that’s a good… that’s a good… God, we saw that. Cool.
399 00:32:42.040 ⇒ 00:32:49.310 Uttam Kumaran: Yeah, I would probably have either… either chips, or… again, I would… honestly, I would probably go ask Magic Patterns, like, what the best…
400 00:32:49.310 ⇒ 00:32:50.799 Mustafa Raja: Yeah, yeah, I’m…
401 00:32:50.800 ⇒ 00:33:02.819 Samuel Roberts: Yeah, totally. I haven’t touched my… I said I have it open somewhere, and I haven’t gotten into it, but… Yeah, my thought was even just, like, color-coded ones, so you could just, like, scan down and see, like, purple transcript, blue summary, whatever, you know what I mean?
402 00:33:02.820 ⇒ 00:33:14.129 Mustafa Raja: I’m thinking of giving a screenshot of this to it, and just telling… asking it if we can make this any better, and see what ideas does it come up with.
403 00:33:15.910 ⇒ 00:33:23.180 Samuel Roberts: that’s… yeah, I mean, I’m sure it’s gonna have plenty, so I’m not worried about that, but… And then, so what happens now if I, like, see quiz, and I add…
404 00:33:24.600 ⇒ 00:33:31.769 Mustafa Raja: For now, it’s, it’s OR condition, so it’s going to look for a wish or quiz.
405 00:33:32.420 ⇒ 00:33:34.490 Mustafa Raja: Not a wish and quiz.
406 00:33:34.490 ⇒ 00:33:35.690 Samuel Roberts: That’s what I was wondering, okay.
407 00:33:35.690 ⇒ 00:33:36.400 Mustafa Raja: Yeah.
408 00:33:36.900 ⇒ 00:33:42.049 Mustafa Raja: And I guess we want AND for that… that… this sort of thing, right?
409 00:33:42.490 ⇒ 00:33:45.420 Samuel Roberts: Yeah, because I would think, like, you know, one way you might go about it
410 00:33:45.740 ⇒ 00:33:51.540 Samuel Roberts: Or, like, you know, I’m like, okay, I want to see all the meetings I was in, from…
411 00:33:51.670 ⇒ 00:33:53.980 Samuel Roberts: You know, this week, right?
412 00:33:55.520 ⇒ 00:34:00.930 Samuel Roberts: which, this is great, but now I want to specifically look at something mentioned, .
413 00:34:00.930 ⇒ 00:34:04.509 Mustafa Raja: Yeah, yeah, yeah, it’s not going to do that, it’s going to do over.
414 00:34:04.510 ⇒ 00:34:07.770 Samuel Roberts: That’s what, yeah, this is how I envision using it, you know?
415 00:34:07.770 ⇒ 00:34:13.039 Mustafa Raja: Yeah, the meeting date ones are AND, the participant is OR.
416 00:34:14.139 ⇒ 00:34:15.259 Samuel Roberts: Oh, okay.
417 00:34:15.260 ⇒ 00:34:16.010 Mustafa Raja: Yeah.
418 00:34:17.130 ⇒ 00:34:18.380 Samuel Roberts: I would definitely make that…
419 00:34:18.900 ⇒ 00:34:21.149 Mustafa Raja: And… Yeah, okay, yeah.
420 00:34:21.150 ⇒ 00:34:23.960 Samuel Roberts: That’s how I think people will think about it.
421 00:34:23.960 ⇒ 00:34:24.670 Mustafa Raja: Okay.
422 00:34:25.560 ⇒ 00:34:30.300 Samuel Roberts: And yeah, right now it’d be a little confusing to see, like, I’m not in certain meetings or something, and…
423 00:34:31.230 ⇒ 00:34:43.730 Samuel Roberts: you know, whatever. So yeah, definitely flip that to end, and do, like, all of this is a big search, so, like, over everything, over participants, over date, I think that’s good. I have a multi-select
424 00:34:44.130 ⇒ 00:34:51.060 Samuel Roberts: Autocomplete thing that we might be able to drop in here and do multiple participant search.
425 00:34:52.960 ⇒ 00:35:03.810 Samuel Roberts: which might not be as critical if people can just type names in here, but I wouldn’t worry about adding that yet. I think that’s something we need to do, because there’s definitely time if I want to, like, check meetings for… like, I was in with someone else or something.
426 00:35:04.280 ⇒ 00:35:04.950 Mustafa Raja: Yeah.
427 00:35:04.950 ⇒ 00:35:11.800 Samuel Roberts: But, I think that’s good for now, yeah. Check the… the loading thing, and… or the magic indefinite loading.
428 00:35:11.930 ⇒ 00:35:16.099 Samuel Roberts: And make that AND, and I think we’re pretty good.
429 00:35:19.130 ⇒ 00:35:25.140 Samuel Roberts: Yeah, I think one thing to, like, at least take it out from here is, like, query string stuff.
430 00:35:25.750 ⇒ 00:35:30.239 Samuel Roberts: I don’t know if anyone else has that problem. I definitely have had that problem multiple times, where I’ve, like, looked for something.
431 00:35:30.440 ⇒ 00:35:32.469 Samuel Roberts: Like, come in here.
432 00:35:32.940 ⇒ 00:35:37.979 Samuel Roberts: was like, oh, this is the wrong one, and I come back, and it’s just not what I had before, you know?
433 00:35:38.700 ⇒ 00:35:39.600 Mustafa Raja: Yeah.
434 00:35:41.020 ⇒ 00:35:44.710 Samuel Roberts: But I wouldn’t… yeah, I don’t think that’s this PR here, so…
435 00:35:45.100 ⇒ 00:35:45.600 Mustafa Raja: Okay.
436 00:35:45.600 ⇒ 00:35:50.940 Samuel Roberts: Maybe… maybe, Rico, can you make a… just, like, a ticket stub for that, and I can fill in what… how that would work?
437 00:35:52.240 ⇒ 00:35:52.800 Rico Rejoso: Oof.
438 00:35:53.650 ⇒ 00:35:59.550 Samuel Roberts: Cool, thank you. Was there anything else that we highlighted here that was like, oh, we gotta do that at some point while I’m thinking of it?
439 00:36:00.250 ⇒ 00:36:01.810 Samuel Roberts: Oh, the multi-select.
440 00:36:02.080 ⇒ 00:36:03.430 Samuel Roberts: participant.
441 00:36:03.430 ⇒ 00:36:04.150 Mustafa Raja: Yeah.
442 00:36:04.860 ⇒ 00:36:05.440 Uttam Kumaran: I’ll…
443 00:36:05.440 ⇒ 00:36:07.189 Samuel Roberts: Question also. Oh, go ahead.
444 00:36:07.190 ⇒ 00:36:08.490 Uttam Kumaran: Yeah, yeah.
445 00:36:09.170 ⇒ 00:36:15.660 Samuel Roberts: The only thing, yeah, I could probably get that going, I just don’t know how that’ll work. So, like, when you pick these participants, Mustafa.
446 00:36:15.790 ⇒ 00:36:16.230 Mustafa Raja: Mmm.
447 00:36:16.230 ⇒ 00:36:19.309 Samuel Roberts: And there’s… Is this just feeding a string in?
448 00:36:20.030 ⇒ 00:36:22.849 Mustafa Raja: It’s a filter on participants.
449 00:36:23.820 ⇒ 00:36:24.880 Samuel Roberts: Oh, okay, so, like, if…
450 00:36:24.880 ⇒ 00:36:26.140 Uttam Kumaran: It’s on TV.
451 00:36:27.920 ⇒ 00:36:28.540 Samuel Roberts: Sorry?
452 00:36:29.290 ⇒ 00:36:31.819 Uttam Kumaran: Participants is in the meetings database.
453 00:36:32.070 ⇒ 00:36:37.820 Samuel Roberts: Right, right, right, so that’s now a… but, like, I’m wondering how I do, like, so it can filter by multiple, theoretically, if we have that ability to…
454 00:36:37.820 ⇒ 00:36:39.859 Mustafa Raja: Yeah, we, we, we can. We can do that.
455 00:36:39.860 ⇒ 00:36:40.730 Samuel Roberts: Yeah, I just want to make sure it’s not…
456 00:36:40.890 ⇒ 00:36:41.450 Uttam Kumaran: like…
457 00:36:41.450 ⇒ 00:36:45.670 Samuel Roberts: messing up the way it’s doing it. But yeah, then, yeah, we’ll definitely ticket that out, because that’ll be relatively simple.
458 00:36:45.670 ⇒ 00:36:49.809 Uttam Kumaran: Yeah, well, it’s just… you just create… you can just create… it’s just a different WHERE clause, right? So…
459 00:36:49.810 ⇒ 00:36:50.340 Mustafa Raja: Yeah.
460 00:36:50.340 ⇒ 00:36:51.680 Samuel Roberts: Yeah, exactly.
461 00:36:52.700 ⇒ 00:36:57.460 Samuel Roberts: Just making sure it wasn’t, like, concatenating weird and doing some other lookup that I didn’t know.
462 00:36:57.600 ⇒ 00:37:00.530 Samuel Roberts: So then, does this all work under, like, clients as well?
463 00:37:00.530 ⇒ 00:37:01.120 Mustafa Raja: Nope.
464 00:37:01.530 ⇒ 00:37:02.210 Samuel Roberts: Okay.
465 00:37:05.940 ⇒ 00:37:08.830 Samuel Roberts: Because this is all different, the way it sorts it and everything, right?
466 00:37:09.570 ⇒ 00:37:10.700 Mustafa Raja: Yeah…
467 00:37:10.700 ⇒ 00:37:15.000 Samuel Roberts: Okay, that’s something else to think about in the, I would say, near term.
468 00:37:15.510 ⇒ 00:37:16.910 Mustafa Raja: Yeah.
469 00:37:17.740 ⇒ 00:37:22.850 Samuel Roberts: Adding whatever our own, you know, eventual improved.
470 00:37:22.850 ⇒ 00:37:23.510 Mustafa Raja: like, client development.
471 00:37:24.620 ⇒ 00:37:40.660 Mustafa Raja: Yeah, I guess we can, we can do that, because the meetings in here are based on the title only, so I guess we can put a filter on title that this certain name must be in the title, and then search further.
472 00:37:41.140 ⇒ 00:37:45.010 Samuel Roberts: Yes, but I feel like I want to make that improve.
473 00:37:45.410 ⇒ 00:37:45.740 Mustafa Raja: Anywhere.
474 00:37:46.860 ⇒ 00:38:00.700 Samuel Roberts: Because, like, like we’re doing with the departments, we want to kind of classify properly by client, rather than just go back to titles. But the titles, like, I feel like if we can enforce better, like, naming for everyone on the meetings, that’s helpful, but…
475 00:38:01.000 ⇒ 00:38:04.280 Samuel Roberts: Right now, it sometimes generates, like, a different title, and then
476 00:38:05.520 ⇒ 00:38:08.889 Samuel Roberts: wrong, and so I wouldn’t worry about that too much yet.
477 00:38:09.010 ⇒ 00:38:11.060 Samuel Roberts: But…
478 00:38:11.290 ⇒ 00:38:16.679 Samuel Roberts: This might be a little confusing if people are using one search on the dashboard for a minute and one search on the client.
479 00:38:18.920 ⇒ 00:38:20.340 Mustafa Raja: Er, yeah, I don’t know.
480 00:38:20.640 ⇒ 00:38:25.289 Samuel Roberts: But we might just have to deal with that until we get This cleaned up better, so…
481 00:38:27.280 ⇒ 00:38:30.009 Samuel Roberts: Alright, any other things I didn’t test out properly?
482 00:38:30.200 ⇒ 00:38:47.730 Mustafa Raja: One thing, so… so the… so there’s one issue. The issue is that, so these meetings aren’t sorted by created at, because we didn’t pass it. It’s… these are sorted by meeting date.
483 00:38:47.850 ⇒ 00:39:01.700 Mustafa Raja: And I… I was trying to figure out, if there’s a way we can, have it, properly give us meetings, sorted based on date. I couldn’t figure it out, though.
484 00:39:01.940 ⇒ 00:39:04.150 Mustafa Raja: I’ll look more into that.
485 00:39:04.420 ⇒ 00:39:05.450 Mustafa Raja: So it’s…
486 00:39:05.450 ⇒ 00:39:10.210 Samuel Roberts: So it’s sorted by the date of the meeting, not when it was inserted, is that what you’re saying?
487 00:39:10.210 ⇒ 00:39:22.310 Mustafa Raja: Yeah, yeah, so you see that, the meeting we have right now, on the top is, on 10.09, and then the below one is on 10.07.
488 00:39:22.630 ⇒ 00:39:26.489 Mustafa Raja: So there’s a lot of meetings that went by.
489 00:39:26.670 ⇒ 00:39:28.710 Mustafa Raja: Between these two.
490 00:39:29.920 ⇒ 00:39:32.620 Samuel Roberts: Oh, it’s only one per day right now, is that all it’s showing?
491 00:39:34.870 ⇒ 00:39:36.770 Samuel Roberts: Oh, I see what you’re saying, okay.
492 00:39:38.150 ⇒ 00:39:42.630 Samuel Roberts: Does that have a… does that have a richer timestamp in it at all, or is it just a date?
493 00:39:42.880 ⇒ 00:39:50.680 Mustafa Raja: It’s only the date, it’s not the timestamp. I think we would want to do created at, but first I’m…
494 00:39:50.680 ⇒ 00:39:51.060 Samuel Roberts: Yes.
495 00:39:51.060 ⇒ 00:39:54.600 Mustafa Raja: See if, if I can make this any better or not.
496 00:39:55.220 ⇒ 00:39:56.810 Samuel Roberts: Okay, yeah, I would say…
497 00:39:57.890 ⇒ 00:40:08.750 Samuel Roberts: Yeah, if meeting date is just a date, and created ad is gonna be, you know, like, an hour after the meeting was held anyway most of the time, or whatever that time latency is.
498 00:40:08.860 ⇒ 00:40:16.649 Samuel Roberts: And it’s gonna be a full timestamp and everything, then we definitely want that somewhere to filter by.
499 00:40:16.940 ⇒ 00:40:18.809 Samuel Roberts: And if we’re using…
500 00:40:19.900 ⇒ 00:40:25.409 Samuel Roberts: Turbo Puffer. We could add that to the Turbo Puffer, and then use it to filter and sort, right?
501 00:40:25.410 ⇒ 00:40:26.050 Mustafa Raja: Yep.
502 00:40:26.440 ⇒ 00:40:27.969 Samuel Roberts: But not search over.
503 00:40:29.310 ⇒ 00:40:30.799 Mustafa Raja: The created ad.
504 00:40:31.840 ⇒ 00:40:34.579 Samuel Roberts: Yeah, like, that would just be helpful for us for…
505 00:40:35.090 ⇒ 00:40:38.420 Samuel Roberts: filtering this and doing the date search and stuff, potentially, but okay.
506 00:40:39.020 ⇒ 00:40:42.609 Samuel Roberts: So does that involve, like, re-backfilling with the created end date?
507 00:40:43.580 ⇒ 00:40:46.140 Mustafa Raja: Yeah, I’m just absurd.
508 00:40:47.230 ⇒ 00:40:53.829 Mustafa Raja: Okay, yeah, based on the IDs. The ID is actually superbills IDs, so it’s perfectly mapped.
509 00:40:55.460 ⇒ 00:41:00.189 Samuel Roberts: Oh, great, okay. So is that something that can happen today, or should I retick that separately, or just…
510 00:41:00.190 ⇒ 00:41:04.350 Mustafa Raja: Yeah, maybe we should, ticket it.
511 00:41:04.350 ⇒ 00:41:04.890 Samuel Roberts: Okay.
512 00:41:04.890 ⇒ 00:41:08.140 Mustafa Raja: I have some insomnia work, and then I want to work on the department still.
513 00:41:08.700 ⇒ 00:41:11.889 Samuel Roberts: Okay, cool, yeah, so then we’ll get this merged in,
514 00:41:12.150 ⇒ 00:41:16.110 Samuel Roberts: And ticket bat out for, hopefully, a quick one next week, probably, then. Yeah.
515 00:41:16.640 ⇒ 00:41:17.690 Samuel Roberts: Okay, good.
516 00:41:18.300 ⇒ 00:41:21.190 Samuel Roberts: Anything else anyone wants to try out while we’re looking at it?
517 00:41:26.470 ⇒ 00:41:31.120 Uttam Kumaran: I think that’s it, I may play around a bunch with Cortex later today, I have a couple hours.
518 00:41:31.830 ⇒ 00:41:32.750 Samuel Roberts: Yeah, okay.
519 00:41:33.550 ⇒ 00:41:37.840 Uttam Kumaran: If I may, like… now that I have, like, enough context about how the structure is.
520 00:41:38.000 ⇒ 00:41:40.770 Uttam Kumaran: I may try to… Try to push a couple, like.
521 00:41:41.530 ⇒ 00:41:43.540 Uttam Kumaran: Couple things I’ve been sitting on.
522 00:41:44.230 ⇒ 00:41:45.080 Samuel Roberts: Yeah, totally.
523 00:41:46.370 ⇒ 00:41:51.830 Uttam Kumaran: Yeah, cool. And then, I guess one thing I’ll also do is I’m gonna get… I’m gonna see how much I can get
524 00:41:51.960 ⇒ 00:41:57.140 Uttam Kumaran: the structure of the database actually given to a cursor, or, like.
525 00:41:57.390 ⇒ 00:42:04.160 Uttam Kumaran: So that you can query, like, Supabase and stuff, because I don’t know how much back-end work we can do via AI.
526 00:42:04.300 ⇒ 00:42:06.790 Uttam Kumaran: But, like, that’s something I want to test out as well, so…
527 00:42:06.790 ⇒ 00:42:11.830 Samuel Roberts: Yeah, I, when I created the metadata table, for example.
528 00:42:12.560 ⇒ 00:42:15.729 Samuel Roberts: I kind of had it to… There’s a few different…
529 00:42:16.230 ⇒ 00:42:21.299 Samuel Roberts: ways to do Supabase, right? Like, you can create migration files and, like, track it better.
530 00:42:21.460 ⇒ 00:42:24.099 Samuel Roberts: And, like, roll things up and down,
531 00:42:24.380 ⇒ 00:42:29.070 Samuel Roberts: But when you’re creating from the UI in Superbase, you’re not really doing that, and that’s…
532 00:42:29.290 ⇒ 00:42:36.639 Samuel Roberts: it’s… I don’t think it’s critical for us either, because we have just, like, this one project, we don’t have, like, test data, it’s all real data, you know?
533 00:42:36.960 ⇒ 00:42:39.449 Samuel Roberts: But, what I was able to do was just
534 00:42:39.710 ⇒ 00:42:43.930 Samuel Roberts: give it the SQL dump from the schema page.
535 00:42:44.490 ⇒ 00:42:45.740 Samuel Roberts: on Supabase.
536 00:42:46.130 ⇒ 00:42:54.090 Samuel Roberts: And then it figured out the migration for me. I was able to input that into Superbase and generate the table that had everything I needed and everything like that.
537 00:42:54.540 ⇒ 00:42:59.199 Samuel Roberts: It’s a… it’s a kind of big dump, because it’s, like, the entire… Like, public schema.
538 00:42:59.590 ⇒ 00:43:02.110 Samuel Roberts: I think they have an MCP server?
539 00:43:03.960 ⇒ 00:43:06.179 Samuel Roberts: I have not used it yet, so…
540 00:43:06.650 ⇒ 00:43:08.220 Samuel Roberts: That could be worth trying out.
541 00:43:10.770 ⇒ 00:43:12.710 Uttam Kumaran: Okay, yeah, I mean…
542 00:43:12.710 ⇒ 00:43:22.900 Samuel Roberts: I don’t know what it can do in terms of, like… because I think it can actually, like, you know, do things to the data as well, but we just… if we want to be able to access schema and have cursor, like, know how to build a…
543 00:43:23.540 ⇒ 00:43:33.309 Samuel Roberts: change and where the database has to get updated and stuff, like, worth trying out. I would just be a little more cautious about that, because, like I said, it just is changing right to the production database.
544 00:43:35.420 ⇒ 00:43:40.800 Samuel Roberts: So just, like, keep an eye on it if it’s, like, moving data around, or doing anything that’s not just, like, fetching schemas and stuff.
545 00:43:42.180 ⇒ 00:43:48.999 Samuel Roberts: Otherwise go nuts. And there’s also backups, so, you know, it’s backed up every early morning, I think?
546 00:43:50.570 ⇒ 00:43:58.579 Samuel Roberts: And I don’t know… there are snapshots you can do, but I think it’s an upgraded plan, so…
547 00:44:00.180 ⇒ 00:44:06.039 Samuel Roberts: Might be worth having at some point for this specific database.
548 00:44:06.500 ⇒ 00:44:07.589 Samuel Roberts: Just cause, like.
549 00:44:08.290 ⇒ 00:44:13.729 Samuel Roberts: all the meetings end up in there, and if we lose all day of meetings, it’s, like, not really gonna get backfilled properly, so…
550 00:44:14.700 ⇒ 00:44:15.370 Samuel Roberts: That’s a thought.
551 00:44:16.780 ⇒ 00:44:19.710 Samuel Roberts: I don’t know… it says, yeah, it just says enable add-on.
552 00:44:20.260 ⇒ 00:44:28.009 Samuel Roberts: is a pro plan add-on, is what I see, and then I need permissions to do it, so I don’t know what it actually adds, but I don’t think you have to add it to, like, every project, you know?
553 00:44:29.710 ⇒ 00:44:30.400 Uttam Kumaran: Okay.
554 00:44:30.720 ⇒ 00:44:34.489 Samuel Roberts: So it might be smart, especially if you’re gonna try out the MCP server and stuff.
555 00:44:35.240 ⇒ 00:44:45.250 Samuel Roberts: Because, you know, as long as you’re approving every step, it’s not that big a deal, but if you want to go, like, what do they call it? YOLO mode and just give it access, definitely, like, run a…
556 00:44:45.400 ⇒ 00:44:46.859 Samuel Roberts: Point in time back up.
557 00:44:48.100 ⇒ 00:44:48.680 Uttam Kumaran: Okay.
558 00:44:49.390 ⇒ 00:44:54.439 Samuel Roberts: Yeah, otherwise, otherwise, yeah, have fun with it. Let me know, If you don’t…
559 00:44:54.440 ⇒ 00:44:56.860 Uttam Kumaran: The service good.
560 00:44:56.860 ⇒ 00:44:57.740 Samuel Roberts: Yeah.
561 00:44:58.010 ⇒ 00:45:00.720 Samuel Roberts: Sweets, that’d be great. And yeah, like I said, if you…
562 00:45:01.370 ⇒ 00:45:09.149 Samuel Roberts: previously, like, this… this branch that Mustafa got up, anything that… So, it doesn’t automatically,
563 00:45:10.060 ⇒ 00:45:18.770 Samuel Roberts: create, review apps for branches the way Vercel does, but I have it set up that any PR gets a review branch.
564 00:45:18.940 ⇒ 00:45:20.400 Samuel Roberts: Does that make sense? So, like…
565 00:45:20.870 ⇒ 00:45:26.399 Samuel Roberts: You can obviously test everything locally, but anything you push to a branch doesn’t have a…
566 00:45:26.720 ⇒ 00:45:30.310 Samuel Roberts: live URL until you make a PR. So, like.
567 00:45:30.310 ⇒ 00:45:31.120 Uttam Kumaran: Oh, okay.
568 00:45:31.120 ⇒ 00:45:42.590 Samuel Roberts: If you want to share it, feel free to, like, make a draft PR or something. Actually, I don’t know about draft PRs, we’ll find that out, but, you know, make a PR, and we just won’t intend to merge it until it’s good, or just as a way to get a demo out to people.
569 00:45:42.890 ⇒ 00:45:46.720 Samuel Roberts: Okay. That’s what, like, that’s what you see in the, like, infra channel that gets built.
570 00:45:46.940 ⇒ 00:45:51.489 Samuel Roberts: Every time. And I think it’s set up properly to get the environment variables now?
571 00:45:52.220 ⇒ 00:45:54.439 Samuel Roberts: Because technically, they’re separate apps.
572 00:45:55.050 ⇒ 00:45:56.360 Samuel Roberts: Did you have issues with that, Mustafa.
573 00:45:56.360 ⇒ 00:46:01.019 Mustafa Raja: Yeah, it didn’t pull, turbo buffer key.
574 00:46:01.980 ⇒ 00:46:04.810 Samuel Roberts: Okay, that’s cause that’s a new one. Okay.
575 00:46:04.810 ⇒ 00:46:08.470 Mustafa Raja: Yeah, yeah, the rest of those, those were good. Right.
576 00:46:08.470 ⇒ 00:46:08.870 Samuel Roberts: Okay, yeah.
577 00:46:08.870 ⇒ 00:46:10.230 Mustafa Raja: we were struggling.
578 00:46:10.550 ⇒ 00:46:20.699 Samuel Roberts: So I would say what you should do, specifically for TurboPuff for now, because this will also break the production app, is add it to the production environment.
579 00:46:20.700 ⇒ 00:46:21.390 Mustafa Raja: Okay.
580 00:46:21.840 ⇒ 00:46:27.719 Samuel Roberts: But, excuse me, also add it to the overall pipeline environment variables.
581 00:46:28.070 ⇒ 00:46:30.400 Samuel Roberts: And that will then pull for every review app.
582 00:46:30.680 ⇒ 00:46:32.559 Mustafa Raja: Yeah, I’ll do that, I’ll do that.
583 00:46:33.000 ⇒ 00:46:37.760 Samuel Roberts: Great, thank you. Good catch. I didn’t even think of that, but that definitely would have broken everything when we pushed it live.
584 00:46:38.290 ⇒ 00:46:39.170 Mustafa Raja: Yeah.
585 00:46:41.850 ⇒ 00:46:44.439 Samuel Roberts: And that’s why you don’t do that on a Friday, which we’re about to do, so…
586 00:46:47.060 ⇒ 00:46:49.399 Samuel Roberts: But yeah, I’ll let you… I’ll let you get the key… go ahead.
587 00:46:49.400 ⇒ 00:46:51.979 Uttam Kumaran: I just installed ZuaVase MCP, so…
588 00:46:52.180 ⇒ 00:46:53.320 Samuel Roberts: Sweet.
589 00:46:53.320 ⇒ 00:46:54.120 Uttam Kumaran: Yeah.
590 00:46:56.170 ⇒ 00:46:58.250 Samuel Roberts: Do you have a lot of MCPs in Cursor?
591 00:46:58.790 ⇒ 00:47:02.210 Uttam Kumaran: I have Linear, Notion, and Supabase.
592 00:47:02.860 ⇒ 00:47:03.870 Samuel Roberts: Cool, okay.
593 00:47:04.030 ⇒ 00:47:08.179 Samuel Roberts: Because one thing I’ve seen is that, like, the more tools that it has, the less it, like.
594 00:47:08.950 ⇒ 00:47:10.589 Samuel Roberts: does it right? And, like…
595 00:47:10.590 ⇒ 00:47:15.910 Uttam Kumaran: Yeah, it honestly hasn’t been calling… I mean, like, Linear and Notion I’ve been using because I…
596 00:47:16.010 ⇒ 00:47:19.970 Uttam Kumaran: you’re using for, like, documents, but the Superbase is the only one. I mean…
597 00:47:20.130 ⇒ 00:47:25.910 Uttam Kumaran: I guess I could… I may add the Chrome automation, too, because one of the things I want to test is, like, I want to give it
598 00:47:26.570 ⇒ 00:47:28.860 Uttam Kumaran: Access to the front end to see.
599 00:47:28.860 ⇒ 00:47:29.390 Samuel Roberts: Yes.
600 00:47:30.870 ⇒ 00:47:32.950 Uttam Kumaran: You know, so… 100%.
601 00:47:33.350 ⇒ 00:47:37.759 Uttam Kumaran: Install the browser automation, so it can actually pull up localhost there.
602 00:47:39.010 ⇒ 00:47:39.769 Mustafa Raja: This is super…
603 00:47:39.770 ⇒ 00:47:40.520 Samuel Roberts: Yeah.
604 00:47:41.220 ⇒ 00:47:42.320 Mustafa Raja: I’ll try that too.
605 00:47:43.110 ⇒ 00:47:47.770 Samuel Roberts: Yeah, let me know how it goes, because I had another one… this, like, cursor added that functionality recently, right?
606 00:47:49.020 ⇒ 00:47:52.910 Samuel Roberts: Because there’s another one I had that was, like, a separate, like.
607 00:47:53.240 ⇒ 00:47:54.149 Mustafa Raja: you know.
608 00:47:54.460 ⇒ 00:48:00.870 Samuel Roberts: MCP server for, like, a Chrome instantiation, and it wasn’t great, so I’m hoping the cursor one is better.
609 00:48:01.880 ⇒ 00:48:07.729 Samuel Roberts: But I haven’t tried it out yet. Sweet. Alright, cool. Anything else, to discuss in this review?
610 00:48:08.400 ⇒ 00:48:13.400 Samuel Roberts: overall weak stuff, or, you know, how are you as the client feeling new, Tom?
611 00:48:14.490 ⇒ 00:48:16.750 Uttam Kumaran: I feel okay.
612 00:48:17.430 ⇒ 00:48:19.220 Samuel Roberts: I mean, like, I am…
613 00:48:19.500 ⇒ 00:48:29.829 Uttam Kumaran: you guys know me, like, I’m very optimistic, but also, like, I… we’re sitting on so much alpha here, just as much as to, like…
614 00:48:29.990 ⇒ 00:48:34.630 Uttam Kumaran: Make… take big strides and, like, just move.
615 00:48:34.850 ⇒ 00:48:43.979 Uttam Kumaran: fast and, like, not break things, but, like, we don’t have any risk, you know, it’s only us that are using it. And so, some of the core abilities
616 00:48:44.210 ⇒ 00:48:54.730 Uttam Kumaran: you know, now that we have a pretty good cadence, I’ll share with you guys, like, for example, just now, I… for a client, I needed to talk… I needed to chat over multiple meetings, and I couldn’t do it, so…
617 00:48:54.860 ⇒ 00:49:12.919 Uttam Kumaran: I sent something that I thought was right, but I could have been better, and, like, that was something that, okay, we’re maybe, like, a couple hours away from. Yeah. So, that’s one thing, and then second is, like, look, the faster we get across the company, the more budget, like, I’m gonna try to give this team, and so I want to make sure that
618 00:49:12.920 ⇒ 00:49:20.910 Uttam Kumaran: I think you guys will see me now that I’m gonna be involved in, sort of, like, clients. I’ll free you guys up to… for hopefully a more focus.
619 00:49:20.960 ⇒ 00:49:24.099 Uttam Kumaran: You know, across the board, so we can execute here.
620 00:49:24.530 ⇒ 00:49:27.820 Uttam Kumaran: and I think we probably have room for…
621 00:49:27.920 ⇒ 00:49:37.419 Uttam Kumaran: you know, later this quarter to maybe bring on an additional person to come help. It depends if we land a couple of clients, so… I feel good about stuff. I just think…
622 00:49:37.430 ⇒ 00:49:50.709 Uttam Kumaran: probably my… my push to you guys, Casey and Mustafa, is, like, when you’re pushing PRs, go one step further and, like, consult with magic patterns, or consult with, like, ChatGBT on, like, UI, like.
623 00:49:50.990 ⇒ 00:49:53.899 Uttam Kumaran: Have it critique your UI and give you feedback.
624 00:49:54.090 ⇒ 00:49:59.609 Uttam Kumaran: And then, probably to Sam’s, I would say, just, like, rip stuff out of that then and transfer it, like…
625 00:49:59.760 ⇒ 00:50:00.319 Uttam Kumaran: That’s fine.
626 00:50:00.320 ⇒ 00:50:00.680 Samuel Roberts: Yeah.
627 00:50:00.680 ⇒ 00:50:17.919 Uttam Kumaran: and use codex to do that, because as the client, like, I… I can… what… what you already know is true, is the client doesn’t care about migrations and stuff, right? Client cares about… and, like, being able to have the new functionality, so…
628 00:50:17.920 ⇒ 00:50:18.940 Samuel Roberts: Exactly.
629 00:50:18.940 ⇒ 00:50:23.910 Uttam Kumaran: Yeah, I’m excited to try to, like, get… get… get through that, so…
630 00:50:27.190 ⇒ 00:50:41.819 Samuel Roberts: Cool. Yeah, there’s a ton of potential in this… in the forge and other things, and just, like, yeah, getting the time and resources is… is… is huge, so yeah. More clients, more… more leverage we can generate. I’m real excited to see more of it.
631 00:50:42.980 ⇒ 00:50:43.430 Uttam Kumaran: Right.
632 00:50:43.430 ⇒ 00:50:51.639 Samuel Roberts: Because even, like, little things where I’m just, like, going back is a pain in the butt, and I’m like, that’s an easy fix, but I gotta make sure that we, like, you know, prioritize it, and things like that, where I’m like.
633 00:50:52.080 ⇒ 00:50:58.050 Samuel Roberts: You know, little tweaks like that would help people probably save seconds here and there, and that builds up, and all that stuff, so…
634 00:50:58.330 ⇒ 00:50:59.639 Uttam Kumaran: Yes, definitely.
635 00:51:01.700 ⇒ 00:51:02.420 Samuel Roberts: A hoop.
636 00:51:03.290 ⇒ 00:51:04.559 Samuel Roberts: Anything else, anyone?
637 00:51:05.650 ⇒ 00:51:11.289 Mustafa Raja: I’m wondering if we can talk about the insomnia ticket that I am assigned? .
638 00:51:12.000 ⇒ 00:51:12.640 Uttam Kumaran: Yeah.
639 00:51:13.120 ⇒ 00:51:15.210 Mustafa Raja: Okay, let me, let me share my screen.
640 00:51:16.570 ⇒ 00:51:33.569 Mustafa Raja: Okay, so for… for both of these, spi… both of these spikes, for this one, what Robert wanted was, to be able to link product, lab… product level data
641 00:51:33.570 ⇒ 00:51:39.210 Mustafa Raja: to campaign… campaigns. But, so…
642 00:51:40.010 ⇒ 00:51:58.800 Mustafa Raja: campaign… so campaign exports, they do not, send us anything related to, which products, were included, or to which users, they were pitching to. But what we can do is…
643 00:51:58.800 ⇒ 00:52:00.849 Mustafa Raja: We can create segments.
644 00:52:01.010 ⇒ 00:52:13.440 Mustafa Raja: So this is a segment, that, includes these all campaigns, and what we then can do is…
645 00:52:14.500 ⇒ 00:52:28.059 Mustafa Raja: Let me pull it, this one, yeah. What we can do is pull all the users that fall into that segment, and then we can see the each user’s purchases.
646 00:52:28.870 ⇒ 00:52:35.079 Mustafa Raja: In past 90 days, and the campaigns that they have received.
647 00:52:35.080 ⇒ 00:52:49.000 Mustafa Raja: In those past 90 days. We still cannot link purchases directly to each campaign, but we know how many campaigns each user has received and how many purchases.
648 00:52:49.050 ⇒ 00:52:54.949 Mustafa Raja: They have been, and for purchases, we know which product was being bought.
649 00:52:55.410 ⇒ 00:52:56.399 Mustafa Raja: and all.
650 00:52:56.830 ⇒ 00:53:00.970 Uttam Kumaran: And then, can you say that one more thing? You didn’t… you still can’t link what to campaigns?
651 00:53:01.170 ⇒ 00:53:12.220 Mustafa Raja: So we cannot directly know, okay, because of this campaign, the user was able to purchase this certain product.
652 00:53:13.220 ⇒ 00:53:22.149 Mustafa Raja: Because this is going to be all of the campaigns that user received in last 90 days, and all of the purchases that user has made in those last 90 days.
653 00:53:22.150 ⇒ 00:53:25.370 Uttam Kumaran: But do you have, you have timestamps for each of those, right?
654 00:53:26.680 ⇒ 00:53:32.820 Mustafa Raja: Let me see, I have the start date and the…
655 00:53:33.120 ⇒ 00:53:38.289 Mustafa Raja: And the… meaning the first purchase and the last purchase, in terms of purchases?
656 00:53:38.290 ⇒ 00:53:40.259 Uttam Kumaran: And the, and the, and the campaigns.
657 00:53:41.240 ⇒ 00:53:45.199 Mustafa Raja: Yeah, yeah. Campaign just save…
658 00:53:45.510 ⇒ 00:53:51.609 Uttam Kumaran: Yeah, that’s fine, because then you leave it to Robert to decide. So one thing I would ask Robert is, like, mention that.
659 00:53:51.820 ⇒ 00:53:57.879 Uttam Kumaran: And then mention, like, we can decide whether we want to do first touch, last touch, multi-touch. This is attribution.
660 00:53:58.140 ⇒ 00:54:06.320 Uttam Kumaran: And so basically what you do is you have to… the marketing team will decide, hey, do you want to attribute it to the last campaign, the first campaign?
661 00:54:06.560 ⇒ 00:54:10.210 Uttam Kumaran: You know, so as long as you have all that data, it’s fine, so I would send…
662 00:54:10.540 ⇒ 00:54:14.869 Uttam Kumaran: Either what you could do is you could just basically share this Braze link.
663 00:54:15.020 ⇒ 00:54:22.350 Uttam Kumaran: And then share an example of, like, what you get for a specific user, just in a code snippet or something, and then…
664 00:54:22.800 ⇒ 00:54:27.289 Uttam Kumaran: I would just mention to Robert, like, hey, we’ll have to decide how we do attribution.
665 00:54:27.430 ⇒ 00:54:29.479 Mustafa Raja: Okay, one more thing.
666 00:54:29.920 ⇒ 00:54:36.469 Mustafa Raja: This endpoint has, this endpoint, has a limitation.
667 00:54:36.770 ⇒ 00:54:42.569 Mustafa Raja: So, we are… the rate limit is,
668 00:54:42.990 ⇒ 00:54:52.009 Mustafa Raja: I guess the rate limit isn’t an issue. The issue is, that they have connected the Azure, so if I,
669 00:54:52.070 ⇒ 00:55:10.319 Mustafa Raja: if I ask them to, give me this, give me this segment, but they do give us is only a prefix, and why is that? It’s because they have an, Azure connected, Azure Store connected, and the download link
670 00:55:10.470 ⇒ 00:55:14.409 Mustafa Raja: would go there, not… not come here. So…
671 00:55:14.410 ⇒ 00:55:15.450 Uttam Kumaran: Okay, cool.
672 00:55:15.450 ⇒ 00:55:15.920 Mustafa Raja: Yeah.
673 00:55:15.920 ⇒ 00:55:20.670 Uttam Kumaran: So then one thing we can do is we can… I would also send that in a second message.
674 00:55:20.670 ⇒ 00:55:23.429 Mustafa Raja: Okay. And then mention that, like, we…
675 00:55:24.190 ⇒ 00:55:29.299 Uttam Kumaran: just need to… do you know what the full URL would be? Because you can check whether we have access to that.
676 00:55:29.700 ⇒ 00:55:32.470 Mustafa Raja: No, the URL comes up null.
677 00:55:33.310 ⇒ 00:55:35.929 Uttam Kumaran: We’ll go back, scroll… scroll up…
678 00:55:36.830 ⇒ 00:55:40.809 Uttam Kumaran: Oh, okay, so we just need access to the S3 bucket, or…
679 00:55:41.320 ⇒ 00:55:43.890 Mustafa Raja: Yeah, it’s going to be that.
680 00:55:43.890 ⇒ 00:55:45.330 Uttam Kumaran: Well, you said Azure, right?
681 00:55:46.060 ⇒ 00:55:50.539 Mustafa Raja: It’s Azure, GCP, or S3, either one of those, yeah.
682 00:55:52.890 ⇒ 00:55:58.479 Uttam Kumaran: Oh, okay, so then I would… okay, so I would just copy this section, and a second message, say, like, hey.
683 00:55:59.310 ⇒ 00:56:01.240 Uttam Kumaran: We can get the segments.
684 00:56:01.390 ⇒ 00:56:05.629 Uttam Kumaran: But we need to know… We need to go find out.
685 00:56:07.060 ⇒ 00:56:08.150 Uttam Kumaran: Where this is going.
686 00:56:11.490 ⇒ 00:56:28.970 Mustafa Raja: Yeah, also, this segment covers about… I think this is 13, 13 million users. They have 15 million. I think they didn’t include all of the campaigns, so we are not getting all 15, but I guess, if this gets approved, we can make our own segment.
687 00:56:29.350 ⇒ 00:56:32.049 Mustafa Raja: And get our things ready.
688 00:56:33.090 ⇒ 00:56:33.770 Uttam Kumaran: Okay.
689 00:56:33.800 ⇒ 00:56:36.869 Mustafa Raja: So this was, to link.
690 00:56:36.870 ⇒ 00:56:39.969 Uttam Kumaran: Yeah, I would just put all the information in the ticket, basically.
691 00:56:40.730 ⇒ 00:56:41.540 Mustafa Raja: Yeah.
692 00:56:42.100 ⇒ 00:56:45.550 Mustafa Raja: And for RMF,
693 00:56:49.040 ⇒ 00:56:57.969 Mustafa Raja: Product level… so this is, this, we, we do have this then, because Robert wanted to see if we can link both
694 00:56:58.200 ⇒ 00:57:08.740 Mustafa Raja: link purchases to the users directly, and we can. This is the sort of export that we… no, this one that was… this one.
695 00:57:08.840 ⇒ 00:57:22.340 Mustafa Raja: Okay, so we have the user IDs over here, the users, and then so and so, so we’ll have our purchases and all included in there, but these would be only for past 90 days.
696 00:57:25.670 ⇒ 00:57:28.130 Mustafa Raja: Yeah, and that’s all for both of these tickets.
697 00:57:28.590 ⇒ 00:57:29.260 Uttam Kumaran: Okay.
698 00:57:30.460 ⇒ 00:57:33.540 Mustafa Raja: Yeah, I’ll update in the channel.
699 00:57:38.360 ⇒ 00:57:40.430 Mustafa Raja: Okay, perfect. Yeah, that’s all, that’s all. Thank you.
700 00:57:41.210 ⇒ 00:57:42.940 Uttam Kumaran: Alright, thank you.
701 00:57:43.200 ⇒ 00:57:44.320 Uttam Kumaran: Thanks, Haz.
702 00:57:46.600 ⇒ 00:57:46.970 Casie Aviles: Thank you.
703 00:57:46.970 ⇒ 00:57:47.850 Samuel Roberts: Get it less time.
704 00:57:48.200 ⇒ 00:57:50.080 Uttam Kumaran: Okay, talk to you soon. Bye.
705 00:57:50.080 ⇒ 00:57:50.479 Samuel Roberts: Yeah.
706 00:57:50.480 ⇒ 00:57:51.030 Mustafa Raja: Right.
707 00:57:51.030 ⇒ 00:57:51.750 Samuel Roberts: Aye.