<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nabil Thange</title>
    <description>The latest articles on DEV Community by Nabil Thange (@nabil_thange).</description>
    <link>https://dev.to/nabil_thange</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3571349%2F6907f97f-a5d8-4c3e-8325-13709384f65f.jpg</url>
      <title>DEV Community: Nabil Thange</title>
      <link>https://dev.to/nabil_thange</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nabil_thange"/>
    <language>en</language>
    <item>
      <title>CyberShield: How We Built an AI-Powered Banking Malware Intelligence Platform for India's Public Sector Banks</title>
      <dc:creator>Nabil Thange</dc:creator>
      <pubDate>Sun, 07 Jun 2026 07:19:41 +0000</pubDate>
      <link>https://dev.to/nabil_thange/cybershield-how-we-built-an-ai-powered-banking-malware-intelligence-platform-for-indias-public-i6</link>
      <guid>https://dev.to/nabil_thange/cybershield-how-we-built-an-ai-powered-banking-malware-intelligence-platform-for-indias-public-i6</guid>
      <description>&lt;p&gt;&lt;em&gt;My journey through the HackHazards 2026.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem Nobody Was Solving Fast Enough
&lt;/h2&gt;

&lt;p&gt;Every day, thousands of Indians receive a WhatsApp message with a link. "Update your SBI KYC." "Claim your bank reward points." "Your account will be suspended."&lt;/p&gt;

&lt;p&gt;Some click. An APK downloads. And somewhere in a server farm, a criminal now has access to their OTP, their banking credentials, their life savings.&lt;/p&gt;

&lt;p&gt;This is not hypothetical. Drinik, a banking trojan that specifically targeted 18 Indian financial institutions including the State Bank of India, infected victims by masquerading as the Income Tax Department's official app. It used Android's Accessibility Services to invisibly log keystrokes, suppress OTP notifications, and drain accounts — all while the victim saw nothing unusual on their screen.&lt;/p&gt;

&lt;p&gt;When a bank's fraud team discovers a new suspicious APK circulating on WhatsApp, what happens? They hand it to a cybersecurity expert. That expert spends &lt;strong&gt;one to three days&lt;/strong&gt; manually decompiling the code, reading through obfuscated Java, tracing network calls, and writing a report. By the time the report lands on a SOC analyst's desk, hundreds of customers may already be compromised.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That three-day gap is exactly what we built CyberShield to close.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What We're Actually Building (And What We're Not)
&lt;/h2&gt;

&lt;p&gt;Before going further, let's be honest about scope — because hackathon projects often promise the moon.&lt;/p&gt;

&lt;p&gt;CyberShield is &lt;strong&gt;not&lt;/strong&gt; a consumer antivirus. It is not competing with Google Play Protect or Bitdefender. We are not trying to scan every app on every phone in India.&lt;/p&gt;

&lt;p&gt;What CyberShield &lt;strong&gt;is&lt;/strong&gt;: an AI-powered malware intelligence platform built specifically for the Security Operations Centers of Indian public sector banks. The primary user is a fraud analyst or SOC analyst at a bank who needs to answer one urgent question — &lt;em&gt;"Is this APK that's circulating among our customers dangerous, and what should we do right now?"&lt;/em&gt; — in minutes, not days.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Architecture: Eight Tools, One Brain
&lt;/h2&gt;

&lt;p&gt;The core insight of our system is that no single analysis tool is sufficient. Modern banking trojans are designed to fool individual scanners. They pack their payload, obfuscate their strings, and use legitimate-looking permissions. The only way to reliably catch them is to triangulate across multiple independent analysis dimensions and look for the patterns that only emerge when you see all the evidence together.&lt;/p&gt;

