Meeting Title: Brainforge Final Interview Date: 2026-03-16 Meeting participants: Srinivas Saiteja Tenneti, Uttam Kumaran, Samuel Roberts


WEBVTT

1 00:02:21.870 00:02:22.710 Uttam Kumaran: Hello.

2 00:02:23.330 00:02:27.299 Srinivas Saiteja Tenneti: Oh, hi, I was about to send mail. Sorry.

3 00:02:28.350 00:02:29.929 Srinivas Saiteja Tenneti: Hi, hi Utam, how are you?

4 00:02:29.930 00:02:30.920 Uttam Kumaran: How’s everything?

5 00:02:31.570 00:02:32.339 Srinivas Saiteja Tenneti: Yeah, I’m doing…

6 00:02:32.340 00:02:33.570 Uttam Kumaran: Hey, good, how are you?

7 00:02:33.930 00:02:35.259 Srinivas Saiteja Tenneti: Yeah, I’m doing great.

8 00:02:36.470 00:02:38.009 Srinivas Saiteja Tenneti: Yeah, excited, actually.

9 00:02:38.010 00:02:46.570 Uttam Kumaran: Good to see you, appreciate you taking the time. Yeah, I’m pumped to kind of see the exercise, and yeah, I appreciate it. I’m really, really looking forward to this, so…

10 00:02:46.650 00:02:49.180 Uttam Kumaran: I don’t know if you might have had a chance to…

11 00:02:49.240 00:03:03.969 Uttam Kumaran: to meet Sam through the process, but yeah, I think it’s probably first times… first time we’re meeting. I… yeah, so maybe a brief introduction. I, I know your… I know your background, but I… I lead Brainforge. My background is in…

12 00:03:03.970 00:03:07.620 Uttam Kumaran: In engineering, computer engineering, so, you know, really been…

13 00:03:07.620 00:03:24.230 Uttam Kumaran: excited that our AI team is growing, and was super, super impressed with your loom and sort of your process so far, so really excited to see you today. And, I think today, yeah, just mainly, I think, we just wanted to kind of go through the exercise, and I want to just make sure there’s

14 00:03:24.230 00:03:33.529 Uttam Kumaran: Time at the end for any questions. I know we have 45 minutes, so probably around, like, right now it’s 63 o’clock here, so in, like, 30 minutes or so, I’ll just make sure we have time.

15 00:03:33.710 00:03:39.980 Uttam Kumaran: But yeah, we can kind of get… we can kind of get started with things. So maybe, Sam, I can kind of let you lead.

16 00:03:40.090 00:03:45.669 Uttam Kumaran: And then, yeah, kind of finish, yeah. Go ahead.

17 00:03:45.670 00:03:47.719 Srinivas Saiteja Tenneti: Should I start with my demo, you mean?

18 00:03:48.420 00:03:49.060 Uttam Kumaran: Yeah.

19 00:03:49.680 00:03:54.890 Srinivas Saiteja Tenneti: Sure, okay, give me a second, let me, like, screen share it.

20 00:03:55.850 00:03:59.110 Srinivas Saiteja Tenneti: Actually, I have met Sam in my first meeting as well.

21 00:04:00.020 00:04:00.430 Samuel Roberts: Yes.

22 00:04:00.430 00:04:01.050 Uttam Kumaran: Nice.

23 00:04:02.190 00:04:07.490 Srinivas Saiteja Tenneti: The screen share… Okay.

24 00:04:07.780 00:04:10.720 Srinivas Saiteja Tenneti: Sorry, my Louis Hamilton came in the background.

25 00:04:12.410 00:04:13.540 Samuel Roberts: Okay.

26 00:04:14.050 00:04:18.119 Srinivas Saiteja Tenneti: These are my, like, test files. I have tested for all the test cases.

27 00:04:18.420 00:04:23.810 Srinivas Saiteja Tenneti: So… Yeah, okay, wait a second.

28 00:04:31.310 00:04:32.500 Srinivas Saiteja Tenneti: Okay…

29 00:04:34.760 00:04:43.270 Srinivas Saiteja Tenneti: So, yeah, as you could see, this is my proper architecture. So, what… you can see… see my screen, right?

30 00:04:44.610 00:04:45.090 Uttam Kumaran: Yes.

31 00:04:45.090 00:04:45.700 Samuel Roberts: Yep.

32 00:04:45.700 00:04:52.210 Srinivas Saiteja Tenneti: Yeah, and so what it does is, like, first, it usually, like, takes the files, like, text, PDF, or, like.

33 00:04:52.210 00:05:06.410 Srinivas Saiteja Tenneti: whatever it is mentioned, as I’ve shown you. Like, total… in total, I would say, like, 13 types of input files, and then it goes through the file router. So what the file router does is, like, it basically, like, detects

34 00:05:06.410 00:05:17.490 Srinivas Saiteja Tenneti: like, the type of, like, the files. Okay, let’s say it is, like.pdf, or .txt.json, or .png, or, image, like, JPEG, or anything like that.

35 00:05:17.490 00:05:33.309 Srinivas Saiteja Tenneti: So, based on that, it will route it to the extractors. So, each extractor, let’s say this is the text reader, which, has the basic, like, Python libraries. Simple, it will, like, extract the test which is present in the .txt or JSON, or…

36 00:05:33.310 00:05:50.209 Srinivas Saiteja Tenneti: the similar kind of files. And here, for the PDF, PiMU PDF, which I have used, so I have seen, like, similar kinds, but PiMU PDF was better, I felt. And also, you know, in some cases, while I have, like, checked it through testing.

37 00:05:50.210 00:06:03.199 Srinivas Saiteja Tenneti: like, in some PDFs, you know, you can scan via Adobe, like, Adobe Scan, or it might have some digital, images in it, like, embedded into it. So for that, I have kept it as a per page, fallback to Vision.

38 00:06:03.200 00:06:20.090 Srinivas Saiteja Tenneti: Because, let’s say I have kept it in as such as that if, like, a PDF has less than 20 characters, and, let’s say it has any, like, you know, images embedded into it, then it will be gone through the, like, Cloud Vision, okay? So, for the OCR check.

39 00:06:20.140 00:06:34.069 Srinivas Saiteja Tenneti: So, I have routed it that way. If there is no, like, you know, no images or anything, then of course, it will be done via PiMU PDF. And I have chosen as my main OCR engine as a CloudVision, because

40 00:06:34.100 00:06:45.680 Srinivas Saiteja Tenneti: I have tested, like, I have checked in many. Actually, I have built, like, two simultaneously models, like, using Tesseract and also using Cloud Vision. Why? Because,

41 00:06:45.740 00:06:57.380 Srinivas Saiteja Tenneti: Tesseract is good, but during testing, in some cases, the Tesseract failed, because let’s say, for CL02, okay, CLO2, or let’s say if you take CL12,

42 00:06:57.450 00:07:11.409 Srinivas Saiteja Tenneti: Okay, Cl12 is there, and the same way CL, like, C12 is there, in the same way Cl2 is there. C2… I mean, Cl2 is like chlorine with two compounds, but C12 is like carbon-12 compounds, right?

43 00:07:11.410 00:07:23.610 Srinivas Saiteja Tenneti: So, in that case, Tesseract, usually what it does is, like, it read those, C12 or C12 as CL2, or else, like, CL2 to C12. So, there was an,

44 00:07:23.630 00:07:30.809 Srinivas Saiteja Tenneti: like, a problem with it, in few cases, in few scenarios, so that’s why I have chose, ClawVision OCR.

45 00:07:31.030 00:07:33.140 Srinivas Saiteja Tenneti: And also, it was like, you know.

46 00:07:33.190 00:07:48.380 Srinivas Saiteja Tenneti: using Tesseract is, like, free, but there was, like, multiple things I need to take care of. It will be, like, a proper, you know, too much complex, I should say. And for the CSV and . For these kind of files.

47 00:07:48.380 00:08:04.350 Srinivas Saiteja Tenneti: I have used, like, basic pandas, like, to extract the key value tabular, and also some, you know, some columns which won’t be having any headers, like, let’s say no, like, headerless formats. So, for those kind of scenarios, pandas.

