<?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: Somay</title>
    <description>The latest articles on DEV Community by Somay (@casperday11).</description>
    <link>https://dev.to/casperday11</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%2F2572708%2F8811f790-c18b-4d14-bc95-458ef8859f7d.jpg</url>
      <title>DEV Community: Somay</title>
      <link>https://dev.to/casperday11</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/casperday11"/>
    <language>en</language>
    <item>
      <title>I know more than AI</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Fri, 11 Sep 2026 08:09:15 +0000</pubDate>
      <link>https://dev.to/casperday11/i-know-more-than-ai-2okj</link>
      <guid>https://dev.to/casperday11/i-know-more-than-ai-2okj</guid>
      <description>&lt;p&gt;I deleted a working function today.&lt;/p&gt;

&lt;p&gt;It ran. It was clean. It was better written than the version in my head. I deleted it because it solved the problem the way that problem is usually solved, and I am not building a usual thing.&lt;br&gt;
Press enter or click to view image in full size&lt;/p&gt;

&lt;p&gt;That sounds arrogant.&lt;/p&gt;

&lt;p&gt;AI knows more than me about almost everything you could name out loud. Syntax I’ve never touched. Tests I’d forget to write. The name of the algorithm I keep reinventing badly at one in the morning. Ask it anything with a documented answer and it beats me every time, without breathing hard.&lt;/p&gt;

&lt;p&gt;But people keep mistaking for intelligence. What it actually has is the most complete record ever assembled of what usually comes next. A billion people typed things on the internet, and it learned the shape of the average sentence, the average function, the average opinion about the average situation. It is the most well read thing in history and it has never once been in the room.&lt;/p&gt;

&lt;p&gt;I have been in the room.&lt;/p&gt;

&lt;p&gt;I know how you’re going to react to this sentence, because I know who reads me. I know which line gets forwarded to a friend and which one makes you close the tab. I didn’t look that up. I learned it by saying the wrong thing to real people and watching their faces change in real time, which is a training process with a much smaller dataset and a much higher cost per sample.&lt;/p&gt;

&lt;p&gt;And I know how the thing I’m building should be built, because I can see it, and it doesn’t exist yet, so there is nothing written about it anywhere. A model can remix everything that has been made. It cannot want something that hasn’t. Every suggestion it hands me is an argument for the world that already exists, voted on by everyone who already built there. Useful. Also the exact opposite of the job.&lt;/p&gt;

&lt;p&gt;Then there’s the last one, the one I don’t negotiate on. When the thing is mine, I don’t hand off the choosing. Not because the output would be worse. Sometimes it would be better. But the taste is the product. Strip out the thousand small decisions that only I would have made and you’re left with something that works and belongs to nobody. I didn’t start building to end up with that.&lt;/p&gt;

&lt;p&gt;Now the line I keep circling back to, the one that started all of this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI is only better than me at things I don’t know about.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sit with it for a second. Its advantage over me is exactly, precisely the size of my ignorance. Not one inch wider. Everywhere I’ve actually done the work, it’s a fast assistant with no opinions. Everywhere I haven’t, it’s a god.&lt;/p&gt;

&lt;p&gt;Which means the gap was never a fact about the machine. It’s a measurement of me.&lt;/p&gt;

&lt;p&gt;That should feel like a threat and it doesn’t. It’s the most motivating thing I’ve thought all year. The list of things it beats me at is just a to-do list. It doesn’t get smarter about my life, my users, my product, my room. I get less outsourced. Every subject I learn properly, all the way down to the floor, comes off the board permanently.&lt;/p&gt;

&lt;p&gt;It’ll be better than me tomorrow at more things than it is today. Fine. Those things are all sitting in the same pile, and the pile has a name, and the name is what I haven’t gotten to yet.&lt;/p&gt;

&lt;p&gt;So I deleted the function. I wrote a worse one. Slower, uglier, a stupid name I’ll regret in six months. It does one thing the correct version would never do, and that one thing is the entire reason the product exists.&lt;/p&gt;

&lt;p&gt;Nobody who uses it will know there was a cleaner version. No benchmark will catch it. No model would ever have suggested it.&lt;/p&gt;

&lt;p&gt;I know.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Looking for a UI/UX + Frontend co-founder</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Mon, 07 Sep 2026 13:59:02 +0000</pubDate>
      <link>https://dev.to/casperday11/looking-for-a-uiux-frontend-co-founder-h70</link>
      <guid>https://dev.to/casperday11/looking-for-a-uiux-frontend-co-founder-h70</guid>
      <description>&lt;p&gt;I'm building a B2B dev-tools currently a 2 person team, technical side is mine, and marketing side belongs to the other co founder. I need someone who can own the UI/UX and frontend from the ground up. Not ready to share specifics publicly yet, happy to walk you through it once we're talking.&lt;/p&gt;

&lt;p&gt;What I'm looking for:&lt;/p&gt;

&lt;p&gt;Strong product/UI design sense, not just visual polish, actual thinking about flows and usability&lt;br&gt;
Solid frontend chops (React/Next.js or similar, your call on stack)&lt;br&gt;
Bonus if you've designed for developer tools or B2B SaaS before&lt;/p&gt;

&lt;p&gt;What's already real: architecture is designed, technical build is in progress, applying to accelerators this cycle. This isn't a "help me with an idea I haven't started" ask.&lt;/p&gt;

