<?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: Neeraj Yadav</title>
    <description>The latest articles on DEV Community by Neeraj Yadav (@yadu989).</description>
    <link>https://dev.to/yadu989</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%2F4004750%2F4f0d0c2a-951c-4271-a08c-c68c3376362c.jpg</url>
      <title>DEV Community: Neeraj Yadav</title>
      <link>https://dev.to/yadu989</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yadu989"/>
    <language>en</language>
    <item>
      <title>Keyword search ties a purpose-built memory layer on 200 LongMemEval questions</title>
      <dc:creator>Neeraj Yadav</dc:creator>
      <pubDate>Tue, 20 Oct 2026 17:50:47 +0000</pubDate>
      <link>https://dev.to/yadu989/keyword-search-ties-a-purpose-built-memory-layer-on-200-longmemeval-questions-25l3</link>
      <guid>https://dev.to/yadu989/keyword-search-ties-a-purpose-built-memory-layer-on-200-longmemeval-questions-25l3</guid>
      <description>&lt;p&gt;I build one of the systems in this test, so discount accordingly. Posting the numbers because they surprised me and because the boring result is the interesting one.&lt;/p&gt;

&lt;p&gt;Setup: 200 questions from LongMemEval, three ways of giving a model memory over the same material. A collaborator ran all three arms with the same reader (Qwen 3.8 27B, Q4) and the same grading rubric.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A structured memory layer (MemStrata, my product): facts stored with provenance and validity, retrieved as structured evidence.&lt;/li&gt;
&lt;li&gt;SQLite FTS5: plain keyword full-text search over the raw text. The baseline everyone skips.&lt;/li&gt;
&lt;li&gt;An LLM wiki: the pattern where an LLM incrementally writes and maintains linked markdown pages, and answers from those pages.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Results:&lt;/p&gt;

&lt;p&gt;MemStrata        188/200   94.0%&lt;br&gt;
SQLite FTS5      184/200   92.0%&lt;br&gt;
LLM wiki         163/200   81.5%&lt;/p&gt;

&lt;p&gt;The 4-question gap between the memory layer and FTS5 is within noise at n=200. Call it a tie. The 25-question gap to the wiki is not noise.&lt;/p&gt;

&lt;p&gt;Category detail, memory layer vs FTS5:&lt;/p&gt;

&lt;p&gt;Knowledge update:    29/31 vs 31/31   (FTS5 wins outright)&lt;br&gt;
Temporal reasoning:  50/53 vs 47/53&lt;br&gt;
Multi-session:       48/53 vs 46/53&lt;br&gt;
Preference:          12/12 vs 11/12&lt;br&gt;
Single-session:      tied on both subcategories&lt;/p&gt;

&lt;p&gt;Two things I take from this:&lt;/p&gt;

&lt;p&gt;First, keyword search is embarrassingly strong and most memory products are probably being compared against strawman baselines. On single-fact updates, where the current answer is stated verbatim somewhere, FTS5 is perfect and structure adds nothing.&lt;/p&gt;

&lt;p&gt;Second, the wiki pattern lost on the thing it is supposed to be good at. It carries the highest maintenance cost of the three (an LLM rewriting pages on every new fact) and still landed 12.5 points behind, including on multi-session questions where a curated notes base should shine. My read: every rewrite is a chance to drop or mangle a fact, and the errors compound silently. That is an interpretation, not a measurement.&lt;/p&gt;

&lt;p&gt;Disclosures: the wiki arm is our implementation of the pattern, not anyone's production system. One MemStrata answer was missing from the run output and was recovered, with the owner's authorization, before grading; scoring it as wrong would move the result by half a point. One reader model, one question set, n=200.&lt;/p&gt;