48 00:08:04.490 00:08:19.310 Srinivas Saiteja Tenneti: From there, it will be going through the ingredient parser, so what it does is, like, it extracts the product’s, like, you know, metadata and clean ingredient list. It also, like, handles, like, bullet points, or else, like, commas, pipes.

49 00:08:19.410 00:08:34.880 Srinivas Saiteja Tenneti: pipes, of course, and also, like, numbered lists, and also chemical formulas with parenthesis. Let’s say we have lead acetate, which is known as, like, PB in brackets, C2 has 30O2. So, the brackets, usually, like, if,

50 00:08:34.880 00:08:52.050 Srinivas Saiteja Tenneti: you know, sometimes the model can read differently, so the parenthesis has been, like, will be retained to read it as a proper compound, because in a few cases, it… I am saying you honestly, because while I was doing testing, many of these cases came out, so…

51 00:08:52.050 00:08:52.470 Samuel Roberts: Okay.

52 00:08:52.470 00:09:08.889 Srinivas Saiteja Tenneti: was, like, doing, I was refining. So, yeah, even the OCR fragments also. So, I will tell you, this, after that, it will be, like, match, I mean, attached it with… not attach it, the simultaneously will be gone through, like, it will be having parallelly the forbidden list.

53 00:09:09.030 00:09:12.599 Srinivas Saiteja Tenneti: The main question is, why have you used 3-tire matching?

54 00:09:12.690 00:09:25.910 Srinivas Saiteja Tenneti: So, there are few cases, okay, in my, like, you know, extractors, even OCR can fail. Even, like, you know, few scenarios, like, few can fail, right? Because it’s not, like, 100%.

55 00:09:26.000 00:09:44.869 Srinivas Saiteja Tenneti: I have tested, you know, I will show you in my download images, there are a few, like, you know, WhatsApp photos, which are written in notebook, I mean, in a, like, in my handwriting, and I took. So, for these scenarios, sometimes, like, Cloud Vision fails, OCR fails, so that will be, like.

56 00:09:44.930 00:10:03.930 Srinivas Saiteja Tenneti: That’s why I have, like, kept it in a 3-tire matching engine, and after that, a visual verification. I will explain it thoroughly. So, basically, the tire one is, like, exact match, which is, like, case insensitive, so either it may be in caps or uncaps. It will be, like, properly doing… it will be doing the exact match.

57 00:10:04.000 00:10:18.579 Srinivas Saiteja Tenneti: So, like, the basic one. And tire 2 is, like, normalizer match. I have chose it instead of, like, fuzzy matching, or else, generalizer match, or else, like, you know, there are different, like, BM25 hybrid match, or…

58 00:10:18.590 00:10:28.819 Srinivas Saiteja Tenneti: TFIDF, so there are a lot, okay? So, why I’ve chose this, I will tell you. So, normalizer match is something like, it will strip spaces. So, let’s say we have something

59 00:10:28.820 00:10:39.869 Srinivas Saiteja Tenneti: in, here, like, butyl paraben, right? So, if you, like, if you have this particular, like, where is that? Oh, sorry, yeah, where… if you have this normalized match.

60 00:10:39.870 00:10:52.860 Srinivas Saiteja Tenneti: It won’t be, like, reading it as, like, you know, it won’t separate, okay, butyl and paraben as the separate compounds. Instead of that, it will be reading as butyl paraben, and it will be matching it through the 4-bin list.

61 00:10:52.860 00:11:01.399 Srinivas Saiteja Tenneti: And, let’s say on the tire 3, why I’ve kept Claude LLM reasoning is because there will be few synonyms, like, glucose, dextrose.

62 00:11:01.440 00:11:09.800 Srinivas Saiteja Tenneti: And, also, like, few other compounds, and also IUPAC or trade names in other, like, things, and also multilingual names.

63 00:11:09.800 00:11:18.710 Samuel Roberts: Can we actually jump into these tiers? I’m curious to see, the implementation. Yeah, I think if you could walk us through some of that.

64 00:11:19.140 00:11:21.569 Srinivas Saiteja Tenneti: Okay, I’m just refreshing it.

65 00:11:22.900 00:11:25.309 Srinivas Saiteja Tenneti: Don’t mind multiple tabs.

66 00:11:25.770 00:11:28.290 Samuel Roberts: No, you’re fine. I have too many tabs over myself, so…

67 00:11:28.290 00:11:40.029 Srinivas Saiteja Tenneti: Oh, I have some, like, 5.3, like, desktop… I mean, kept it in the side floor, lot of tabs. Okay, so let’s… there is, like, a single file, and a batch file, and also… I mean, batch upload, and also, like.

68 00:11:40.270 00:11:46.759 Srinivas Saiteja Tenneti: of course, evaluate product index, which we have been given. I mean, so let’s go with single file first, okay?

69 00:11:46.930 00:11:47.720 Uttam Kumaran: Honolulu.

70 00:11:47.870 00:11:54.879 Srinivas Saiteja Tenneti: This is my test cases, which I have done. So, do you want to choose, or do you have any, like, shall I show you how it is worked?

71 00:11:55.390 00:11:57.320 Samuel Roberts: Yeah, just go ahead and choose one.

72 00:11:57.320 00:11:59.340 Srinivas Saiteja Tenneti: See it through the process.

73 00:11:59.340 00:12:00.630 Samuel Roberts: Before we jump in more?

74 00:12:00.630 00:12:03.020 Srinivas Saiteja Tenneti: Okay, I will close my eyes and I will select something.

75 00:12:03.020 00:12:04.420 Samuel Roberts: That’s fine.

76 00:12:04.560 00:12:07.279 Srinivas Saiteja Tenneti: Yeah, this is some PNG file. Okay, let’s go…

77 00:12:07.280 00:12:07.830 Samuel Roberts: Cool.

78 00:12:09.950 00:12:16.149 Srinivas Saiteja Tenneti: I’m confident in it because I did a lot of test rides, so that’s why I closed my eyes and chose something.

79 00:12:18.940 00:12:27.050 Srinivas Saiteja Tenneti: So, the main thing is, this is… this is taking time, because it is going through all the process. So, see here.

80 00:12:27.050 00:12:27.940 Samuel Roberts: Okay.

81 00:12:27.940 00:12:31.679 Srinivas Saiteja Tenneti: It has been accepted, because it doesn’t contain any of the following.

82 00:12:31.680 00:12:32.000 Samuel Roberts: Right.

83 00:12:32.000 00:12:37.500 Srinivas Saiteja Tenneti: gradients. So, do you want me to test the same thing using aqua here, or water?

84 00:12:37.500 00:12:51.560 Samuel Roberts: No, no, no, I think that’s fine. I watched the video as well, so I saw that, and I was starting to get it running a little bit, but I hadn’t quite got everything. You’re good, you’re good. I’m curious to dig into the few things, actually. So, if we could go back to the diagram?

85 00:12:51.740 00:12:53.250 Srinivas Saiteja Tenneti: Sure. So…

86 00:12:53.250 00:13:00.520 Samuel Roberts: The different tiers. I’m curious the… what that engine actually looks like. Is there… where is that in the codebase?

87 00:13:01.020 00:13:04.589 Srinivas Saiteja Tenneti: The codebase is here, like, let me show you the matching engine.

88 00:13:04.590 00:13:13.289 Samuel Roberts: Let’s see the… yeah, that’s why I’m curious to dig in a little bit there, just to understand the choices made here. So, you have the Tier 1, Tier 2, okay.

89 00:13:13.290 00:13:14.020 Srinivas Saiteja Tenneti: Tier 3.

90 00:13:14.020 00:13:15.040 Samuel Roberts: And this is the…

91 00:13:15.040 00:13:21.909 Srinivas Saiteja Tenneti: Why I… okay, should I explain why I chose a Tier 3? Like, why, again, LLM chemical Reasoning?

92 00:13:22.310 00:13:29.019 Samuel Roberts: Yeah, sure, and I was curious, like, it was Claude… what… I was curious also about, like, choosing specific models, if you thought about that. Yeah, go ahead.

93 00:13:29.560 00:13:37.220 Srinivas Saiteja Tenneti: basically, like, what happens is, like, if you, like… I will show you, first of all, the architecture, okay? I will tell you.