&lt;p&gt;If you want to build something real and own how it looks and feels end to end, email me: &lt;a href="mailto:somaykousis@gmail.com"&gt;somaykousis@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>design</category>
      <category>ui</category>
      <category>ux</category>
    </item>
    <item>
      <title>I'm not hiring a co-founder. I'm looking for one to build with.</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Fri, 04 Sep 2026 18:37:27 +0000</pubDate>
      <link>https://dev.to/casperday11/im-not-hiring-a-co-founder-im-looking-for-one-to-build-with-pji</link>
      <guid>https://dev.to/casperday11/im-not-hiring-a-co-founder-im-looking-for-one-to-build-with-pji</guid>
      <description>&lt;p&gt;I had this idea recently, and I've moved on it fast: the competitive landscape actually checked — not assumed — and it turns out nobody's doing the specific thing I'm building, and the architecture designed down to how it captures data and stores relationships. It's real, and it's moving. What's missing isn't more of what I already do.&lt;/p&gt;

&lt;p&gt;I'm not going to pitch the product here. If this is for you, the product isn't the reason you'll say yes anyway.&lt;/p&gt;

&lt;p&gt;Here's what I'm actually looking for.&lt;/p&gt;

&lt;p&gt;Someone who can turn a real thing into a story people want to be part of. I can build the system. I cannot make a stranger care about it in four seconds of scrolling, and I've stopped pretending that's a skill I'll pick up by wanting it hard enough. I need someone who already thinks in audience, in narrative, in why-this-why-now — someone who's built a following or a community or a following-shaped thing before, even a small one, and knows what made it move.&lt;/p&gt;

&lt;p&gt;Someone who wants a real partnership, not a role. This is a co-founder search, not a job posting. That means equity, that means your name on it, that means the downside is real and so is the upside. I'm looking for someone who wants to be building their company, not helping with mine.&lt;/p&gt;

&lt;p&gt;Someone who believes people come before money, and means it operationally, not as a value on a slide. That's the actual filter. Growth tactics are teachable. That instinct isn't.&lt;/p&gt;

&lt;p&gt;Someone currently free to actually do this. Not "interested for later." Free now, or close to it.&lt;/p&gt;

&lt;p&gt;I'm a technical founder — I build the hard infrastructure, the systems most people won't touch, and I do it well. I'm not looking for someone to fill a gap in engineering. I'm looking for the other half of a two-person company, the person who owns everything I don't: the story, the audience, the reason strangers become the first hundred people who care.&lt;/p&gt;

&lt;p&gt;If you read this and thought "that's the thing I'm actually good at" — reach out. I'd rather have one real conversation than a hundred polite ones.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>code</category>
    </item>
    <item>
      <title>The safety layer that had never run</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Mon, 31 Aug 2026 23:42:31 +0000</pubDate>
      <link>https://dev.to/casperday11/the-safety-layer-that-had-never-run-27n1</link>
      <guid>https://dev.to/casperday11/the-safety-layer-that-had-never-run-27n1</guid>
      <description>&lt;p&gt;I spent a week building a system whose entire argument is that an AI agent cannot&lt;br&gt;
spend more than you authorised. Then, four days in, I found that the most novel&lt;br&gt;
part of it had never executed. Not once.&lt;/p&gt;
&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;Pocket Change gives AI agents bounded, auditable spending authority. You sign one&lt;br&gt;
ceiling. A task decomposes into as many agents as it takes — 121 in one run — and&lt;br&gt;
each one is handed a Biscuit capability token strictly narrower than its parent's.&lt;br&gt;
Blocks are appended, never removed, so budget, tools and expiry all narrow together.&lt;br&gt;
Raising any of them would mean forging a signature.&lt;/p&gt;

&lt;p&gt;The idea I was proudest of is a separation. When a task says "find the best price",&lt;br&gt;
something has to read pages written by sellers, which is where prompt injection&lt;br&gt;
arrives. So the agent that reads the web holds &lt;code&gt;search&lt;/code&gt; and a budget of &lt;strong&gt;zero&lt;/strong&gt;.&lt;br&gt;
The agent that pays holds &lt;code&gt;pay&lt;/code&gt; and cannot search.&lt;/p&gt;

&lt;p&gt;And crucially, the looker is not the payer's &lt;em&gt;child&lt;/em&gt;. It's the payer's &lt;em&gt;sibling&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;That word carries the design. Attenuation is monotonic — a child holds a subset of&lt;br&gt;
its parent — so hanging the searcher below the payer forces the payer to hold&lt;br&gt;
&lt;code&gt;search&lt;/code&gt; for its own child to inherit it. That puts "reads hostile text" and "can&lt;br&gt;
spend money" in the same token. I got this wrong once and shipped it, then fixed it&lt;br&gt;
and wrote a test.&lt;/p&gt;
&lt;h2&gt;
  
  
  The bug I could not have found by reading code
&lt;/h2&gt;

&lt;p&gt;Days later I ran a real query, asked for the best price, and looked at what actually&lt;br&gt;
happened. Every leaf had paid from the internasearched.&lt;/p&gt;

&lt;p&gt;Two bugs, stacked, each individually invisible&lt;/p&gt;

&lt;p&gt;First: sourcing reached the funnel only inside person's&lt;br&gt;
answer was folded into prose — "find the best source; searching is allowed" — and&lt;br&gt;
the root node was constructed at the default, ing model&lt;br&gt;
read the sentence. The enforcement layer never saw it.&lt;/p&gt;

