<?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: Tanya Garg</title>
    <description>The latest articles on DEV Community by Tanya Garg (@tanya_garg_5315).</description>
    <link>https://dev.to/tanya_garg_5315</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3807037%2Ff0fa8cce-c510-456a-9caa-df96093588e4.jpg</url>
      <title>DEV Community: Tanya Garg</title>
      <link>https://dev.to/tanya_garg_5315</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tanya_garg_5315"/>
    <language>en</language>
    <item>
      <title>🌿TraceBack: Step Outside, Capture Something, Trace It Back</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Sat, 10 Oct 2026 05:51:00 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/traceback-step-outside-capture-something-trace-it-back-1d0m</link>
      <guid>https://dev.to/tanya_garg_5315/traceback-step-outside-capture-something-trace-it-back-1d0m</guid>
      <description>&lt;h2&gt;
  
  
  🌿 TraceBack: Step Outside, Capture Something, Trace It Back
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;What if discovering something interesting outside didn't end with taking a photo and forgetting about it?&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;TraceBack — Field Evidence Explorer&lt;/strong&gt;, an open-source AI-powered project designed to turn real-world observations into evidence-backed discoveries.&lt;/p&gt;

&lt;p&gt;Whether you're exploring a nature trail, spotting an unfamiliar bird, discovering a plant, or noticing an interesting landmark, TraceBack helps you investigate what you found and understand the evidence behind it.&lt;/p&gt;

&lt;p&gt;Here's how it works:&lt;/p&gt;

&lt;p&gt;🌿 &lt;strong&gt;Capture:&lt;/strong&gt; Take a photo or record an observation while exploring the real world.&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;Analyze:&lt;/strong&gt; An open-weight AI model analyzes the observation and suggests a possible identification or explanation.&lt;/p&gt;

&lt;p&gt;🔎 &lt;strong&gt;Trace:&lt;/strong&gt; SerpApi searches the web for relevant sources and information related to the observation.&lt;/p&gt;

&lt;p&gt;📚 &lt;strong&gt;Explore the evidence:&lt;/strong&gt; TraceBack organizes the results into an evidence trail, making it easier to understand supporting information, source disagreements, and what still needs verification.&lt;/p&gt;

&lt;p&gt;🗂️ &lt;strong&gt;Save the discovery:&lt;/strong&gt; Keep observations and their evidence in a personal field journal.&lt;/p&gt;

&lt;p&gt;The idea is simple: &lt;strong&gt;use AI to make the real world more interesting, not to keep people glued to their screens.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of endlessly scrolling through content, users can step outside, observe something meaningful, capture it, and return to their exploration while TraceBack helps them investigate their discovery.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🌐 &lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://traceback-field-evidence.onrender.com" rel="noopener noreferrer"&gt;https://traceback-field-evidence.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎥 &lt;strong&gt;Demo Video:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1CPMQ-E-DqqNOLaA-SBmad4srLdbtq8Lw/view?usp=drive_link" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1CPMQ-E-DqqNOLaA-SBmad4srLdbtq8Lw/view?usp=drive_link&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;The demo walks through the journey from capturing a real-world observation to analyzing it with AI and discovering relevant evidence online.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Tanya-garg10/traceback-field-evidence.git" rel="noopener noreferrer"&gt;TraceBack — Field Evidence Explorer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is designed around a modular architecture, separating AI analysis, web search, evidence processing, and field-journal functionality.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I designed TraceBack around two complementary technologies: &lt;strong&gt;open-weight AI for observation analysis and SerpApi for online evidence discovery.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Open-Weight AI
&lt;/h3&gt;

&lt;p&gt;The project is designed to integrate with an open-weight model such as Gemma through Ollama.&lt;/p&gt;

&lt;p&gt;The AI analysis layer helps interpret observations, extract useful characteristics, and generate search queries for further investigation.&lt;/p&gt;

&lt;p&gt;Keeping the model integration modular makes it possible to experiment with different models rather than locking the entire project to a single proprietary AI provider.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔎 SerpApi
&lt;/h3&gt;

&lt;p&gt;SerpApi powers the online research component.&lt;/p&gt;

&lt;p&gt;It helps retrieve relevant web results for AI-generated queries, allowing TraceBack to collect source links and organize discoverable information around an observation.&lt;/p&gt;

&lt;p&gt;Rather than presenting an AI-generated answer as unquestionable truth, the goal is to connect the answer to accessible evidence and make uncertainty visible.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌱 Local-First Exploration
&lt;/h3&gt;

&lt;p&gt;The architecture also supports saving field observations locally and keeping them available when connectivity is limited. Online evidence searches require an internet connection.&lt;/p&gt;

&lt;p&gt;The long-term goal is to make field capture as lightweight as possible, so users can spend more time exploring and less time interacting with the interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack:&lt;/strong&gt; React, TypeScript, Tailwind CSS, Express.js, Vite, Featherless API, Ollama (Gemma 3 open-weight AI model), and SerpApi.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For TraceBack, open innovation is not just about using different tools. It's about giving developers more control over how AI-powered exploration works.&lt;/p&gt;

&lt;p&gt;Open-weight models make it possible to experiment with local inference, evaluate alternative models, and adapt the analysis pipeline without depending entirely on a closed AI API.&lt;/p&gt;

&lt;p&gt;A modular AI architecture also makes the system easier to extend and improve. Different models can be evaluated for different observations, and the project can evolve alongside the open-source ecosystem.&lt;/p&gt;

&lt;p&gt;Privacy matters, too. A local-first approach can help keep observations on the user's device during initial processing, while web evidence discovery remains an explicit online step.&lt;/p&gt;

&lt;p&gt;SerpApi complements this approach by connecting field observations with information available across the web.&lt;/p&gt;

&lt;p&gt;My goal is to combine the flexibility of open AI with searchable evidence, creating a tool that encourages curiosity, supports investigation, and helps people reconnect with the world around them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of SerpApi:&lt;/strong&gt; For the project's web evidence discovery and source retrieval.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project should only be entered into partner categories whose technologies are actually integrated and demonstrated in the submitted version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TraceBack is built around one simple belief: the best discoveries begin when we look up from our screens.&lt;/strong&gt; 🌿&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>JUDGELAYER: Building a Hackathon Judging Platform You Can Actually Trust</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Thu, 08 Oct 2026 17:29:51 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/judgelayer-building-a-hackathon-judging-platform-you-can-actually-trust-516e</link>
      <guid>https://dev.to/tanya_garg_5315/judgelayer-building-a-hackathon-judging-platform-you-can-actually-trust-516e</guid>
      <description>&lt;h2&gt;
  
  
  JUDGELAYER: Building a Hackathon Judging Platform Where Trust Is Part of the Product
&lt;/h2&gt;

&lt;p&gt;Hackathons are exciting.&lt;/p&gt;

&lt;p&gt;Hundreds of people build projects, teams submit their ideas, judges review them, and eventually someone wins.&lt;/p&gt;

&lt;p&gt;But there is a part of hackathons that doesn't get talked about enough:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can we actually trust the judging process?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Who can see a submission?&lt;/p&gt;

&lt;p&gt;Can one judge see another judge's score?&lt;/p&gt;

&lt;p&gt;Can a participant access private judging data?&lt;/p&gt;

&lt;p&gt;What happens when the event is over and organizers need to understand how a result was produced?&lt;/p&gt;

&lt;p&gt;These questions became the starting point for our DOGFOOD 2026 project:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmnt5ae1brp19krwvmkvr.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmnt5ae1brp19krwvmkvr.jpeg" alt="JUDGELAYER — the trust infrastructure behind hackathon judging" width="799" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  JUDGELAYER
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Run the event. Protect the judging. Trust the results.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of building another generic hackathon management dashboard, we wanted to build something around the &lt;strong&gt;trust layer behind judging&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 The Idea
&lt;/h2&gt;

&lt;p&gt;Our goal was simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a self-hosted platform that manages the complete hackathon submission and judging workflow while keeping access controlled and auditable.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The workflow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SUBMIT
  ↓
ASSIGN
  ↓
REVIEW
  ↓
PROTECT
  ↓
AUDIT
  ↓
EXPORT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are four main types of users:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visitor&lt;/strong&gt; — explores public projects&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Participant&lt;/strong&gt; — submits and manages a project&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Judge&lt;/strong&gt; — reviews assigned projects&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Organizer&lt;/strong&gt; — manages the event, judging and results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interesting part isn't just that each role has a different dashboard.&lt;/p&gt;

&lt;p&gt;The important part is that &lt;strong&gt;the backend actually enforces what each role is allowed to access.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv1j5kto1ab3smrjgcltd.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv1j5kto1ab3smrjgcltd.jpeg" alt="One workflow. Multiple roles. Controlled access at every layer — this is the Trust Core behind JUDGELAYER." width="799" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Why We Didn't Want a Normal Dashboard
&lt;/h2&gt;

&lt;p&gt;While planning the project, it was tempting to build the usual hackathon platform:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Projects → Judges → Scores → Leaderboard&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But that didn't feel enough.&lt;/p&gt;

&lt;p&gt;A beautiful interface can hide a serious security problem.&lt;/p&gt;

&lt;p&gt;For example, hiding a "View Score" button doesn't mean the score is protected.&lt;/p&gt;

&lt;p&gt;If a participant can directly call an endpoint and retrieve judge data, the application isn't secure.&lt;/p&gt;

&lt;p&gt;So we made &lt;strong&gt;role isolation&lt;/strong&gt; one of the core architectural principles of JUDGELAYER.&lt;/p&gt;

&lt;p&gt;The UI communicates the permissions.&lt;/p&gt;

&lt;p&gt;The backend enforces them.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧩 The Trust Layer
&lt;/h2&gt;

&lt;p&gt;This became the main idea behind our product.&lt;/p&gt;

&lt;p&gt;Inside the platform, we wanted users to understand the current security state without making the interface feel complicated.&lt;/p&gt;

&lt;p&gt;For example, a judge can see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TRUST LAYER

✓ Assigned projects only
✓ Peer scores hidden
✓ Participant judging data protected
✓ Review actions audited
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not just decorative UI.&lt;/p&gt;

&lt;p&gt;The actual authorization logic lives on the backend.&lt;/p&gt;

&lt;p&gt;That distinction was important to us.&lt;/p&gt;

&lt;h2&gt;
  
  
  👀 The Public Experience
&lt;/h2&gt;

&lt;p&gt;We started with the simplest role: a visitor.&lt;/p&gt;

&lt;p&gt;No login should be required just to explore an event.&lt;/p&gt;

&lt;p&gt;The public gallery lets visitors discover projects and open their public submission information.&lt;/p&gt;

&lt;p&gt;A project can contain things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project name&lt;/li&gt;
&lt;li&gt;Description&lt;/li&gt;
&lt;li&gt;Team&lt;/li&gt;
&lt;li&gt;Repository&lt;/li&gt;
&lt;li&gt;Demo&lt;/li&gt;
&lt;li&gt;Presentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea is to keep the public experience open while keeping private judging information behind the appropriate access controls.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy0djd633fi7ahfp03dwb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy0djd633fi7ahfp03dwb.jpeg" alt="The public project discovery experience." width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📝 Participant Workflow
&lt;/h2&gt;

&lt;p&gt;Next comes the participant.&lt;/p&gt;

&lt;p&gt;A participant gets their own submission workspace where they can manage their project.&lt;/p&gt;

&lt;p&gt;We also added a &lt;strong&gt;Submission Health Check&lt;/strong&gt; concept.&lt;/p&gt;

&lt;p&gt;Before submitting, the platform can show whether important fields are ready:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SUBMISSION HEALTH

✓ Project name
✓ Description
✓ Repository
✓ Demo
✓ Presentation

READY TO SUBMIT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This sounds like a small feature, but it improves the actual submission experience.&lt;/p&gt;

&lt;p&gt;Instead of discovering a missing field after submitting, the participant gets feedback before the submission enters the judging pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚖️ The Judge Experience
&lt;/h2&gt;

&lt;p&gt;This is where JUDGELAYER really starts to become different.&lt;/p&gt;

&lt;p&gt;When a judge logs in, they don't get access to every project's private judging information.&lt;/p&gt;

&lt;p&gt;They get a controlled queue of their assigned projects.&lt;/p&gt;

&lt;p&gt;A judge can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open an assigned project&lt;/li&gt;
&lt;li&gt;Review the project evidence&lt;/li&gt;
&lt;li&gt;Evaluate judging criteria&lt;/li&gt;
&lt;li&gt;Add supporting notes&lt;/li&gt;
&lt;li&gt;Submit the review&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The interface also makes the judge's scope clear.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;YOUR JUDGING SCOPE

Assigned projects only
Peer scores hidden
Private judging data protected
Actions audited
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal was to make judging feel like a focused review workspace rather than another admin panel.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhkk65gn89ejrw4x4kv3z.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhkk65gn89ejrw4x4kv3z.jpeg" alt="A judge only sees the projects and information within their assigned scope." width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔐 The Security Test
&lt;/h2&gt;

&lt;p&gt;One of the most important things we wanted to demonstrate wasn't a UI animation.&lt;/p&gt;

&lt;p&gt;It was an actual access-control test.&lt;/p&gt;

&lt;p&gt;Imagine Judge A is reviewing Project 42.&lt;/p&gt;

&lt;p&gt;Judge B has also reviewed Project 42.&lt;/p&gt;

&lt;p&gt;Judge A should &lt;strong&gt;not&lt;/strong&gt; be able to retrieve Judge B's private score.&lt;/p&gt;

&lt;p&gt;So we test it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Judge A
   ↓
Request Judge B's score
   ↓
ACCESS DENIED
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part is that this isn't simply:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"We removed the button."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The backend rejects unauthorized access.&lt;/p&gt;

&lt;p&gt;The same principle applies to participants attempting to access private judging information.&lt;/p&gt;

&lt;p&gt;This is what we mean when we say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Role isolation is enforced by the backend, not just represented by the UI.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Filv8fcrs8xa5rw5mz0u5.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Filv8fcrs8xa5rw5mz0u5.jpeg" alt="Role isolation is enforced at the backend, not only hidden in the UI." width="800" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧑‍💼 Organizer Command Center
&lt;/h2&gt;

&lt;p&gt;Organizers need a completely different view.&lt;/p&gt;

&lt;p&gt;They need to understand what is happening across the event.&lt;/p&gt;

&lt;p&gt;The organizer dashboard brings together:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Submission tracking&lt;/li&gt;
&lt;li&gt;Judge management&lt;/li&gt;
&lt;li&gt;Project assignments&lt;/li&gt;
&lt;li&gt;Review progress&lt;/li&gt;
&lt;li&gt;Results&lt;/li&gt;
&lt;li&gt;Audit information&lt;/li&gt;
&lt;li&gt;CSV exports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One feature we particularly liked was the &lt;strong&gt;Judge Coverage&lt;/strong&gt; view.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PROJECT #042

Judge 01     ✓ Reviewed
Judge 04     ✓ Reviewed
Judge 07     ◐ Pending

Coverage: 2 / 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives organizers an immediate understanding of which projects still need attention.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnfmczcu6u4u6bre8cqbo.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnfmczcu6u4u6bre8cqbo.jpeg" alt="The organizer gets a complete view of event progress and judging coverage." width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🕵️ Auditability
&lt;/h2&gt;

&lt;p&gt;Security isn't only about blocking something.&lt;/p&gt;

&lt;p&gt;It is also about being able to explain what happened.&lt;/p&gt;

&lt;p&gt;That's why JUDGELAYER includes an audit trail.&lt;/p&gt;

&lt;p&gt;Instead of showing a completely raw log, we wanted the events to be understandable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;18:42:09
JUDGE-07
Opened Project #042

18:44:31
JUDGE-07
Submitted Review

18:44:32
SYSTEM
Score recorded

18:44:33
ACCESS CONTROL
Unauthorized score access blocked
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a timeline of the judging process.&lt;/p&gt;

&lt;p&gt;After the event, organizers don't just see the final result.&lt;/p&gt;

&lt;p&gt;They can understand the important actions that happened along the way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzq5frau8oxj5si3rpzyk.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzq5frau8oxj5si3rpzyk.jpeg" alt="Every important judging action becomes part of the event history." width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ How We Built It
&lt;/h2&gt;