94 00:13:37.560 00:13:49.030 Srinivas Saiteja Tenneti: Here, this is. So, why I’ve chosen Claude here for the LLM reasoning is, basically, because of my WhatsApp images, I will show you. So, in these scenarios, or else, like,

95 00:13:49.180 00:13:52.099 Srinivas Saiteja Tenneti: These kind of… I have written in Hindi, don’t mind that.

96 00:13:52.240 00:14:02.930 Srinivas Saiteja Tenneti: So, I have tested it in, like, multiple cases, even, like, you know, rotated ones, and a lot of kind of scenarios. So, what happens is that if you have a basic, like, you know.

97 00:14:02.940 00:14:11.920 Srinivas Saiteja Tenneti: other, like, you know, norm… I mean, generalizing matching, or else, like, semantic, or else embedding matching, or these kind of, like, even sentence transformers.

98 00:14:11.920 00:14:23.070 Srinivas Saiteja Tenneti: So what it does is, it is not capable of, like, doing for, like, specific things. Like, you know, leashed, I mean, like, messy ones, or else, like, images which are not good.

99 00:14:23.070 00:14:34.039 Srinivas Saiteja Tenneti: Or else, you know, there will be, like, some scenarios where the L is written as, you know, 1, if we do use the normal ones. Why have user claud LLM reasoning is because

100 00:14:34.140 00:14:39.739 Srinivas Saiteja Tenneti: There will be, like, you know, few synonyms and formulas also, which will be… it will be extracting, and also…

101 00:14:39.740 00:14:58.299 Srinivas Saiteja Tenneti: it will be properly reasoning those kind of, like, you know, trade names, and you know, the benzene, the dextro… I mean, glucose, dextrose, and, you know, few scenarios where benzene, which has J and E, and benzyne, which has Z and I. So, it will be failing in those, like, fuzzy matching or similar, those kind of.

102 00:14:58.300 00:14:59.129 Samuel Roberts: For sure.

103 00:14:59.130 00:15:03.259 Srinivas Saiteja Tenneti: But in LLM cloud LLM reasoning, it will be, like, properly detecting those.

104 00:15:03.470 00:15:11.760 Samuel Roberts: So then for Claude specifically, what was your thinking choosing the model you chose there? Like, Anthropic versus OpenAI versus other…

105 00:15:11.760 00:15:12.440 Srinivas Saiteja Tenneti: That’s great.

106 00:15:12.830 00:15:20.540 Srinivas Saiteja Tenneti: The only reason why I chose is to save money, because, you know, in OpenAI, it doesn’t have prompt caching.

107 00:15:20.610 00:15:37.219 Srinivas Saiteja Tenneti: Cloud has an inbuilt prompt caching, because, if you, like, what I have done is the system prompt, okay? If you have seen in my code, so basically, the one also I have published, if you see in the code, I have given, prompt, like, system prompt here, and,

108 00:15:37.400 00:15:41.909 Srinivas Saiteja Tenneti: And also from here, and also for the visual verification for fallback.

109 00:15:41.940 00:15:59.069 Srinivas Saiteja Tenneti: I have given here also, like, three phases. For the system prompt, I have… I made those into a cache shared one, okay? So what it does is, for every call, like, call you run, for everything you run, it won’t be going through all the prompts, system prompts I have given, right?

110 00:15:59.100 00:16:12.900 Srinivas Saiteja Tenneti: Okay, it will be, like, it will be already having the data, the prompt, what to do, not to, like, you, okay, tell the LLM to, every time to do this, to do that. It will be already having that in mind. So, that thing has been cached.

111 00:16:12.900 00:16:20.770 Srinivas Saiteja Tenneti: Okay, so, even the given forbidden ingredients.cs, which has been given to us, like a challenge, I mean, to me.

112 00:16:20.770 00:16:37.230 Srinivas Saiteja Tenneti: So, that is also cacheared, but the main thing, like, if you, like, let’s say in the .csv, if you do any changes, it will be, again, going from the beginning, and it will be properly keeping it, okay? So, any changes will be done in here, the given CSV,

113 00:16:37.230 00:16:44.199 Srinivas Saiteja Tenneti: It will be, like, okay, it will be, like, going through again, it will be, like, checking it, passing, and keeping it in the forbidden list.

114 00:16:44.200 00:17:01.669 Srinivas Saiteja Tenneti: Okay, so apart from that, the forward and list will be, like, as usual, right? So, that will be, like, in the cached version. So, instead of, like, running everything, like, instead of 60 calls, which I’ve run, 2, like, sorry, 30 calls, only 2 times it ran, so it usually, like, saved me 90%.

115 00:17:01.670 00:17:07.039 Srinivas Saiteja Tenneti: So, let me… let me calculate… around, like, 90% of, like, usage cost.

116 00:17:07.069 00:17:11.789 Srinivas Saiteja Tenneti: So, I can show you the… my Anthropic one also.

117 00:17:11.910 00:17:13.280 Srinivas Saiteja Tenneti: Where is it? Yeah.

118 00:17:13.849 00:17:16.459 Srinivas Saiteja Tenneti: Let me drag this here down, and yeah.

119 00:17:17.829 00:17:20.899 Srinivas Saiteja Tenneti: So, the usage, I have used it a lot.

120 00:17:21.119 00:17:21.890 Srinivas Saiteja Tenneti: So…

121 00:17:22.300 00:17:30.270 Srinivas Saiteja Tenneti: It actually, like, helped me only, like, $3. I’m using from, like, one week. A lot, a lot in slot, 3.73.

122 00:17:30.270 00:17:31.720 Samuel Roberts: Okay. So… Okay.

123 00:17:31.720 00:17:37.659 Srinivas Saiteja Tenneti: The main thing is, like, why I’ve chosen cloud OpenAI is because of prompt caching only.

124 00:17:38.270 00:17:43.980 Srinivas Saiteja Tenneti: So, that is where it helps to save money, because it has inbuilt one, and Maya doesn’t have the inbuilt one.

125 00:17:44.590 00:17:45.160 Samuel Roberts: Great.

126 00:17:45.840 00:17:46.390 Srinivas Saiteja Tenneti: Yeah.

127 00:17:47.510 00:17:54.379 Srinivas Saiteja Tenneti: And, anything, any, like, other questions, like, why I’ve chosen, like, chosen FastAPI or anything like that?

128 00:17:55.990 00:17:58.050 Samuel Roberts: Not so much that, I mean, I think all that…

129 00:17:58.050 00:17:58.420 Srinivas Saiteja Tenneti: Tony.

130 00:17:58.420 00:18:02.680 Samuel Roberts: sense. I figured… I mean, I imagine you were comfortable with the Python tooling, is that kind of the…

131 00:18:02.680 00:18:03.390 Srinivas Saiteja Tenneti: I mean, yeah.

132 00:18:03.390 00:18:12.330 Uttam Kumaran: Yeah, maybe one question… one question from my side is kind of gonna be on, like, observability and monitoring. Like, one of the things that…

133 00:18:12.470 00:18:23.980 Uttam Kumaran: one of the things that we try to do for our clients is, like, share a lot about adoption, monitoring, and, like, metrics associated with the execution. Wondering, like, if you can brainstorm with us

134 00:18:25.180 00:18:29.190 Uttam Kumaran: First? Some of the ways that you would measure whether

135 00:18:29.340 00:18:37.369 Uttam Kumaran: whether… if you can brainstorm with us some of the ways that you would measure whether your agent is successful, like, if you were to think about a dashboard.

136 00:18:37.510 00:18:40.950 Uttam Kumaran: For a client, what would you monitor about the system?

137 00:18:41.270 00:18:53.430 Srinivas Saiteja Tenneti: That’s… that’s really cool, because that was the step I was about to explain in my future updates. So, if there is any future updates, of course, I want to do 3 scenarios with… 3 things which I want to keep in mind.

138 00:18:53.430 00:19:03.449 Srinivas Saiteja Tenneti: So, I will start neatly, okay? The first thing is, like, async processing, which I haven’t done in this basic one, because why async is needed is because

139 00:19:03.450 00:19:21.739 Srinivas Saiteja Tenneti: Whenever I run the single one, it is fine, but batch upload, it will take, like, single, single, like, processing, single file processing, right? So, async processing, what it does is, like, it will parallelly run everything at a once, so that is the one thing, and monitoring and audit logging. So, these do two things.