&lt;p&gt;Second: the decomposer's output schema defaulted &lt;code&gt;sourcing&lt;/code&gt; to &lt;code&gt;"catalogue"&lt;/code&gt;. In the&lt;br&gt;
funnel, inheritance was &lt;code&gt;sub.sourcing or node.ue"&lt;/code&gt; is&lt;br&gt;
truthy. So every child &lt;em&gt;declared&lt;/em&gt; a sourcing, and an explicit value beats&lt;br&gt;
inheritance. A person's instruction reached thhing below it.&lt;/p&gt;

&lt;p&gt;The mechanism I considered the intellectual cone I'd have&lt;br&gt;
described first in any interview — had never run under the real decomposer. It only&lt;br&gt;
ever appeared under a hardcoded fallback decomis configured.&lt;/p&gt;
&lt;h2&gt;
  
  
  The fix, and what it taught me
&lt;/h2&gt;

&lt;p&gt;Sourcing now travels as data, and follows the&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;EXPOSURE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;catalogue&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;specific&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;best&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;   &lt;span class="c1"&gt;# seller-written text
&lt;/span&gt;
&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="n"&gt;sub&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="n"&gt;inherits&lt;/span&gt; &lt;span class="n"&gt;its&lt;/span&gt; &lt;span class="n"&gt;parent&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s sourcing, may narrow it, and cannot widen
it. The untrusted decomposer can no longer walweb on its
own. Same monotonic principle, applied to the other axis of authority.

The second thing that wasn&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="n"&gt;true&lt;/span&gt;

&lt;span class="n"&gt;While&lt;/span&gt; &lt;span class="n"&gt;fixing&lt;/span&gt; &lt;span class="n"&gt;that&lt;/span&gt; &lt;span class="n"&gt;I&lt;/span&gt; &lt;span class="n"&gt;checked&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;audit&lt;/span&gt; &lt;span class="n"&gt;trail&lt;/span&gt; &lt;span class="n"&gt;on&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;run&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;no&lt;/span&gt; &lt;span class="n"&gt;API&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="n"&gt;configured&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;monitor&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;allow&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;monitor_reason&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;monitor not configured&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;monitor_ms&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.094&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With no key, the monitor falls back to a stand-in that allows everything. That is&lt;br&gt;
the right failure — enforcement has already pamust not&lt;br&gt;
block every payment. What was wrong was recording it as allow. A run with no&lt;br&gt;
second layer read exactly like one that had pasole&lt;br&gt;
checkbox saying the monitor was on.&lt;/p&gt;

&lt;p&gt;An absent monitor is not a lenient monitor. It's an absent one. The audit now writes&lt;br&gt;
monitor: unconfigured with monitor_ran: false,ws not&lt;br&gt;
judged, and GET /status reports which layers are actually live.&lt;/p&gt;

&lt;p&gt;What I'd tell anyone building agent infrastructure&lt;/p&gt;

&lt;p&gt;Your tests can pass while the mechanism is dead. Mine did. 399 of them. Every&lt;br&gt;
one exercised the funnel with a scripted decomin the seam&lt;br&gt;
between the real decomposer's schema and the funnel's inheritance rule. Nothing on&lt;br&gt;
either side of that seam was wrong on its own.&lt;/p&gt;

&lt;p&gt;Instrument the thing you're proudest of. I fouhing&lt;br&gt;
events on a live run and getting zero. Not by reading code — I'd read that code&lt;br&gt;
many times.&lt;/p&gt;

&lt;p&gt;A system that can't say what it did isn't trus&lt;br&gt;
cryptography. The strongest thing in this project isn't the token chain. It's that&lt;br&gt;
the audit trail will tell you a payment was ne&lt;/p&gt;




&lt;p&gt;I created this post for the purposes of enteri Hackathon.&lt;br&gt;
Pocket Change is open source: &lt;a href="https://github.com/Somay-kousis/Pocket-Change" rel="noopener noreferrer"&gt;https://github.com/Somay-kousis/Pocket-Change&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You sign one ceiling. The task splits into a tolding a&lt;br&gt;
capability token cryptographically narrower than its parent's. No agent below can&lt;br&gt;
widen what you signed — raising the cap would&lt;/p&gt;

&lt;p&gt;The part I like most: the agent that reads seof ₹0 and&lt;br&gt;
cannot pay. The agent that pays cannot search. They're siblings, not parent and&lt;br&gt;
child — because a child inherits from its parxt" must&lt;br&gt;
never share a token with "can spend money".&lt;/p&gt;

&lt;p&gt;Then a critic reads the plan before any authority is minted. On one run it refused&lt;br&gt;
a branch that every arithmetic bound had passhorized&lt;br&gt;
purpose of furnishing the new engineering office."&lt;/p&gt;

&lt;p&gt;The money was correct. The plan had drifted.&lt;/p&gt;

&lt;p&gt;399 tests, all offline. Gemini 3.5 Flash on Vertex AI, Cloud Run, Firestore.&lt;/p&gt;

</description>
      <category>allthingsagentichackathon</category>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Building for the Real World: What Winning an International Ideathon Taught Me</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Wed, 19 Aug 2026 13:17:27 +0000</pubDate>
      <link>https://dev.to/casperday11/building-for-the-real-world-what-winning-an-international-ideathon-taught-me-4p6f</link>
      <guid>https://dev.to/casperday11/building-for-the-real-world-what-winning-an-international-ideathon-taught-me-4p6f</guid>
      <description>&lt;p&gt;A few days ago, I made an international team for the &lt;strong&gt;Egoist Machines, Inc. (YC S26) International Ideathon&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We ended up winning the &lt;strong&gt;AI Passport Ideathon — For Work Winner&lt;/strong&gt; with our idea, &lt;strong&gt;Fair Launch&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And honestly, the win was great.&lt;/p&gt;