&lt;p&gt;Question for anyone else testing memory layers: are you also finding FTS5 this hard to beat, and on which question types does structure actually earn its keep in your runs?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>rag</category>
      <category>search</category>
    </item>
    <item>
      <title>How do you know your agent's memory layer is helping, not hurting?</title>
      <dc:creator>Neeraj Yadav</dc:creator>
      <pubDate>Fri, 16 Oct 2026 18:44:09 +0000</pubDate>
      <link>https://dev.to/yadu989/how-do-you-know-your-agents-memory-layer-is-helping-not-hurting-2mc9</link>
      <guid>https://dev.to/yadu989/how-do-you-know-your-agents-memory-layer-is-helping-not-hurting-2mc9</guid>
      <description>&lt;p&gt;I work on long-term memory for agents, and the honest problem I keep hitting: everyone benchmarks the model, almost nobody benchmarks the memory layer itself. A bad memory layer can actively make a good model worse, stale facts retrieved with high confidence, contradictions never surfaced. The vendor answer is usually "trust our evals." I published an open harness instead, MIT, that reruns 500 LongMemEval-style questions against any local stack so the numbers are checkable, not claimed: &lt;a href="https://github.com/yadu9989/memstrata-lme500-harness" rel="noopener noreferrer"&gt;https://github.com/yadu9989/memstrata-lme500-harness&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Curious how others here are evaluating theirs. Do you trust the memory layer, or treat it as guilty until proven innocent?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>startup</category>
      <category>mcp</category>
    </item>
    <item>
      <title>A Small, Checkable Test for AI Memory Systems</title>
      <dc:creator>Neeraj Yadav</dc:creator>
      <pubDate>Tue, 08 Sep 2026 00:44:25 +0000</pubDate>
      <link>https://dev.to/yadu989/a-small-checkable-test-for-ai-memory-systems-e1h</link>
      <guid>https://dev.to/yadu989/a-small-checkable-test-for-ai-memory-systems-e1h</guid>
      <description>&lt;p&gt;AI disclosure: This draft was generated autonomously by AI. The author should review every technical claim before publication.&lt;/p&gt;

&lt;p&gt;AI memory demos often optimize for a strong first impression. A long archive goes in, a fluent answer comes out, and the result feels convincing. That is not yet evidence that the memory system will be useful in ordinary work.&lt;/p&gt;

&lt;p&gt;A better evaluation starts small enough that you already know the correct answer. It should test retrieval, interpretation, missing information, updates, and repeat use separately.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Begin with one source you understand
&lt;/h2&gt;

&lt;p&gt;Create a short note containing a date, an owner, a decision, and one explicit limitation. Keep it small enough to read without search.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The migration review is scheduled for October 14. Priya owns the checklist. The database change is not approved yet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ask questions whose answers are directly present in the note:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When is the review?&lt;/li&gt;
&lt;li&gt;Who owns the checklist?&lt;/li&gt;
&lt;li&gt;Has the database change been approved?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to surprise yourself. It is to confirm that the system can retrieve the expected source and that the answer preserves important qualifiers such as “not approved yet.”&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Inspect the supplied evidence
&lt;/h2&gt;

&lt;p&gt;A plausible answer is not enough. Open the source or evidence shown beside the answer and check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did the system retrieve the right document?&lt;/li&gt;
&lt;li&gt;Did it select the relevant passage?&lt;/li&gt;
&lt;li&gt;Did the answer preserve names, dates, and negation?&lt;/li&gt;
&lt;li&gt;Can another person repeat the check?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This separates two failure modes that are often mixed together. Retrieval can choose the wrong evidence, or the answering model can misinterpret the right evidence. Those require different fixes.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Ask for something that is missing
&lt;/h2&gt;

&lt;p&gt;Now ask a question the note cannot answer, such as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which meeting room is booked?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A useful system should make the absence visible. If the answer invents a room, retrieving more unrelated text will not solve the underlying problem. Missing-information tests are especially valuable because fluent models are good at making unsupported details sound ordinary.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Change one fact
&lt;/h2&gt;

&lt;p&gt;Update the note so that the review moves to October 21. Then ask the date again.&lt;/p&gt;

&lt;p&gt;Check whether the current answer uses the new value and whether the earlier value remains available when you ask a historical question. Finding both versions is not the same as knowing which one is current. Similarity search measures relevance, not supersession by itself.&lt;/p&gt;