&lt;p&gt;We kept the architecture intentionally simple and self-hostable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;shadcn/ui&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;SQLAlchemy&lt;/li&gt;
&lt;li&gt;Pydantic&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Database
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;SQLite&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Deployment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Docker Compose&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to make the entire platform runnable locally without depending on external cloud services.&lt;/p&gt;

&lt;p&gt;That also made the project easier to test with seeded fixture data.&lt;/p&gt;

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

&lt;p&gt;At a high level, the system looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                ┌─────────────────┐
                │     FRONTEND    │
                │    React + TS   │
                └────────┬────────┘
                         │
                         ▼
                ┌─────────────────┐
                │      API        │
                │    FastAPI      │
                └────────┬────────┘
                         │
              ┌──────────┼──────────┐
              ▼          ▼          ▼
        AUTH / RBAC    JUDGING     AUDIT
              │          │          │
              └──────────┼──────────┘
                         ▼
                  ┌─────────────┐
                  │   SQLite    │
                  └─────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key design principle is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authorization happens before sensitive data is returned.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎨 Designing the Interface
&lt;/h2&gt;

&lt;p&gt;We also didn't want JUDGELAYER to look like a generic hackathon admin panel.&lt;/p&gt;

&lt;p&gt;So we created a visual concept around a &lt;strong&gt;Trust Command Center&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of filling the screen with dozens of cards, the interface uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Strong typography&lt;/li&gt;
&lt;li&gt;Thin borders&lt;/li&gt;
&lt;li&gt;Compact system metadata&lt;/li&gt;
&lt;li&gt;Status indicators&lt;/li&gt;
&lt;li&gt;Clean data tables&lt;/li&gt;
&lt;li&gt;Focused dashboards&lt;/li&gt;
&lt;li&gt;A central Trust Layer concept&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The UI should communicate:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security. Control. Transparency.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not just:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Here are some statistics."&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 Testing the Important Flows
&lt;/h2&gt;

&lt;p&gt;We focused our testing around the workflows that matter most.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Public Gallery
      ✓

Fixture Project Visible
      ✓

Closed Event Rejects Submission
      ✓

Judge Reads Own Score
      ✓

Judge Cannot Read Peer Score
      ✓

Participant Cannot Read Judge Score
      ✓

Organizer Can Export CSV
      ✓
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These aren't just visual features.&lt;/p&gt;

&lt;p&gt;They represent actual acceptance scenarios for the platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤖 AI Helped Us Build Faster — But the Product Had to Work
&lt;/h2&gt;

&lt;p&gt;Like many modern development projects, we used AI-assisted development during the build.&lt;/p&gt;

&lt;p&gt;But we didn't want the result to be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"AI generated a dashboard."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The real test was whether the application could actually perform the workflows we designed.&lt;/p&gt;

&lt;p&gt;So we treated AI as a development accelerator — helping with implementation, debugging, UI iteration and documentation — while the final product still had to be tested through the actual application.&lt;/p&gt;

&lt;p&gt;That's why our demo focuses on &lt;strong&gt;real screens and real interactions&lt;/strong&gt;, rather than only showing mockups.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚧 What We Learned
&lt;/h2&gt;

&lt;p&gt;The biggest lesson from building JUDGELAYER was that &lt;strong&gt;security is not a page you add at the end&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It affects the entire application.&lt;/p&gt;

&lt;p&gt;The moment you introduce multiple roles, you have to think about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What data can this user see?&lt;/li&gt;
&lt;li&gt;What actions can they perform?&lt;/li&gt;
&lt;li&gt;What happens if they directly call an API?&lt;/li&gt;
&lt;li&gt;What should be recorded?&lt;/li&gt;
&lt;li&gt;What should remain private?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thinking about these questions early changed the way we designed both the backend and the interface.&lt;/p&gt;

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

&lt;p&gt;JUDGELAYER could eventually grow beyond a DOGFOOD submission.&lt;/p&gt;

&lt;p&gt;Some directions we'd like to explore include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More advanced judge conflict management&lt;/li&gt;
&lt;li&gt;Better review analytics&lt;/li&gt;
&lt;li&gt;Custom judging criteria&lt;/li&gt;
&lt;li&gt;Multi-stage judging&lt;/li&gt;
&lt;li&gt;Review calibration&lt;/li&gt;
&lt;li&gt;More detailed audit exploration&lt;/li&gt;
&lt;li&gt;Organization-level event management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the foundation would remain the same:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Keep the judging process controlled, transparent and trustworthy.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🏁 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building JUDGELAYER made us look at hackathons from a slightly different perspective.&lt;/p&gt;

&lt;p&gt;We usually focus on:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who built the best project?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But before we can answer that question, we need to trust the process that produces the answer.&lt;/p&gt;

&lt;p&gt;That's what JUDGELAYER is about.&lt;/p&gt;

&lt;p&gt;Not just collecting submissions.&lt;/p&gt;

&lt;p&gt;Not just assigning judges.&lt;/p&gt;

&lt;p&gt;Not just calculating scores.&lt;/p&gt;

&lt;p&gt;But creating a system where every role has the right access, every important action can be traced, and the final results can be trusted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Submit.&lt;br&gt;
Assign.&lt;br&gt;
Review.&lt;br&gt;
Protect.&lt;br&gt;
Audit.&lt;br&gt;
Export.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's JUDGELAYER.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Run the event. Protect the judging. Trust the results.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔗 Project
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Tanya-garg10/JUDGELAYER-Self-Hosted-Hackathon-Submission-Judging-Platform.git" rel="noopener noreferrer"&gt;https://github.com/Tanya-garg10/JUDGELAYER-Self-Hosted-Hackathon-Submission-Judging-Platform.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://judgelayer-self-hosted-hackathon.onrender.com/" rel="noopener noreferrer"&gt;https://judgelayer-self-hosted-hackathon.onrender.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo Video:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1ThHje2t4vV-GU83m-5o8wF9sB3_hbNaF/view" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1ThHje2t4vV-GU83m-5o8wF9sB3_hbNaF/view&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're building hackathon infrastructure or working on systems where access control and auditability matter, we'd love to hear what you think.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>security</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>VaultLog: Building a Persistent Key-Value Store with Zero Dependencies</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Wed, 02 Sep 2026 11:38:34 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/vaultlog-building-a-persistent-key-value-store-with-zero-dependencies-j69</link>
      <guid>https://dev.to/tanya_garg_5315/vaultlog-building-a-persistent-key-value-store-with-zero-dependencies-j69</guid>
      <description>&lt;p&gt;What if you had to build a useful storage engine without installing a single third-party package?&lt;/p&gt;

&lt;p&gt;That was the challenge behind &lt;strong&gt;VaultLog&lt;/strong&gt;, my submission for the &lt;strong&gt;Zero Dependency 72-Hour Hackathon&lt;/strong&gt; by Hackathon Raptors.&lt;/p&gt;

&lt;p&gt;The rule was simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Use only the standard library. No third-party runtime dependencies.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;At first, this sounds like a restriction on what you can import.&lt;/p&gt;

&lt;p&gt;In practice, it changes how you think about software.&lt;/p&gt;

&lt;p&gt;Instead of asking &lt;em&gt;"Which package should I use?"&lt;/em&gt;, you start asking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What is actually happening underneath that package?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question became the foundation of VaultLog.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Idea
&lt;/h2&gt;

&lt;p&gt;VaultLog is a &lt;strong&gt;persistent embedded key-value store written entirely in Go 1.27&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It supports the fundamental operations you would expect from a small key-value database:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set a value&lt;/li&gt;
&lt;li&gt;Get a value&lt;/li&gt;
&lt;li&gt;Delete a value&lt;/li&gt;
&lt;li&gt;List stored keys&lt;/li&gt;
&lt;li&gt;Inspect storage statistics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important part is that VaultLog doesn't wrap an existing database engine.&lt;/p&gt;

&lt;p&gt;There is no SQLite driver.&lt;/p&gt;

&lt;p&gt;There is no BadgerDB.&lt;/p&gt;

&lt;p&gt;There is no BoltDB.&lt;/p&gt;

&lt;p&gt;There is no external storage library.&lt;/p&gt;

&lt;p&gt;The storage layer itself is implemented in the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Build a Storage Engine?
&lt;/h2&gt;

&lt;p&gt;For most applications, using an existing database is obviously the right decision.&lt;/p&gt;

&lt;p&gt;If I were building a normal production application, I wouldn't recommend writing a database from scratch just because I could.&lt;/p&gt;

&lt;p&gt;But the Zero Dependency Hackathon created a different engineering question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How much of a practical storage system can be built using only the language's standard library?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That made a key-value store a particularly interesting problem.&lt;/p&gt;

&lt;p&gt;A database package normally hides a lot of complexity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How records are persisted&lt;/li&gt;
&lt;li&gt;How data is indexed&lt;/li&gt;
&lt;li&gt;How writes are represented&lt;/li&gt;
&lt;li&gt;How deleted records are handled&lt;/li&gt;
&lt;li&gt;How data is recovered after restart&lt;/li&gt;
&lt;li&gt;How corrupted data is detected&lt;/li&gt;
&lt;li&gt;How concurrent access is synchronized&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;VaultLog makes those layers explicit.&lt;/p&gt;

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

&lt;p&gt;The core architecture is intentionally simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 VaultLog
                    │
          ┌─────────┴─────────┐
          │                   │
   In-Memory Index       Append-Only Log
          │                   │
          │                   ▼
          │             Persistent File
          │
          ▼
     Fast Lookups
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system has two important components:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Append-Only Log
&lt;/h3&gt;

&lt;p&gt;Every write is represented as a record and appended to the storage file.&lt;/p&gt;

&lt;p&gt;Instead of modifying existing records in place, VaultLog keeps adding new records.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SET user:name Tanya
SET user:role Developer
DELETE user:role
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The log becomes the historical sequence of operations.&lt;/p&gt;

&lt;p&gt;This approach makes persistence straightforward and gives us a natural source from which the database can reconstruct its state.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. In-Memory Index
&lt;/h3&gt;

&lt;p&gt;Scanning the entire file every time someone asks for a value would be inefficient.&lt;/p&gt;

&lt;p&gt;So VaultLog maintains an in-memory index.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Key                Record Location
-----------------------------------
user:name          → offset 0x120
user:role          → deleted
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The index allows VaultLog to locate the latest record associated with a key without scanning the entire log.&lt;/p&gt;

&lt;p&gt;This provides &lt;strong&gt;average O(1) hash-map lookup&lt;/strong&gt; for key access, while persistence remains on disk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing Data
&lt;/h2&gt;

&lt;p&gt;A &lt;code&gt;Set&lt;/code&gt; operation follows a simple process:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Set(key, value)
      │
      ▼
  Encode Record
      │
      ▼
Append Record to Log
      │
      ▼
Update In-Memory Index
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important design decision is that the persistent log is updated before the in-memory state becomes authoritative.&lt;/p&gt;

&lt;p&gt;This gives the log a durable representation of the operation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deleting Data
&lt;/h2&gt;

&lt;p&gt;Deletes are interesting in an append-only system.&lt;/p&gt;

&lt;p&gt;We don't physically remove the old record from the file.&lt;/p&gt;

&lt;p&gt;Instead, VaultLog writes a delete record.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SET username → Tanya
DELETE username
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;During recovery, the replay engine sees both operations and knows that the latest operation means the key no longer exists.&lt;/p&gt;

&lt;p&gt;This is one of the trade-offs of append-only storage:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deletes are cheap, but the log grows over time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A future version could introduce log compaction to remove obsolete records.&lt;/p&gt;

&lt;h2&gt;
  
  
  Restart Recovery
&lt;/h2&gt;

&lt;p&gt;Persistence isn't particularly useful if the database forgets its state after restarting.&lt;/p&gt;

&lt;p&gt;VaultLog therefore reconstructs its in-memory index from the storage log.&lt;/p&gt;

&lt;p&gt;The recovery process looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
  Persistent Log
      │
      ▼
Read Records Sequentially
      │
      ▼
   Validate Record
      │
      ▼
  Replay Operation
      │
      ▼
  Rebuild Index
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Suppose the log contains:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SET name Tanya
SET role Developer
DELETE role
SET city Meerut
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After replaying these records, the reconstructed state becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name → Tanya
city → Meerut
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The deleted key doesn't return because its latest operation was a deletion.&lt;/p&gt;

&lt;p&gt;This means the in-memory index doesn't need to be persisted separately.&lt;/p&gt;

&lt;p&gt;The log is enough to rebuild it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Integrity
&lt;/h2&gt;

&lt;p&gt;Persistent storage introduces another problem:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do we know that a record hasn't been corrupted?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;VaultLog uses the Go standard library's:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hash/crc32
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A checksum is stored alongside record data.&lt;/p&gt;

&lt;p&gt;During recovery, the checksum can be calculated again and compared with the stored value.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Record
  │
  ├── Header
  ├── Key
  ├── Value
  └── Checksum
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the calculated checksum doesn't match the stored checksum, the record cannot be trusted.&lt;/p&gt;

&lt;p&gt;This gives the storage layer a basic integrity mechanism without importing an external package.&lt;/p&gt;

&lt;h2&gt;
  
  
  Concurrency
&lt;/h2&gt;

&lt;p&gt;Another feature normally handled by database libraries is concurrent access.&lt;/p&gt;

&lt;p&gt;VaultLog uses Go's standard synchronization primitives from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sync
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The storage engine protects shared state so that multiple operations don't modify the in-memory index unsafely.&lt;/p&gt;

&lt;p&gt;Again, no external concurrency framework was necessary.&lt;/p&gt;

&lt;p&gt;Go already provides the building blocks.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Packages I Would Normally Use
&lt;/h2&gt;

&lt;p&gt;This is where the challenge became interesting.&lt;/p&gt;

&lt;p&gt;In a normal project, I might reach for external packages for several pieces of functionality.&lt;/p&gt;

&lt;p&gt;Instead, VaultLog uses standard-library alternatives.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Normally Used&lt;/th&gt;
&lt;th&gt;VaultLog Uses&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Database package&lt;/td&gt;
&lt;td&gt;Custom append-only storage engine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;testify&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;testing&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;logrus&lt;/code&gt; / &lt;code&gt;zap&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;log&lt;/code&gt; / &lt;code&gt;log/slog&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External binary encoding library&lt;/td&gt;
&lt;td&gt;&lt;code&gt;encoding/binary&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External hashing utility&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hash/crc32&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External filesystem utilities&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;os&lt;/code&gt; / &lt;code&gt;io&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External path utilities&lt;/td&gt;
&lt;td&gt;&lt;code&gt;path/filepath&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External CLI parser&lt;/td&gt;
&lt;td&gt;&lt;code&gt;flag&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The biggest replacement wasn't a small utility.&lt;/p&gt;

&lt;p&gt;It was the &lt;strong&gt;database layer itself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of importing a storage engine, VaultLog implements one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hardest Part
&lt;/h2&gt;

&lt;p&gt;The hardest part wasn't writing &lt;code&gt;Put()&lt;/code&gt; or &lt;code&gt;Get()&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Those operations are relatively straightforward.&lt;/p&gt;

&lt;p&gt;The difficult part was defining what should happen when things go wrong.&lt;/p&gt;

&lt;p&gt;Questions appeared everywhere:&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens after a restart?
&lt;/h3&gt;

&lt;p&gt;The index has to be reconstructed from the log.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens if a record is invalid?
&lt;/h3&gt;

&lt;p&gt;The recovery process needs to detect it instead of silently producing incorrect state.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens when a key is deleted?
&lt;/h3&gt;

&lt;p&gt;The delete needs to become part of the persistent history.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens with concurrent access?
&lt;/h3&gt;

&lt;p&gt;The in-memory index and file operations need appropriate synchronization.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens as the log gets larger?
&lt;/h3&gt;

&lt;p&gt;Append-only storage naturally creates a need for compaction.&lt;/p&gt;

&lt;p&gt;These are the kinds of problems that existing database libraries normally solve for you.&lt;/p&gt;

&lt;p&gt;Building VaultLog made those hidden engineering decisions visible.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;The biggest lesson from this hackathon wasn't simply that you can build software without dependencies.&lt;/p&gt;

&lt;p&gt;It was understanding &lt;strong&gt;why those dependencies exist in the first place&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A package like a database library isn't magic.&lt;/p&gt;