&lt;p&gt;But the part I found more interesting was everything that happened while building it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The idea
&lt;/h2&gt;

&lt;p&gt;Fair Launch started with a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens when we stop treating AI products as purely technical problems and start treating them as business problems too?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is very easy to build something that technically works.&lt;/p&gt;

&lt;p&gt;It is much harder to build something that works &lt;strong&gt;within the constraints of an actual business, for an actual customer, with an actual reason to exist.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That distinction shaped a lot of our thinking.&lt;/p&gt;

&lt;p&gt;Instead of starting with &lt;em&gt;"What cool AI system can we build?"&lt;/em&gt;, we kept coming back to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who is actually going to use this?&lt;/li&gt;
&lt;li&gt;What problem are we solving for them?&lt;/li&gt;
&lt;li&gt;What constraints does the business have?&lt;/li&gt;
&lt;li&gt;Where does AI genuinely add value?&lt;/li&gt;
&lt;li&gt;What would make someone actually adopt this?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That changed how I approached the technical side of the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technology is only half the problem
&lt;/h2&gt;

&lt;p&gt;One thing I've increasingly realized while working on AI projects is that technical complexity can be misleading.&lt;/p&gt;

&lt;p&gt;You can have an impressive architecture, sophisticated models, agents, RAG pipelines, evaluations, and all the terminology that comes with modern AI.&lt;/p&gt;

&lt;p&gt;But none of that matters if the end user doesn't get meaningful value from the product.&lt;/p&gt;

&lt;p&gt;The hardest part isn't always making the system work.&lt;/p&gt;

&lt;p&gt;Sometimes it's figuring out &lt;strong&gt;what should be built in the first place.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For this project, we had to continuously balance the technical solution against the business constraints and the experience we wanted to create.&lt;/p&gt;

&lt;p&gt;That was probably my favorite part of the ideathon.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building across countries
&lt;/h2&gt;

&lt;p&gt;Our team was spread across different countries:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Giannis Davarinos, Irini Hartzi, Katie Wan, and me.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Despite that, the collaboration felt surprisingly seamless.&lt;/p&gt;

&lt;p&gt;Different backgrounds, different perspectives, different working environments — but very little friction when it came to actually building and making decisions.&lt;/p&gt;

&lt;p&gt;That was another takeaway for me.&lt;/p&gt;

&lt;p&gt;A strong team doesn't necessarily need everyone to think the same way.&lt;/p&gt;

&lt;p&gt;It needs everyone to be able to &lt;strong&gt;move toward the same outcome.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And I genuinely enjoyed working with this team.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I took away
&lt;/h2&gt;

&lt;p&gt;This ideathon reinforced something I want to keep applying to the projects I build:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't build technology in isolation from the problem.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The technical solution should exist because there is a real problem, a real user, and a real constraint worth solving.&lt;/p&gt;

&lt;p&gt;Especially with AI becoming easier to prototype, I think this distinction is becoming even more important.&lt;/p&gt;

&lt;p&gt;When everyone can build a demo, the interesting question becomes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can you build something that deserves to exist?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the direction I want to keep exploring — right where &lt;strong&gt;human intelligence, technology, and real-world constraints&lt;/strong&gt; meet.&lt;/p&gt;

&lt;p&gt;And, of course, winning an international ideathon with this team was a pretty good way to learn that lesson.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fair Launch — Winner, AI Passport Ideathon: For Work&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A huge thank you to the team for making the week what it was.&lt;/p&gt;

&lt;p&gt;I would genuinely love to build with all of you again.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>The "1 Million Token" Trap: Why I Built a Bi-Temporal Memory Engine for AI Agents</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Tue, 18 Aug 2026 10:12:21 +0000</pubDate>
      <link>https://dev.to/casperday11/the-1-million-token-trap-why-i-built-a-bi-temporal-memory-engine-for-ai-agents-11pl</link>
      <guid>https://dev.to/casperday11/the-1-million-token-trap-why-i-built-a-bi-temporal-memory-engine-for-ai-agents-11pl</guid>
      <description>&lt;p&gt;Every team building AI agents right now faces the exact same wall: &lt;strong&gt;Context Degradation&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;The industry is currently obsessed with massive context windows. We hear about 1-million or 2-million token limits and assume the "memory problem" is solved. But there is a fatal difference between &lt;em&gt;how much data&lt;/em&gt; an LLM can hold and &lt;em&gt;how well&lt;/em&gt; it processes that data. &lt;/p&gt;

&lt;p&gt;Shoving 50 dense research papers into a standard vector database doesn't give an AI better memory—it creates a noisy, contradictory mess where old facts either get permanently overwritten or blindly appended, causing the agent to hallucinate.&lt;/p&gt;

&lt;p&gt;I realized that for complex, autonomous AI, memory cannot just be a bolted-on vector database. &lt;strong&gt;Memory has to be the product itself.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;To solve this, I built &lt;strong&gt;PaperPlanes&lt;/strong&gt;—a stateful research assistant built on a bi-temporal memory layer. Here is a deep dive into the architecture and how I handled concurrent AI memory.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏗️ The Architecture: Synthesizing 6 Research Papers
&lt;/h2&gt;