140 00:19:21.740 00:19:40.819 Srinivas Saiteja Tenneti: which I want to scale it in future, particularly for this project. If I were, like, you know, if I were designing observability and monitoring for this, like, agent, I would, like, focus on 3 main areas, particularly, like, system performance, model quality especially, and also, like, user adoption.

141 00:19:40.820 00:19:55.019 Srinivas Saiteja Tenneti: These are, like, main three things I would say. The idea is to make sure this, like, the system is, like, not only, like, technically working, but also, like, you know, delivering the real, I mean, value to users.

142 00:19:55.020 00:20:14.069 Srinivas Saiteja Tenneti: So, first, from a, like, system performance perspective, I would, like, monitor things like request latency, response… we usually tell, like, response, in… I have used a lot of, like, AWS tools and things, like, there will be, like, response, and also 4XS, 5 access errors, and these kind of things.

143 00:20:14.070 00:20:33.360 Srinivas Saiteja Tenneti: So, and also, like, OCR processing time, which is very required, and LLM processing time, and also a pipeline success rate. So, these kind of things I would, like, really do. So, the system usually, like, since the system, like, processes different kind of, like, file types, and also, I would say.

144 00:20:33.360 00:20:37.469 Srinivas Saiteja Tenneti: Like, kind of routes them to, like, through extractors, as you have seen.

145 00:20:37.470 00:20:54.040 Srinivas Saiteja Tenneti: So… and also monitor OCR accuracy for, like, you know, scanned documents. If something fails, of course, for example, if OCR or extraction fails, we should log that and show it in the dashboard, so we can quickly, like, identify, like, bottlenecks.

146 00:20:54.040 00:21:10.210 Srinivas Saiteja Tenneti: In here, if you see, if something fails, okay, if the, like, it, like, let’s say, if an image, it says rejected, it will tell you in my output whether where it got rejected. So sometimes, what I’ve seen is, like, OCR, sometimes, you know.

147 00:21:10.480 00:21:30.149 Srinivas Saiteja Tenneti: it will be, like, giving wrong out… wrong… it will extract wrong, but, I have kept it as a… this fallback, like, 3-tire matching and the fallback visual… I mean, fallback visual verification, because even though the OCR fails, it… in… in my output, like, in my output, if it is rejecting, it will show me, like.

148 00:21:30.150 00:21:41.109 Srinivas Saiteja Tenneti: Okay, why the output is rejecting? Like, okay, where it is, like, it will tell you the OCR has extracted this, and the visual verification, the fallback layer, the LLM caught it.

149 00:21:41.350 00:21:49.289 Srinivas Saiteja Tenneti: So, that is what it will show. So, there we can tell, like, in this streamlit one, we can simply tell where the issue is, but

150 00:21:49.290 00:22:05.479 Srinivas Saiteja Tenneti: If we, like, upgrade it to a better monitoring, like, Datadog or any other tools, we can simply, like, detect where the particular pipeline is failing, when it has been, like, upgraded to the, like, product, I mean, to prod environments, like, proper production environments.

151 00:22:06.190 00:22:09.909 Samuel Roberts: So… Kind of, hypothetically then, so say…

152 00:22:10.100 00:22:16.239 Samuel Roberts: this gets productized, or, you know, we’re testing it with other product data. Where…

153 00:22:16.240 00:22:33.439 Samuel Roberts: do you feel most confident in the pipeline, and where do you feel least confident? Where do you think, you know, we might, if we were to be monitoring it in a real world, what… with your, you know, knowledge based on building it at this point, where do you think the problems might arise? Or what’s the strongest part and the weakest part, yeah?

154 00:22:33.440 00:22:50.799 Srinivas Saiteja Tenneti: Yeah, the strongest part in my architecture is the 3-tire matching engine, which I have designed, and of course, the fallback layer, and OCR confidence check, which I have kept. So, what I want to do is, like, I want to… it… for now, the OCR confidence check is, like, just it will tell,

155 00:22:50.800 00:23:04.799 Srinivas Saiteja Tenneti: If it is the readability is low, medium, or high, but I want to do it as a numerical one, which will particularly tell, and where it might, like, I will tell you. In particular scenarios, like, let’s say…

156 00:23:04.860 00:23:24.210 Srinivas Saiteja Tenneti: This particular thing is good, but based on the way, if I, like, let’s say I design the pipeline, I would say I feel most confidence in the, like, you know, structured data extraction also, and the rule-based matching layers, and slightly less confident in the OCR and raw text, I mean, extraction stage.

157 00:23:24.210 00:23:26.210 Srinivas Saiteja Tenneti: Because, mainly.

158 00:23:26.240 00:23:39.910 Srinivas Saiteja Tenneti: the main heart of it is the extraction, right? So, I know I have did something, like, very good, but I’m sure of it, but sometimes even, you know, if you take a blurry image, or else any WhatsApp image.

159 00:23:40.030 00:23:54.690 Srinivas Saiteja Tenneti: those kind of scenarios, it might fail. For… for a fallback, like, for a safer thing for this particular challenge, I have kept it as, you know, if you… if I upload, I will show you, okay? Instead of speaking, I will show you a proper, like,

160 00:23:55.060 00:23:57.179 Srinivas Saiteja Tenneti: I should say, practical one.

161 00:23:57.400 00:23:59.199 Srinivas Saiteja Tenneti: So, I have an image.

162 00:23:59.370 00:24:02.119 Srinivas Saiteja Tenneti: Okay, where is the OCR messy?

163 00:24:03.490 00:24:06.250 Srinivas Saiteja Tenneti: This is fine, and Ozier messy…

164 00:24:06.420 00:24:08.250 Srinivas Saiteja Tenneti: There is a test case, okay?

165 00:24:08.880 00:24:11.509 Srinivas Saiteja Tenneti: Yeah, so this is completely mixed.

166 00:24:11.510 00:24:12.190 Samuel Roberts: Don’t go.

167 00:24:12.190 00:24:15.150 Srinivas Saiteja Tenneti: Okay, we can’t even see with our naked eyes, right?

168 00:24:15.590 00:24:17.270 Srinivas Saiteja Tenneti: So, let’s run it.

169 00:24:17.610 00:24:26.310 Srinivas Saiteja Tenneti: So it’s very hard to predict, even for LLMs, so what it is there, because, you know, with our own eyes, we can’t tell it properly. So…

170 00:24:26.360 00:24:44.879 Srinivas Saiteja Tenneti: the… in these scenarios, OCR might extract wrong, so what I’ve done is, if it… if there is nothing to extract, it will tell me, giving me, like, cushion mask instead of, like, assuming something, and it will give me needs review, instead of simply, like, giving false positives as, like, you know, it is accepted, or false negatives as rejected.

171 00:24:44.880 00:24:47.250 Srinivas Saiteja Tenneti: So, it will give me Nears Review.

172 00:24:47.520 00:24:51.820 Srinivas Saiteja Tenneti: Because if you’d see, the image readability is medium, and also.

173 00:24:51.830 00:25:07.960 Srinivas Saiteja Tenneti: the text may be blurry, faded, or hard to read. OCR results may be unreliable. So, I have kept it as needs review for this challenge, because… especially. But when I’m scaling, as I’ve told you, I want to do one thing prior, which is, like, async processing.

174 00:25:07.960 00:25:17.099 Srinivas Saiteja Tenneti: So, if I do a sync processing, it won’t be taking, like, if you’re doing… in production environments, it will be, like, taking, like, in batch processing, not a single process.

175 00:25:17.100 00:25:23.829 Srinivas Saiteja Tenneti: So, for multiple processing, it will be doing as an, like, a simultaneously parallel processing at once.

176 00:25:23.830 00:25:42.489 Srinivas Saiteja Tenneti: And also, I want to do as a storage one, because I haven’t kept any storage, I haven’t used any storage. It is completely local and simple one. Even you can take it and run it. So, basic one, simple one, and really, like, reliable and, what I should say, it is, like, excellently reliable and accurate one.

177 00:25:42.720 00:25:55.580 Srinivas Saiteja Tenneti: So, I… when I’m, like, doing for production, I want to put it, I want to use the, like, in databases, or else, like, you know, superbase, which I’m, like, put it… and proper, like, monitoring. I might use, like,

