<?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: Albidev</title>
    <description>The latest articles on DEV Community by Albidev (@0albiere).</description>
    <link>https://dev.to/0albiere</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3787425%2Fdaef1cd4-fdb3-4488-817b-b9f4291c0908.jpeg</url>
      <title>DEV Community: Albidev</title>
      <link>https://dev.to/0albiere</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/0albiere"/>
    <language>en</language>
    <item>
      <title>Your User Count Is a Lie</title>
      <dc:creator>Albidev</dc:creator>
      <pubDate>Thu, 09 Apr 2026 14:55:09 +0000</pubDate>
      <link>https://dev.to/0albiere/your-user-count-is-a-lie-a6f</link>
      <guid>https://dev.to/0albiere/your-user-count-is-a-lie-a6f</guid>
      <description>&lt;p&gt;&lt;em&gt;And it’s not a bug. It’s your model.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;You open two dashboards.&lt;/p&gt;

&lt;p&gt;One says &lt;strong&gt;847k users&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
The other says &lt;strong&gt;612k&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That gap? It’s not noise.&lt;/p&gt;

&lt;p&gt;It’s structural error.&lt;/p&gt;




&lt;h2&gt;
  
  
  The real problem
&lt;/h2&gt;

&lt;p&gt;Identity systems fail in two ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;inflate users
&lt;/li&gt;
&lt;li&gt;merge different people into one
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most teams catch the first.&lt;/p&gt;

&lt;p&gt;The second is worse. It silently corrupts everything.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why this happens
&lt;/h2&gt;

&lt;p&gt;You’re using a &lt;strong&gt;relational model&lt;/strong&gt; to represent something that isn’t relational.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
sql
SELECT DISTINCT user_id FROM events
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
    <item>
      <title>Your Model Is 94% Accurate. It's Also Making Terrible Decisions.</title>
      <dc:creator>Albidev</dc:creator>
      <pubDate>Wed, 01 Apr 2026 14:41:59 +0000</pubDate>
      <link>https://dev.to/0albiere/your-model-is-94-accurate-its-also-making-terrible-decisions-4lj0</link>
      <guid>https://dev.to/0albiere/your-model-is-94-accurate-its-also-making-terrible-decisions-4lj0</guid>
      <description>&lt;p&gt;Your model hit 94% accuracy. And then it made the worst possible decision in production.&lt;br&gt;
Here's what nobody tells you about building ML systems that actually work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem Nobody Talks About&lt;/strong&gt;&lt;br&gt;
You train the model. You evaluate it. The numbers look great.&lt;br&gt;
Then it goes live and starts recommending things that make zero sense in the real world.&lt;br&gt;
Not because the math is wrong.&lt;br&gt;
Because accuracy and decision quality are not the same thing.&lt;/p&gt;

&lt;p&gt;A model can be statistically excellent and practically useless. Worse, it can be confidently wrong, which is the most dangerous state in any automated decision system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Most Projects Get Wrong&lt;/strong&gt;&lt;br&gt;
Most ML projects stop here:&lt;br&gt;
raw data → model → prediction → done&lt;/p&gt;

&lt;p&gt;That's not a decision system. That's a calculator with good PR.&lt;/p&gt;

&lt;p&gt;A real decision system looks more like this:&lt;br&gt;
raw data → feature engineering → model → explanation&lt;br&gt;
→ decision logic → scenario simulation → outcome&lt;/p&gt;

&lt;p&gt;Notice what's in the middle: explanation and scenario simulation.&lt;br&gt;
That's where the real work lives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Project: Full Lifecycle, Zero Shortcuts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;(Open loop: stick with me. The scenario simulation part alone will change how you think about model deployment.)&lt;/p&gt;

&lt;p&gt;This project covers the full lifecycle of a production-grade ML decision system:&lt;/p&gt;

&lt;p&gt;Data ingestion: raw, messy, realistic input&lt;br&gt;
Feature engineering: transforming noise into signal&lt;br&gt;
Model training: nothing fancy, just solid&lt;br&gt;
Prediction explanation: why did the model say that?&lt;br&gt;
Decision simulation: what happens under different policies?&lt;/p&gt;

