PageSourceSearch

https://rajanjasani.vercel.app/work/bina-ai

html rajanjasani.vercel.app collected 2026-10-03 07:34:36 UTC 24,104 bytes, 1 lines download raw bytes

1<!DOCTYPE html><!--69SMOP86PuJOdCTUPlJ_V--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/4af6bf43c9c325a6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/945fab894dcb74b9.js"/>
1<script src="/_next/static/chunks/aa0a7c5c022cbeb9.js" async=""></script>
1<script src="/_next/static/chunks/30ea11065999f7ac.js" async=""></script>
1<script src="/_next/static/chunks/4dd28bc3f722184a.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-14de5e73fa61c5ff.js" async=""></script>
1<script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script>
1<script src="/_next/static/chunks/7340adf74ff47ec0.js" async=""></script>
1<script src="/_next/static/chunks/796e69ae18b2784c.js" async=""></script>
1<title>BinaAI — Private Client Case Study | Rajan Jasani</title><meta name="description" content="A sanitized engineering case study covering the architecture and product decisions behind a curriculum-aware AI exam preparation system."/><meta name="author" content="Rajan Jasani"/><meta name="keywords" content="Rajan Jasani,Backend Engineer,Applied AI Engineer,Python Developer,FastAPI,Django,RAG Engineer,System Design,PostgreSQL,AWS,Software Developer"/><meta name="creator" content="Rajan Jasani"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><link rel="canonical" href="https://rajanjasani.in"/><meta property="og:title" content="Rajan Jasani — AI Engineer &amp; Software Developer"/><meta property="og:description" content="Production backend systems, retrieval architecture, applied AI and system design."/><meta property="og:url" content="https://rajanjasani.in"/><meta property="og:site_name" content="Rajan Jasani"/><meta property="og:locale" content="en_IN"/><meta property="og:image" content="https://rajanjasani.in/rajan.jpg"/><meta property="og:image:width" content="460"/><meta property="og:image:height" content="460"/><meta property="og:image:alt" content="Rajan Jasani — AI Engineer &amp; Software Developer"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Rajan Jasani — AI Engineer &amp; Software Developer"/><meta name="twitter:description" content="Production backend systems, retrieval architecture, applied AI and system design."/><meta name="twitter:image" content="https://rajanjasani.in/rajan.jpg"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/>
1<script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script>
1</head><body><div hidden=""><!--$--><!--/$--></div><main class="case-shell"><header class="case-nav"><a class="case-home" href="/">RJ</a><a href="/#work">Back to selected work</a></header><section class="case-hero case-frame case-hero-private"><div class="case-hero-copy"><p class="case-eyebrow">Private client system</p><h1>BinaAI</h1><p class="case-deck">A curriculum-aware AI exam preparation product built around grounded answers, citations, structured assessments and controlled access.</p></div><dl class="case-meta"><div><dt>Disclosure</dt><dd>Sanitized public case study</dd></div><div><dt>Role</dt><dd>Backend / AI Engineering</dd></div><div><dt>Stack</dt><dd>Django · FastAPI · PostgreSQL · React</dd></div><div><dt>Access</dt><dd>Private client project</dd></div></dl></section><section class="case-private-banner case-frame"><strong>About this case study</strong><p>An overview of the architecture and engineering decisions behind a learning platform serving 1,200 students, with 60+ ingested textbooks and 500+ hours of video content.</p></section><section class="case-summary case-frame"><div class="case-summary-copy"><p class="case-section-label">The problem</p><h2>Useful AI had to stay inside the curriculum.</h2><p>An educational assistant cannot simply answer broadly and sound confident. The system needed to understand whether a request belonged to the supported learning scope, retrieve from approved material, return grounded responses and fit those answers into an exam-preparation workflow.</p></div><div class="case-capability-list"><span>Curriculum-aware question handling</span><span>Grounded responses with citations</span><span>Quiz and assessment generation</span><span>Structured model outputs</span><span>Trial and usage gating</span><span>Document-backed retrieval</span></div></section><section class="case-flow-section case-frame"><p class="case-section-label">Product flow</p><div class="case-flow case-flow-private"><div class="case-flow-node"><span>01</span><strong>Student request</strong><p>Question or study action enters the product</p></div><div class="case-flow-node"><span>02</span><strong>Scope classification</strong><p>Determine whether the request belongs inside the supported curriculum</p></div><div class="case-flow-node"><span>03</span><strong>Retrieval</strong><p>Find relevant material from approved educational content</p></div><div class="case-flow-node"><span>04</span><strong>Generation</strong><p>Produce a structured answer or assessment</p></div><div class="case-flow-node"><span>05</span><strong>Guardrails</strong><p>Keep output within the learning workflow and supported scope</p></div><div class="case-flow-node"><span>06</span><strong>Persistence</strong><p>Store product state, usage and learning interactions</p></div></div></section><section class="case-decisions case-frame"><div class="case-decisions-heading"><p class="case-section-label">What mattered technically</p><h2>Product boundaries were part of the AI architecture.</h2></div><div class="case-decision-list"><article><h3>Scope before confidence</h3><p>The product first needed to decide whether a question belonged to the supported curriculum. That boundary is more important than simply generating a plausible answer.</p></article><article><h3>Ground the learning experience</h3><p>Retrieval and citations help turn the model from a generic conversational layer into an assistant attached to the material the student is expected to learn.</p></article><article><h3>Structured outputs for product behavior</h3><p>Quizzes, assessments and workflow actions benefit from predictable schemas rather than free-form text. Model output becomes easier to validate and integrate into the UI.</p></article><article><h3>AI features still need normal backend discipline</h3><p>Authentication, usage limits, persistence, API boundaries and service ownership remain core product concerns even when the most visible feature is an LLM-powered assistant.</p></article></div></section><section class="case-stack case-frame"><div><p class="case-section-label">Application</p><p>Django REST · FastAPI services · React</p></div><div><p class="case-section-label">Data</p><p>PostgreSQL · document storage · vector retrieval</p></div><div><p class="case-section-label">AI product patterns</p><p>
1Scope classification · citations · structured generation · gated usage</p></div></section><footer class="case-footer case-frame"><p>Previous system</p><a href="/work/ask-hiphop">Ask HipHop <span aria-hidden="true">→</span></a></footer></main><!--$--><!--/$-->
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Person","name":"Rajan Jasani","url":"https://rajanjasani.in","jobTitle":"Backend & Applied AI Engineer","sameAs":["https://github.com/Rajan-Jasani9","https://www.linkedin.com/in/rajanjasani"],"knowsAbout":["Backend engineering","Retrieval augmented generation","System design","FastAPI","Django","PostgreSQL","AWS"]}</script>
1<script src="/_next/static/chunks/945fab894dcb74b9.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/7340adf74ff47ec0.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/7340adf74ff47ec0.js\"],\"default\"]\n4:I[22016,[\"/_next/static/chunks/796e69ae18b2784c.js\"],\"\"]\nf:I[68027,[],\"default\"]\n:HL[\"/_next/static/chunks/4af6bf43c9c325a6.css\",\"style\"]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"69SMOP86PuJOdCTUPlJ_V\",\"c\":[\"\",\"work\",\"bina-ai\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"work\",{\"children\":[\"bina-ai\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/4af6bf43c9c325a6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Rajan Jasani\\\",\\\"url\\\":\\\"https://rajanjasani.in\\\",\\\"jobTitle\\\":\\\"Backend \u0026 Applied AI Engineer\\\",\\\"sameAs\\\":[\\\"https://github.com/Rajan-Jasani9\\\",\\\"https://www.linkedin.com/in/rajanjasani\\\"],\\\"knowsAbout\\\":[\\\"Backend engineering\\\",\\\"Retrieval augmented generation\\\",\\\"System design\\\",\\\"FastAPI\\\",\\\"Django\\\",\\\"PostgreSQL\\\",\\\"AWS\\\"]}\"}}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"main\",null,{\"className\":\"case-shell\",\"children\":[[\"$\",\"header\",null,{\"className\":\"case-nav\",\"children\":[[\"$\",\"$L4\",null,{\"href\":\"/\",\"className\":\"case-home\",\"children\":\"RJ\"}],[\"$\",\"$L4\",null,{\"href\":\"/#work\",\"children\":\"Back to selected work\"}]]}],[\"$\",\"section\",null,{\"className\":\"case-hero case-frame case-hero-private\",\"children\":[[\"$\",\"div\",null,{\"className\":\"case-hero-copy\",\"children\":[[\"$\",\"p\",null,{\"className\":\"case-eyebrow\",\"children\":\"Private client system\"}],[\"$\",\"h1\",null,{\"children\":\"BinaAI\"}],[\"$\",\"p\",null,{\"className\":\"case-deck\",\"children\":\"A curriculum-aware AI exam preparation product built around grounded answers, citations, structured asse
1ssments and controlled access.\"}]]}],[\"$\",\"dl\",null,{\"className\":\"case-meta\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"dt\",null,{\"children\":\"Disclosure\"}],[\"$\",\"dd\",null,{\"children\":\"Sanitized public case study\"}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"dt\",null,{\"children\":\"Role\"}],[\"$\",\"dd\",null,{\"children\":\"Backend / AI Engineering\"}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"dt\",null,{\"children\":\"Stack\"}],[\"$\",\"dd\",null,{\"children\":\"Django · FastAPI · PostgreSQL · React\"}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"dt\",null,{\"children\":\"Access\"}],[\"$\",\"dd\",null,{\"children\":\"Private client project\"}]]}]]}]]}],[\"$\",\"section\",null,{\"className\":\"case-private-banner case-frame\",\"children\":[[\"$\",\"strong\",null,{\"children\":\"About this case study\"}],[\"$\",\"p\",null,{\"children\":\"An overview of the architecture and engineering decisions behind a learning platform serving 1,200 students, with 60+ ingested textbooks and 500+ hours of video content.\"}]]}],[\"$\",\"section\",null,{\"className\":\"case-summary case-frame\",\"children\":[[\"$\",\"div\",null,{\"className\":\"case-summary-copy\",\"children\":[[\"$\",\"p\",null,{\"className\":\"case-section-label\",\"children\":\"The problem\"}],\"$L5\",\"$L6\"]}],\"$L7\"]}],\"$L8\",\"$L9\",\"$La\",\"$Lb\"]}],[\"$Lc\"],\"$Ld\"]}],{},null,false,false]},null,false,false]},null,false,false]},null,false,false],\"$Le\",false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"S\":true}\n"])</script>
1<script>self.__next_f.push([1,"10:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/7340adf74ff47ec0.js\"],\"OutletBoundary\"]\n11:\"$Sreact.suspense\"\n13:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/7340adf74ff47ec0.js\"],\"ViewportBoundary\"]\n15:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/7340adf74ff47ec0.js\"],\"MetadataBoundary\"]\n5:[\"$\",\"h2\",null,{\"children\":\"Useful AI had to stay inside the curriculum.\"}]\n6:[\"$\",\"p\",null,{\"children\":\"An educational assistant cannot simply answer broadly and sound confident. The system needed to understand whether a request belonged to the supported learning scope, retrieve from approved material, return grounded responses and fit those answers into an exam-preparation workflow.\"}]\n7:[\"$\",\"div\",null,{\"className\":\"case-capability-list\",\"children\":[[\"$\",\"span\",\"Curriculum-aware question handling\",{\"children\":\"Curriculum-aware question handling\"}],[\"$\",\"span\",\"Grounded responses with citations\",{\"children\":\"Grounded responses with citations\"}],[\"$\",\"span\",\"Quiz and assessment generation\",{\"children\":\"Quiz and assessment generation\"}],[\"$\",\"span\",\"Structured model outputs\",{\"children\":\"Structured model outputs\"}],[\"$\",\"span\",\"Trial and usage gating\",{\"children\":\"Trial and usage gating\"}],[\"$\",\"span\",\"Document-backed retrieval\",{\"children\":\"Document-backed retrieval\"}]]}]\n"])</script>
1<script>self.__next_f.push([1,"8:[\"$\",\"section\",null,{\"className\":\"case-flow-section case-frame\",\"children\":[[\"$\",\"p\",null,{\"className\":\"case-section-label\",\"children\":\"Product flow\"}],[\"$\",\"div\",null,{\"className\":\"case-flow case-flow-private\",\"children\":[[\"$\",\"div\",\"Student request\",{\"className\":\"case-flow-node\",\"children\":[[\"$\",\"span\",null,{\"children\":\"01\"}],[\"$\",\"strong\",null,{\"children\":\"Student request\"}],[\"$\",\"p\",null,{\"children\":\"Question or study action enters the product\"}]]}],[\"$\",\"div\",\"Scope classification\",{\"className\":\"case-flow-node\",\"children\":[[\"$\",\"span\",null,{\"children\":\"02\"}],[\"$\",\"strong\",null,{\"children\":\"Scope classification\"}],[\"$\",\"p\",null,{\"children\":\"Determine whether the request belongs inside the supported curriculum\"}]]}],[\"$\",\"div\",\"Retrieval\",{\"className\":\"case-flow-node\",\"children\":[[\"$\",\"span\",null,{\"children\":\"03\"}],[\"$\",\"strong\",null,{\"children\":\"Retrieval\"}],[\"$\",\"p\",null,{\"children\":\"Find relevant material from approved educational content\"}]]}],[\"$\",\"div\",\"Generation\",{\"className\":\"case-flow-node\",\"children\":[[\"$\",\"span\",null,{\"children\":\"04\"}],[\"$\",\"strong\",null,{\"children\":\"Generation\"}],[\"$\",\"p\",null,{\"children\":\"Produce a structured answer or assessment\"}]]}],[\"$\",\"div\",\"Guardrails\",{\"className\":\"case-flow-node\",\"children\":[[\"$\",\"span\",null,{\"children\":\"05\"}],[\"$\",\"strong\",null,{\"children\":\"Guardrails\"}],[\"$\",\"p\",null,{\"children\":\"Keep output within the learning workflow and supported scope\"}]]}],[\"$\",\"div\",\"Persistence\",{\"className\":\"case-flow-node\",\"children\":[[\"$\",\"span\",null,{\"children\":\"06\"}],[\"$\",\"strong\",null,{\"children\":\"Persistence\"}],[\"$\",\"p\",null,{\"children\":\"Store product state, usage and learning interactions\"}]]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"9:[\"$\",\"section\",null,{\"className\":\"case-decisions case-frame\",\"children\":[[\"$\",\"div\",null,{\"className\":\"case-decisions-heading\",\"children\":[[\"$\",\"p\",null,{\"className\":\"case-section-label\",\"children\":\"What mattered technically\"}],[\"$\",\"h2\",null,{\"children\":\"Product boundaries were part of the AI architecture.\"}]]}],[\"$\",\"div\",null,{\"className\":\"case-decision-list\",\"children\":[[\"$\",\"article\",null,{\"children\":[[\"$\",\"h3\",null,{\"children\":\"Scope before confidence\"}],[\"$\",\"p\",null,{\"children\":\"The product first needed to decide whether a question belonged to the supported curriculum. That boundary is more important than simply generating a plausible answer.\"}]]}],[\"$\",\"article\",null,{\"children\":[[\"$\",\"h3\",null,{\"children\":\"Ground the learning experience\"}],[\"$\",\"p\",null,{\"children\":\"Retrieval and citations help turn the model from a generic conversational layer into an assistant attached to the material the student is expected to learn.\"}]]}],[\"$\",\"article\",null,{\"children\":[[\"$\",\"h3\",null,{\"children\":\"Structured outputs for product behavior\"}],[\"$\",\"p\",null,{\"children\":\"Quizzes, assessments and workflow actions benefit from predictable schemas rather than free-form text. Model output becomes easier to validate and integrate into the UI.\"}]]}],[\"$\",\"article\",null,{\"children\":[[\"$\",\"h3\",null,{\"children\":\"AI features still need normal backend discipline\"}],[\"$\",\"p\",null,{\"children\":\"Authentication, usage limits, persistence, API boundaries and service ownership remain core product concerns even when the most visible feature is an LLM-powered assistant.\"}]]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"a:[\"$\",\"section\",null,{\"className\":\"case-stack case-frame\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"case-section-label\",\"children\":\"Application\"}],[\"$\",\"p\",null,{\"children\":\"Django REST · FastAPI services · React\"}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"case-section-label\",\"children\":\"Data\"}],[\"$\",\"p\",null,{\"children\":\"PostgreSQL · document storage · vector retrieval\"}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"case-section-label\",\"children\":\"AI product patterns\"}],[\"$\",\"p\",null,{\"children\":\"Scope classification · citations · structured generation · gated usage\"}]]}]]}]\nb:[\"$\",\"footer\",null,{\"className\":\"case-footer case-frame\",\"children\":[[\"$\",\"p\",null,{\"children\":\"Previous system\"}],[\"$\",\"$L4\",null,{\"href\":\"/work/ask-hiphop\",\"children\":[\"Ask HipHop \",[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"children\":\"→\"}]]}]]}]\nc:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/796e69ae18b2784c.js\",\"async\":true,\"nonce\":\"$undefined\"}]\nd:[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$11\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@12\"}]}]\ne:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L13\",null,{\"children\":\"$L14\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L15\",null,{\"children\":[\"$\",\"$11\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L16\"}]}]}],null]}]\n"])</script>
1<script>self.__next_f.push([1,"14:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
1<script>self.__next_f.push([1,"17:I[27201,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/7340adf74ff47ec0.js\"],\"IconMark\"]\n12:null\n"])</script>
1<script>self.__next_f.push([1,"16:[[\"$\",\"title\",\"0\",{\"children\":\"BinaAI — Private Client Case Study | Rajan Jasani\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"A sanitized engineering case study covering the architecture and product decisions behind a curriculum-aware AI exam preparation system.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"Rajan Jasani\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"Rajan Jasani,Backend Engineer,Applied AI Engineer,Python Developer,FastAPI,Django,RAG Engineer,System Design,PostgreSQL,AWS,Software Developer\"}],[\"$\",\"meta\",\"4\",{\"name\":\"creator\",\"content\":\"Rajan Jasani\"}],[\"$\",\"meta\",\"5\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"6\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"link\",\"7\",{\"rel\":\"canonical\",\"href\":\"https://rajanjasani.in\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:title\",\"content\":\"Rajan Jasani — AI Engineer \u0026 Software Developer\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:description\",\"content\":\"Production backend systems, retrieval architecture, applied AI and system design.\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:url\",\"content\":\"https://rajanjasani.in\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:site_name\",\"content\":\"Rajan Jasani\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:locale\",\"content\":\"en_IN\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image\",\"content\":\"https://rajanjasani.in/rajan.jpg\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:width\",\"content\":\"460\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:height\",\"content\":\"460\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:alt\",\"content\":\"Rajan Jasani — AI Engineer \u0026 Software Developer\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:title\",\"content\":\"Rajan Jasani — AI Engineer \u0026 Software Developer\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:description\",\"content\":\"Production backend systems, retrieval architecture, applied AI and system design.\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image\",\"content\":\"https://rajanjasani.in/rajan.jpg\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0b3bf435.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L17\",\"23\",{}]]\n"])</script>
1</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.