&lt;p&gt;Instead of building another simple RAG pipeline, I synthesized the memory architectures of 6 groundbreaking academic papers (including Zep, Mem0, A-MEM, and Letta) and engineered them into a single production engine.&lt;/p&gt;

&lt;p&gt;My core stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Database:&lt;/strong&gt; CockroachDB &lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;AI Models:&lt;/strong&gt; AWS Bedrock (Amazon Nova Pro &amp;amp; Titan Embeddings)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Agent Logic:&lt;/strong&gt; LangGraph &amp;amp; FastAPI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here are the three engineering pillars that make it work:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Bi-Temporal Solution
&lt;/h3&gt;

&lt;p&gt;Most vector databases blindly append or overwrite data. If Paper A says &lt;em&gt;X&lt;/em&gt;, and Paper B says &lt;em&gt;Y&lt;/em&gt;, standard AI breaks. &lt;/p&gt;

&lt;p&gt;PaperPlanes uses a bi-temporal schema in CockroachDB. I &lt;strong&gt;never &lt;code&gt;DELETE&lt;/code&gt; knowledge&lt;/strong&gt;. When facts contradict across different research papers, the engine flags both facts as &lt;code&gt;disputed&lt;/code&gt;, holding the tension. Because CockroachDB tracks system time, I built a UI slider that uses &lt;code&gt;AS OF SYSTEM TIME&lt;/code&gt; queries. You can literally drag a slider back in time to see exactly what the AI believed last week before it learned new, conflicting information.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Agent Self-Introspection via MCP
&lt;/h3&gt;

&lt;p&gt;The AI does not just blindly read vectors. I equipped the Amazon Nova agent with a &lt;strong&gt;CockroachDB Managed MCP Server&lt;/strong&gt; tool. This allows the agent to dynamically write read-only SQL queries against its own database schema to introspect its own memory state and metadata.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Zero Data Loss Under Extreme Concurrency
&lt;/h3&gt;

&lt;p&gt;When you have background reflection workers, ingestion pipelines, and active chat agents trying to write to memory simultaneously, standard databases drop writes or cause race conditions. &lt;/p&gt;

&lt;p&gt;By leveraging CockroachDB's &lt;code&gt;SERIALIZABLE&lt;/code&gt; isolation and C-SPANN distributed vector indexing, I stress-tested the engine by running 25 concurrent agent writers against a single memory node. The result? 58 transaction collisions were detected, gracefully auto-retried in the background, and I achieved &lt;strong&gt;0 lost writes&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Ebbinghaus Memory Decay
&lt;/h2&gt;

&lt;p&gt;I also learned that advanced retrieval isn't just about cosine similarity; it requires algorithmic decay. I successfully implemented an Ebbinghaus decay algorithm into my LangGraph retrieval logic:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;R = e^(-t/S)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Retention (&lt;code&gt;R&lt;/code&gt;) decays over time (&lt;code&gt;t&lt;/code&gt;) unless the memory strength (&lt;code&gt;S&lt;/code&gt;) is reinforced by frequent agent access. If the AI doesn't think about a fact, it fades. If it recalls it, the memory strengthens and persists.&lt;/p&gt;




&lt;p&gt;I just submitted PaperPlanes for the CockroachDB × AWS Hackathon. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;GitHub Repo:&lt;/strong&gt; &lt;a href="https://github.com/Somay-kousis/PaperPlanes" rel="noopener noreferrer"&gt;Somay-kousis/PaperPlanes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'd love to hear from other engineers in the comments: How is your team handling context degradation and long-term memory for your AI agents? Are you building custom memory layers, or relying entirely on massive context windows?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>machinelearning</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Looking for people to build hackathon projects with, including people still learning to code</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Mon, 10 Aug 2026 08:33:05 +0000</pubDate>
      <link>https://dev.to/casperday11/looking-for-people-to-build-hackathon-projects-with-including-people-still-learning-to-code-1njo</link>
      <guid>https://dev.to/casperday11/looking-for-people-to-build-hackathon-projects-with-including-people-still-learning-to-code-1njo</guid>
      <description>&lt;p&gt;There's a hackathon almost every week right now, agentic AI, open source, AI infra, all of it. I want to enter more of them, and I want to build the team differently than most people do.&lt;/p&gt;

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

&lt;p&gt;I'm a computer science undergrad working as an AI Systems Engineer Intern at RYSE Technologies, where I built the main orchestrator agent that routes tasks across a registry of 3,000+ specialized subagents through intent classification, capability scoring, context assembly, and dispatch. That cut misrouted tasks by roughly 40% and brought dispatch latency to around 120ms.&lt;/p&gt;

&lt;p&gt;Outside of that, I've built three agentic AI systems, all open source:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RabbitHole&lt;/strong&gt;, a multi-agent "courtroom" system on LangGraph that runs adversarial debate personas. I fixed a token-budget overrun where agents were blowing 3 to 4x past budget per round with no shared memory, just prompts. Moving the constraint into a structured state schema cut latency 50% (19.8s to 9.8s) and input tokens 70%, measured in LangSmith.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PaperPlanes&lt;/strong&gt;, an agentic memory engine for research papers on CockroachDB, with bi-temporal fact versioning and contradiction detection. It survives a live database crash mid-conversation and keeps 25 of 25 writes under concurrent contention, where a flat-file approach kept 1 and silently lost 24.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Co-Founder Memory&lt;/strong&gt;, a 19-node LangGraph system with a self-correcting CRAG/SRAG retrieval loop and a daily cron pipeline for long-term personal context.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I'm looking for
&lt;/h2&gt;