178 00:25:55.690 00:26:06.699 Srinivas Saiteja Tenneti: Lang… I mean, LangFuse, or also, like, Datadog for locks, getting logs, and if any pipeline is failing, getting, I mean, alerts or something like that. It is really cool.

179 00:26:06.860 00:26:10.370 Srinivas Saiteja Tenneti: So, this is my, like, future, and there are few, like,

180 00:26:11.360 00:26:16.520 Srinivas Saiteja Tenneti: Even in the, let’s say… there is one thing I didn’t do.

181 00:26:17.050 00:26:24.609 Srinivas Saiteja Tenneti: after the challenge, I remembered it. So, in few documents, like a few Word documents, you might be having few images also.

182 00:26:24.840 00:26:32.969 Srinivas Saiteja Tenneti: So, that scenario, I didn’t do it, but I didn’t change it because… just to show you, because I already have submitted in the challenge.

183 00:26:33.180 00:26:41.979 Srinivas Saiteja Tenneti: But, yeah, for that doc. I mean, doc, doc documents which might be containing images, what I want to do is…

184 00:26:41.980 00:26:53.819 Srinivas Saiteja Tenneti: if there is any image detected, or something like scanned image, it will be, like, following the same thing as the per page fallback to vision, the same thing as for the docs, which I will be implementing.

185 00:26:53.820 00:27:04.509 Srinivas Saiteja Tenneti: So, those kind of scenarios will easily… just a few lines of code will work. It will be going through here, again, like, if it has any image, and after that, it will be routing through down here.

186 00:27:04.700 00:27:07.570 Srinivas Saiteja Tenneti: So, this is how I want to take care of it.

187 00:27:08.620 00:27:09.330 Samuel Roberts: Okay.

188 00:27:11.090 00:27:11.760 Srinivas Saiteja Tenneti: Yeah.

189 00:27:13.030 00:27:17.669 Srinivas Saiteja Tenneti: Any more questions or anything? I’m actually, like, excited to tell, because,

190 00:27:17.670 00:27:20.520 Samuel Roberts: Yeah, yeah. Uptam, do you have anything? Otherwise, I’ll keep going, I don’t wanna…

191 00:27:20.760 00:27:24.199 Srinivas Saiteja Tenneti: I’m… you mean, you’re asking me?

192 00:27:24.200 00:27:27.039 Samuel Roberts: I didn’t know if Udam had anything he wanted to jump in, yeah.

193 00:27:27.430 00:27:29.800 Uttam Kumaran: No, no, yeah, Sam, you can… you can keep going.

194 00:27:29.900 00:27:37.059 Uttam Kumaran: I mean, I still, like… I… what I enjoyed seeing is that, which I think was really great.

195 00:27:38.050 00:27:41.450 Samuel Roberts: Okay, great. I was curious to hear a little more… oh, sorry, what?

196 00:27:41.730 00:27:42.620 Samuel Roberts: I think that…

197 00:27:42.620 00:27:46.820 Srinivas Saiteja Tenneti: Sam’s voice is breaking. Utham’s, your voice is clear, but Sam’s voice is.

198 00:27:46.820 00:27:47.640 Samuel Roberts: Oh, no.

199 00:27:48.190 00:27:50.420 Samuel Roberts: Oh, it might be my connection. Can you hear me now?

200 00:27:50.890 00:27:52.619 Srinivas Saiteja Tenneti: Yeah, yeah, I could hear you now, yeah.

201 00:27:52.620 00:28:11.109 Samuel Roberts: Okay. Yeah, I was looking, next to talk a little bit about the process of getting to this point, not just the final output, but how you thought about starting, you know, obviously, like, agentic tools for helping you that way, planning, like, what was your process like, you know, going from

202 00:28:11.600 00:28:16.060 Samuel Roberts: Idea, the challenge all the way through this point, if you could just kind of give me the high level there.

203 00:28:16.060 00:28:19.930 Srinivas Saiteja Tenneti: Yes, yes. That’s actually, like, some… one thing I want to tell, of course.

204 00:28:20.040 00:28:28.809 Srinivas Saiteja Tenneti: So, before going through… going to the pro… I mean, the main heart of the thing, I want to tell how I choose, one by one.

205 00:28:28.960 00:28:47.999 Srinivas Saiteja Tenneti: So, I will tell my story. So, first, of course, I… what I assumed that not only will be giving only, like, 3 or 4 kind of, image, or 4 file documents, I mean, file types. So, there might… I assumed that there might be, separate, like, you know, there might be many other file documents.

206 00:28:48.000 00:28:57.969 Srinivas Saiteja Tenneti: So, I prepared my mind from the beginning itself, so… because in the evaluation set, you might be giving anything, so instead of, like, getting shocked, I want to be sure.

207 00:28:58.150 00:29:15.999 Srinivas Saiteja Tenneti: So, in that way, I have, of course, I have chose a file router, and of course, what I kept in mind is, I don’t want to do the particular architecture or system too much complex. It should be simple. So, that’s why, after file router, for, like, let’s say for… I have designed it into, like.

208 00:29:16.000 00:29:25.390 Srinivas Saiteja Tenneti: few, like, scenarios, like, text ones, text extraction is the one thing, to get the, like, proper file… I mean, to extract data from the files.

209 00:29:25.400 00:29:44.440 Srinivas Saiteja Tenneti: There, I have designed it into four, which is, like, texture extraction and PDF extraction, and then Claude, I mean, Vision, which is, like, for OCR for particularly for images, and of course, pandas. So, you could have told me, like, PDFs might contain only texture or something, but in these scenarios, okay.

210 00:29:44.440 00:30:01.490 Srinivas Saiteja Tenneti: there might be a few PDF documents or anything which can contain, like, images, or, you know, not only images, let’s say any text one also, even if you, like, scan it. So, it is not good, like, if you do basic texturing techniques using Python libraries.

211 00:30:01.640 00:30:15.119 Srinivas Saiteja Tenneti: like, Python.x or some python.docx, these will be, like, are good with basic text, but if you do scan with Adobe Scan, like, in our phone or anything, so those kind, it will be, like, failing there. So, I don’t want to, like…

212 00:30:15.240 00:30:26.309 Srinivas Saiteja Tenneti: do those kind of, scenarios, like, simply using, like, python.docx or something like that. So that’s why I’ve used PyMU PDF separately for PDFs.

213 00:30:26.310 00:30:38.490 Srinivas Saiteja Tenneti: Which is really good, compared to the other ones which are there. So, then I have also, like, got an idea, okay, let’s say the Python… I mean, the PDF has image, then what should I do?

214 00:30:38.530 00:30:55.629 Srinivas Saiteja Tenneti: Okay, because I have few PDFs, even I have few, like, I am a little old school, so what I do is I keep my SSN and everything, those kind of, like, you know, extracted images safe in my file folder, I mean, my phone, whenever I require, even passport and everything, so…

215 00:30:56.010 00:31:09.120 Srinivas Saiteja Tenneti: if those kind of scenarios are there, how to do that? So, for that, I have used it as a fall… I mean, fallback to Cloud Vision. So, this is how I built the architecture. But the main thing where it came is the…

216 00:31:09.420 00:31:28.729 Srinivas Saiteja Tenneti: Of course, ingredient parser. So, ingredient parser is something like, okay, it extracts the metadata, whatever it is extracted, the properly text, whatever it has been extracted, it will be going from every each line to line. It will extract it properly, and then, like, you know, you’ll be having a structured data.

217 00:31:28.760 00:31:44.589 Srinivas Saiteja Tenneti: After this. So, the main thing is, like, the 3-tire matching engine. You would have, like, basically many people would ask, why 3 only 3-tire engine? Why single-tire engine? You could have taken only Cloud, like, Cloud LLM for the complete matching engine, instead of, like.

218 00:31:44.670 00:31:52.520 Srinivas Saiteja Tenneti: like, making it 3 tire, or you could have taken 4 tire or 5 tire, right? So, I have, like, simple thing, like, what I want to say.

219 00:31:52.770 00:31:57.459 Srinivas Saiteja Tenneti: Yeah, I want to, like, yeah, I just want… I didn’t explain one more thing, I forgot.