&lt;p&gt;Underneath the API are decisions about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Storage layout&lt;/li&gt;
&lt;li&gt;Indexing&lt;/li&gt;
&lt;li&gt;Serialization&lt;/li&gt;
&lt;li&gt;Durability&lt;/li&gt;
&lt;li&gt;Recovery&lt;/li&gt;
&lt;li&gt;Concurrency&lt;/li&gt;
&lt;li&gt;Integrity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you remove the package, those decisions become your responsibility.&lt;/p&gt;

&lt;p&gt;That is what made the Zero Dependency constraint valuable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What VaultLog Does Not Try to Be
&lt;/h2&gt;

&lt;p&gt;VaultLog is deliberately small.&lt;/p&gt;

&lt;p&gt;It is not intended to replace:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;SQLite&lt;/li&gt;
&lt;li&gt;Distributed databases&lt;/li&gt;
&lt;li&gt;Production-scale storage systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It currently has important limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The index is held in memory.&lt;/li&gt;
&lt;li&gt;The log grows until compaction is implemented.&lt;/li&gt;
&lt;li&gt;It is designed for embedded/single-process use.&lt;/li&gt;
&lt;li&gt;There is no distributed replication.&lt;/li&gt;
&lt;li&gt;There is no SQL query engine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't hidden.&lt;/p&gt;

&lt;p&gt;Understanding the limitations is part of understanding the design.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Zero Dependencies?
&lt;/h2&gt;

&lt;p&gt;Zero dependencies doesn't mean third-party packages are bad.&lt;/p&gt;

&lt;p&gt;Libraries save enormous amounts of engineering time and are essential for many real-world systems.&lt;/p&gt;

&lt;p&gt;The value of this challenge is different.&lt;/p&gt;

&lt;p&gt;It forces you to understand the layer underneath the abstraction.&lt;/p&gt;

&lt;p&gt;For VaultLog, that meant going from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Use a database package."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"How does a database actually store a record?"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then building that layer ourselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;VaultLog started with a constraint:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No third-party runtime dependencies.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It ended up becoming an exploration of how a small storage engine actually works.&lt;/p&gt;

&lt;p&gt;The result is a persistent key-value store with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Append-only storage&lt;/li&gt;
&lt;li&gt;In-memory indexing&lt;/li&gt;
&lt;li&gt;Restart recovery&lt;/li&gt;
&lt;li&gt;Integrity validation&lt;/li&gt;
&lt;li&gt;Concurrent access protection&lt;/li&gt;
&lt;li&gt;CLI operations&lt;/li&gt;
&lt;li&gt;Standard-library-only implementation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most interesting part wasn't removing dependencies.&lt;/p&gt;

&lt;p&gt;It was discovering &lt;strong&gt;what those dependencies were doing for us&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And that's probably the biggest takeaway from Zero Dependency:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't just use the abstraction. Understand the layer underneath it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Built With
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Go 1.27&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Standard library only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third-party runtime dependencies: 0.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; VaultLog&lt;br&gt;
&lt;strong&gt;Track:&lt;/strong&gt; Data &amp;amp; Storage&lt;/p&gt;

</description>
      <category>backend</category>
      <category>database</category>
      <category>go</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>ScholarAgent: Don’t Just Read Research. Reproduce It.</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Sun, 30 Aug 2026 18:28:49 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/scholaragent-dont-just-read-research-reproduce-it-942</link>
      <guid>https://dev.to/tanya_garg_5315/scholaragent-dont-just-read-research-reproduce-it-942</guid>
      <description>&lt;h2&gt;
  
  
  What if an AI agent could actually reproduce a research paper?
&lt;/h2&gt;

&lt;p&gt;Research papers are full of impressive results.&lt;/p&gt;

&lt;p&gt;94% accuracy.&lt;br&gt;
95% F1 score.&lt;br&gt;
30% improvement over previous methods.&lt;/p&gt;

&lt;p&gt;But there is a problem: &lt;strong&gt;reading a result is easy. Reproducing it is not.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reproducing research often means understanding dozens of pages, finding datasets, implementing algorithms, configuring dependencies, matching preprocessing steps, running experiments, debugging failures, and finally comparing your results with the original paper.&lt;/p&gt;

&lt;p&gt;We built &lt;strong&gt;ScholarAgent&lt;/strong&gt; to automate that journey.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don’t just read research. Reproduce it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  🔬 What is ScholarAgent?
&lt;/h2&gt;

&lt;p&gt;ScholarAgent is an autonomous AI research reproduction agent.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Give it a research paper, and let the agent attempt to reproduce its experiments.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of acting like a traditional PDF chatbot that answers questions about a paper, ScholarAgent actually takes action.&lt;/p&gt;

&lt;p&gt;Its workflow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Research Paper
      ↓
Methodology Extraction
      ↓
Research Subagents
      ↓
Experiment Planning
      ↓
Implementation Generation
      ↓
TrueForge Sandbox
      ↓
Experiment Execution
      ↓
Result Comparison
      ↓
Discrepancy Investigation
      ↓
  Human Approval
      ↓
Final Reproduction Report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🧠 Why we built it
&lt;/h2&gt;

&lt;p&gt;One of the biggest challenges in machine learning research is reproducibility.&lt;/p&gt;

&lt;p&gt;A paper may describe the model clearly but leave important details unclear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which preprocessing configuration was used?&lt;/li&gt;
&lt;li&gt;What random seed was selected?&lt;/li&gt;
&lt;li&gt;What exact training settings were used?&lt;/li&gt;
&lt;li&gt;Which dependency versions were used?&lt;/li&gt;
&lt;li&gt;How were edge cases handled?&lt;/li&gt;
&lt;li&gt;Why does the reported metric differ from an independently implemented version?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These small differences can produce significantly different results.&lt;/p&gt;

&lt;p&gt;We wanted to build something that doesn't simply say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Here is how you could reproduce this paper.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We wanted an agent that says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I attempted the reproduction. Here is what happened.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🤖 From Paper to Experiment
&lt;/h2&gt;

&lt;p&gt;When a paper is uploaded, ScholarAgent first extracts the experimental methodology.&lt;/p&gt;

&lt;p&gt;It identifies things such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Dataset
Model / Algorithm
Preprocessing
Hyperparameters
Training procedure
Evaluation metric
Reported results
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The main agent can then delegate parts of the analysis to specialized subagents.&lt;/p&gt;

&lt;h3&gt;
  
  
  Methodology Analyst
&lt;/h3&gt;

&lt;p&gt;Focuses on understanding the algorithm and experimental procedure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dataset Analyst
&lt;/h3&gt;

&lt;p&gt;Identifies dataset requirements, preprocessing, splits, and availability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Experiment Analyst
&lt;/h3&gt;

&lt;p&gt;Extracts hyperparameters, evaluation metrics, baselines, and reported results.&lt;/p&gt;

&lt;p&gt;These findings are combined into an executable reproduction plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 Why TrueForge Matters
&lt;/h2&gt;

&lt;p&gt;TrueForge is not just sitting underneath ScholarAgent as a backend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is where the agent actually acts.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The agent can use tools to work with project resources, generate experiment files, and execute the resulting research code inside a sandbox.&lt;/p&gt;

&lt;p&gt;The workflow becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent decides what to do
        ↓
     Tool call
        ↓
Generate / modify experiment
        ↓
   TrueForge sandbox
        ↓
    Execute code
        ↓
   Inspect output
        ↓
  Reason about result
        ↓
   Next action
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is fundamentally different from a normal chatbot.&lt;/p&gt;

&lt;p&gt;A chatbot might tell you:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Run &lt;code&gt;python train.py&lt;/code&gt;.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ScholarAgent can actually run the experiment in its controlled execution environment and inspect what happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 When the Experiment Fails
&lt;/h2&gt;

&lt;p&gt;This is where the agent becomes particularly useful.&lt;/p&gt;

&lt;p&gt;Suppose the paper reports:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Reported Accuracy: 94.2%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ScholarAgent runs the reproduction and gets:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Our Accuracy: 92.8%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of immediately declaring failure, the agent investigates.&lt;/p&gt;

&lt;p&gt;It may identify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;⚠ Random seed not specified
⚠ Preprocessing details incomplete
⚠ Training configuration differs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent can then formulate hypotheses and propose additional experiments.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I found two plausible causes for the accuracy gap. Running both configurations will require additional compute. Would you like me to continue?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And this is where &lt;strong&gt;human approval&lt;/strong&gt; becomes important.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⛔ Human in the Loop
&lt;/h2&gt;

&lt;p&gt;Autonomous does not mean uncontrolled.&lt;/p&gt;

&lt;p&gt;ScholarAgent is designed to stop before consequential or resource-intensive actions.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────────────┐
│       APPROVAL REQUIRED              │
│                                      │
│ Two alternative configurations       │
│ could explain the result gap.        │
│                                      │
│ Estimated additional computation:    │
│ 2 experiment runs                    │
│                                      │
│ [ Reject ]             [ Approve ]   │
└──────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The researcher remains in control.&lt;/p&gt;

&lt;p&gt;Once approved, the agent can continue the experiment.&lt;/p&gt;

&lt;p&gt;This creates a useful balance:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Autonomous investigation + controlled execution + human oversight.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📊 Reproduction Report
&lt;/h2&gt;

&lt;p&gt;At the end of the workflow, ScholarAgent generates a structured reproduction report.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Paper: Image Classification using XYZ

Reported Accuracy: 94.2%
Reproduced Accuracy: 92.8%

Difference: -1.4%

Reproduction Status: PARTIAL

Detected Differences:
• Dataset preprocessing differs
• Training epochs unavailable
• Random seed unspecified

Additional Experiments:
• Configuration A → 93.7%
• Configuration B → 94.0%

Conclusion:
The published result is approximately reproducible,
but the exact experimental configuration could not
be completely reconstructed from the paper.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is not to artificially produce a high score.&lt;/p&gt;

&lt;p&gt;The goal is to provide an &lt;strong&gt;honest, evidence-backed assessment&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ Architecture
&lt;/h2&gt;

&lt;p&gt;The project uses a modern agent-based architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 ┌───────────────────┐
                 │    React + Vite   │
                 │   ScholarAgent UI │
                 └─────────┬─────────┘
                           │
                           ▼
                 ┌───────────────────┐
                 │      FastAPI      │
                 │   Agent Backend   │
                 └─────────┬─────────┘
                           │
                           ▼
                 ┌───────────────────┐
                 │     TrueForge     │
                 │    Agent Runtime  │
                 └─────────┬─────────┘
                           │
             ┌─────────────┼─────────────┐
             ▼             ▼             ▼
       Methodology     Dataset       Experiment
        Analyst        Analyst         Analyst
             │             │             │
             └─────────────┼─────────────┘
                           ▼
                    ┌─────────────┐
                    │ MCP Tools   │
                    └──────┬──────┘
                           ▼
                    ┌─────────────┐
                    │  Sandbox    │
                    │ Experiments │
                    └──────┬──────┘
                           ▼
                    ┌─────────────┐
                    │   Result    │
                    │  Analyzer   │
                    └──────┬──────┘
                           ▼
                    Reproduction
                       Report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🛠️ Technology Stack
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Agent Infrastructure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;TrueForge&lt;/li&gt;
&lt;li&gt;Specialized research subagents&lt;/li&gt;
&lt;li&gt;MCP tools&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Experiment Layer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;TrueForge sandbox&lt;/li&gt;
&lt;li&gt;Python research environments&lt;/li&gt;
&lt;li&gt;Experiment logging&lt;/li&gt;
&lt;li&gt;Result comparison&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Development &amp;amp; Code Quality
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;Pull-request workflow&lt;/li&gt;
&lt;li&gt;Qodo Code Review&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔍 Qodo and Engineering Quality
&lt;/h2&gt;

&lt;p&gt;Building an autonomous agent means reliability matters.&lt;/p&gt;

&lt;p&gt;Generated code, sandbox execution, error handling, and tool orchestration can introduce subtle bugs.&lt;/p&gt;

&lt;p&gt;We therefore incorporated Qodo into our development workflow through GitHub pull requests.&lt;/p&gt;

&lt;p&gt;The workflow was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Feature Branch
      ↓
Pull Request
      ↓
Qodo Review
      ↓
Fix Valid Findings
      ↓
Follow-up Review
      ↓
Human Merge
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Qodo helped us identify issues and improve areas such as error handling, maintainability, and reliability.&lt;/p&gt;

&lt;p&gt;This was especially important because ScholarAgent isn't just displaying AI-generated text—it is generating and executing real experiment workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 What We Learned
&lt;/h2&gt;

&lt;p&gt;The biggest lesson from building ScholarAgent was that &lt;strong&gt;building an agent is very different from building a chatbot.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A chatbot mostly needs to produce a useful response.&lt;/p&gt;

&lt;p&gt;An agent needs to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Decide what action to take.&lt;/li&gt;
&lt;li&gt;Use the correct tool.&lt;/li&gt;
&lt;li&gt;Observe the result.&lt;/li&gt;
&lt;li&gt;Reason about what happened.&lt;/li&gt;
&lt;li&gt;Recover from failures.&lt;/li&gt;
&lt;li&gt;Decide what to do next.&lt;/li&gt;
&lt;li&gt;Know when it should stop.&lt;/li&gt;
&lt;li&gt;Ask a human when approval is required.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That feedback loop is where the real engineering challenge lies.&lt;/p&gt;

&lt;p&gt;We also learned that sandboxing is not an optional feature when an agent can generate and execute code.&lt;/p&gt;

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

&lt;p&gt;ScholarAgent is currently focused on making research reproduction easier and more transparent.&lt;/p&gt;

&lt;p&gt;Future versions could support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More research domains&lt;/li&gt;
&lt;li&gt;Larger experiment libraries&lt;/li&gt;
&lt;li&gt;Automated dataset discovery&lt;/li&gt;
&lt;li&gt;More sophisticated statistical comparison&lt;/li&gt;
&lt;li&gt;Reproduction across different hardware environments&lt;/li&gt;
&lt;li&gt;Experiment lineage and provenance tracking&lt;/li&gt;
&lt;li&gt;Reproduction benchmarks across multiple papers&lt;/li&gt;
&lt;li&gt;Collaborative researcher workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eventually, we imagine ScholarAgent becoming a kind of &lt;strong&gt;automated research lab assistant&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Not one that blindly trusts a paper.&lt;/p&gt;

&lt;p&gt;Not one that blindly trusts its own output.&lt;/p&gt;

&lt;p&gt;But one that &lt;strong&gt;tests, measures, investigates, and reports evidence.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Final Thought
&lt;/h2&gt;

&lt;p&gt;Research becomes more valuable when its results can be independently verified.&lt;/p&gt;

&lt;p&gt;AI can help us read papers faster.&lt;/p&gt;

&lt;p&gt;But we believe the next step is much more interesting:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI that can actually attempt the experiment.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's why we built ScholarAgent.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't just read research. Reproduce it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>🎙️ Building BillBhasha AI: A Voice-First Assistant for Bills, GST &amp; Everyday Commerce</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Sat, 15 Aug 2026 18:07:56 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/building-billbhasha-ai-a-voice-first-assistant-for-bills-gst-everyday-commerce-ag1</link>
      <guid>https://dev.to/tanya_garg_5315/building-billbhasha-ai-a-voice-first-assistant-for-bills-gst-everyday-commerce-ag1</guid>
      <description>&lt;p&gt;&lt;strong&gt;From a simple voice agent to a multilingual AI assistant with memory, tools, outbound calls, human escalation, analytics, and specialist handoffs.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;What if understanding a bill was as simple as asking a friend?&lt;/p&gt;

&lt;p&gt;For many users, invoices, GST charges, convenience fees, payment details, and other commerce-related information can be confusing. Reading through a long bill and figuring out what each charge means isn't always easy.&lt;/p&gt;

&lt;p&gt;That's the problem I wanted to address with &lt;strong&gt;BillBhasha AI&lt;/strong&gt; — a voice-first AI assistant that helps users understand bills, GST, invoices, fees, and payment-related information through natural conversations.&lt;/p&gt;

&lt;p&gt;I built BillBhasha AI as part of &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/strong&gt;, using &lt;strong&gt;Murf Falcon&lt;/strong&gt; for text-to-speech.&lt;/p&gt;

&lt;p&gt;The interesting part wasn't just making an AI that could talk.&lt;/p&gt;

&lt;p&gt;The real challenge was making it behave like a useful assistant.&lt;/p&gt;

&lt;p&gt;Over ten days, I gradually added personality, safety, memory, tools, outbound calling, human escalation, analytics, and specialist-agent handoffs.&lt;/p&gt;