&lt;p&gt;Our backend pipeline chains eight specialized tools:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MobSF&lt;/strong&gt; is our primary orchestrator. It performs static analysis on the APK — extracting permissions, API calls, certificate information, and network security configurations. A legitimate SBI app uses a verifiable Extended Validation certificate. A fake one uses a self-signed cert. MobSF catches that immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JADX&lt;/strong&gt; decompiles the DEX bytecode back into readable Java source code. This is where we look for things like &lt;code&gt;DexClassLoader&lt;/code&gt; (the app is secretly loading a second malicious app), &lt;code&gt;@JavascriptInterface&lt;/code&gt; (a WebView is being used to render a fake phishing login page), or USSD strings like &lt;code&gt;*21*#&lt;/code&gt; (the app is programmatically forwarding your phone calls to the attacker, so they intercept your voice OTP).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quark Engine&lt;/strong&gt; is our behavioral analysis layer. Rather than just looking at what permissions are declared, Quark traces API call sequences and verifies — with mathematical certainty at Stage 5 confidence — whether &lt;code&gt;READ_SMS&lt;/code&gt; and an HTTP upload function are operating on the exact same variable. If they are, that's not coincidence. That's OTP theft.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;APKiD&lt;/strong&gt; fingerprints the binary itself. It tells us whether the APK was compiled normally or if it was decompiled, injected with malicious code, and repacked. The presence of &lt;code&gt;dexlib 2.x&lt;/code&gt; in the compiler field is a red flag: it means a legitimate banking app was trojanized and redistributed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;APKLeaks&lt;/strong&gt; hunts for secrets baked into the code — Telegram Bot tokens (increasingly used by malware to exfiltrate stolen OTPs in real time), Firebase database URLs, hardcoded API keys, and IP addresses pointing to command-and-control servers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Androguard&lt;/strong&gt; goes deeper into the DEX structure, building cross-reference graphs. It can verify whether a declared &lt;code&gt;BIND_ACCESSIBILITY_SERVICE&lt;/code&gt; actually connects through the code to functions that read screen content — the difference between an accessibility app for disabled users and a banking trojan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom Strings Analyzer&lt;/strong&gt; and &lt;strong&gt;Custom Manifest Analyzer&lt;/strong&gt; are our regional intelligence layers. Standard tools don't flag Hindi-language strings like "Aadhaar link karein" or "PAN card update." We do. These are the social engineering hooks that trick Indian users into granting permissions. The manifest analyzer also detects apps that deliberately hide themselves from the launcher (no &lt;code&gt;LAUNCHER&lt;/code&gt; category) to achieve silent, persistent operation.&lt;/p&gt;

&lt;p&gt;All eight tool outputs feed into our &lt;strong&gt;Correlation Engine&lt;/strong&gt; — a deterministic rule system that evaluates 17 cross-tool patterns. No single signal fires an alert alone. We require convergent evidence. Rule 3, for example, fires only when: the manifest requests &lt;code&gt;SYSTEM_ALERT_WINDOW&lt;/code&gt; &lt;em&gt;and&lt;/em&gt; APKLeaks finds a Telegram Bot token &lt;em&gt;and&lt;/em&gt; Quark confirms SMS capture at Stage 5 confidence. That specific combination means one thing: a Telegram-backed overlay trojan stealing OTPs. Zero ambiguity.&lt;/p&gt;




&lt;h2&gt;
  
  
  The AI Layer: Making It Readable for a Fraud Analyst
&lt;/h2&gt;

&lt;p&gt;Raw JSON from eight security tools is not useful to a bank fraud analyst. They're not malware researchers. They're financial professionals who need to make fast decisions.&lt;/p&gt;

&lt;p&gt;This is where Generative AI becomes genuinely transformative in our stack — not as a gimmick, but as a translation layer.&lt;/p&gt;

&lt;p&gt;After the deterministic engine computes its confidence score and fires its rules, we pass a structured summary to an LLM with a carefully designed system prompt:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"You are a senior malware analyst embedded in a bank's Security Operations Center. Your audience is a fraud analyst at an Indian public sector bank. Always contextualize findings in terms of risk to banking customers — OTP interception, credential theft, unauthorized transfers. End every explanation with a 'Recommended Action' line that tells the bank what to do right now, concretely and specifically."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The output is a human-readable &lt;strong&gt;Threat Brief&lt;/strong&gt; that explains, in plain language: what this APK does, what banking customers are at risk, how it evades detection, and what the bank should do immediately — block specific IP ranges, force password resets for customers who may have installed it, alert the I4C (Indian Cyber Crime Coordination Centre), or push a fraud alert to affected account holders.&lt;/p&gt;

&lt;p&gt;The AI doesn't replace the deterministic engine. It annotates it. The engine catches the threat; the AI explains it to the person who needs to act on it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bank Dashboard: What Judges Will Actually See
&lt;/h2&gt;