&lt;p&gt;Everything is reproducible. Everything reflects real production constraints: data drift, uncertainty, and policy trade-offs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Insight That Changes Everything&lt;/strong&gt;&lt;br&gt;
Here's the uncomfortable truth:&lt;br&gt;
A model that performs well statistically can lead to catastrophic outcomes in practice.&lt;/p&gt;

&lt;p&gt;Why? Because models optimize for the metric you gave them, not for the outcome you actually want.&lt;/p&gt;

&lt;p&gt;You trained on historical data. But the world drifted.&lt;br&gt;
You optimized for precision. But the cost of a false negative is ten times higher.&lt;br&gt;
You trusted the prediction. But you never asked why it was made.&lt;/p&gt;

&lt;p&gt;This project makes all of that visible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pattern Interrupt: Quick Question&lt;/strong&gt;&lt;br&gt;
When was the last time you tested what your model recommends under an economic shock, a data drift event, or a policy change?&lt;/p&gt;

&lt;p&gt;If the answer is "never", you're not alone. But you're also flying blind.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decision Quality Over Accuracy&lt;/strong&gt;&lt;br&gt;
The core shift this project forces:&lt;/p&gt;

&lt;p&gt;Don't ask "is the model accurate?"&lt;br&gt;
Ask "does the model lead to better decisions?"&lt;/p&gt;

&lt;p&gt;Those are different questions. And they have different answers.&lt;/p&gt;

&lt;p&gt;The project lets you explore scenarios where:&lt;br&gt;
A high-accuracy model produces bad outcomes&lt;br&gt;
A simpler model outperforms because it handles uncertainty better&lt;br&gt;
Policy trade-offs change which prediction is actually "right"&lt;/p&gt;

&lt;p&gt;That last one is the most underrated insight in applied ML.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What You'll Walk Away With&lt;/strong&gt;&lt;br&gt;
A reproducible pipeline you can fork and adapt&lt;br&gt;
A framework for separating model performance from decision performance&lt;br&gt;
Tools for explaining predictions, not just making them&lt;br&gt;
A simulation layer to stress-test decisions before they hit production&lt;/p&gt;

&lt;p&gt;No fluff. No toy datasets. Designed to reflect what production actually looks like.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Real Flex&lt;/strong&gt;&lt;br&gt;
Anyone can train a model.&lt;br&gt;
Building a system that knows when not to trust its own predictions, that's the actual skill.&lt;/p&gt;

&lt;p&gt;This project is for developers who want to stop optimizing for leaderboard scores and start optimizing for real-world outcomes.&lt;/p&gt;

&lt;p&gt;Drop a comment: Have you ever had a high-accuracy model fail in production? What broke first, the model or the decision logic around it?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>analytics</category>
    </item>
    <item>
      <title>Your AI Agent Is Not Broken. Your Runtime Is</title>
      <dc:creator>Albidev</dc:creator>
      <pubDate>Tue, 24 Mar 2026 22:32:10 +0000</pubDate>
      <link>https://dev.to/0albiere/your-ai-agent-is-not-broken-your-runtime-is-5fg8</link>
      <guid>https://dev.to/0albiere/your-ai-agent-is-not-broken-your-runtime-is-5fg8</guid>
      <description>&lt;p&gt;We lost a 4-hour agent run because a worker restarted mid-step. No logs. No recovery. The agent had called six tools and was halfway through a document pipeline. When the worker came back up, it started from zero. That’s when we stopped debugging the LLM and started debugging the runtime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Real Problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most frameworks, LangChain-style orchestrators, and prompt chaining libraries stop at the LLM call. They solve the conversation, not the execution loop. In production, agents fail silently: queue errors, worker restarts, malformed tool payloads, runs that leave no trace.&lt;/p&gt;

&lt;p&gt;Retries, logs, cron checks – none of that fixes the root cause. The model is fine. The runtime is where things die.&lt;/p&gt;