&lt;h1&gt;
  
  
  💡 What is BillBhasha AI?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;BillBhasha AI&lt;/strong&gt; is a multilingual voice assistant designed for commerce-related queries.&lt;/p&gt;

&lt;p&gt;A user can simply speak to the agent and ask questions such as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Mere bill mein GST kitna laga hai?"&lt;/p&gt;

&lt;p&gt;"Convenience fee kya hoti hai?"&lt;/p&gt;

&lt;p&gt;"Can you explain this charge?"&lt;/p&gt;

&lt;p&gt;"Mujhe ye bill Hindi mein samjha do."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of forcing users to navigate complicated interfaces or read technical terminology, BillBhasha focuses on &lt;strong&gt;simple, conversational explanations&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It can also handle &lt;strong&gt;code-mixed conversations&lt;/strong&gt;, such as Hindi + English, which is common in everyday communication.&lt;/p&gt;

&lt;h1&gt;
  
  
  🎯 Why Voice?
&lt;/h1&gt;

&lt;p&gt;I chose a voice-first approach because not every user wants to type a detailed query or understand a complicated dashboard.&lt;/p&gt;

&lt;p&gt;Voice makes the interaction more natural:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User speaks → AI understands → AI processes → AI responds&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This becomes especially useful when the user wants a quick explanation rather than searching through documentation.&lt;/p&gt;

&lt;p&gt;For BillBhasha, the goal was not just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Build a chatbot that speaks."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Build a voice assistant that can actually help."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  🏗️ How BillBhasha AI Works
&lt;/h1&gt;

&lt;p&gt;At a high level, the system follows this flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    User
     ↓
Microphone / Phone Call
     ↓
Speech-to-Text
     ↓
LLM / Agent Logic
     ↓
 ┌───────────────┐
 │ Memory        │
 │ Tools         │
 │ Guardrails    │
 │ Escalation    │
 │ Specialist    │
 └───────────────┘
     ↓
Text-to-Speech
     ↓
  Murf Falcon
     ↓
   User
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent uses real-time voice infrastructure to receive and process speech, while the LLM handles reasoning and conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Murf Falcon&lt;/strong&gt; generates the agent's voice response.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fihna9p25h1wyxkd9ud2w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fihna9p25h1wyxkd9ud2w.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  🚀 What I Built During the Challenge
&lt;/h1&gt;

&lt;p&gt;The project evolved significantly throughout the challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. 🎙️ Voice Conversation
&lt;/h2&gt;

&lt;p&gt;The first milestone was getting BillBhasha to actually talk.&lt;/p&gt;

&lt;p&gt;The user could start a conversation, speak naturally, and receive a spoken response.&lt;/p&gt;

&lt;p&gt;This became the foundation for everything that followed.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. 🧠 Personality &amp;amp; Guardrails
&lt;/h2&gt;

&lt;p&gt;An AI assistant needs to know not only &lt;strong&gt;what it can do&lt;/strong&gt;, but also what it should &lt;strong&gt;not&lt;/strong&gt; do.&lt;/p&gt;

&lt;p&gt;I defined:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Its identity&lt;/li&gt;
&lt;li&gt;Its main objectives&lt;/li&gt;
&lt;li&gt;Its communication style&lt;/li&gt;
&lt;li&gt;Language behaviour&lt;/li&gt;
&lt;li&gt;Things it must refuse&lt;/li&gt;
&lt;li&gt;Situations requiring human help&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, BillBhasha should not invent a GST amount or confidently claim information that it doesn't have.&lt;/p&gt;

&lt;p&gt;It should explain uncertainty instead of hallucinating an answer.&lt;/p&gt;

&lt;h1&gt;
  
  
  🌐 3. Multilingual &amp;amp; Code-Mixed Conversations
&lt;/h1&gt;

&lt;p&gt;One important part of BillBhasha is language flexibility.&lt;/p&gt;

&lt;p&gt;A user might say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Mere bill mein GST kitna hai?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and then switch to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can you explain the convenience fee?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent should be able to understand this naturally and respond in an appropriate language/register.&lt;/p&gt;

&lt;p&gt;I also configured the agent to respect the correct native script when generating multilingual text.&lt;/p&gt;

&lt;h1&gt;
  
  
  🎨 4. Personalised Voice-Agent Frontend
&lt;/h1&gt;

&lt;p&gt;I didn't want the interface to look like a generic chatbot.&lt;/p&gt;

&lt;p&gt;The frontend was redesigned around the voice experience and clearly communicates different agent states:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ready → Connecting → Listening → Speaking → Call Ended&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This makes it immediately clear to the user whether the agent is waiting, listening, or responding.&lt;/p&gt;

&lt;p&gt;Microphone permission errors are also handled with clear feedback rather than leaving the user wondering why the call isn't starting.&lt;/p&gt;

&lt;h1&gt;
  
  
  🧠 5. Giving BillBhasha Memory
&lt;/h1&gt;

&lt;p&gt;One of the biggest improvements was adding memory.&lt;/p&gt;

&lt;p&gt;Initially:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Call ends → Everything is forgotten.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After adding persistent storage:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Call ends → User information can be stored → Next call can retrieve it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example, during one conversation a user may say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I prefer speaking in Hindi."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After receiving permission, that preference can be saved.&lt;/p&gt;

&lt;p&gt;During the next conversation, BillBhasha can recognise the returning user and continue more naturally.&lt;/p&gt;

&lt;p&gt;Importantly, &lt;strong&gt;the agent asks for permission before saving information&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This makes memory an intentional feature rather than silent data collection.&lt;/p&gt;

&lt;h1&gt;
  
  
  🔧 6. Adding Tools
&lt;/h1&gt;

&lt;p&gt;An AI model shouldn't have to guess information that can be obtained through a function or external data source.&lt;/p&gt;

&lt;p&gt;I added tool-based functionality so the agent can retrieve or calculate relevant commerce information when needed.&lt;/p&gt;

&lt;p&gt;The important design principle was:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If reliable data is available through a tool, use the tool instead of inventing an answer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I also added a failure path so that if a data source is unavailable, the agent can communicate the issue instead of silently failing or making up information.&lt;/p&gt;

&lt;h1&gt;
  
  
  📞 7. Outbound Voice Calls
&lt;/h1&gt;

&lt;p&gt;Next, I moved beyond browser-based conversations.&lt;/p&gt;

&lt;p&gt;BillBhasha was extended to support outbound calling.&lt;/p&gt;

&lt;p&gt;This changes the interaction completely.&lt;/p&gt;

&lt;p&gt;When an agent calls someone, the user didn't necessarily request the conversation.&lt;/p&gt;

&lt;p&gt;So the opening needs to be transparent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who is calling?&lt;/li&gt;
&lt;li&gt;Why are they calling?&lt;/li&gt;
&lt;li&gt;What can the user do if they don't want to continue?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This taught me that &lt;strong&gt;outbound voice agents need a different conversational design from inbound agents.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  👩‍💻 8. Human Escalation
&lt;/h1&gt;

&lt;p&gt;Another important lesson was that an AI agent shouldn't try to solve everything.&lt;/p&gt;

&lt;p&gt;For certain situations, BillBhasha can decide that a human should take over.&lt;/p&gt;

&lt;p&gt;The flow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Request
     ↓
AI Understands Problem
     ↓
Does AI Need Human Help?
     ↓
    Yes
     ↓
Ask User Permission
     ↓
Create Escalation Request
     ↓
Provide Reference ID
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent doesn't simply say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I'll contact a human."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It creates a structured escalation request containing only useful information.&lt;/p&gt;

&lt;p&gt;Privacy is also important here.&lt;/p&gt;

&lt;p&gt;The system should never send sensitive information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OTPs&lt;/li&gt;
&lt;li&gt;PINs&lt;/li&gt;
&lt;li&gt;Passwords&lt;/li&gt;
&lt;li&gt;Account numbers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;to the human escalation flow.&lt;/p&gt;

&lt;h1&gt;
  
  
  📊 9. Call Analytics Dashboard
&lt;/h1&gt;

&lt;p&gt;Once an agent starts handling multiple conversations, another question appears:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How well is it actually performing?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I added a call analytics dashboard.&lt;/p&gt;

&lt;p&gt;The dashboard tracks key metrics such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Total Calls&lt;/li&gt;
&lt;li&gt;Successful Calls&lt;/li&gt;
&lt;li&gt;Failed Calls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The data is based on actual calls rather than hardcoded numbers.&lt;/p&gt;

&lt;p&gt;I also redesigned the UI to make the dashboard more visually engaging and easier to understand.&lt;/p&gt;

&lt;p&gt;This helped turn BillBhasha from simply a voice demo into something closer to a complete voice-agent product.&lt;/p&gt;

&lt;h1&gt;
  
  
  🤝 10. Specialist Agent Handoff
&lt;/h1&gt;

&lt;p&gt;One of the final improvements was introducing a specialist agent.&lt;/p&gt;

&lt;p&gt;The main agent doesn't need to be an expert at everything.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 ↓
BillBhasha AI
 ↓
Does this require specialist help?
 ↓
Yes
 ↓
Specialist Agent
 ↓
Continues the conversation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The main agent informs the user before transferring the conversation.&lt;/p&gt;

&lt;p&gt;The specialist then receives the context and continues from there instead of asking the user to repeat everything.&lt;/p&gt;

&lt;p&gt;This made the architecture more modular and showed me how multiple specialised agents can work together.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu7z6l087f9snbxawrqes.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu7z6l087f9snbxawrqes.png" alt=" " width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  🧩 The Technology Behind It
&lt;/h1&gt;

&lt;p&gt;The project combines several technologies and services to create the complete experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core components
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; HTML / CSS / JavaScript and voice-agent UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice orchestration:&lt;/strong&gt; LiveKit&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM:&lt;/strong&gt; Google Gemini&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speech-to-Text:&lt;/strong&gt; Deepgram&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text-to-Speech:&lt;/strong&gt; Murf Falcon&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; SQLite / persistent storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telephony:&lt;/strong&gt; Twilio / outbound calling setup&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; Function-based integrations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytics:&lt;/strong&gt; Call data + dashboard&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specialist agents:&lt;/strong&gt; Agent handoff architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most important thing I learned is that a voice agent isn't a single model.&lt;/p&gt;

&lt;p&gt;It's a &lt;strong&gt;system of multiple components working together in real time.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  ⚙️ Challenges I Faced
&lt;/h1&gt;

&lt;p&gt;Building the project wasn't always straightforward.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Multilingual voice behaviour
&lt;/h2&gt;

&lt;p&gt;One challenge was getting the agent to understand Hindi/code-mixed speech while maintaining the appropriate language and voice behaviour.&lt;/p&gt;

&lt;p&gt;This required careful configuration of speech recognition, language handling, and prompting.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Memory shouldn't become automatic data collection
&lt;/h2&gt;

&lt;p&gt;Adding memory sounds simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Just save the user's information."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But that isn't enough.&lt;/p&gt;

&lt;p&gt;The agent needs to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Would you like me to remember this?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Only after confirmation should the information be saved.&lt;/p&gt;

&lt;p&gt;This changed the way I thought about AI memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Voice responses need different prompting
&lt;/h2&gt;

&lt;p&gt;A response that looks good on a screen doesn't always sound good when spoken.&lt;/p&gt;

&lt;p&gt;Long explanations, complicated formatting, and overly technical sentences can feel unnatural in a voice conversation.&lt;/p&gt;

&lt;p&gt;I learned to keep responses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Short&lt;/li&gt;
&lt;li&gt;Clear&lt;/li&gt;
&lt;li&gt;Conversational&lt;/li&gt;
&lt;li&gt;Easy to understand when heard rather than read&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. APIs can fail
&lt;/h2&gt;

&lt;p&gt;Real-world voice agents depend on multiple external services.&lt;/p&gt;

&lt;p&gt;A tool may fail.&lt;/p&gt;

&lt;p&gt;An API may timeout.&lt;/p&gt;

&lt;p&gt;A call may disconnect.&lt;/p&gt;

&lt;p&gt;A microphone permission may be denied.&lt;/p&gt;

&lt;p&gt;The agent therefore needs a &lt;strong&gt;failure path&lt;/strong&gt;, not just a success path.&lt;/p&gt;

&lt;p&gt;That was one of the biggest lessons from this challenge.&lt;/p&gt;

&lt;h1&gt;
  
  
  🔐 Privacy &amp;amp; Safety
&lt;/h1&gt;

&lt;p&gt;Because BillBhasha deals with commerce and payment-related conversations, privacy cannot be an afterthought.&lt;/p&gt;

&lt;p&gt;The agent is designed not to request or expose sensitive information such as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OTP, PIN, passwords, or account numbers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Memory also requires user consent.&lt;/p&gt;

&lt;p&gt;Similarly, human escalation requires permission before sharing information with another person.&lt;/p&gt;

&lt;p&gt;The goal is to make the assistant useful &lt;strong&gt;without making it careless.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  📂 Project Repository
&lt;/h1&gt;

&lt;p&gt;The complete project is available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BillBhasha AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Tanya-garg10/BillBhasha-AI" rel="noopener noreferrer"&gt;https://github.com/Tanya-garg10/BillBhasha-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the implementation and setup required to explore the project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; API keys and other secrets should always be stored in environment variables and should never be committed to GitHub.&lt;/p&gt;

&lt;h1&gt;
  
  
  🛠️ How to Start Building Your Own Voice Agent
&lt;/h1&gt;

&lt;p&gt;If you're starting your own voice-agent project, think about it as these building blocks:&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1 — Speech-to-Text
&lt;/h3&gt;

&lt;p&gt;Convert the user's voice into text.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2 — LLM
&lt;/h3&gt;

&lt;p&gt;Send the text to your language model and decide what the agent should do.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3 — Tools &amp;amp; Memory
&lt;/h3&gt;

&lt;p&gt;Give the agent access to reliable data and persistent information when necessary.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4 — Text-to-Speech
&lt;/h3&gt;

&lt;p&gt;Convert the response back into natural speech.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5 — Real-Time Transport
&lt;/h3&gt;

&lt;p&gt;Connect everything through a real-time voice layer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6 — Guardrails
&lt;/h3&gt;

&lt;p&gt;Define what the agent can and cannot do.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7 — Test Failure Cases
&lt;/h3&gt;

&lt;p&gt;Don't test only:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hello, how are you?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Also test:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API failures&lt;/li&gt;
&lt;li&gt;Silence&lt;/li&gt;
&lt;li&gt;Wrong requests&lt;/li&gt;
&lt;li&gt;Language switching&lt;/li&gt;
&lt;li&gt;Permission denial&lt;/li&gt;
&lt;li&gt;Human escalation&lt;/li&gt;
&lt;li&gt;Call disconnects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's where the real engineering begins.&lt;/p&gt;

&lt;h1&gt;
  
  
  🌱 What I Would Build Next
&lt;/h1&gt;

&lt;p&gt;BillBhasha is still a work in progress.&lt;/p&gt;

&lt;p&gt;Some improvements I'd like to explore next are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better bill/invoice document understanding&lt;/li&gt;
&lt;li&gt;OCR-based bill analysis&lt;/li&gt;
&lt;li&gt;More Indian language support&lt;/li&gt;
&lt;li&gt;Better GST explanation workflows&lt;/li&gt;
&lt;li&gt;More advanced analytics&lt;/li&gt;
&lt;li&gt;Improved specialist-agent routing&lt;/li&gt;
&lt;li&gt;Stronger privacy controls&lt;/li&gt;
&lt;li&gt;Real-world user testing&lt;/li&gt;
&lt;li&gt;Better accessibility for first-time technology users&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The long-term goal would be to make BillBhasha useful beyond a hackathon or challenge demo.&lt;/p&gt;

&lt;h1&gt;
  
  
  🎓 What I Learned
&lt;/h1&gt;

&lt;p&gt;The biggest takeaway from these 10 days is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Building a voice agent is much more than connecting an LLM to a microphone.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A useful voice agent needs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice + Intelligence + Memory + Tools + Safety + Human Support + Observability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The challenge pushed me to think about the complete user experience rather than just the AI model.&lt;/p&gt;

&lt;p&gt;I learned how small things — such as a clear greeting, a permission request, a fallback message, or a handoff explanation — can make a huge difference in how trustworthy an AI system feels.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5caiqhz6e44ummcl2gaa.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5caiqhz6e44ummcl2gaa.jpeg" alt=" " width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fas8i53m97ylm75qvikeh.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fas8i53m97ylm75qvikeh.jpeg" alt=" " width="799" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  🚀 Final Thoughts
&lt;/h1&gt;