&lt;p&gt;People who can code and want to get better at it fast, especially if you're still early in your learning curve. Here's how I want this to work:&lt;/p&gt;

&lt;p&gt;You build the base layout and the parts you're comfortable with. When you get stuck, I help you work through it instead of just handing you the answer. When something is genuinely hard, the kind of bug that eats a whole night, I'll write that part myself so the project actually ships. You leave with a shipped, working project and real code review, not just a participation certificate.&lt;/p&gt;

&lt;p&gt;This isn't me disappearing after kickoff and expecting a finished product back. I'm building alongside you. The RabbitHole fix above is the kind of problem I'm good at catching early, before it burns your weekend.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I need from you
&lt;/h2&gt;

&lt;p&gt;Someone who can actually write code, even if you're not confident in it yet, and who can commit to a real weekend, not just the idea-pitch phase. If you've got a hackathon on your radar and want a team, or you want to build toward one together, reply here or DM me.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>startup</category>
      <category>architecture</category>
      <category>agents</category>
    </item>
    <item>
      <title>An Idea or A company?</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Fri, 31 Jul 2026 13:13:07 +0000</pubDate>
      <link>https://dev.to/casperday11/an-idea-or-a-company-2api</link>
      <guid>https://dev.to/casperday11/an-idea-or-a-company-2api</guid>
      <description>&lt;p&gt;There's a specific kind of gap between "I have an idea" and "I have something an investor would call a company," and almost nobody talks about how wide it actually is. &lt;/p&gt;

&lt;p&gt;You know your product. You don't know that a TAM without a cited source reads as an instant credibility flag, or that "SAM" and "SOM" mean different things to different investors, or that a cap table question at the wrong s&lt;br&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%2F8q2fes57fxjewzrxlggm.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%2F8q2fes57fxjewzrxlggm.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;tage can stall a conversation that was otherwise going well. &lt;/p&gt;

&lt;p&gt;None of this is written down in one place for a first-time founder. It's tribal knowledge, passed around accelerator cohorts and Twitter threads, assembled by osmosis if you're lucky enough to be near people who already know it. &lt;/p&gt;