&lt;p&gt;The main product interface is a SOC dashboard designed for a bank's security team. It shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A live feed of analyzed APKs with risk scores (0–100) and threat classifications&lt;/li&gt;
&lt;li&gt;AI-generated threat briefs in plain English for every scan&lt;/li&gt;
&lt;li&gt;MITRE ATT&amp;amp;CK technique mappings for each detected behavior&lt;/li&gt;
&lt;li&gt;Extracted indicators of compromise — suspicious domains, IP addresses, Telegram bot IDs, Firebase URLs&lt;/li&gt;
&lt;li&gt;Campaign clustering (when multiple APKs share infrastructure, they're likely from the same threat actor)&lt;/li&gt;
&lt;li&gt;Actionable recommendations specific to the bank's context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The upload flow is simple: drag an APK, watch nine analysis stages complete in real time, get a full intelligence report. What used to take a skilled analyst three days now takes the platform three to seven minutes.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Malware Intake Layer: How APKs Get In
&lt;/h2&gt;

&lt;p&gt;A bank's SOC doesn't proactively hunt for malware APKs. They learn about them when customers call in complaints, when fraud alerts fire, or when their threat intelligence feeds pick something up.&lt;/p&gt;

&lt;p&gt;We designed CyberShield with multiple intake vectors. The primary one is direct upload through the dashboard. The secondary — and strategically important — one is a WhatsApp-based submission channel. A bank can publicize a number that customers and employees forward suspicious APKs or links to. The bot automatically routes received files into the analysis pipeline, creating a crowdsourced threat intelligence feed that grows more powerful as more people use it.&lt;/p&gt;

&lt;p&gt;This turns the bank's customer base into an early warning network. When a new fake "SBI KYC Update" APK starts circulating, the first customers who receive it and get suspicious can forward it. The bank's SOC gets an alert within minutes rather than days.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technical Stack
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Backend:&lt;/strong&gt; Python/FastAPI, running the full eight-tool analysis pipeline. Analysis is scheduled asynchronously via FastAPI's BackgroundTasks, so uploads return immediately and processing continues in the background.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analysis Tools:&lt;/strong&gt; MobSF (local instance), JADX, Quark Engine, APKiD, APKLeaks, Androguard, custom string/manifest analyzers — all orchestrated through subprocess calls and Python bindings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intelligence Engine:&lt;/strong&gt; Custom Python correlation engine with 17 deterministic rules, a ConfidenceCalculator with weighted scoring, and an AttackChainBuilder that maps findings to the MITRE ATT&amp;amp;CK for Mobile framework.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Layer:&lt;/strong&gt; Claude API / Groq endpoint for threat brief generation and interactive SOC analyst explanations, with section-specific prompting for permissions, network indicators, behavioral rules, and MITRE mappings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Intelligence (GitNexus):&lt;/strong&gt; A TypeScript RAG system using tree-sitter-java to parse decompiled code, embed it with &lt;code&gt;snowflake-arctic-embed-xs&lt;/code&gt; via ONNX Runtime, and serve semantic + keyword hybrid search (BM25 + vector, merged via Reciprocal Rank Fusion) for deep code investigation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt; Next.js 16, React 19, Tailwind CSS. Four main views: Dashboard, Upload, Live Progress tracking, and Detailed Report.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Report Storage:&lt;/strong&gt; JSON files on filesystem (filesystem-native for hackathon scale; PostgreSQL migration path planned).&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenges We Actually Faced
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The obfuscation problem.&lt;/strong&gt; Modern banking trojans are specifically engineered to defeat static analysis. APKiD might tell us a file is packed with a commercial packer — but JADX then can't decompile the inner payload. Our correlation engine accounts for this: a packing detection alone raises suspicion, and we route heavily obfuscated APKs with a higher base risk score. Full dynamic sandbox analysis is on the roadmap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;False positives in APKLeaks.&lt;/strong&gt; APKLeaks uses broad regex patterns and generates enormous amounts of noise — legitimate analytics domains, UUIDs, library constants. We had to build a filtering layer that cross-references extracted indicators against known-good lists and only surfaces the ones that appear alongside other corroborating signals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The "one tool isn't enough" problem.&lt;/strong&gt; Early in development we were tempted to just wrap MobSF with a GPT call and call it done. That would have been useless in production. A sophisticated banking trojan scores fine on MobSF in isolation. It's only when you combine APKiD's "this was repackaged" signal with Androguard's "the certificate CN claims to be SBI but is self-signed" signal with JADX's "this code implements a TextWatcher listening for SBI's package name" signal that the full picture of a targeted trojan emerges. Building the correlation engine to express these relationships correctly was the hardest and most important part of this project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Making it legible to non-security people.&lt;/strong&gt; The prompting work to get the AI to write threat briefs that are genuinely useful to a fraud analyst — not full of jargon, grounded in specific banking operations context, ending with concrete action — took significant iteration. The system prompt anchoring the AI as a "senior malware analyst embedded in a bank's SOC" turned out to be crucial. Without that framing, explanations were generic. With it, they were operationally specific.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters for India Specifically
&lt;/h2&gt;

&lt;p&gt;India's banking sector faces a uniquely intense mobile malware threat. The combination of rapid smartphone adoption, UPI-based payment infrastructure, widespread use of SMS OTPs as the primary 2FA mechanism, and a large population that may be less familiar with mobile security hygiene creates an exceptionally high-value target for threat actors.&lt;/p&gt;

&lt;p&gt;The Drinik trojan specifically targeted 18 Indian banks. Fake apps impersonating SBI, ICICI, and other institutions circulate constantly on WhatsApp and Telegram. The government's own CERT-In has issued repeated advisories about banking trojans targeting Indian users.&lt;/p&gt;

&lt;p&gt;Public sector banks — exactly the institutions this hackathon is designed to support — often have fewer dedicated cybersecurity resources than private sector peers. A tool that can dramatically reduce the analyst time required per APK investigation, while also being operable by fraud team members who aren't malware experts, has direct impact on their capacity to protect customers.&lt;/p&gt;

&lt;p&gt;CyberShield is built specifically for this context. The regional signals (Hindi-language phishing strings, USSD call-forwarding codes, Aadhaar/PAN lures, fake government app impersonation), the SOC-analyst-friendly output, the WhatsApp intake channel — all of it is designed for the specific reality of banking security operations in India in 2026.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;The deterministic correlation engine we've built covers the known taxonomy of banking trojans well. The honest frontier is dynamic analysis — actually running suspicious APKs in an instrumented Android sandbox and watching what they do at runtime. Static analysis, however sophisticated, has inherent limits against packed and obfuscated malware. Dynamic analysis breaks through those limits. That's the next major engineering investment.&lt;/p&gt;

&lt;p&gt;We're also working on malware family clustering — using the IOCs and behavioral signatures extracted from each analysis to group related APKs, map campaigns, and build threat actor profiles. When five different fake banking apps all phone home to the same Firebase instance, that's a campaign. Banks should know about campaigns, not just individual files.&lt;/p&gt;

&lt;p&gt;The vision is a shared threat intelligence network across public sector banks — where an APK submitted to one bank's CyberShield instance enriches the threat intelligence available to all participating banks. Malware campaigns don't respect organizational boundaries. Threat intelligence shouldn't either.&lt;/p&gt;




&lt;h2&gt;
  
  
  Closing Thought
&lt;/h2&gt;

&lt;p&gt;The gap between when a banking malware campaign begins and when a bank can act against it is measured in human suffering — customers who lose savings, elderly people who can't recover money drained by invisible trojans, small business owners whose accounts are emptied.&lt;/p&gt;

&lt;p&gt;We built CyberShield because that gap is not technically inevitable. It exists because the right tools hadn't been assembled in the right way for the people who need them. The technology to close it — static analysis, behavioral correlation, generative AI explanation — all existed. We just had to put it together correctly and aim it at the right problem.&lt;/p&gt;

&lt;p&gt;That's what this hackathon is for.&lt;/p&gt;




</description>
      <category>ai</category>
      <category>android</category>
      <category>cybersecurity</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I built an AI tutor with persistent memory in 6 hours — here's how</title>
      <dc:creator>Nabil Thange</dc:creator>
      <pubDate>Fri, 20 Mar 2026 15:20:19 +0000</pubDate>
      <link>https://dev.to/nabil_thange/i-built-an-ai-tutor-with-persistent-memory-in-6-hours-heres-how-3npo</link>
      <guid>https://dev.to/nabil_thange/i-built-an-ai-tutor-with-persistent-memory-in-6-hours-heres-how-3npo</guid>
      <description>&lt;h1&gt;
  
  
  I built an AI tutor with persistent memory in 6 hours — here's how
&lt;/h1&gt;

&lt;p&gt;Every study app I've used has the same problem.&lt;/p&gt;

&lt;p&gt;Open it on Monday. It helps you. Close it.&lt;/p&gt;

&lt;p&gt;Open it on Thursday. It has &lt;strong&gt;no idea who you are.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Same generic suggestions. Same random quiz topics. No memory of the fact that you failed recursion questions three times this week.&lt;/p&gt;

&lt;p&gt;So for this hackathon — theme: &lt;em&gt;AI Agents That Learn Using Hindsight&lt;/em&gt; — we built &lt;strong&gt;Sage.&lt;/strong&gt; An AI tutor that actually remembers you.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Sage does
&lt;/h2&gt;

&lt;p&gt;You upload your syllabus PDF. Sage reads it, extracts every subject and chapter, and asks you what you already know. Then it generates a personalised study plan built around your actual weak areas — not a template.&lt;/p&gt;

&lt;p&gt;Every time you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Take a quiz and get something wrong&lt;/li&gt;
&lt;li&gt;Ask the AI to re-explain a concept&lt;/li&gt;
&lt;li&gt;Tell the planner you have an exam coming up&lt;/li&gt;
&lt;li&gt;Finish a Pomodoro session&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;...Sage writes that to memory. Forever.&lt;/p&gt;

&lt;p&gt;Come back three days later? The AI opens with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Welcome back. Last session you struggled with VSWR. Your IOT exam is in 4 days. Want to pick up from there?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's not a chat history trick. That's a persistent memory system.&lt;/p&gt;




&lt;h2&gt;
  
  
  The tech that makes it possible — Hindsight
&lt;/h2&gt;

&lt;p&gt;The memory layer is powered by &lt;strong&gt;&lt;a href="https://hindsight.vectorize.io/" rel="noopener noreferrer"&gt;Hindsight&lt;/a&gt;&lt;/strong&gt; by Vectorize.&lt;/p&gt;

&lt;p&gt;Hindsight isn't just a key-value store. When you call &lt;code&gt;retain()&lt;/code&gt;, it uses an LLM internally to extract facts, entities, and temporal data — then classifies them into &lt;strong&gt;4 memory types:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;World&lt;/strong&gt; — objective facts ("IOT exam is March 28")&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Experiences&lt;/strong&gt; — what actually happened ("scored 4/10 on quiz, failed VSWR")&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observations&lt;/strong&gt; — patterns it auto-synthesises ("user consistently fails application questions")&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Opinions&lt;/strong&gt; — beliefs with confidence scores ("needs more practice: 0.91 confidence")&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And &lt;code&gt;reflect()&lt;/code&gt; reasons &lt;em&gt;across&lt;/em&gt; all of these to generate insights like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Strong in theory. Consistently weak in numerical and application problems."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is what makes Sage feel like a real tutor — not just a chatbot.&lt;/p&gt;




&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User → Next.js frontend
         ↓
/api/planner/chat   → recall() from Hindsight → Groq with memory context
/api/mentor/chat    → recall() + syllabus text → Groq → personalised teaching
/api/memory/retain  → Hindsight retain() on every meaningful interaction
/api/memory/reflect → Hindsight reflect() for insights + Memory Panel
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 14&lt;/strong&gt; (App Router)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Groq&lt;/strong&gt; — qwen3-32b, fast and free tier&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hindsight Cloud&lt;/strong&gt; — persistent per-user memory banks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;shadcn/ui + Tailwind&lt;/strong&gt; — dark-themed component library&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pdf-parse&lt;/strong&gt; — server-side syllabus extraction&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Memory Panel — making invisible AI visible
&lt;/h2&gt;

&lt;p&gt;The coolest thing we built wasn't the chat. It was the &lt;strong&gt;🧠 Memory Panel.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One click and you see everything the AI knows about you — grouped by type, with confidence scores on opinions, and a live &lt;code&gt;reflect()&lt;/code&gt; summary at the top:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🌍 World
   BTech CSE Sem 3. IOT exam March 28.

🎯 Experiences
   Scored 4/10 on IOT quiz. Failed: VSWR, antenna gain.

🔍 Observations (auto-synthesised)
   Fails application questions consistently across 3 sessions.

💭 Opinions
   Needs IOT application practice — 0.91 confidence
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This screen alone makes it obvious that the AI is &lt;em&gt;actually learning&lt;/em&gt; — not just replying to prompts.&lt;/p&gt;




&lt;h2&gt;
  
  
  What we learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Hindsight's &lt;code&gt;reflect()&lt;/code&gt; is the killer feature.&lt;/strong&gt; It's not retrieval — it's synthesis. The AI forming its own opinions about a student's learning patterns is something no RAG pipeline gives you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Build memory-first, UI second.&lt;/strong&gt; We wired Hindsight in the first hour. Every feature we built after that automatically had memory context. If you add memory last, you have to retrofit everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The "return visit" moment is your demo.&lt;/strong&gt; Log out, log back in, watch the AI greet you with context from days ago. That's the moment that makes people go &lt;em&gt;"wait, this is actually different."&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What's next for Sage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;NotebookLM MCP integration for Studio outputs (audio overview, infographic, slide deck)&lt;/li&gt;
&lt;li&gt;Real Supabase persistence for test history and proficiency tracking&lt;/li&gt;
&lt;li&gt;Smarter pre-test adaptive questioning&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Built in 6 hours at a hackathon. Theme: &lt;strong&gt;AI Agents That Learn Using Hindsight.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're building anything with persistent AI memory — check out &lt;a href="https://hindsight.vectorize.io/" rel="noopener noreferrer"&gt;Hindsight&lt;/a&gt;. It's genuinely different from standard RAG.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Code dropping soon. Follow for updates.&lt;/em&gt;&lt;/p&gt;




</description>
      <category>agents</category>
      <category>ai</category>
      <category>learning</category>
      <category>showdev</category>
    </item>
    <item>
      <title>🚀 Building Vyx: An AI Content Engine with the Kiro IDE</title>
      <dc:creator>Nabil Thange</dc:creator>
      <pubDate>Fri, 05 Dec 2025 12:00:24 +0000</pubDate>
      <link>https://dev.to/nabil_thange/building-vyx-an-ai-content-engine-with-the-kiro-ide-d9a</link>
      <guid>https://dev.to/nabil_thange/building-vyx-an-ai-content-engine-with-the-kiro-ide-d9a</guid>
      <description>&lt;h1&gt;
  
  
  🚀 Building Vyx: An AI Content Engine with the Kiro IDE
&lt;/h1&gt;

&lt;p&gt;By &lt;strong&gt;Nabil Salim Thange&lt;/strong&gt; | &lt;a href="http://nabil-thange.vercel.app/" rel="noopener noreferrer"&gt;Portfolio: http://nabil-thange.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The content creation world is drowning in manual labor. We realized that even with dozens of AI tools, creators were spending 15-20 hours a week just repurposing a single YouTube video for different platforms.&lt;/p&gt;

&lt;p&gt;That’s why we built &lt;strong&gt;Vyx&lt;/strong&gt;, an AI engine that converts any video URL into a complete, platform-optimized content package (blogs, social posts, viral clips) in under 10 minutes.&lt;/p&gt;

&lt;p&gt;This project was complex, requiring the orchestration of multiple asynchronous microservices (Next.js, Groq, N8N, FFmpeg). But thanks to the &lt;strong&gt;Kiro IDE&lt;/strong&gt;, we handled this complexity and drastically reduced our development time.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Vyx? The Solution to the Content Bottleneck
&lt;/h2&gt;

&lt;p&gt;Vyx is a dual-pipeline system designed for creators and marketers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Content Repurposing Pipeline (Pipeline A):&lt;/strong&gt; Takes the YouTube transcript and runs it through a &lt;strong&gt;5-step AI pipeline (Llama 3.3 70B)&lt;/strong&gt; to generate a complete suite of content:

&lt;ul&gt;
&lt;li&gt;Optimized blog posts (800-1200 words).&lt;/li&gt;
&lt;li&gt;Platform-specific social posts (LinkedIn, X, Instagram) with custom aspect ratio images.&lt;/li&gt;
&lt;li&gt;Content is scored for &lt;strong&gt;Virality and Usefulness&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Viral Clip Generation Pipeline (Pipeline B):&lt;/strong&gt; Uses &lt;strong&gt;FFmpeg&lt;/strong&gt; and &lt;strong&gt;yt-dlp&lt;/strong&gt; to download the video, identifies the top 3-5 viral moments using AI, crops them to the &lt;strong&gt;9:16 vertical format&lt;/strong&gt;, and burns in subtitles.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The challenge wasn't just the AI; it was managing the infrastructure for instant content, complex processing, and multi-service orchestration.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ How Kiro Revolutionized Our Development Workflow
&lt;/h2&gt;

&lt;p&gt;Developing Vyx on the &lt;strong&gt;Kiro IDE&lt;/strong&gt; was essential for two primary reasons: &lt;strong&gt;enforcing structure&lt;/strong&gt; and enabling &lt;strong&gt;complex multimedia processing&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Spec-Driven Development Eliminated Vibe Coding
&lt;/h3&gt;

&lt;p&gt;The project’s architecture, managing multiple asynchronous service integrations (Next.js for the frontend/API, N8N for orchestration, Groq for AI logic, Pollinations.ai for instant images), was intricate.&lt;/p&gt;

&lt;p&gt;Instead of getting lost in "vibe coding," Kiro allowed us to immediately transition from our &lt;strong&gt;Implementation Plan and PRD&lt;/strong&gt; into concrete, working code.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clarity from the Start:&lt;/strong&gt; By defining the input and output for each module in the spec, Kiro was able to build a reliable &lt;strong&gt;N8N workflow structure&lt;/strong&gt; for the backend microservices, which drastically reduced integration bugs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus on Logic:&lt;/strong&gt; Kiro handled all the boilerplate for the Next.js/Tailwind setup, allowing us to spend 95% of our time focusing on optimizing the 5-step AI pipeline and refining the viral detection logic.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. The MCP Unlocked Multimedia Capabilities
&lt;/h3&gt;

&lt;p&gt;The most critical feature—the &lt;strong&gt;Viral Clip Generation Pipeline (B)&lt;/strong&gt;—relied heavily on non-standard binary tools: &lt;code&gt;yt-dlp&lt;/code&gt; for downloading and &lt;strong&gt;FFmpeg&lt;/strong&gt; for video manipulation.&lt;/p&gt;

&lt;p&gt;This is where the &lt;strong&gt;Master Control Program (MCP)&lt;/strong&gt; feature of Kiro was a game-changer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Native Tool Integration:&lt;/strong&gt; We extended Kiro’s capabilities to understand and orchestrate &lt;code&gt;yt-dlp&lt;/code&gt; and &lt;code&gt;FFmpeg&lt;/code&gt; commands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complex Workflow Solved:&lt;/strong&gt; Kiro was able to stitch together a workflow that downloaded the video, identified timestamps via the AI, and then reliably executed the necessary &lt;strong&gt;FFmpeg commands&lt;/strong&gt; to crop the video to 9:16 and burn in subtitles with precise timing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without the MCP, building a reliable, automated video processing pipeline would have been nearly impossible or prohibitively time-consuming.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Vyx is proof that AI orchestration, powered by the right development environment, can solve real, multi-dimensional business problems. The structural enforcement of &lt;strong&gt;Spec-Driven Development&lt;/strong&gt; and the power of the &lt;strong&gt;MCP&lt;/strong&gt; allowed us to build a complete, production-ready AI content engine in record time.&lt;/p&gt;

&lt;p&gt;Kiro didn't just write code; it structured a complex technical project, enabling us (Nabil Salim Thange and team) to successfully launch a full-stack solution.&lt;/p&gt;

&lt;p&gt;If you’re building a complex project with multiple integrations, I highly recommend exploring how &lt;strong&gt;Kiro IDE&lt;/strong&gt; can streamline your workflow.&lt;/p&gt;

&lt;h1&gt;
  
  
  kiro
&lt;/h1&gt;

</description>
      <category>kiro</category>
      <category>contentcreation</category>
      <category>ai</category>
      <category>content</category>
    </item>
  </channel>
</rss>