&lt;p&gt;BillBhasha AI started as a simple idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What if users could simply ask an AI to explain their bills?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Over the course of &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/strong&gt;, that idea evolved into a much more complete voice-agent system.&lt;/p&gt;

&lt;p&gt;It can now:&lt;/p&gt;

&lt;p&gt;✅ Hold natural voice conversations&lt;br&gt;
✅ Handle code-mixed language&lt;br&gt;
✅ Follow safety guardrails&lt;br&gt;
✅ Remember users with permission&lt;br&gt;
✅ Use tools for useful information&lt;br&gt;
✅ Make outbound calls&lt;br&gt;
✅ Escalate problems to humans&lt;br&gt;
✅ Track call outcomes&lt;br&gt;
✅ Provide analytics&lt;br&gt;
✅ Hand conversations to specialist agents&lt;/p&gt;

&lt;p&gt;And throughout the journey, &lt;strong&gt;Murf Falcon&lt;/strong&gt; powered the voice experience.&lt;/p&gt;

&lt;p&gt;This challenge wasn't just about building an AI that can speak.&lt;/p&gt;

&lt;p&gt;It was about learning how to build an AI system that can &lt;strong&gt;listen, understand, remember, act, and know when it shouldn't act alone.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10 Days. One voice agent. A lot of learning. 🎙️🚀&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; BillBhasha AI&lt;br&gt;
&lt;strong&gt;Track:&lt;/strong&gt; Local Commerce&lt;br&gt;
&lt;strong&gt;Challenge:&lt;/strong&gt; 10 Days of Voice Agents — VoiceForBharat Edition&lt;br&gt;
&lt;strong&gt;TTS:&lt;/strong&gt; Murf Falcon&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
    </item>
    <item>
      <title>From Python to Rust: Rewriting a Real Open Source Project for Port Mortem 2026</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Fri, 07 Aug 2026 11:31:14 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/from-python-to-rust-rewriting-a-real-open-source-project-for-port-mortem-2026-3g64</link>
      <guid>https://dev.to/tanya_garg_5315/from-python-to-rust-rewriting-a-real-open-source-project-for-port-mortem-2026-3g64</guid>
      <description>&lt;p&gt;Modern AI can translate code between programming languages in seconds.&lt;/p&gt;

&lt;p&gt;But one question still remains:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does the translated program actually behave like the original?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question is exactly what &lt;strong&gt;Code Resurrection 2026 – Port Mortem&lt;/strong&gt; challenged participants to answer.&lt;/p&gt;

&lt;p&gt;Instead of building a new application, the challenge was to take an existing open-source project and rewrite it in another language while preserving its behavior.&lt;/p&gt;

&lt;p&gt;I participated in &lt;strong&gt;Track D (Python → Rust)&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Chose Rust
&lt;/h2&gt;

&lt;p&gt;Rust has become one of the most exciting systems programming languages because it offers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory safety without a garbage collector&lt;/li&gt;
&lt;li&gt;Excellent performance&lt;/li&gt;
&lt;li&gt;Strong compile-time guarantees&lt;/li&gt;
&lt;li&gt;Modern tooling through Cargo&lt;/li&gt;
&lt;li&gt;Reliable error handling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than creating a simple syntax translation, I wanted to understand how Python concepts map to idiomatic Rust.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Goal
&lt;/h2&gt;

&lt;p&gt;The objective wasn't simply to make the project compile.&lt;/p&gt;

&lt;p&gt;The real objective was to preserve the original behavior while redesigning the implementation using Rust best practices.&lt;/p&gt;

&lt;p&gt;That meant focusing on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Functional equivalence&lt;/li&gt;
&lt;li&gt;Clean project architecture&lt;/li&gt;
&lt;li&gt;Better memory safety&lt;/li&gt;
&lt;li&gt;Idiomatic Rust patterns&lt;/li&gt;
&lt;li&gt;Maintainability&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Repository Structure
&lt;/h2&gt;

&lt;p&gt;The project follows the structure recommended by the hackathon.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;README.md
DECISIONS.md
Dockerfile
Cargo.toml
src/
tests/
fuzz/
bench/
.port-mortem.toml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbiyho705wr7oz40siw9h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbiyho705wr7oz40siw9h.png" alt=" " width="799" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This organization makes the project easier to evaluate, build, and extend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migration Decisions
&lt;/h2&gt;

&lt;p&gt;Several design choices changed during the migration.&lt;/p&gt;

&lt;p&gt;Instead of Python's exception-based workflow, I adopted Rust's &lt;code&gt;Result&amp;lt;T, E&amp;gt;&lt;/code&gt; error handling.&lt;/p&gt;

&lt;p&gt;Dynamic Python collections were replaced with Rust's strongly typed collections.&lt;/p&gt;

&lt;p&gt;The application was reorganized into Cargo modules to improve maintainability.&lt;/p&gt;

&lt;p&gt;Every important design decision was documented in &lt;strong&gt;DECISIONS.md&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Biggest Challenge
&lt;/h2&gt;

&lt;p&gt;The hardest part wasn't writing Rust.&lt;/p&gt;

&lt;p&gt;It was making sure the Rust implementation behaved exactly like the original Python project.&lt;/p&gt;

&lt;p&gt;Language features differ significantly.&lt;/p&gt;

&lt;p&gt;Error handling, ownership, borrowing, collections, and type safety required a completely different mindset.&lt;/p&gt;

&lt;p&gt;Writing equivalent logic often meant redesigning the implementation instead of translating it line by line.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;This project taught me that software migration is much more than language translation.&lt;/p&gt;

&lt;p&gt;A good migration should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preserve behavior&lt;/li&gt;
&lt;li&gt;Improve maintainability&lt;/li&gt;
&lt;li&gt;Follow target-language best practices&lt;/li&gt;
&lt;li&gt;Be easy to build and test&lt;/li&gt;
&lt;li&gt;Document architectural decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rust encouraged writing code that is explicit, predictable, and easier to reason about.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1g6eds7yub9jw31pkniw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1g6eds7yub9jw31pkniw.png" alt=" " width="800" height="605"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftrjlo72pzxtf7314hhc5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftrjlo72pzxtf7314hhc5.png" alt=" " width="800" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Port Mortem was one of the most unique hackathons I've participated in.&lt;/p&gt;

&lt;p&gt;Instead of rewarding quick prototypes, it encouraged participants to think like software engineers—focusing on correctness, maintainability, and engineering discipline.&lt;/p&gt;

&lt;p&gt;Whether or not this project wins, it gave me a much deeper appreciation for systems programming, open-source software, and Rust's design philosophy.&lt;/p&gt;

&lt;p&gt;Huge thanks to &lt;strong&gt;Hackathon Raptors&lt;/strong&gt; for organizing such an interesting event.&lt;/p&gt;

&lt;p&gt;If you're interested in systems programming or language migration, I'd definitely recommend trying a project like this yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Tanya-garg10/croniter-.git" rel="noopener noreferrer"&gt;https://github.com/Tanya-garg10/croniter-.git&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building SentinelAI: How I Used SigNoz &amp; OpenTelemetry to Make AI Agents Observable</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Sun, 26 Jul 2026 18:13:50 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/building-sentinelai-how-i-used-signoz-opentelemetry-to-make-ai-agents-observable-2lh0</link>
      <guid>https://dev.to/tanya_garg_5315/building-sentinelai-how-i-used-signoz-opentelemetry-to-make-ai-agents-observable-2lh0</guid>
      <description>&lt;p&gt;&lt;strong&gt;Building SentinelAI: How I Used SigNoz &amp;amp; OpenTelemetry to Make AI Agents Observable&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;From black-box AI workflows to real-time traces, logs, metrics, security monitoring, and AI-powered root cause analysis.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Hook
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;AI agents are becoming increasingly capable—they can reason, call tools, retrieve knowledge, and automate complex workflows. But when an agent fails in production, the biggest challenge isn't fixing the bug—it's understanding &lt;em&gt;why&lt;/em&gt; it happened.&lt;/p&gt;

&lt;p&gt;During the &lt;strong&gt;Agents of SigNoz Hackathon&lt;/strong&gt; by WeMakeDevs, I wanted to solve exactly this problem. Instead of building another AI chatbot, I built &lt;strong&gt;SentinelAI&lt;/strong&gt;, an observability platform that gives developers complete visibility into AI agents using &lt;strong&gt;SigNoz&lt;/strong&gt; and &lt;strong&gt;OpenTelemetry&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;While experimenting with AI applications, I realized that traditional logging wasn't enough.&lt;/p&gt;

&lt;p&gt;Some common questions remained unanswered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which tool call caused the failure?&lt;/li&gt;
&lt;li&gt;Why did latency suddenly increase?&lt;/li&gt;
&lt;li&gt;Which prompt consumed the most tokens?&lt;/li&gt;
&lt;li&gt;Why did the agent hallucinate?&lt;/li&gt;
&lt;li&gt;Which API became the bottleneck?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without proper observability, AI systems become difficult to debug as they grow in complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why SigNoz?
&lt;/h2&gt;

&lt;p&gt;I wanted an observability platform that could collect multiple signals in one place.&lt;/p&gt;

&lt;p&gt;SigNoz stood out because it supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenTelemetry-native instrumentation&lt;/li&gt;
&lt;li&gt;Distributed tracing&lt;/li&gt;
&lt;li&gt;Metrics&lt;/li&gt;
&lt;li&gt;Logs&lt;/li&gt;
&lt;li&gt;Dashboards&lt;/li&gt;
&lt;li&gt;Alerts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of jumping between different monitoring tools, I could inspect an entire AI workflow from a single interface.&lt;/p&gt;

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

&lt;p&gt;Include architecture diagram here.&lt;/p&gt;

&lt;p&gt;Explain:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       User
        ↓
  Frontend (React)
        ↓
   FastAPI Backend
        ↓
  OpenTelemetry SDK
        ↓
    SigNoz Cloud
        ↓
     Traces
    Metrics
      Logs
     Alerts
        ↓
SentinelAI Dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Building SentinelAI
&lt;/h2&gt;

&lt;p&gt;Instead of only monitoring servers, I wanted to monitor AI reasoning itself.&lt;/p&gt;

&lt;p&gt;The application contains multiple modules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dashboard
&lt;/h2&gt;

&lt;p&gt;The dashboard provides a quick overview of the system.&lt;/p&gt;

&lt;p&gt;It displays:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agent Health Score&lt;/li&gt;
&lt;li&gt;Active Requests&lt;/li&gt;
&lt;li&gt;Average Latency&lt;/li&gt;
&lt;li&gt;Token Usage&lt;/li&gt;
&lt;li&gt;Estimated Cost&lt;/li&gt;
&lt;li&gt;Error Rate&lt;/li&gt;
&lt;li&gt;Live Alerts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The health score combines multiple signals into a single indicator, making it easier to identify unhealthy AI agents.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd4nvfgvmlllepbr7pguc.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd4nvfgvmlllepbr7pguc.jpeg" alt=" " width="799" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Live Agent Monitoring
&lt;/h2&gt;

&lt;p&gt;Every AI request is tracked individually.&lt;/p&gt;

&lt;p&gt;For each request I record:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt&lt;/li&gt;
&lt;li&gt;Response&lt;/li&gt;
&lt;li&gt;Execution time&lt;/li&gt;
&lt;li&gt;Token usage&lt;/li&gt;
&lt;li&gt;Model used&lt;/li&gt;
&lt;li&gt;Tool calls&lt;/li&gt;
&lt;li&gt;Status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of manually searching logs, developers can inspect an individual execution from start to finish.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc9djo69bgg2rklc6nclr.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc9djo69bgg2rklc6nclr.jpeg" alt=" " width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  OpenTelemetry Integration
&lt;/h2&gt;

&lt;p&gt;One of the most interesting parts of this project was instrumenting AI requests.&lt;/p&gt;

&lt;p&gt;Every request generates telemetry that can later be visualized inside SigNoz.&lt;/p&gt;

&lt;p&gt;This made it possible to understand where time was being spent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt processing&lt;/li&gt;
&lt;li&gt;Retrieval&lt;/li&gt;
&lt;li&gt;LLM generation&lt;/li&gt;
&lt;li&gt;External API calls&lt;/li&gt;
&lt;li&gt;Database operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1q0k8uwwio2rju2ziuza.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1q0k8uwwio2rju2ziuza.jpeg" alt=" " width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Using SigNoz
&lt;/h2&gt;

&lt;p&gt;SigNoz became the observability backbone of SentinelAI.&lt;/p&gt;

&lt;p&gt;I used it for:&lt;/p&gt;

&lt;h3&gt;
  
  
  Distributed Traces
&lt;/h3&gt;

&lt;p&gt;To visualize every stage of an AI request.&lt;/p&gt;

&lt;h3&gt;
  
  
  Metrics
&lt;/h3&gt;

&lt;p&gt;To monitor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Request latency&lt;/li&gt;
&lt;li&gt;Error rate&lt;/li&gt;
&lt;li&gt;Token consumption&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Logs
&lt;/h3&gt;

&lt;p&gt;To inspect failures and debug issues.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dashboards
&lt;/h3&gt;

&lt;p&gt;To create an overview of system performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Alerts
&lt;/h3&gt;

&lt;p&gt;To identify abnormal latency and failures quickly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjdt9moa9vu4qywahxaa5.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjdt9moa9vu4qywahxaa5.jpeg" alt=" " width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Security Monitoring
&lt;/h1&gt;

&lt;p&gt;One feature I particularly enjoyed building was the Security Monitor.&lt;/p&gt;

&lt;p&gt;It detects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt Injection attempts&lt;/li&gt;
&lt;li&gt;Jailbreak prompts&lt;/li&gt;
&lt;li&gt;Suspicious tool calls&lt;/li&gt;
&lt;li&gt;High-risk requests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each request receives a Security Risk Score, helping developers prioritize investigation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmesv45gdgbwrl1dp8v69.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmesv45gdgbwrl1dp8v69.jpeg" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Root Cause Analysis
&lt;/h2&gt;

&lt;p&gt;Raw logs can still be difficult to understand.&lt;/p&gt;

&lt;p&gt;So I added an AI-powered analysis engine.&lt;/p&gt;

&lt;p&gt;Whenever an anomaly occurs, SentinelAI automatically generates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Incident summary&lt;/li&gt;
&lt;li&gt;Root cause&lt;/li&gt;
&lt;li&gt;Severity&lt;/li&gt;
&lt;li&gt;Suggested resolution&lt;/li&gt;
&lt;li&gt;Recommended next steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This significantly reduces debugging time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9pj9u8ltx5xkyjudstra.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9pj9u8ltx5xkyjudstra.jpeg" alt=" " width="799" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Analytics &amp;amp; Audit Export
&lt;/h1&gt;

&lt;p&gt;To make the platform useful beyond debugging, I also implemented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Latency analytics&lt;/li&gt;
&lt;li&gt;Token usage trends&lt;/li&gt;
&lt;li&gt;Cost estimation&lt;/li&gt;
&lt;li&gt;JSON export&lt;/li&gt;
&lt;li&gt;CSV export&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These exports make it easier to share telemetry with engineering teams and support compliance workflows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1651nut3ivfpqglbntcb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1651nut3ivfpqglbntcb.jpeg" alt=" " width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges I Faced
&lt;/h2&gt;

&lt;p&gt;The biggest challenge wasn't building the UI.&lt;/p&gt;

&lt;p&gt;The real challenge was understanding how observability works.&lt;/p&gt;

&lt;p&gt;Initially, I assumed logs alone would be enough.&lt;/p&gt;

&lt;p&gt;While integrating SigNoz, I realized that combining traces, metrics, and logs provides much richer context than relying on any single signal.&lt;/p&gt;

&lt;p&gt;Another challenge was organizing AI telemetry in a way that remained easy to understand for developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;This hackathon completely changed how I think about production AI.&lt;/p&gt;