220 00:31:57.930 00:32:06.789 Srinivas Saiteja Tenneti: In the forbidden list, let’s say if a user, like, if you add any, like, you know, custom forbidden ingredients, so what it does is.

221 00:32:06.790 00:32:19.989 Srinivas Saiteja Tenneti: If you add PDF, or text, or anything, right? So the way… main… the extract, the added one, the added forbidden ingredient will be going through the same one. It will be routed through, let’s say you would… you would…

222 00:32:20.060 00:32:35.100 Srinivas Saiteja Tenneti: add anything like .txt, or .json, or .docx, it will be going through text reader, and again, ingrained in parser, and again, it will be added into the forbidden list. Got it? And if you add any .PDF, it will be again going through this.

223 00:32:35.100 00:32:43.669 Srinivas Saiteja Tenneti: extract it properly and add it to the forbidden list. So, if you add any custom ingredients, it will be following these kind of extracts.

224 00:32:43.880 00:32:58.109 Srinivas Saiteja Tenneti: So, it is like a thing. Okay, now I have explained it to you, that one. It is never hard-coded. Even if I remove any, like, ingredient from the .csv, it will be running dynamically, because I haven’t trained anything.

225 00:32:58.210 00:33:10.610 Srinivas Saiteja Tenneti: On the particular image or anything you give. So, this is, like, it works completely dynamic, so no need to worry about it. The main, yeah, back to the question, the main thing is, like, 3-dire matching engine.

226 00:33:10.750 00:33:29.690 Srinivas Saiteja Tenneti: The main thing is that I want to keep it simple, because most of the cases, the direct exact match will be done, instead of, like, going through… if there is any, like, text file you have given, the exact match is done, it will be, like… and then it will be going to normalize the match. If everything is generated, no need to go to the entire 3, right?

227 00:33:30.170 00:33:35.089 Srinivas Saiteja Tenneti: So, it will be, like, covering me, it will be, like, okay, reducing my LLM costs also.

228 00:33:35.250 00:33:51.799 Srinivas Saiteja Tenneti: But in few scenarios, like, let’s say if you have PDFs which has, like, like, images, I have kept, like, few scenarios where the characters is greater than 20 for a PDF, or something like 300 DPI more, or greater than 300 DPI.

229 00:33:51.880 00:33:58.690 Srinivas Saiteja Tenneti: So, in those scenarios, it will be, like, like, handling. Those will be going through Cloud LLM reasoning. So, let’s say…

230 00:33:59.720 00:34:16.310 Srinivas Saiteja Tenneti: I have kept a scenario, okay? In exact match and normalizer match, if you don’t have anything, like, let’s say, if you have given any, like, binging in, some Hindi, or else, like, Arabic, so it will be, like, it won’t be catching those things in here, right? In these two formats.

231 00:34:16.310 00:34:33.539 Srinivas Saiteja Tenneti: It will be simply telling us accepted, it will be telling, like, we haven’t caught anything. These two tires will tell, we haven’t caught anything. So, tire 3 LLM, when it activates, is when tire 1 and tire 2 haven’t caught anything, it will check each and everything. So, this is how it get… I mean, it…

232 00:34:33.659 00:34:46.309 Srinivas Saiteja Tenneti: it, catches those. So, if nothing is caught in this tire 1 and tire 2, or else very less has been caught in tire 1 and tire 2, tire 3 will get activated. So, this won’t leave anything.

233 00:34:46.310 00:34:56.950 Srinivas Saiteja Tenneti: like, you know, anywhere, any small space where the, like, you know, problems or, like, the false positives or false negatives get escaped, you mean? I mean.

234 00:34:56.949 00:35:14.130 Srinivas Saiteja Tenneti: get escaped, so this is, like, a very hard-proof, very, like, I mean, I should say very foolproof, matching. If you add tire 4 and tire 5, it will be, like, too much complex and too much, like, you know, sophisticated for this small charge. I mean, this basic challenge.

235 00:35:14.190 00:35:22.749 Srinivas Saiteja Tenneti: So, even keeping less is also, like, I would say, I would say, like, taking this, challenge lightly, I would say. So, 3 tire is the perfect thing.

236 00:35:22.910 00:35:42.780 Srinivas Saiteja Tenneti: And Justin’s case, for the images only, like, I have kept as a visual verification, because as I’ve told, for my… these kind of scenarios, visual verification is needed, not this. Yeah, this one and this one. This is Telugu, sorry, just, to tell you. It is, like, some traditional, languages.

237 00:35:42.910 00:35:56.559 Srinivas Saiteja Tenneti: So, I have tested for those scenarios. So, those ones, of course, visual verification is… always happens for images only. If there is an image, let’s say if a PDF has an image, it will go through visual verification.

238 00:35:57.030 00:36:03.619 Srinivas Saiteja Tenneti: So, this is how I have done, and of course, these are, like, quite common, like, the output one.

239 00:36:03.890 00:36:09.009 Srinivas Saiteja Tenneti: So yeah, this is my proper, like, brain and heart of my project.

240 00:36:09.540 00:36:10.150 Samuel Roberts: Right.

241 00:36:10.740 00:36:11.400 Samuel Roberts: Great.

242 00:36:11.730 00:36:12.260 Srinivas Saiteja Tenneti: Yeah.

243 00:36:13.540 00:36:17.410 Samuel Roberts: Sorry, one sec, I was just trying to jump around where I had my list of questions.

244 00:36:22.090 00:36:26.120 Samuel Roberts: Yeah, no, I think that, that, yeah, okay. Lutam, do you have any more questions?

245 00:36:26.280 00:36:33.590 Uttam Kumaran: No, I know we’re just coming up on time, so I just want to make sure that, Frida, do you have any… if you have any questions. Sorry, my,

246 00:36:33.750 00:36:39.990 Uttam Kumaran: I’m just gonna come on video on my laptop, for some reason, the Wi-Fi isn’t working, but…

247 00:36:41.310 00:36:42.449 Srinivas Saiteja Tenneti: No, it’s… I guess…

248 00:36:42.450 00:36:44.720 Uttam Kumaran: It’s like, yeah, I would love to answer, like.

249 00:36:44.720 00:36:45.540 Srinivas Saiteja Tenneti: Yeah. Yeah.

250 00:36:45.840 00:36:46.530 Uttam Kumaran: Go ahead.

251 00:36:46.900 00:37:03.689 Srinivas Saiteja Tenneti: just, telling you, like, before, like, okay, instead of the architecture, there is also custom forbidden, ingredient, upload flow, which I have mentioned here. It will also remove de-duplicates, like, if you have duplicate forbidden ingredients.

252 00:37:03.790 00:37:09.950 Srinivas Saiteja Tenneti: Sorry for the disturbance. They are, remove… I mean, they’re, like, maintaining the lawn.

253 00:37:10.660 00:37:11.100 Samuel Roberts: Oh, man.

254 00:37:11.100 00:37:12.440 Srinivas Saiteja Tenneti: Hear me clearly?

255 00:37:12.440 00:37:13.629 Samuel Roberts: Yep, hear you.

256 00:37:13.630 00:37:14.060 Uttam Kumaran: Yes.

257 00:37:14.530 00:37:16.020 Uttam Kumaran: Look, you sound… you sound fine.

258 00:37:16.200 00:37:34.979 Srinivas Saiteja Tenneti: Yeah, so the… it will remove the duplicates, and it will do… then, yeah, this is the process. So, you can, like, go through the setup and everything. It has been, like, I have mentioned, each and everything, so no need to worry about anything. It is crystal clear, and the architecture is crystal clear.

259 00:37:35.120 00:37:44.749 Srinivas Saiteja Tenneti: And, the questions which I have, like, I want to ask, like, what, I mean, what are the… already I’ve asked a few questions to Sam and also Pranav.

260 00:37:44.850 00:37:54.739 Srinivas Saiteja Tenneti: And, particularly, I want to ask you, Tham, like, if… for this particular role, what do you expect, like, in a… like, in a few weeks, or a few months?

261 00:37:54.740 00:38:05.839 Srinivas Saiteja Tenneti: coming into this role, like, what should a particular person work like? I mean, what do you expect from a person for this role in the 3 weeks… I mean, 3 months, or in a 6-month period?