&lt;p&gt;This test helps distinguish:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;retrieving a date from computing with dates;&lt;/li&gt;
&lt;li&gt;document recency from fact validity;&lt;/li&gt;
&lt;li&gt;remembering an earlier statement from treating it as current.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Return in a second session
&lt;/h2&gt;

&lt;p&gt;The first successful query proves very little about memory. Close the session, return later, and ask a question that depends on the same source.&lt;/p&gt;

&lt;p&gt;Then inspect what survived:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the source content;&lt;/li&gt;
&lt;li&gt;the speaker or owner;&lt;/li&gt;
&lt;li&gt;the date and session boundary;&lt;/li&gt;
&lt;li&gt;the update from the earlier value;&lt;/li&gt;
&lt;li&gt;the evidence needed to verify the answer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Repeat use is where a memory workflow becomes useful or becomes another setup step.&lt;/p&gt;

&lt;h2&gt;
  
  
  A compact evaluation checklist
&lt;/h2&gt;

&lt;p&gt;A small memory test should include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;One known fact.&lt;/li&gt;
&lt;li&gt;One explicit limitation or negation.&lt;/li&gt;
&lt;li&gt;One missing fact.&lt;/li&gt;
&lt;li&gt;One updated fact.&lt;/li&gt;
&lt;li&gt;One historical question.&lt;/li&gt;
&lt;li&gt;One second-session question.&lt;/li&gt;
&lt;li&gt;Source inspection for every answer.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This will not produce a universal accuracy score. It will give you something more practical: a reproducible way to identify whether a failure came from retrieval, interpretation, freshness, or unsupported guessing.&lt;/p&gt;

&lt;p&gt;Start with evidence you can inspect. Expand the archive only after the small path works.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>ai</category>
      <category>testing</category>
    </item>
    <item>
      <title>Post 4 - Building AI You Can Trust</title>
      <dc:creator>Neeraj Yadav</dc:creator>
      <pubDate>Thu, 16 Jul 2026 03:34:56 +0000</pubDate>
      <link>https://dev.to/yadu989/post-4-building-ai-you-can-trust-11al</link>
      <guid>https://dev.to/yadu989/post-4-building-ai-you-can-trust-11al</guid>
      <description>&lt;p&gt;"Move fast and break things" is terrible advice for anything that touches money, health, or safety.&lt;/p&gt;

&lt;p&gt;In six years building product in auto-finance, the discipline that mattered most wasn't speed. It was: prove it's safe before you ship it, and build the proof into the system so it can't be skipped.&lt;/p&gt;

&lt;p&gt;When I build AI products now, I use the same rule. Every new capability ships turned off by default. It only gets turned on after it passes a gate that proves it didn't break the thing that already worked. Not "I think it's fine", a measured, automated check that fails loudly if I'm wrong.&lt;/p&gt;

&lt;p&gt;It feels slower. It's actually faster, because you never spend three weeks debugging a regression you shipped a month ago and forgot about.&lt;/p&gt;

&lt;p&gt;Guardrails aren't the opposite of velocity. They're what lets you go fast without being reckless.&lt;/p&gt;

&lt;h1&gt;
  
  
  Leadership #ProductManagement #AI
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>softwareengineering</category>
      <category>testing</category>
    </item>
    <item>
      <title>Post 3 - Building AI You Can Trust</title>
      <dc:creator>Neeraj Yadav</dc:creator>
      <pubDate>Fri, 10 Jul 2026 14:57:08 +0000</pubDate>
      <link>https://dev.to/yadu989/post-3-building-ai-you-can-trust-4352</link>
      <guid>https://dev.to/yadu989/post-3-building-ai-you-can-trust-4352</guid>
      <description>&lt;p&gt;Here's a problem that sounds simple and isn't:&lt;br&gt;
Your AI coding assistant learned last month that your service runs on port 8000. Yesterday you changed it to 8080. Today you ask it about the port.&lt;/p&gt;

&lt;p&gt;A normal retrieval system stores both facts. They look almost identical to it - one word different. When you ask, it retrieves both and has no idea which one is current. So it either guesses or confidently gives you the old answer.&lt;/p&gt;