&lt;p&gt;Some key takeaways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Observability is as important as the AI model itself.&lt;/li&gt;
&lt;li&gt;Distributed tracing makes debugging much easier.&lt;/li&gt;
&lt;li&gt;Metrics help identify trends before users notice problems.&lt;/li&gt;
&lt;li&gt;AI applications require security monitoring in addition to performance monitoring.&lt;/li&gt;
&lt;li&gt;OpenTelemetry provides a flexible standard that works across different services.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;If I continue working on SentinelAI, I would like to add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-agent workflow visualization&lt;/li&gt;
&lt;li&gt;Kubernetes monitoring&lt;/li&gt;
&lt;li&gt;Real-time anomaly detection&lt;/li&gt;
&lt;li&gt;Predictive incident alerts&lt;/li&gt;
&lt;li&gt;Slack &amp;amp; Microsoft Teams notifications&lt;/li&gt;
&lt;li&gt;Multi-tenant dashboards&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Building SentinelAI taught me that successful AI applications need more than accurate responses—they need visibility, reliability, and security.&lt;/p&gt;

&lt;p&gt;By combining &lt;strong&gt;OpenTelemetry&lt;/strong&gt; with &lt;strong&gt;SigNoz&lt;/strong&gt;, I was able to build a platform that helps developers understand every stage of an AI agent's execution instead of treating it as a black box.&lt;/p&gt;

&lt;p&gt;This hackathon was a great opportunity to explore modern observability practices while building something practical for real-world AI systems.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>observability</category>
      <category>opentelemetry</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Beyond Logs: Building Reliable AI Agents with SigNoz LLM Observability</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Fri, 17 Jul 2026 15:56:38 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/beyond-logs-building-reliable-ai-agents-with-signoz-llm-observability-57k1</link>
      <guid>https://dev.to/tanya_garg_5315/beyond-logs-building-reliable-ai-agents-with-signoz-llm-observability-57k1</guid>
      <description>&lt;p&gt;&lt;em&gt;How exploring SigNoz changed the way I think about monitoring AI applications.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;While preparing for the &lt;strong&gt;Agents of SigNoz Hackathon&lt;/strong&gt;, I wanted to do more than just register and wait for the event to begin. Since the organizers encouraged participants to explore SigNoz before the hackathon, I decided to spend some time understanding what the platform actually offers and why observability has become such an important topic for modern AI applications.&lt;/p&gt;

&lt;p&gt;Before this, my understanding of monitoring was fairly basic. I associated it with checking CPU usage, memory consumption, application logs, or server uptime. Those metrics are useful, but as I started learning more about AI systems, I realized they don't explain what is happening inside an AI workflow.&lt;/p&gt;

&lt;p&gt;Think about an AI assistant that uses a Large Language Model (LLM). A single user request doesn't just go to the model and return a response. It may pass through authentication, a vector database, prompt construction, multiple API calls, external tools, memory retrieval, and finally the LLM before generating an answer. If something goes wrong in between, traditional monitoring often isn't enough to identify the exact cause.&lt;/p&gt;

&lt;p&gt;This is where I discovered the concept of &lt;strong&gt;AI Observability&lt;/strong&gt;, and that's what led me to SigNoz.&lt;/p&gt;

&lt;p&gt;As I explored the platform, one thing immediately stood out—it isn't just another monitoring dashboard. SigNoz brings together &lt;strong&gt;logs, metrics, traces, dashboards, alerts, and AI observability&lt;/strong&gt; into a single platform built on &lt;strong&gt;OpenTelemetry&lt;/strong&gt;, making it much easier to understand what is happening inside an application.&lt;/p&gt;

&lt;p&gt;In this blog, I'll share what I learned while exploring SigNoz, the features that impressed me the most, and why I believe observability is becoming an essential part of building reliable AI applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Traditional Monitoring Isn't Enough Anymore
&lt;/h2&gt;

&lt;p&gt;Most developers, including me, usually begin debugging by checking logs or looking at CPU and memory graphs. That approach works reasonably well for traditional applications, but AI systems introduce an entirely different level of complexity.&lt;/p&gt;

&lt;p&gt;Imagine asking an AI assistant:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Summarize yesterday's meeting and create a follow-up email."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Behind the scenes, several operations happen almost instantly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The request is authenticated.&lt;/li&gt;
&lt;li&gt;Previous conversation history is retrieved.&lt;/li&gt;
&lt;li&gt;Relevant documents are fetched from a vector database.&lt;/li&gt;
&lt;li&gt;A prompt is generated.&lt;/li&gt;
&lt;li&gt;The LLM processes the request.&lt;/li&gt;
&lt;li&gt;External tools may be called.&lt;/li&gt;
&lt;li&gt;The final response is formatted and returned.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the response suddenly takes 12 seconds instead of 2, simply checking application logs doesn't immediately reveal the problem.&lt;/p&gt;

&lt;p&gt;During my exploration of SigNoz, this became much clearer. Instead of showing only the final response time, observability helps break an entire request into smaller steps, making it easier to understand &lt;strong&gt;where&lt;/strong&gt; time is being spent and &lt;strong&gt;which component&lt;/strong&gt; is responsible for delays.&lt;/p&gt;

&lt;p&gt;That shift in perspective was probably the biggest takeaway for me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding AI Observability
&lt;/h2&gt;

&lt;p&gt;Before exploring SigNoz, I had heard the term &lt;em&gt;observability&lt;/em&gt; many times but never really understood how different it was from monitoring.&lt;/p&gt;

&lt;p&gt;The easiest way I can explain it now is this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitoring tells you that something is wrong. Observability helps you understand why it went wrong.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For AI applications, that difference is extremely important.&lt;/p&gt;

&lt;p&gt;Instead of tracking only infrastructure metrics, AI observability allows developers to understand what's happening throughout the complete lifecycle of an AI request.&lt;/p&gt;

&lt;p&gt;Some examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model response latency&lt;/li&gt;
&lt;li&gt;Prompt execution time&lt;/li&gt;
&lt;li&gt;Token usage&lt;/li&gt;
&lt;li&gt;Tool calls&lt;/li&gt;
&lt;li&gt;API failures&lt;/li&gt;
&lt;li&gt;Retrieval performance&lt;/li&gt;
&lt;li&gt;Distributed traces&lt;/li&gt;
&lt;li&gt;Error propagation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Seeing these capabilities helped me understand why observability has become such an important topic as AI applications continue to grow in complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  My First Impression of SigNoz
&lt;/h2&gt;

&lt;p&gt;The feature that impressed me the most while exploring SigNoz was its ability to bring different types of telemetry into one place.&lt;/p&gt;

&lt;p&gt;Rather than jumping between separate tools for logs, metrics, and traces, everything is available through a single interface.&lt;/p&gt;

&lt;p&gt;For someone trying to understand how an application behaves internally, this makes debugging feel much more organized and intuitive.&lt;/p&gt;

&lt;p&gt;Another thing I appreciated was that SigNoz is &lt;strong&gt;OpenTelemetry-native&lt;/strong&gt;. Since OpenTelemetry has become the standard for collecting telemetry data, building on open standards instead of proprietary solutions makes the platform much more flexible for developers and organizations.&lt;/p&gt;

&lt;p&gt;At this point, I started understanding that observability isn't just about fixing bugs—it's about building software with enough visibility that problems can be identified and solved before they affect users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In the next section, I'll walk through the SigNoz platform, explain its core features, and share why Distributed Tracing became my favorite feature while exploring the platform.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Exploring SigNoz: Features That Stood Out
&lt;/h2&gt;

&lt;p&gt;After understanding why observability matters, I wanted to see what SigNoz actually offers beyond the buzzwords.&lt;/p&gt;

&lt;p&gt;As I explored the platform and its documentation, I realized that SigNoz isn't focused on just one aspect of monitoring. Instead, it combines everything needed to understand an application's health in a single place.&lt;/p&gt;

&lt;p&gt;Some of the features that immediately caught my attention were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Application Performance Monitoring (APM)&lt;/strong&gt; for tracking application performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Distributed Tracing&lt;/strong&gt; to follow requests across multiple services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Centralized Log Management&lt;/strong&gt; for debugging issues quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Dashboards&lt;/strong&gt; for visualizing important metrics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time Alerts&lt;/strong&gt; to detect problems before users report them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM &amp;amp; AI Observability&lt;/strong&gt; for monitoring AI-powered applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What impressed me the most was that these features are available within one platform rather than requiring multiple tools working together.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding OpenTelemetry
&lt;/h2&gt;

&lt;p&gt;While exploring SigNoz, I also learned why it emphasizes being &lt;strong&gt;OpenTelemetry-native&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Initially, I thought OpenTelemetry was simply another monitoring library. After reading more about it, I realized it has become the industry standard for collecting telemetry data.&lt;/p&gt;

&lt;p&gt;Instead of using vendor-specific agents, developers instrument their applications once with OpenTelemetry and can send the collected data to compatible platforms like SigNoz.&lt;/p&gt;

&lt;p&gt;This approach offers several benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No vendor lock-in&lt;/li&gt;
&lt;li&gt;Standardized telemetry collection&lt;/li&gt;
&lt;li&gt;Support for multiple programming languages&lt;/li&gt;
&lt;li&gt;Easier migration between observability platforms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For AI applications, this becomes even more valuable because a single request often travels through multiple services before generating a response.&lt;/p&gt;

&lt;p&gt;OpenTelemetry captures each of these interactions, while SigNoz visualizes them in an easy-to-understand format.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up SigNoz
&lt;/h2&gt;

&lt;p&gt;One thing I liked was that getting started with SigNoz is relatively straightforward.&lt;/p&gt;

&lt;p&gt;The recommended approach is to run it locally using Docker.&lt;/p&gt;

&lt;p&gt;The installation involves cloning the repository and starting the required services.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/SigNoz/signoz.git

&lt;span class="nb"&gt;cd &lt;/span&gt;signoz/deploy

docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the services start, the dashboard becomes accessible through the browser.&lt;/p&gt;

&lt;p&gt;Although the setup itself isn't complicated, I would still recommend checking the official documentation because it provides clear instructions for different operating systems and deployment options.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Figure 1:&lt;/strong&gt; &lt;em&gt;SigNoz Dashboard after completing the local setup.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frisq3lq5dpydmisvxoj3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frisq3lq5dpydmisvxoj3.png" alt="SigNoz Dashboard after completing the local setup." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Feature I Found Most Interesting: Distributed Tracing
&lt;/h2&gt;

&lt;p&gt;Among all the capabilities, &lt;strong&gt;Distributed Tracing&lt;/strong&gt; was the feature that interested me the most.&lt;/p&gt;

&lt;p&gt;When we build AI applications, a single request rarely consists of just one API call.&lt;/p&gt;

&lt;p&gt;Instead, it usually looks something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Request
      │
      ▼
Authentication
      │
      ▼
Retrieve Context
      │
      ▼
Vector Database
      │
      ▼
     LLM
      │
      ▼
External Tool
      │
      ▼
Final Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without tracing, developers only know the total response time.&lt;/p&gt;

&lt;p&gt;With distributed tracing, every step appears as an individual span.&lt;/p&gt;

&lt;p&gt;For example, imagine an AI assistant takes &lt;strong&gt;10 seconds&lt;/strong&gt; to answer.&lt;/p&gt;

&lt;p&gt;Tracing could reveal something like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Authentication&lt;/td&gt;
&lt;td&gt;40 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vector Search&lt;/td&gt;
&lt;td&gt;320 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLM Processing&lt;/td&gt;
&lt;td&gt;6.2 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External API&lt;/td&gt;
&lt;td&gt;2.8 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Response Formatting&lt;/td&gt;
&lt;td&gt;120 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Instead of guessing where the slowdown happened, developers immediately know which component needs attention.&lt;/p&gt;

&lt;p&gt;This made me appreciate why distributed tracing is considered one of the most powerful debugging tools for modern applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Observability: More Than Traditional Monitoring
&lt;/h2&gt;

&lt;p&gt;Traditional monitoring tells us whether servers are healthy.&lt;/p&gt;

&lt;p&gt;AI observability answers a different question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"How well is my AI application actually performing?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While exploring SigNoz, I found it interesting that AI-specific metrics can also be monitored.&lt;/p&gt;

&lt;p&gt;These include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt execution time&lt;/li&gt;
&lt;li&gt;LLM response latency&lt;/li&gt;
&lt;li&gt;Token usage&lt;/li&gt;
&lt;li&gt;Error rates&lt;/li&gt;
&lt;li&gt;Tool invocation&lt;/li&gt;
&lt;li&gt;Request success rate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These metrics become especially useful when building AI agents because performance depends on much more than server resources.&lt;/p&gt;

&lt;p&gt;A perfectly healthy server can still produce a slow AI application if prompt execution, vector retrieval, or external APIs become bottlenecks.&lt;/p&gt;

&lt;p&gt;Having visibility into these components makes troubleshooting significantly easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Key Takeaway
&lt;/h2&gt;

&lt;p&gt;The biggest lesson I learned while exploring SigNoz is that observability is not just about collecting logs.&lt;/p&gt;

&lt;p&gt;It is about understanding the complete story behind every request.&lt;/p&gt;

&lt;p&gt;Logs tell you &lt;strong&gt;what happened&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Metrics tell you &lt;strong&gt;how often it happens&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Distributed traces show &lt;strong&gt;exactly where it happened&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When all three are available together, debugging becomes much faster and more reliable.&lt;/p&gt;

&lt;p&gt;That, in my opinion, is what makes SigNoz particularly valuable for developers building modern AI-powered applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In the final section, I'll share how LLM observability helps monitor token usage and costs, discuss dashboards and alerts, compare SigNoz with other observability platforms, and conclude with my overall thoughts after exploring the platform.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  LLM Observability: A Feature Every AI Developer Should Understand
&lt;/h2&gt;

&lt;p&gt;As AI applications continue to evolve, one thing became very clear to me while exploring SigNoz—monitoring an AI application is very different from monitoring a traditional web application.&lt;/p&gt;

&lt;p&gt;For a normal application, checking CPU usage, memory utilization, request count, or response time is often enough.&lt;/p&gt;

&lt;p&gt;But AI applications introduce completely new variables.&lt;/p&gt;

&lt;p&gt;Questions like these become much more important:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why is one prompt taking twice as long as another?&lt;/li&gt;
&lt;li&gt;Which model is consuming the most tokens?&lt;/li&gt;
&lt;li&gt;Which tool call failed?&lt;/li&gt;
&lt;li&gt;Why did today's AI cost suddenly increase?&lt;/li&gt;
&lt;li&gt;Which step in the workflow is creating the biggest delay?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are questions that traditional monitoring tools simply weren't designed to answer.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;LLM Observability&lt;/strong&gt; becomes incredibly valuable.&lt;/p&gt;

&lt;p&gt;Instead of treating an LLM call as just another API request, SigNoz provides visibility into AI-specific metrics that actually matter.&lt;/p&gt;

&lt;p&gt;Some examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt execution time&lt;/li&gt;
&lt;li&gt;Response generation latency&lt;/li&gt;
&lt;li&gt;Token usage&lt;/li&gt;
&lt;li&gt;Model response time&lt;/li&gt;
&lt;li&gt;Request failures&lt;/li&gt;
&lt;li&gt;Tool invocation&lt;/li&gt;
&lt;li&gt;End-to-end request traces&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These insights make it much easier to understand how an AI application behaves in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Token Monitoring Matters
&lt;/h2&gt;

&lt;p&gt;One topic I hadn't thought much about before exploring AI observability was &lt;strong&gt;token usage&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every interaction with a language model consumes tokens.&lt;/p&gt;

&lt;p&gt;A longer prompt or response means higher inference cost.&lt;/p&gt;

&lt;p&gt;As an application scales, even small increases in token usage can have a noticeable impact on monthly expenses.&lt;/p&gt;

&lt;p&gt;Instead of waiting for billing reports, developers can monitor token trends in real time and identify inefficient prompts or unusually expensive requests.&lt;/p&gt;

&lt;p&gt;For teams deploying AI products in production, this kind of visibility can be just as important as monitoring latency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dashboards That Make Monitoring Easier
&lt;/h2&gt;

&lt;p&gt;Another feature I liked was the flexibility of dashboards.&lt;/p&gt;

&lt;p&gt;Instead of displaying only infrastructure metrics, dashboards can combine application health, traces, AI metrics, and performance graphs in one place.&lt;/p&gt;