&lt;p&gt;If you're not, if you're a student, or building somewhere without a dense founder network, you're translating your own idea into a language you're learning in real time, usually under the exact conditions (a fast-approaching pitch, a warm intro that won't wait) where getting it wrong costs you the most.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>startup</category>
      <category>architecture</category>
      <category>agents</category>
    </item>
    <item>
      <title>What I Learned Building an AI Agent Whose Only Goal Is to Disagree With You</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Thu, 09 Jul 2026 09:50:23 +0000</pubDate>
      <link>https://dev.to/casperday11/what-i-learned-building-an-ai-agent-whose-only-goal-is-to-disagree-with-you-16hg</link>
      <guid>https://dev.to/casperday11/what-i-learned-building-an-ai-agent-whose-only-goal-is-to-disagree-with-you-16hg</guid>
      <description>&lt;p&gt;We just opened the waitlist for Something, and the part that surprised me most while building it wasn't the multi-agent orchestration — it was how hard it is to make an AI actually disagree.&lt;/p&gt;

&lt;p&gt;Every model we tested defaults to being helpful, which in practice means agreeable. Even when explicitly prompted to "find flaws," the outputs would soften into "here are some considerations" instead of a real critique. We had to engineer around this specifically:&lt;/p&gt;

&lt;p&gt;Separate system prompts with opposing reward framing — one agent optimizes for identifying growth potential, the other is explicitly told its only success metric is surfacing a disqualifying flaw&lt;br&gt;
Structured output forcing a verdict, not a summary — the skeptic agent (Nothing) has to commit to a specific weakness category (unit economics, timing, technical feasibility) rather than hedging across all of them&lt;/p&gt;

&lt;p&gt;A reconciliation step where both outputs get merged into one conviction score, so the founder isn't just reading two contradictory paragraphs&lt;/p&gt;

&lt;p&gt;If anyone's built adversarial agent setups and hit the same "it just wants to agree with me" problem, curious how you solved it.&lt;/p&gt;

&lt;p&gt;[Everyone who has a brain is a founder here]&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://something-waitlist.vercel.app" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;something-waitlist.vercel.app&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>ai</category>
      <category>startup</category>
      <category>founder</category>
      <category>mentalhealth</category>
    </item>
    <item>
      <title>Building an AI System Designed to Argue Against You: The Architecture Behind Something</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Wed, 08 Jul 2026 09:55:24 +0000</pubDate>
      <link>https://dev.to/casperday11/building-an-ai-system-designed-to-argue-against-you-the-architecture-behind-something-2039</link>
      <guid>https://dev.to/casperday11/building-an-ai-system-designed-to-argue-against-you-the-architecture-behind-something-2039</guid>
      <description>&lt;p&gt;My co-founder Prapti and I just opened the waitlist for Something, a founder/investor matching platform — but I wanted to write for this audience specifically about the technical part, since that's usually more interesting here than the pitch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The core problem with most AI feedback tools:&lt;/strong&gt; they're sycophantic by default. Optimized for engagement, which nudges toward validation. We wanted the opposite for the moment someone's deciding whether a startup idea is worth building.&lt;/p&gt;

&lt;p&gt;So before any idea on the platform goes public, it runs through an adversarial multi-agent pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One agent argues the strongest possible case for the idea&lt;/li&gt;
&lt;li&gt;A second agent — we call it &lt;strong&gt;Nothing&lt;/strong&gt; — is specifically rewarded for surfacing flaws: weak unit economics, bad market timing, technical infeasibility&lt;/li&gt;
&lt;li&gt;Output is a structured critique + conviction score, not a vague "looks promising!"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of the architecture decisions behind it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-agent orchestration&lt;/strong&gt; (LangGraph) instead of a single-prompt approach — lets the optimist and skeptic reason independently before reconciling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid retrieval&lt;/strong&gt; (dense + sparse) to ground critiques in real market data instead of hallucinated reasoning&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost-aware model routing&lt;/strong&gt; across providers — routes to cheaper/faster models where the task doesn't need frontier reasoning, keeps inference costs sane at scale&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once an idea survives review and the founder has actual proof of work (repo, pilot, patent, live demo — no slide decks), it gets matched to investors based on their real deployment history instead of cold outreach.&lt;/p&gt;

&lt;p&gt;Waitlist's open if you want to poke at it: &lt;a href="https://something-waitlist.vercel.app" rel="noopener noreferrer"&gt;https://something-waitlist.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy to go deeper on any part of the architecture in the comments — genuinely want pushback if something sounds off.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>startup</category>
      <category>productivity</category>
      <category>reviews</category>
    </item>
    <item>
      <title>Building RabbitHole broke my brain a little (in a good way)</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Thu, 02 Jul 2026 16:53:29 +0000</pubDate>
      <link>https://dev.to/casperday11/building-rabbithole-broke-my-brain-a-little-in-a-good-way-3k8h</link>
      <guid>https://dev.to/casperday11/building-rabbithole-broke-my-brain-a-little-in-a-good-way-3k8h</guid>
      <description>&lt;p&gt;ok so i've been sitting on this project for weeks now and finally the courtroom actually WORKS end to end so lemme just dump everything about it while it's fresh.&lt;/p&gt;

&lt;p&gt;RabbitHole is this multi agent thing built on LangGraph where instead of asking one LLM "hey what's the answer" and getting one confident paragraph back, i make a bunch of agent personas actually argue about it. like a state advocate vs a privacy activist vs a compliance officer, all pulling from the same retrieved docs but arguing completely different sides, cross examining each other, and then a judiciary node has to actually rule on it with a confidence score.&lt;/p&gt;

&lt;p&gt;why. because normal RAG flattens everything. you ask something with no clean answer (legal stuff, policy tradeoffs, anything genuinely contested) and it still hands you ONE tidy paragraph like the question wasn't messy in the first place. that always bugged me. the messiness is the point sometimes&lt;/p&gt;

&lt;p&gt;not deployed yet btw, that's purely a money thing not a "not ready" thing, will get to that&lt;/p&gt;

&lt;h2&gt;
  
  
  it's actually two graphs
&lt;/h2&gt;

&lt;p&gt;people ask me if it's one big graph and no, there's the outer Courtroom graph (refines your query, calls into RAG, moderator picks who debates, runs the debate in parallel, then stops and waits for you to weigh in before concluding) and then nested INSIDE that is a whole separate RAG sub-graph doing its own thing.&lt;/p&gt;

&lt;p&gt;the RAG part alone has more going on than i expected when i started. hybrid search (pinecone dense + BM25 sparse bc keyword matches on legal citations matter a lot, semantic search alone misses those), jina reranker to cut noise, and then a CRAG loop — grader checks if the retrieved docs are actually decent, if not it falls back to web search instead of just yolo-ing with bad context. then on top of THAT theres a self-RAG hallucination check where the final brief gets audited against the raw source before it's even allowed to leave the subgraph.&lt;/p&gt;

&lt;p&gt;splitting it into two graphs instead of one flat pipeline was honestly one of the better calls i made, purely bc when a verdict came out wrong i could isolate — was that bad retrieval or bad arguing. saved me so much debugging time lol&lt;/p&gt;

&lt;h2&gt;
  
  
  ok the bug that actually annoyed me the most
&lt;/h2&gt;

&lt;p&gt;so early version, i'd ask for 2 perspectives and get like 6-8 back. system prompt literally said "use exactly 2 perspectives" in caps even lol and the model just. didn't listen. and under any real load this meant burning through groq's rate limit almost instantly, which was NOT fun to watch happen live&lt;/p&gt;

&lt;p&gt;took me way too long to realize the fix isn't a better prompt, the fix is not trusting the prompt for this at all. moved the constraint into the state schema itself — moderator node reads a typed field for perspective count straight off state and only ever schedules that many nodes. the LLM literally never gets asked to count, the graph topology just doesn't let it&lt;/p&gt;

&lt;p&gt;anyway that's the takeaway i keep repeating to myself now — if something is structural, encode it structurally, don't beg the model to behave&lt;/p&gt;

&lt;h2&gt;
  
  
  rate limits basically designed half the architecture
&lt;/h2&gt;

&lt;p&gt;groq free tier is 30 req/min, 6000 tokens/min on the good models. a courtroom debate running perspectives in parallel eats that in seconds, no exaggeration. so i built this FallbackChatModel wrapper thing that catches 429s and connection errors and just fails over — cerebras to groq to gemini — without the graph state even noticing anything went wrong.&lt;/p&gt;

&lt;p&gt;also at startup it checks whatever keys you actually have in .env and figures out routing order itself for heavy vs lite tasks. and the routing itself matters too, not just failover — structured synthesis (the actual arguments, the verdict) goes to the heavier model, llama 3.3 70b or gemini 1.5 pro, but boring boolean stuff like "is this doc relevant y/n" goes to a lite model, llama 3.1 8b or gemini flash. kept most node calls off the expensive quota entirely&lt;/p&gt;

&lt;h2&gt;
  
  
  latency thing that actually made me go woahhh
&lt;/h2&gt;

&lt;p&gt;19.8s down to 9.8s. ~51% cut and honestly it came from like two changes only&lt;/p&gt;

&lt;p&gt;running the perspective nodes concurrently with langgraph's async scheduler instead of one by one (should've done this from day 1 tbh), and reranking with jina before synthesis so the context going into the heavy models is smaller — which speeds up inference AND cuts token cost, kind of a two for one&lt;/p&gt;