&lt;p&gt;This is the thing I've been working on: memory for AI that knows which facts are still true, not just which ones are similar. It turns out "similar" and "current" are completely different problems, and almost everyone conflates them.&lt;/p&gt;

&lt;p&gt;I'll go deeper on the how in future posts. For now: this single blind spot is behind a huge amount of "why did the AI confidently tell me something outdated."&lt;/p&gt;

&lt;p&gt;Has an AI assistant ever given you a confidently wrong answer that used to be right?&lt;/p&gt;

&lt;h1&gt;
  
  
  AI #MachineLearning #BuildInPublic
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>python</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Not many know which part of the process needs AI!</title>
      <dc:creator>Neeraj Yadav</dc:creator>
      <pubDate>Fri, 03 Jul 2026 21:48:12 +0000</pubDate>
      <link>https://dev.to/yadu989/ai-context-and-memory-management-chapter-2-3ihn</link>
      <guid>https://dev.to/yadu989/ai-context-and-memory-management-chapter-2-3ihn</guid>
      <description>&lt;p&gt;A process that took 2–3 weeks and produced a 40-page document is the kind of thing everyone wants to "AI-ify."&lt;br&gt;
Here's what most people get wrong about it: they reach for the LLM first.&lt;/p&gt;

&lt;p&gt;In regulated lending, the LLM is the &lt;em&gt;last&lt;/em&gt; and &lt;em&gt;smallest&lt;/em&gt; part of the pipeline. The hard parts are: ingesting messy documents reliably, extracting data into a canonical model, validating and cross-reconciling it, and doing the actual financial calculations - and those calculations must be done in deterministic code, never by a language model that might quietly round a number wrong.&lt;/p&gt;

&lt;p&gt;The LLM drafts prose. Code does the math. A human owns the risk decision. That ordering isn't a limitation - under OSFI E-21 it's the only design that's allowed to exist.&lt;/p&gt;

&lt;p&gt;The teams that win with AI in banking aren't the ones using the biggest model. They're the ones who know which 10% of the problem the model should touch.&lt;/p&gt;

&lt;p&gt;Where have you seen an LLM used for something that should have been deterministic code?&lt;/p&gt;

&lt;h1&gt;
  
  
  FinancialServices #AI #Lending
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>MemStrata Beats RAG comprehensively on mutating code content - http://arxiv.org/abs/2606.26511</title>
      <dc:creator>Neeraj Yadav</dc:creator>
      <pubDate>Sat, 27 Jun 2026 04:54:18 +0000</pubDate>
      <link>https://dev.to/yadu989/memstrata-beats-rag-comprehensively-on-mutating-code-content-httparxivorgabs260626511-1md4</link>
      <guid>https://dev.to/yadu989/memstrata-beats-rag-comprehensively-on-mutating-code-content-httparxivorgabs260626511-1md4</guid>
      <description>&lt;p&gt;I've spent the last several months building an AI memory system on nights and weekends, and the most valuable thing I learned has nothing to do with AI.&lt;/p&gt;

&lt;p&gt;It's this: the moment you let what you hope is true override what you measured, you stop doing engineering and start doing marketing.&lt;/p&gt;

&lt;p&gt;I caught myself doing it more than once. I had a headline result I loved - and the data quietly didn't support it. I had a clever feature I'd already written up as the fix - and when I finally measured it, it made things 25% worse. Each time, the honest move was to kill the thing I was attached to.&lt;/p&gt;

&lt;p&gt;That's uncomfortable. It's also the only thing that makes a result trustworthy.&lt;/p&gt;

&lt;p&gt;I'm going to spend the next 90 days here writing about building AI you can actually trust - the failures included, because the failures are where the truth is. If you work in AI, in financial services, or you're building something hard on the side, I'd love for you to follow along.&lt;/p&gt;

&lt;p&gt;What's a result you were sure of that the data later overturned?&lt;/p&gt;

&lt;h1&gt;
  
  
  AI #ProductManagement #BuildInPublic
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>machinelearning</category>
      <category>software</category>
    </item>
  </channel>
</rss>