&lt;p&gt;For an AI application, a useful dashboard might include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Average response latency&lt;/li&gt;
&lt;li&gt;Request throughput&lt;/li&gt;
&lt;li&gt;Error rate&lt;/li&gt;
&lt;li&gt;Token consumption&lt;/li&gt;
&lt;li&gt;Slowest endpoints&lt;/li&gt;
&lt;li&gt;LLM latency&lt;/li&gt;
&lt;li&gt;Tool execution time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Having all of these metrics together makes it much easier to understand the overall health of an application.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Figure 2:&lt;/strong&gt; &lt;em&gt;Dashboard showing request latency, throughput, traces, and application metrics.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9tc41n1vbywcp7ae3axy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9tc41n1vbywcp7ae3axy.png" alt="Dashboard showing request latency, throughput, traces, and application metrics." width="799" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-Time Alerts
&lt;/h2&gt;

&lt;p&gt;Monitoring dashboards are helpful, but someone has to be looking at them.&lt;/p&gt;

&lt;p&gt;This is where alerts become useful.&lt;/p&gt;

&lt;p&gt;With SigNoz, developers can configure alerts for situations such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High response latency&lt;/li&gt;
&lt;li&gt;Increased error rate&lt;/li&gt;
&lt;li&gt;Unexpected token spikes&lt;/li&gt;
&lt;li&gt;Database failures&lt;/li&gt;
&lt;li&gt;Slow external APIs&lt;/li&gt;
&lt;li&gt;Service downtime&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than discovering problems through user complaints, teams can identify issues much earlier and respond before they become major incidents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparing SigNoz with Other Platforms
&lt;/h2&gt;

&lt;p&gt;While researching observability tools, I also came across platforms like Datadog, New Relic, and Grafana.&lt;/p&gt;

&lt;p&gt;Each has its own strengths, but one aspect that stood out about SigNoz is its focus on open standards.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;SigNoz&lt;/th&gt;
&lt;th&gt;Typical Proprietary Platform&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Open Source&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Usually No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenTelemetry Native&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-hosting&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unified Logs, Metrics &amp;amp; Traces&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Observability&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Depends on Plan&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For developers who value transparency, flexibility, and avoiding vendor lock-in, this is a significant advantage.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Overall Takeaway
&lt;/h2&gt;

&lt;p&gt;Exploring SigNoz changed how I think about monitoring modern software.&lt;/p&gt;

&lt;p&gt;Earlier, I viewed monitoring as something you check only after an application breaks.&lt;/p&gt;

&lt;p&gt;Now I understand that observability is about continuously understanding &lt;strong&gt;how&lt;/strong&gt; an application behaves and &lt;strong&gt;why&lt;/strong&gt; something goes wrong.&lt;/p&gt;

&lt;p&gt;The feature I found most useful was &lt;strong&gt;Distributed Tracing&lt;/strong&gt;, because it makes debugging much more visual and intuitive.&lt;/p&gt;

&lt;p&gt;I also found AI observability particularly interesting since AI applications introduce challenges—like token usage, prompt performance, and model latency—that traditional monitoring tools were never designed to solve.&lt;/p&gt;

&lt;p&gt;Although I explored SigNoz as part of preparing for the &lt;strong&gt;Agents of SigNoz Hackathon&lt;/strong&gt;, it gave me a much better understanding of why observability is becoming an essential part of building production-ready AI applications.&lt;/p&gt;

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

&lt;p&gt;Artificial Intelligence is changing how we build software, but it also introduces new debugging and monitoring challenges.&lt;/p&gt;

&lt;p&gt;After spending time exploring SigNoz, I now have a much clearer understanding of why observability is more than just logs and dashboards. Being able to view metrics, traces, logs, alerts, and AI telemetry together provides a much deeper understanding of application behavior.&lt;/p&gt;

&lt;p&gt;If you're planning to build AI agents, chatbots, or any LLM-powered application, I believe learning observability early is just as important as learning the AI frameworks themselves.&lt;/p&gt;

&lt;p&gt;For me, exploring SigNoz wasn't just preparation for a hackathon—it was an opportunity to better understand how production AI systems are monitored, optimized, and maintained.&lt;/p&gt;

&lt;p&gt;I'm excited to apply these learnings while building projects during the Agents of SigNoz Hackathon, and I hope this article helps other developers who are beginning their own observability journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;SigNoz Documentation&lt;/li&gt;
&lt;li&gt;SigNoz GitHub Repository&lt;/li&gt;
&lt;li&gt;OpenTelemetry Documentation&lt;/li&gt;
&lt;li&gt;CNCF OpenTelemetry Project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading! If you're participating in the &lt;strong&gt;Agents of SigNoz Hackathon&lt;/strong&gt;, I highly recommend exploring SigNoz yourself. Even a short hands-on session provides a much better understanding of observability than reading documentation alone, and it's a great way to prepare before building AI applications in the hackathon.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>signoz</category>
      <category>observability</category>
      <category>opentelemetry</category>
    </item>
    <item>
      <title>🚀 Building Two AI-Powered Solutions at HACKHAZARDS '26: VeritasFlow &amp; PermitFlow</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Wed, 15 Jul 2026 14:43:18 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/building-two-ai-powered-solutions-at-hackhazards-26-veritasflow-permitflow-ab9</link>
      <guid>https://dev.to/tanya_garg_5315/building-two-ai-powered-solutions-at-hackhazards-26-veritasflow-permitflow-ab9</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Building Two AI-Powered Solutions at HACKHAZARDS '26: VeritasFlow &amp;amp; PermitFlow
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How our team built two AI-powered solutions—VeritasFlow and PermitFlow—during one of the world's largest community-driven hackathons.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Innovation begins with identifying real-world problems and building technology that creates meaningful impact.&lt;/p&gt;

&lt;p&gt;That belief guided our team throughout &lt;strong&gt;HACKHAZARDS '26&lt;/strong&gt;, a global community-driven buildathon organized by &lt;strong&gt;NAMESPACE&lt;/strong&gt;. Unlike traditional 24- or 48-hour hackathons, HACKHAZARDS gave participants nearly two months to research, design, develop, and refine production-ready solutions instead of rushed prototypes.&lt;/p&gt;

&lt;p&gt;With over &lt;strong&gt;30,000 participants from more than 75 countries&lt;/strong&gt;, the event brought together developers, designers, and innovators to solve meaningful challenges using modern technologies.&lt;/p&gt;

&lt;p&gt;As a team, we challenged ourselves to build solutions for &lt;strong&gt;two completely different problem domains&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;One focused on improving &lt;strong&gt;digital wellbeing and responsible information consumption&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The other focused on transforming &lt;strong&gt;construction permit approvals through AI-powered compliance automation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That journey resulted in two projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧠 &lt;strong&gt;VeritasFlow – AI-Powered Information Diet Coach&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🏗️ &lt;strong&gt;PermitFlow – The Construction Compliance Autopilot&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although they solve different problems, both projects share the same vision:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Building AI that solves real-world problems, not just showcases technology.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🧠 Project 1: VeritasFlow – AI-Powered Information Diet Coach
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;The internet gives us unlimited access to information, but not all information is beneficial.&lt;/p&gt;

&lt;p&gt;Every day people are exposed to endless news articles, social media feeds, videos, and recommendations that often prioritize engagement over quality. This results in information overload, echo chambers, misinformation, and unhealthy digital habits.&lt;/p&gt;

&lt;p&gt;We wanted to build a platform that helps users become more mindful of what they consume online.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Solution
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VeritasFlow&lt;/strong&gt; is an AI-powered Information Diet Coach that analyzes users' content consumption patterns and recommends healthier, more balanced, and more informative content.&lt;/p&gt;

&lt;p&gt;Rather than maximizing screen time, VeritasFlow focuses on improving digital wellbeing through intelligent recommendations and personalized insights.&lt;/p&gt;

&lt;p&gt;Users can understand how they consume information and gradually build healthier digital habits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI-powered content analysis&lt;/li&gt;
&lt;li&gt;Sentiment analysis&lt;/li&gt;
&lt;li&gt;Personalized recommendations&lt;/li&gt;
&lt;li&gt;Article summarization&lt;/li&gt;
&lt;li&gt;Digital wellbeing dashboard&lt;/li&gt;
&lt;li&gt;Information diversity score&lt;/li&gt;
&lt;li&gt;Reading insights&lt;/li&gt;
&lt;li&gt;AI-powered recommendation engine&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technology Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;li&gt;Natural Language Processing (NLP)&lt;/li&gt;
&lt;li&gt;Sentiment Analysis&lt;/li&gt;
&lt;li&gt;Recommendation Engine&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Implementation
&lt;/h2&gt;

&lt;p&gt;The platform processes user content using NLP techniques to identify topics, sentiment, and reading patterns. Based on this analysis, the recommendation engine suggests educational and balanced content while providing personalized insights into users' digital habits.&lt;/p&gt;

&lt;p&gt;Our goal was not to encourage users to spend more time online but to help them spend their time more meaningfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ Project 2: PermitFlow – The Construction Compliance Autopilot
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Construction permits remain one of the biggest bottlenecks in urban development.&lt;/p&gt;

&lt;p&gt;Contractors often spend weeks navigating complicated zoning regulations, submitting repetitive paperwork, correcting applications, and waiting for approvals.&lt;/p&gt;

&lt;p&gt;Even a single missing document can delay an entire construction project.&lt;/p&gt;

&lt;p&gt;We wanted to simplify this complex process using Artificial Intelligence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Solution
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;PermitFlow&lt;/strong&gt; is an AI-powered construction compliance platform that streamlines the permit approval workflow for contractors, architects, municipal officers, and administrators.&lt;/p&gt;

&lt;p&gt;Users upload project documents, and the platform automatically analyzes compliance requirements, detects missing information, assists with documentation, and guides applicants throughout the approval process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI Blueprint Analysis&lt;/li&gt;
&lt;li&gt;OCR-based document extraction&lt;/li&gt;
&lt;li&gt;Compliance Gap Detection&lt;/li&gt;
&lt;li&gt;Government Form Autofill&lt;/li&gt;
&lt;li&gt;Permit Status Tracking&lt;/li&gt;
&lt;li&gt;Municipal Officer Dashboard&lt;/li&gt;
&lt;li&gt;Admin Analytics Dashboard&lt;/li&gt;
&lt;li&gt;AI Compliance Assistant&lt;/li&gt;
&lt;li&gt;Multilingual Support&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technology Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;li&gt;OCR&lt;/li&gt;
&lt;li&gt;JWT Authentication&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sarvam AI&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How We Used Sarvam AI
&lt;/h2&gt;

&lt;p&gt;PermitFlow was also built for the &lt;strong&gt;Sarvam AI Track&lt;/strong&gt;, where Sarvam AI became a key part of our solution.&lt;/p&gt;

&lt;p&gt;We integrated Sarvam AI to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build a multilingual AI compliance assistant.&lt;/li&gt;
&lt;li&gt;Answer user queries related to zoning rules, FAR limits, setbacks, Fire NOCs, and municipal regulations.&lt;/li&gt;
&lt;li&gt;Translate compliance guidance into multiple Indian languages.&lt;/li&gt;
&lt;li&gt;Enable voice-based interactions for easier accessibility.&lt;/li&gt;
&lt;li&gt;Simplify complex legal and technical regulations into easy-to-understand explanations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By integrating Sarvam AI, PermitFlow became more accessible, user-friendly, and practical for contractors, architects, and government officials across India.&lt;/p&gt;

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

&lt;p&gt;Although both projects belonged to different industries, they presented equally interesting engineering challenges.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;VeritasFlow&lt;/strong&gt;, designing recommendations that promote healthier information consumption rather than maximizing engagement required careful planning and experimentation.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;PermitFlow&lt;/strong&gt;, understanding complex construction regulations and transforming them into a simple AI-assisted workflow required thoughtful product design and user-centric development.&lt;/p&gt;

&lt;p&gt;Throughout the hackathon, we continuously refined our UI, backend architecture, and AI workflows to create solutions that were both practical and intuitive.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Learned
&lt;/h2&gt;

&lt;p&gt;HACKHAZARDS '26 taught us that successful AI applications begin with understanding real user problems.&lt;/p&gt;

&lt;p&gt;Beyond writing code, we learned the importance of product thinking, collaboration, user experience, and responsible AI implementation.&lt;/p&gt;

&lt;p&gt;Working on two completely different projects also strengthened our understanding of full-stack development, document intelligence, recommendation systems, workflow automation, and AI integration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Both projects have exciting possibilities for future development.&lt;/p&gt;

&lt;h3&gt;
  
  
  VeritasFlow
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Browser Extension&lt;/li&gt;
&lt;li&gt;Fake News Detection&lt;/li&gt;
&lt;li&gt;AI Wellness Score&lt;/li&gt;
&lt;li&gt;Social Media Feed Analysis&lt;/li&gt;
&lt;li&gt;Mobile Application&lt;/li&gt;
&lt;li&gt;Advanced Recommendation Models&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  PermitFlow
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;GIS-based Zoning Verification&lt;/li&gt;
&lt;li&gt;BIM/CAD Blueprint Support&lt;/li&gt;
&lt;li&gt;Real-time Municipal API Integration&lt;/li&gt;
&lt;li&gt;Predictive Approval Analytics&lt;/li&gt;
&lt;li&gt;Digital Signature Support&lt;/li&gt;
&lt;li&gt;Inspection Scheduling&lt;/li&gt;
&lt;li&gt;Mobile App for Field Officers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;HACKHAZARDS '26 was much more than a hackathon—it was an incredible learning journey.&lt;/p&gt;

&lt;p&gt;It gave us the opportunity to transform ideas into working products, collaborate as a team, and explore how AI can solve meaningful problems across entirely different industries.&lt;/p&gt;

&lt;p&gt;From promoting healthier digital habits with &lt;strong&gt;VeritasFlow&lt;/strong&gt; to simplifying construction compliance through &lt;strong&gt;PermitFlow&lt;/strong&gt; and &lt;strong&gt;Sarvam AI&lt;/strong&gt;, this journey reinforced one important belief:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Technology creates the greatest impact when it solves real problems for real people.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A heartfelt thank you to &lt;strong&gt;NAMESPACE&lt;/strong&gt;, the mentors, organizers, and partner communities for creating such an amazing platform for builders around the world.&lt;/p&gt;

&lt;p&gt;We are excited to continue improving both projects beyond the hackathon and turn them into solutions that create real-world impact.&lt;/p&gt;

&lt;h2&gt;
  
  
  👥 Team
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prerna&lt;/strong&gt; — Team Lead&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tanya Garg&lt;/strong&gt; — AI &amp;amp; Backend Developer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kritika Maurya&lt;/strong&gt; — Frontend &amp;amp; Design Lead&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Thanks for reading!&lt;/strong&gt; If you'd like to connect, share feedback, or discuss these projects, feel free to reach out. Happy building! 🚀&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>buildinpublic</category>
      <category>hackathon</category>
    </item>
    <item>
      <title>Building DetectiveAI: Giving Crime Investigation an AI That Never Forgets with Cognee</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Sun, 05 Jul 2026 17:47:08 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/building-detectiveai-giving-crime-investigation-an-ai-that-never-forgets-with-cognee-3bjk</link>
      <guid>https://dev.to/tanya_garg_5315/building-detectiveai-giving-crime-investigation-an-ai-that-never-forgets-with-cognee-3bjk</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;One of the biggest limitations of modern AI assistants is memory. Every new conversation starts almost from scratch, making it difficult to work on long-running investigations or complex cases.&lt;/p&gt;

&lt;p&gt;For my hackathon project, I wanted to solve exactly this problem.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;DetectiveAI&lt;/strong&gt;, an AI-powered crime investigation assistant that uses &lt;strong&gt;Cognee Cloud&lt;/strong&gt; as its persistent memory layer. Instead of forgetting evidence after every session, DetectiveAI stores, organizes, and recalls investigation data whenever it is needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Imagine a detective investigating a case over several days.&lt;/p&gt;

&lt;p&gt;New evidence keeps arriving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Witness statements&lt;/li&gt;
&lt;li&gt;CCTV footage&lt;/li&gt;
&lt;li&gt;Crime scene observations&lt;/li&gt;
&lt;li&gt;Timelines&lt;/li&gt;
&lt;li&gt;Suspect information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Traditional AI can summarize information, but it doesn't naturally remember and connect all of these details across sessions.&lt;/p&gt;

&lt;p&gt;This is where persistent memory becomes essential.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Solution
&lt;/h2&gt;

&lt;p&gt;DetectiveAI combines a simple investigation workflow with Cognee Cloud.&lt;/p&gt;