&lt;p&gt;nothing exotic here is the thing. the wins were architectural not "swap in a better model"&lt;/p&gt;

&lt;h2&gt;
  
  
  why not deployed
&lt;/h2&gt;

&lt;p&gt;plws don't come at me for this lol — hosting a multi provider multi agent graph with a pinecone index and reranker calls running 24/7 is not free, and i'd rather wait till i can actually afford to keep it alive than ship it and watch it die in a month. everything runs locally and via docker compose right now, &lt;code&gt;docker-compose up --build&lt;/code&gt; gets you fastapi backend + react frontend behind nginx in one go. it's a "when" not an "if"&lt;/p&gt;

&lt;h2&gt;
  
  
  whats next
&lt;/h2&gt;

&lt;p&gt;now that the pipeline actually runs i wanna instrument it properly. order is: per-node cost tracing in langsmith first (rn i can tell a run was expensive but not WHICH node did it, driving me insane), then RAGAS eval on the live pipeline so i'm measuring quality instead of just vibes-checking verdicts, then prompt caching, then model routing/cascades on top of what's already there&lt;/p&gt;

&lt;p&gt;repo's here if you wanna poke around: &lt;a href="https://github.com/Somay-kousis/RabbitHole" rel="noopener noreferrer"&gt;github.com/Somay-kousis/RabbitHole&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;happy to go deeper on any of this in a follow up if ppl want — the CRAG fallback, the state schema fix, the failover wrapper, whatever&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%2Ff66idv7z6lcbzoc5siwa.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%2Ff66idv7z6lcbzoc5siwa.jpeg" alt="UI/UX of Rabbithole" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>langgraph</category>
      <category>rag</category>
      <category>llm</category>
      <category>ai</category>
    </item>
    <item>
      <title>The Yes-Man Swap</title>
      <dc:creator>Somay</dc:creator>
      <pubDate>Sun, 28 Jun 2026 10:49:36 +0000</pubDate>
      <link>https://dev.to/casperday11/the-yes-man-swap-32gh</link>
      <guid>https://dev.to/casperday11/the-yes-man-swap-32gh</guid>
      <description>&lt;p&gt;You ask AI something. It answers. You skim it, nod, copy-paste it, move on to the next tab.&lt;/p&gt;

&lt;p&gt;Small moment. Happens fifty times a day. Nobody thinks twice about it.&lt;/p&gt;

&lt;p&gt;But somewhere in that skim-nod-paste move, the roles flipped. The AI did the thinking. You did the agreeing. Agreeing without checking used to be your job's failure mode, not your habit.&lt;/p&gt;

&lt;p&gt;We talk a lot about AI being too agreeable — the yes-man chatbot, the one that calls your bad idea genius because pushback might earn a thumbs-down. Fair complaint. Written about endlessly.&lt;/p&gt;

&lt;p&gt;what about? you read what it gave you, feel that little hit of relief at not having to think anymore, and say "yeah, this works." Not because it actually works. Because checking takes effort, and effort was the whole thing you came here to skip.&lt;/p&gt;

&lt;p&gt;That's not using a tool anymore. That's becoming one.&lt;/p&gt;

&lt;p&gt;The AI ran the logic, weighed the options, picked an answer. That's the part of the job that used to require a brain in the room. You just rubber-stamped it. So really — who was the human in that exchange? The one doing the reasoning, or the one doing the nodding?&lt;/p&gt;

&lt;p&gt;This isn't an anti-AI rant. AI being wrong sometimes is fine, expected even, that's what it is — a fast, confident, occasionally-wrong collaborator. The actual danger isn't the AI's mistake. It's your silence about it. A wrong answer that gets questioned is just a draft. A wrong answer that gets accepted is now load-bearing — under your work, your decision, your name.&lt;/p&gt;

&lt;p&gt;It feels good to skip the checking, that's the trap. Feels like trust. Feels efficient. Feels like you levelled up your workflow. It's not any of that. It's just abdication wearing a productivity costume.&lt;/p&gt;

&lt;p&gt;Using AI well isn't about typing the right prompt. It's about staying the one in the room who's still allowed to say "wait, no, that's wrong." Give that job away too, and you haven't gained a teammate — you've trained your own replacement to need zero supervision, including yours.&lt;/p&gt;

&lt;p&gt;Ask the question. Read the answer like you don't trust it yet. Then decide. That's the whole difference between using the tool and becoming one.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