262 00:38:07.490 00:38:25.750 Uttam Kumaran: Yeah, so I think for the most part, one is we’re looking for people to come up and level up our architecture and our engineering, and our speed. I think we’ve kind of been on the AI side, it’s been a small team, so we’re super excited to have people join and, like, continue to level us up. In particular, I’m excited

263 00:38:25.850 00:38:42.069 Uttam Kumaran: To get a little bit more depth on our existing projects. But also, we have several projects that are coming up, and so getting a chance to actually come in and own those. But even beyond that, I think this team is the team I think about when even how you do your work

264 00:38:42.180 00:38:58.349 Uttam Kumaran: you guys using AI the most, you know? And so I’m excited for this team to pioneer what it’s like to be super, super AI-driven, but also adopt all the standards of, like, the leading-edge teams, which is, like, using, cloud agents.

265 00:38:58.450 00:39:02.399 Uttam Kumaran: Doing everything, going through, like, super strict,

266 00:39:02.430 00:39:14.139 Uttam Kumaran: like, AI reviews, you know, using linear and, like, almost coordinating agents to take, and then also helping us push, like, the technologies that we can offer for clients.

267 00:39:14.140 00:39:29.029 Uttam Kumaran: Right? So, everything from, like, headless browsers to, you know, skills and multi-agent architectures, those are all the things that we want to be able to use internally and then turn around and offer as a service.

268 00:39:29.550 00:39:30.700 Srinivas Saiteja Tenneti: Yeah, that’s, that’s really…

269 00:39:30.700 00:39:43.469 Uttam Kumaran: Part of it is just literally just staying on the edge, finding a way to use it for our active clients, and then finding a way to say, like, okay, how do we actually come and build new services for people, you know?

270 00:39:43.740 00:39:45.170 Srinivas Saiteja Tenneti: Yeah, yeah, that’s right.

271 00:39:45.360 00:40:01.500 Srinivas Saiteja Tenneti: Yeah, I agree. And as I have told you in my demos and everything, this is a really easy architecture, which can be, like, what I have done, which can be shipped, let’s say if you’re shipping to production, it is easy. Yeah, no need to do any pickle file or…

272 00:40:01.500 00:40:15.149 Srinivas Saiteja Tenneti: like, picklify the file, like, getting the best model or anything. They’ll just ship it directly, just run it, and, like, host it. Very simple, and like, I’m really, like, excited for the opportunity itself.

273 00:40:15.540 00:40:34.350 Uttam Kumaran: Well, yeah, you tell me, I’m kind of… I wanted to ask you, like, you tell me, what are you looking forward to in the next, like, 6 months, 1 year, like, talk to me about, like, what… if you, like, for your next opportunity, like, where… where are you trying to grow, like, and… and I’m… that’s what… my job is to put you in that exact right spot, you know?

274 00:40:34.840 00:40:40.419 Srinivas Saiteja Tenneti: So, actually, Ustam, you know, I have told Pranav also, and even Sam,

275 00:40:40.440 00:40:47.280 Srinivas Saiteja Tenneti: So, you know, I have already worked in huge companies, like, of course, UnitedHealthcare and, of course, SciENT.

276 00:40:47.300 00:41:06.659 Srinivas Saiteja Tenneti: But, you know, I have, like, worked through a few projects also for small teams and all, so I’m good with, you know, small cap… I mean, small teams, startups, and I’m good with, like, in large-scale companies also. But, you know, honestly speaking, as a, like, person-to-person, not as in an interview.

277 00:41:06.680 00:41:16.889 Srinivas Saiteja Tenneti: You know, what I felt in huge companies is that something like, you know, you know, you are bound to do few tasks, right? You know, you are bound to use few tools.

278 00:41:16.990 00:41:21.659 Srinivas Saiteja Tenneti: You know, UnitedHealthcare Water pays resources. Of course, we need to follow HIPAA rules.

279 00:41:21.660 00:41:22.090 Uttam Kumaran: It’s true.

280 00:41:22.090 00:41:33.639 Srinivas Saiteja Tenneti: should be, like, completely, you know, secure. Those are necessary, so those… I’m fine with those things. But, you’ll be having, like, okay, we have this kind of tools set up in us, you need to use these.

281 00:41:33.850 00:41:39.719 Srinivas Saiteja Tenneti: Okay, so these are some things which are… which will be there in, big, large-scale industries.

282 00:41:40.140 00:41:59.939 Srinivas Saiteja Tenneti: What I love in, like, you know, startups or middle-scale companies is that I have an opinion to tell. Like, you know, I can tell, okay, instead of using chat, I mean, instead of using OpenAI, you can use Cloud LLM to reduce costs because it has prompt caching. Instead of using PyTestRack, you can use Cloud Vision OZR because

283 00:41:59.940 00:42:16.930 Srinivas Saiteja Tenneti: you know, it will be, like, reducing a lot of architecture, a lot of, like, embed… instead of using embedding techniques, like transcendence transformers, using, like, other, like, you know, re-ranking, again, vector stores, these are, like, too much, right? Instead of using all those, you can simply use a Cloud Vision OCR or something like that.

284 00:42:17.280 00:42:17.820 Uttam Kumaran: Sweet.

285 00:42:17.820 00:42:37.810 Srinivas Saiteja Tenneti: I could try something, if somebody’s saying something, like, this is good, I want to try that also. So, I want to have a collaborative space, and I want to build some product, okay? Not only me, like, of course, not individually. Of course, individually is also fine to me, but you know, as a group also, if we want to build any product.

286 00:42:37.810 00:42:46.199 Srinivas Saiteja Tenneti: So, or else any project. End of the day, I want to feel like, okay, this is my baby. And this is some project, or this is my product which I’m, like, you know, proud of.

287 00:42:46.300 00:43:02.070 Srinivas Saiteja Tenneti: So, when I’m telling to the clients how I’m explaining to you about the project which I have built, I want to tell you, like, why I’m sure about this project, why it is… it will run. Not that I want to show or complete the project or challenge in this… I mean,

288 00:43:02.260 00:43:16.149 Srinivas Saiteja Tenneti: specified time or something, stipulated time or something like that. But I want to tell why it will be this particular project or particular thing, which will be, like, useful for the particular client or customer or anyone.

289 00:43:16.150 00:43:30.750 Srinivas Saiteja Tenneti: Not because of something, like, I want to sell, but it will be useful for them for a longer run, okay? So that we can, like, easily, like, you know, upgrade it whenever it is needed, or if the client has some, you know, when… if… there will be some cases

290 00:43:30.750 00:43:42.530 Srinivas Saiteja Tenneti: the new unique cases will be coming through the client, like, side, right? After doing… going to production, there will be few data files which will be having, like, which will be changed, or something like that.

291 00:43:42.530 00:44:01.889 Srinivas Saiteja Tenneti: So I want to build some architecture which will be, like, you know, whenever they have any issue or anything, I want to be there for them. I want to take care of it. Like, my architecture should be simple, so whenever they have any… face any problems, I can simply, like, scale it, upgrade it, and immediately push it, instead of taking a long…

292 00:44:01.890 00:44:04.210 Srinivas Saiteja Tenneti: At times, yeah, of course. Yeah.

293 00:44:04.210 00:44:18.569 Uttam Kumaran: No, I think that’s one of the pieces here you’re gonna find, is we’re like an outcomes business. Our clients rely on us to make the decision on the technology and the architecture, and you’ll oftentimes find that it’s not…

294 00:44:18.660 00:44:36.489 Uttam Kumaran: as constrained as I’m sure you’re used to, meaning we get the opportunity to use everything. Our main goal is to drive the outcome, and so you’re exactly right. It’s like, we’re looking for opinionated folks, but it’s, like, opinions, like, loosely held.

295 00:44:36.560 00:44:48.420 Uttam Kumaran: You know? Like, strong opinions loosely held is, like, I feel like the MO, which is, like, I actually want people to debate, but people, everybody here is open to changing, given new information, you know?

296 00:44:48.750 00:44:54.249 Uttam Kumaran: And that’s the… that’s the most fun, because the clients benefit from us arguing and figuring it out for that.