&lt;p&gt;The investigator can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a crime case&lt;/li&gt;
&lt;li&gt;Add evidence&lt;/li&gt;
&lt;li&gt;Store investigation details&lt;/li&gt;
&lt;li&gt;Search previous information&lt;/li&gt;
&lt;li&gt;Ask natural language questions&lt;/li&gt;
&lt;li&gt;Generate investigation summaries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because the information is stored inside Cognee, the AI can retrieve relevant context instead of depending only on the current prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Cognee Powers DetectiveAI
&lt;/h2&gt;

&lt;p&gt;Cognee acts as the memory layer for my application.&lt;/p&gt;

&lt;p&gt;Each investigation is stored as structured knowledge rather than temporary chat history.&lt;/p&gt;

&lt;p&gt;When the investigator asks questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who is the suspect?&lt;/li&gt;
&lt;li&gt;Summarize this investigation.&lt;/li&gt;
&lt;li&gt;What relationships exist between the evidence?&lt;/li&gt;
&lt;li&gt;Explain the timeline.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cognee retrieves the most relevant information from the stored investigation memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create Case
&lt;/h3&gt;

&lt;p&gt;Start a new investigation with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Case name&lt;/li&gt;
&lt;li&gt;Location&lt;/li&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;Officer name&lt;/li&gt;
&lt;li&gt;Initial description&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Add Evidence
&lt;/h3&gt;

&lt;p&gt;Store investigation evidence including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Witness statements&lt;/li&gt;
&lt;li&gt;CCTV observations&lt;/li&gt;
&lt;li&gt;Timeline events&lt;/li&gt;
&lt;li&gt;Physical evidence&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Investigation Chat
&lt;/h3&gt;

&lt;p&gt;Interact with the investigation using natural language instead of manually searching documents.&lt;/p&gt;

&lt;h3&gt;
  
  
  Persistent Memory
&lt;/h3&gt;

&lt;p&gt;Unlike traditional AI assistants, DetectiveAI remembers previously stored information and can reuse it across future sessions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Investigation Reports
&lt;/h3&gt;

&lt;p&gt;Generate structured summaries of the investigation for quick review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Cognee Cloud&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;AI Language Model&lt;/li&gt;
&lt;li&gt;Modern Web Interface&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp1enrjppkzt3w87m786v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp1enrjppkzt3w87m786v.png" alt=" " width="799" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F388xw39u5oqmpt1nmiuh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F388xw39u5oqmpt1nmiuh.png" alt=" " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsgxz3t4wxx0am0kmqtez.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsgxz3t4wxx0am0kmqtez.png" alt=" " width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;This project taught me that AI memory is much more than saving chat history.&lt;/p&gt;

&lt;p&gt;Persistent memory allows AI systems to continuously build knowledge, connect related information, and provide more reliable answers over time.&lt;/p&gt;

&lt;p&gt;Cognee made it easy to explore this concept while building a practical real-world application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Multi-case investigations&lt;/li&gt;
&lt;li&gt;Image and PDF evidence analysis&lt;/li&gt;
&lt;li&gt;Voice-based investigation assistant&lt;/li&gt;
&lt;li&gt;Collaborative investigations for multiple officers&lt;/li&gt;
&lt;li&gt;Automatic contradiction detection&lt;/li&gt;
&lt;li&gt;Risk scoring for suspects&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;DetectiveAI demonstrates how persistent memory can transform AI assistants from simple chatbots into long-term intelligent investigation systems.&lt;/p&gt;

&lt;p&gt;With Cognee Cloud, our AI doesn't just answer questions—it remembers the investigation.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>cognee</category>
      <category>developer</category>
    </item>
    <item>
      <title>CrisisIQ – AI-Powered Business Risk Intelligence using Gemma 4</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Fri, 22 May 2026 18:01:53 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/crisisiq-ai-powered-business-risk-intelligence-using-gemma-4-44lb</link>
      <guid>https://dev.to/tanya_garg_5315/crisisiq-ai-powered-business-risk-intelligence-using-gemma-4-44lb</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-gemma-2026-05-06"&gt;Gemma 4 Challenge: Build with Gemma 4&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  CrisisIQ – AI-Powered Crisis Intelligence &amp;amp; Business Risk Analysis Dashboard
&lt;/h2&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;CrisisIQ is an AI-powered business intelligence dashboard that analyzes how global crises impact companies, industries, and supply chains in real time.&lt;/p&gt;

&lt;p&gt;Modern companies operate in highly interconnected ecosystems where geopolitical conflicts, cyberattacks, economic instability, sanctions, natural disasters, and trade disruptions can rapidly affect operations worldwide. CrisisIQ helps users understand these impacts using AI-driven analysis and contextual reasoning.&lt;/p&gt;

&lt;p&gt;The platform allows users to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;analyze company exposure during crises&lt;/li&gt;
&lt;li&gt;understand operational and financial risks&lt;/li&gt;
&lt;li&gt;simulate business disruption scenarios&lt;/li&gt;
&lt;li&gt;generate AI-powered mitigation strategies&lt;/li&gt;
&lt;li&gt;summarize complex global events into actionable insights&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of manually reading lengthy reports and news articles, users receive structured AI-generated intelligence instantly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Features Demonstrated
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Company risk analysis dashboard&lt;/li&gt;
&lt;li&gt;Crisis impact summarization&lt;/li&gt;
&lt;li&gt;AI-generated mitigation strategies&lt;/li&gt;
&lt;li&gt;Scenario simulation&lt;/li&gt;
&lt;li&gt;Industry-wise risk comparison&lt;/li&gt;
&lt;li&gt;Supply chain disruption analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Demo Video
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1kMt-lclhDu2YvFDQi1mgjPbBoagkEouq/view?usp=drive_link" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1kMt-lclhDu2YvFDQi1mgjPbBoagkEouq/view?usp=drive_link&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Live Project
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://crisisiq-ai-business-risk-intelligence-using-gemma-4-edaputmky.streamlit.app/" rel="noopener noreferrer"&gt;https://crisisiq-ai-business-risk-intelligence-using-gemma-4-edaputmky.streamlit.app/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1or9yg3q1lb26fjb9lw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1or9yg3q1lb26fjb9lw.jpeg" alt=" " width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk86bbj6ic3l6vgd3yee5.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk86bbj6ic3l6vgd3yee5.jpeg" alt=" " width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  GitHub Repository
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/Tanya-garg10/CrisisIQ-AI-Business-Risk-Intelligence-using-Gemma-4.git" rel="noopener noreferrer"&gt;https://github.com/Tanya-garg10/CrisisIQ-AI-Business-Risk-Intelligence-using-Gemma-4.git&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Streamlit&lt;/li&gt;
&lt;li&gt;Gemma 4&lt;/li&gt;
&lt;li&gt;Pandas&lt;/li&gt;
&lt;li&gt;Plotly&lt;/li&gt;
&lt;li&gt;OpenRouter / Google AI Studio API&lt;/li&gt;
&lt;li&gt;News APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How I Used Gemma 4
&lt;/h2&gt;

&lt;p&gt;Gemma 4 powers the core reasoning engine of CrisisIQ.&lt;/p&gt;

&lt;p&gt;The application collects company data, industry context, and crisis-related information, then uses Gemma 4 to generate intelligent business impact analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Model Used
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4 31B Dense&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I Chose the 31B Dense Model
&lt;/h3&gt;

&lt;p&gt;I intentionally selected the 31B Dense model because the project depends heavily on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;long-context understanding&lt;/li&gt;
&lt;li&gt;analytical reasoning&lt;/li&gt;
&lt;li&gt;structured business analysis&lt;/li&gt;
&lt;li&gt;multi-factor risk interpretation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The larger context window allowed the model to process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lengthy crisis reports&lt;/li&gt;
&lt;li&gt;multiple company profiles&lt;/li&gt;
&lt;li&gt;supply chain dependencies&lt;/li&gt;
&lt;li&gt;geopolitical developments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This made the 31B Dense model the ideal choice for generating detailed and reliable business intelligence insights.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Gemma 4 Powers the System
&lt;/h2&gt;

&lt;p&gt;Gemma 4 analyzes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;crisis events&lt;/li&gt;
&lt;li&gt;company operations&lt;/li&gt;
&lt;li&gt;industry dependencies&lt;/li&gt;
&lt;li&gt;supply chain vulnerabilities&lt;/li&gt;
&lt;li&gt;financial exposure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model then generates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;risk assessments&lt;/li&gt;
&lt;li&gt;operational impact summaries&lt;/li&gt;
&lt;li&gt;mitigation recommendations&lt;/li&gt;
&lt;li&gt;scenario-based predictions&lt;/li&gt;
&lt;li&gt;executive-level insights&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example Output
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;“The ongoing geopolitical conflict may significantly disrupt semiconductor supply chains affecting manufacturing timelines and increasing operational costs for automotive companies dependent on Asian suppliers.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The system transforms raw crisis information into understandable strategic intelligence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AI Risk Scoring
&lt;/h3&gt;

&lt;p&gt;Generates dynamic company risk scores based on current events.&lt;/p&gt;

&lt;h3&gt;
  
  
  Crisis Summarization
&lt;/h3&gt;

&lt;p&gt;Converts complex news and reports into concise business insights.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario Simulation
&lt;/h3&gt;

&lt;p&gt;Allows users to test hypothetical crisis situations and predict business outcomes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Supply Chain Intelligence
&lt;/h3&gt;

&lt;p&gt;Identifies vulnerable operational dependencies and potential disruption points.&lt;/p&gt;

&lt;h3&gt;
  
  
  Executive Insights
&lt;/h3&gt;

&lt;p&gt;Produces human-readable strategic recommendations for decision-making.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges I Faced
&lt;/h2&gt;

&lt;p&gt;One of the main challenges was designing prompts that produced structured, analytical responses instead of generic summaries.&lt;/p&gt;

&lt;p&gt;Another challenge was handling large volumes of contextual information while maintaining coherent reasoning and fast response times.&lt;/p&gt;

&lt;p&gt;Balancing accuracy, readability, and practical usefulness required significant prompt engineering and response optimization.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;Through this project, I gained deeper experience in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI-powered reasoning systems&lt;/li&gt;
&lt;li&gt;long-context prompt engineering&lt;/li&gt;
&lt;li&gt;business intelligence workflows&lt;/li&gt;
&lt;li&gt;risk analysis pipelines&lt;/li&gt;
&lt;li&gt;dashboard development&lt;/li&gt;
&lt;li&gt;integrating LLMs into analytical applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also learned how powerful open models like Gemma 4 can be for enterprise-style AI applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;Planned future enhancements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;real-time live news integration&lt;/li&gt;
&lt;li&gt;predictive trend forecasting&lt;/li&gt;
&lt;li&gt;interactive crisis maps&lt;/li&gt;
&lt;li&gt;AI-generated financial impact estimation&lt;/li&gt;
&lt;li&gt;multilingual analysis support&lt;/li&gt;
&lt;li&gt;collaborative enterprise dashboards&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;CrisisIQ demonstrates how AI can transform overwhelming global information into actionable strategic intelligence.&lt;/p&gt;

&lt;p&gt;By combining real-world crisis data with the reasoning capabilities of Gemma 4, the platform helps businesses better understand risks, prepare for disruptions, and make informed decisions faster.&lt;/p&gt;

&lt;p&gt;This project highlights the growing potential of open AI models in enterprise intelligence and decision-support systems.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
    </item>
    <item>
      <title>Building a Smart Environmental Monitoring System with Google Cloud (Inspired by NEXT ‘26)</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Thu, 23 Apr 2026 05:13:43 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/building-a-smart-environmental-monitoring-system-with-google-cloud-inspired-by-next-26-4263</link>
      <guid>https://dev.to/tanya_garg_5315/building-a-smart-environmental-monitoring-system-with-google-cloud-inspired-by-next-26-4263</guid>
      <description>&lt;h2&gt;
  
  
  Building a Smart Environmental Monitoring System with Google Cloud (Inspired by NEXT ‘26)
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-cloud-next-2026-04-22"&gt;Google Cloud NEXT Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 Why Google Cloud NEXT ‘26 Caught My Attention
&lt;/h2&gt;

&lt;p&gt;Every year, Google Cloud NEXT brings new ideas, but this time what stood out to me was the strong push toward &lt;strong&gt;real-time data processing, AI integration, and scalable cloud-native systems&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;As someone working on IoT + web-based systems, I was especially interested in how cloud tools can handle &lt;strong&gt;live sensor data efficiently&lt;/strong&gt; and make it useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 The Idea: Smart Environmental Monitoring System
&lt;/h2&gt;

&lt;p&gt;Inspired by the announcements around cloud scalability and developer tools, I decided to explore a simple but practical use case:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A system that monitors &lt;strong&gt;temperature, CO₂ levels, and soil moisture in real time&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This kind of system can be useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smart agriculture 🌱&lt;/li&gt;
&lt;li&gt;Indoor air quality monitoring 🏠&lt;/li&gt;
&lt;li&gt;Climate-aware applications 🌍&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛠️ Tech Stack I Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Raspberry Pi&lt;/strong&gt; → Collect sensor data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Django (Backend)&lt;/strong&gt; → Handle APIs &amp;amp; data processing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React.js (Frontend)&lt;/strong&gt; → Display real-time dashboard&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP Protocol&lt;/strong&gt; → Send live sensor data&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Google Cloud (Conceptual Integration)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud Run / App Engine (deployment ideas)&lt;/li&gt;
&lt;li&gt;Cloud Storage / Firestore (data handling)&lt;/li&gt;
&lt;li&gt;AI/ML possibilities for predictions&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⚙️ How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Sensors connected to Raspberry Pi collect data&lt;/li&gt;
&lt;li&gt;Data is sent via HTTP to a Django backend&lt;/li&gt;
&lt;li&gt;Backend processes and stores the data&lt;/li&gt;
&lt;li&gt;React dashboard displays it in real time&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🔍 What I Learned from NEXT ‘26
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Cloud Makes Real-Time Systems Scalable
&lt;/h3&gt;

&lt;p&gt;Before cloud integration, systems like this are limited locally.&lt;br&gt;
With Google Cloud, this can scale to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thousands of devices&lt;/li&gt;
&lt;li&gt;Multiple locations&lt;/li&gt;
&lt;li&gt;Real-time analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. AI Integration is the Next Step
&lt;/h3&gt;

&lt;p&gt;The real power is not just collecting data, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Predicting trends&lt;/li&gt;
&lt;li&gt;Detecting anomalies&lt;/li&gt;
&lt;li&gt;Automating alerts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Predict soil dryness before it happens&lt;/li&gt;
&lt;li&gt;Alert when CO₂ levels become unsafe&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Developer Experience is Improving
&lt;/h3&gt;

&lt;p&gt;One key takeaway from NEXT ‘26 is how tools are becoming:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easier to deploy&lt;/li&gt;
&lt;li&gt;More integrated&lt;/li&gt;
&lt;li&gt;Faster to build with&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This reduces the gap between &lt;strong&gt;idea → prototype → production&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg56wolqcx5k9qs5jsdwj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg56wolqcx5k9qs5jsdwj.png" alt=" " width="800" height="533"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  🤔 My Honest Take
&lt;/h2&gt;

&lt;p&gt;While Google Cloud offers powerful tools, beginners might still face:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initial setup complexity&lt;/li&gt;
&lt;li&gt;Understanding pricing&lt;/li&gt;
&lt;li&gt;Choosing the right service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, once you get past that, the ecosystem is incredibly powerful.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 What I’d Do Next
&lt;/h2&gt;

&lt;p&gt;If I extend this project using Google Cloud:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploy backend on &lt;strong&gt;Cloud Run&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Store real-time data in &lt;strong&gt;Firestore&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;AI models&lt;/strong&gt; for prediction&lt;/li&gt;
&lt;li&gt;Add alerts using cloud functions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📌 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Google Cloud NEXT ‘26 reinforced one thing for me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The future is not just about building apps — it’s about building &lt;strong&gt;intelligent, scalable systems&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Even a simple IoT project can become powerful when combined with cloud + AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  💬 What About You?
&lt;/h2&gt;

&lt;p&gt;Did you explore anything from Google Cloud NEXT ‘26?&lt;br&gt;
What feature excited you the most?&lt;/p&gt;

&lt;p&gt;Let’s discuss 👇&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>cloudnextchallenge</category>
      <category>googlecloud</category>
      <category>iot</category>
    </item>
  </channel>
</rss>