&lt;p&gt;Production-Ready Requirements&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;State persistence&lt;/strong&gt; – every step and tool invocation written to durable storage. No memory caches. No stdout logs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decoupled execution&lt;/strong&gt; – agent thinking and tool execution separate, queue-based, no blocking.
Typed, validated tooling – catch malformed payloads at the boundary. Runtime bombs avoided.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Horizontal scalability&lt;/strong&gt; – add workers without touching agent logic.&lt;/li&gt;
&lt;li&gt;*&lt;em&gt;Observability *&lt;/em&gt;– structured telemetry for every step, tool call, duration, and output.
How Runloop Solves It&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Stack: &lt;strong&gt;Bun, PostgreSQL, Redis + BullMQ, Zod, OpenTelemetry.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bun: high-throughput I/O for agent workloads, low memory per worker.&lt;/li&gt;
&lt;li&gt;PostgreSQL: source of truth. Persisted runs, replayable and auditable.&lt;/li&gt;
&lt;li&gt;BullMQ + Redis: stateless workers, queue-based execution, retry policies, deduplication.&lt;/li&gt;
&lt;li&gt;Zod: tool schemas validated at runtime, TypeScript autocomplete, serializable manifest.
-OpenTelemetry: tracing at run and step level, easy integration with Grafana, Jaeger, Datadog.
Architecture
Core Runtime – manages state, transitions, recovery.
Tool Registry – centralized repository, register once, available globally.
Worker System – executes steps, persists results, stateless.
Getting Started&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;docker-compose up -d&lt;br&gt;
cp .env.example .env&lt;br&gt;
bun install&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Define a tool, launch an agent, and get a fully traced, persisted run in minutes.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/0Albiere" rel="noopener noreferrer"&gt;
        0Albiere
      &lt;/a&gt; / &lt;a href="https://github.com/0Albiere/Runloop" rel="noopener noreferrer"&gt;
        Runloop
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      The production-ready runtime for AI agents. Persistent state, distributed execution, type-safe tooling, and built-in observability — built on Bun, PostgreSQL, and BullMQ.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;⚡ Runloop v1&lt;/h1&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;&lt;a href="https://opensource.org/licenses/MIT" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://bun.sh" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/be37982233982d5e47eaed0af3feec437fa6f369263cdaad357fda909474b423/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f42756e2d76312e332e31302d626c61636b3f6c6f676f3d62756e" alt="Bun Version"&gt;&lt;/a&gt;
&lt;a href="https://github.com/0Albiere/Runloop_TEST/actions/workflows/ci.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/0Albiere/Runloop_TEST/actions/workflows/ci.yml/badge.svg" alt="Test Suite Status"&gt;&lt;/a&gt;
&lt;a href="https://github.com/0Albiere/Runloop#" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/52f750879636381af163b9172052eb8857d3c8c18dc6de6da7f304c687129351/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56657273696f6e2d312e302e302d2d616c7068612d626c7565" alt="Version"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Production-Ready AI Agent Runtime.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Stop building experimental scripts. Start building resilient, scalable, and persistent AI agents that actually survive production workloads.&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Why Runloop?&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Most AI frameworks focus on the LLM call. &lt;strong&gt;Runloop&lt;/strong&gt; focus on the &lt;strong&gt;Execution Loop&lt;/strong&gt;. It provides a robust runtime for AI agents, built on the fastest modern stack.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🏎️ Bun-Native Speed&lt;/strong&gt;: Leverages the high-performance Bun runtime for blazing-fast execution and low overhead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🛡️ Production-Grade Persistence&lt;/strong&gt;: Every run, step, and tool result is backed by &lt;strong&gt;PostgreSQL&lt;/strong&gt;. Never lose an agent's state or history again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📦 Distributed Task Orchestration&lt;/strong&gt;: Powered by &lt;strong&gt;BullMQ&lt;/strong&gt; and &lt;strong&gt;Redis&lt;/strong&gt;. Scale your agent workers vertically or horizontally with ease.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🛠️ Type-Safe Tooling&lt;/strong&gt;: Define your tools using &lt;strong&gt;Zod&lt;/strong&gt; schemas. Get automatic validation and perfect TypeScript autocompletion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📊 Built-in Telemetry&lt;/strong&gt;: Integrated tracing and monitoring to understand exactly what your agents are doing at every…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/0Albiere/Runloop" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>ai</category>
      <category>typescript</category>
      <category>backend</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