297 00:44:54.250 00:45:08.750 Srinivas Saiteja Tenneti: That is right, that is right. Absolutely, I agree with you, Utham, because, you know, discussing and, you know, sometimes, you know, I personally feel from, like, you know, I have, like, I have been in boarding school from my sixth standard, if you…

298 00:45:08.760 00:45:23.369 Srinivas Saiteja Tenneti: I know it is a long time, but yeah, I have been in boarding school from 6 standard. So, from my experience, what I have learned is, like, opinions and advisors can come from any side, okay, from anywhere. Yeah. So…

299 00:45:23.410 00:45:37.049 Srinivas Saiteja Tenneti: I have a tendency to listen, so I usually… and also speak, so even, like, not only a person who is in, like, technical background can tell any advice, which would be, like, useful at any point of time.

300 00:45:37.200 00:45:46.240 Srinivas Saiteja Tenneti: because of my, like, proper boarding experience, like, I have been in hostel from, like, 20, 20, 20 years, I should say. Not 20 years, like, 15 to 20 years.

301 00:45:46.410 00:45:47.900 Srinivas Saiteja Tenneti: So, I have been grown in.

302 00:45:47.900 00:45:48.220 Uttam Kumaran: Yeah.

303 00:45:48.220 00:45:56.070 Srinivas Saiteja Tenneti: different, like… cultures, different, diverse environments, so I’m good, like, I understand well, I should say.

304 00:45:58.410 00:45:59.000 Samuel Roberts: Excellent.

305 00:46:00.240 00:46:00.830 Srinivas Saiteja Tenneti: Yes.

306 00:46:01.280 00:46:05.700 Uttam Kumaran: Okay, I know we’re coming up on time. Anything else, Serena Miles? Yeah, anything else we can answer?

307 00:46:05.860 00:46:14.380 Srinivas Saiteja Tenneti: Yeah, some, like, small thing, I don’t, like, a small question, Brainforge is, like, e-verified, right? Just a small question.

308 00:46:14.380 00:46:15.090 Uttam Kumaran: Yes.

309 00:46:15.510 00:46:34.380 Srinivas Saiteja Tenneti: Because in LinkedIn, it was showing not e-verified, so that is the only thing I had in mind. Nothing apart from that. And, of course, most of the information, I should say, Pranav and Sam actually gave me a lot. I have asked them separately, so, yeah.

310 00:46:34.770 00:46:50.379 Uttam Kumaran: Okay, well, please email me or anyone if you have more questions, and then Kayla’s out of office today, but I think as soon as she’s back, like, you can expect to hear from us, but again, I appreciate all the work you put into this exercise and through this whole process, so super, super appreciate it.

311 00:46:50.670 00:47:05.129 Srinivas Saiteja Tenneti: Sure. And, as you are seeing my screen, these are my test files, and don’t worry, I have, like, this is my one kind of, like, 60 format, and, I have tested for forbidden list, and forbidden test cases, and also these bundles.

312 00:47:05.190 00:47:10.840 Srinivas Saiteja Tenneti: These all are till here. See, till… wait a second. These all are…

313 00:47:11.060 00:47:18.230 Srinivas Saiteja Tenneti: like, complete, like, test cases which I’ve done. Like, probably more than, 150, I should say.

314 00:47:19.670 00:47:23.199 Uttam Kumaran: No, it’s definitely so expensive, dude. I’m, like, really, really impressed.

315 00:47:23.670 00:47:31.669 Srinivas Saiteja Tenneti: But here you could see, like, I have only spent, $3.73. Why? Because I have done prompt cashing. Simple. Right.

316 00:47:31.670 00:47:32.190 Uttam Kumaran: Yeah.

317 00:47:33.400 00:47:45.059 Srinivas Saiteja Tenneti: So, yeah, it is sim… it is, easy, and I’ve done a lot of scenarios, so no need to worry, it is like… I honestly will tell, it is, like, I mean, foolproof.

318 00:47:45.670 00:47:53.940 Srinivas Saiteja Tenneti: It is foolproof, very good, like, output. I’m getting very good outputs. I have tried… because I have tested in all scenarios, so… yeah.

319 00:47:54.220 00:47:57.900 Srinivas Saiteja Tenneti: Even not only me, I have tested with, like,

320 00:47:58.260 00:48:09.850 Srinivas Saiteja Tenneti: multiple scenarios, like, I change at L2, 1, 1, 2, like, you know, different, like, screenshots, and even in your, you know, in few pixel level, problems will be right if you take

321 00:48:09.850 00:48:18.570 Srinivas Saiteja Tenneti: if you change the data into pixel level, sometimes, like, Tesseract will fail those scenarios. Yeah. So those scenarios also have tested it, it was brilliant.

322 00:48:19.750 00:48:20.430 Uttam Kumaran: Amazing.

323 00:48:20.430 00:48:22.710 Srinivas Saiteja Tenneti: I’m proud of it, actually.

324 00:48:23.090 00:48:28.969 Uttam Kumaran: No, I’m glad. I feel like I’m happy. I’m happy because you’re, like, you’re super pumped and excited more, so…

325 00:48:28.970 00:48:36.639 Srinivas Saiteja Tenneti: Yeah, I was actually… I enjoyed the project, man, really, because it made me, like, you know, explore a lot of, like, cases.

326 00:48:36.960 00:48:44.029 Uttam Kumaran: No, I mean, that’s why we set it up, because we’re not, like, I, I was never really good at technical interviews.

327 00:48:44.200 00:48:56.580 Uttam Kumaran: And, I don’t think it’s a good judge of, like, whether you’re good at engineering, and so I like these exercises, because it allows you to sort of try different things, and there’s not, like, there’s not a right answer, right? It’s more about, like.

328 00:48:56.580 00:48:56.959 Samuel Roberts: So, you know.

329 00:48:56.960 00:49:02.899 Uttam Kumaran: what did you explore? But, like, I wanted to do something with image, with text, with video, like, multimodal.

330 00:49:04.150 00:49:10.589 Uttam Kumaran: You know, to kind of demonstrate, like, that you kind of understand the variety of use cases, you know?

331 00:49:10.590 00:49:22.130 Srinivas Saiteja Tenneti: Yeah, yeah, I agree with you. And, you know, just, from my, like, from my end, those… I mean, the person who created this challenge, you know, just tell him thanks from my end, because it really helps.

332 00:49:22.130 00:49:24.469 Uttam Kumaran: I think it’s Sam, right? Sam, did you make this one?

333 00:49:24.470 00:49:26.340 Samuel Roberts: Is V and Awash together put into.

334 00:49:26.340 00:49:26.680 Srinivas Saiteja Tenneti: Yo.

335 00:49:26.680 00:49:27.310 Samuel Roberts: So, yeah.

336 00:49:27.310 00:49:42.919 Srinivas Saiteja Tenneti: I went to each and every loopholes, each and every scenarios, what to use, what not to use, I brainstormed a lot. So, it helped me, you know, really, like, keep up with the new ones also, which is good, which is bad. I could be a proper judge of it.

337 00:49:43.100 00:49:46.149 Srinivas Saiteja Tenneti: So, that really helped me, yeah, thank you.

338 00:49:46.150 00:49:46.710 Samuel Roberts: Great.

339 00:49:46.920 00:49:47.720 Srinivas Saiteja Tenneti: Oh.

340 00:49:47.870 00:49:48.799 Samuel Roberts: Okay, thank you.

341 00:49:48.800 00:49:50.369 Uttam Kumaran: Appreciate it, guys. Excellent. Yeah.

342 00:49:50.370 00:49:51.010 Samuel Roberts: Yeah, thank you.

343 00:49:51.010 00:49:53.780 Uttam Kumaran: Thank you so much for the time, and then, yeah, I’ll talk to you about Daphne soon.

344 00:49:54.050 00:49:59.130 Srinivas Saiteja Tenneti: Sure, sure. Thank you, thank you so much, Utam, and thank you, Sam. Again, meeting you. Bye. Yes, too.

345 00:49:59.130 00:50:00.560 Samuel Roberts: Yep, alright.

346 00:50:00.640 00:50:02.910 Srinivas Saiteja Tenneti: Of course, have a great day, of course.

347 00:50:02.910 00:50:03.660 Uttam Kumaran: You too, bye.