<?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: kennedy</title>
    <description>The latest articles on DEV Community by kennedy (@n3on).</description>
    <link>https://dev.to/n3on</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%2F3559516%2F4fa1d3f3-83f6-4928-9d0d-ece6eef5825e.jpg</url>
      <title>DEV Community: kennedy</title>
      <link>https://dev.to/n3on</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/n3on"/>
    <language>en</language>
    <item>
      <title>I Built a SaaS That Got 0 Users. Here's What I Learned About Actually Finding Problems Worth Solving.</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Thu, 25 Jun 2026 15:56:45 +0000</pubDate>
      <link>https://dev.to/n3on/i-built-a-saas-that-got-0-users-heres-what-i-learned-about-actually-finding-problems-worth-16j</link>
      <guid>https://dev.to/n3on/i-built-a-saas-that-got-0-users-heres-what-i-learned-about-actually-finding-problems-worth-16j</guid>
      <description>&lt;p&gt;Last year I spent six months building a SaaS product. I did everything "right", polished UI, solid architecture, clean code. Launched to 12 signups. Zero paying users. Shut it down.&lt;/p&gt;

&lt;p&gt;The postmortem was brutal but clear: I built something nobody needed. I fell in love with the solution before verifying the problem existed.&lt;/p&gt;

&lt;p&gt;I'm sharing this because I know I'm not the only developer who's done this. And I want to do something different this time.&lt;/p&gt;

&lt;p&gt;I've decided to start with zero code and instead spend time talking to people about what's actually broken in their work. I'm treating customer discovery like a engineering problem: gather data, find patterns, then build.&lt;/p&gt;

&lt;p&gt;I'm looking for input from this community:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What task do you do manually every week that you keep thinking "there should be an API for this"?&lt;/li&gt;
&lt;li&gt;What existing tool frustrates you so much that you've considered building your own replacement?&lt;/li&gt;
&lt;li&gt;If you could wave a magic wand and automate one part of your development workflow, what would it be?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'm not promoting anything. There's no landing page, no newsletter, no beta list. I'm genuinely trying to find a problem worth solving. If patterns emerge and I build something, I'll document the entire process here.&lt;/p&gt;

&lt;p&gt;What problems are you all facing?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>showdev</category>
      <category>career</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why We Don't Let GPT-4 Parse Financial Intents (And What We Use Instead)</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Wed, 24 Jun 2026 14:47:02 +0000</pubDate>
      <link>https://dev.to/n3on/why-we-dont-let-gpt-4-parse-financial-intents-and-what-we-use-instead-3ij2</link>
      <guid>https://dev.to/n3on/why-we-dont-let-gpt-4-parse-financial-intents-and-what-we-use-instead-3ij2</guid>
      <description>&lt;p&gt;I asked GPT-4 to parse "bridge my ETH to Arbitrum" and it returned:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"sourceChain"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ethereum"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"destChain"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Arbitrum"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"token"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ARB"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It confused the destination &lt;strong&gt;chain&lt;/strong&gt; with the &lt;strong&gt;ARB token&lt;/strong&gt;. If an agent executed this, it would swap ETH for ARB instead of bridging. That's a $10,000 hallucination.&lt;/p&gt;

&lt;p&gt;This isn't a prompt engineering problem. It's a fundamental issue with using probabilistic models for deterministic financial parsing. Here's the system we built to eliminate it entirely.&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/kawacukennedy" rel="noopener noreferrer"&gt;
        kawacukennedy
      &lt;/a&gt; / &lt;a href="https://github.com/kawacukennedy/kuberna-labs" rel="noopener noreferrer"&gt;
        kuberna-labs
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Agent Orchestration Platform — Deploy, run, and certify autonomous AI agents that execute cross-chain Web3 tasks. Smart contracts, SDK, backend, and dashboard for AI-powered DeFi automation.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Kuberna Labs&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Agent Orchestration Platform&lt;/strong&gt; — Deploy, run, and certify autonomous AI agents that execute cross-chain Web3 tasks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs/actions" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/2b5ef80d121d0c8454e58d1da53a44a3fdaece44e04dc36996f6f23a9f1ba6f2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6b61776163756b656e6e6564792f6b756265726e612d6c6162732f63692e796d6c3f6272616e63683d6d61696e266c6162656c3d4349266c6f676f3d676974687562" alt="CI Status"&gt;&lt;/a&gt;
&lt;a href="https://github.com/kawacukennedy/kuberna-labs/stargazers" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/0f8af3f82f53d7144899dc61369e12dbed60a01646fcd2d1501a20a3b483e2c1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6b61776163756b656e6e6564792f6b756265726e612d6c6162733f7374796c653d666c6174266c6f676f3d676974687562" alt="GitHub Stars"&gt;&lt;/a&gt;
&lt;a href="https://www.npmjs.com/package/@kuberna/sdk" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/54f884de382aaf63a461e7e17ae3c7d6871f732f17ff4cb9aac598b5dc3b6b92/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f406b756265726e612f73646b3f6c6162656c3d53444b266c6f676f3d6e706d" alt="NPM Version"&gt;&lt;/a&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://www.typescriptlang.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/1c0e325b9f7692186108e036502a027c2b3d529adab93db6e73d91c3bddf125c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352e332d3331373843363f6c6f676f3d74797065736372697074" alt="TypeScript"&gt;&lt;/a&gt;
&lt;a href="https://soliditylang.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/94073514357940dfdc0defefedf96bae5cb652bffbe0bba6f9d7ac602c3c4d57/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536f6c69646974792d253545302e382e32302d3336333633363f6c6f676f3d736f6c6964697479" alt="Solidity"&gt;&lt;/a&gt;
&lt;a href="https://www.prisma.io/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/736409b0fb12480179bad7c0ea0b6105aeed1788a27d3dbac95b2e0515ad6b3f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507269736d612d4c61746573742d3244333734383f6c6f676f3d707269736d61" alt="Prisma"&gt;&lt;/a&gt;
&lt;a href="https://x.com/Arnaud_Kennedy" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fa6df6541242a3c330375f244750bb8b648c8c0bc363975cdcd013dd8ca7094d/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f41726e6175645f4b656e6e6564793f7374796c653d736f6369616c" alt="Twitter Follow"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;⭐️ &lt;strong&gt;If you find this project useful, please star it on GitHub!&lt;/strong&gt; ⭐️&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;It helps others discover the project and motivates contributors.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://star-history.com/#kawacukennedy/kuberna-labs&amp;amp;Date" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7a53e2cf3f57e83721f826b8d537e22b61da978142b82731c64f9a17e8f799fa/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d6b61776163756b656e6e6564792f6b756265726e612d6c61627326747970653d44617465" alt="Star History Chart"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📋 Table of Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#overview" rel="noopener noreferrer"&gt;Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#architecture" rel="noopener noreferrer"&gt;Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#quick-start" rel="noopener noreferrer"&gt;Quick Start&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#key-features" rel="noopener noreferrer"&gt;Key Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#project-structure" rel="noopener noreferrer"&gt;Project Structure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#available-scripts" rel="noopener noreferrer"&gt;Available Scripts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#contributing" rel="noopener noreferrer"&gt;Contributing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#community" rel="noopener noreferrer"&gt;Community&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#roadmap" rel="noopener noreferrer"&gt;Roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#license" rel="noopener noreferrer"&gt;License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Overview&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Kuberna Labs gives AI agents secure execution rails across any blockchain: agents parse natural language intents, make autonomous trading decisions, settle via on-chain escrow, and get post-quantum certified for verifiable reputation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Target users:&lt;/strong&gt; Web3 developers and teams who want to deploy autonomous AI agents that can trade, monitor, and execute on any chain without managing LLM infrastructure, blockchain RPCs, or certification pipelines.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;✨ What Makes Kuberna Different?&lt;/h3&gt;

&lt;/div&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;Kuberna&lt;/th&gt;
&lt;th&gt;Others&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Natural Language → On-Chain Action&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Parse "swap 1 ETH for USDC on Solana" → escrow → execution → certificate&lt;/td&gt;
&lt;td&gt;Require manual&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/kawacukennedy/kuberna-labs" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  The problem with LLMs for structured extraction
&lt;/h2&gt;

&lt;p&gt;LLMs are probabilistic by design. They don't &lt;em&gt;know&lt;/em&gt; anything — they predict the most likely token sequence given their training data. For financial intents, this means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chain names overlap with token symbols&lt;/strong&gt; — "Arbitrum" vs "ARB", "Solana" vs "SOL"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amounts can be ambiguous&lt;/strong&gt; — "1 ETH" is clear, "send some" is not&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Missing chain names&lt;/strong&gt; — "swap 1 ETH for USDC" doesn't specify the destination chain&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Novel phrasing&lt;/strong&gt; — "bridge my bags over to polygon" needs to resolve to Polygon (MATIC)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these is a recoverable error for a deterministic parser. Each is a potential loss-of-funds event for a probabilistic one.&lt;/p&gt;

&lt;p&gt;The cost of hallucination in financial execution is not a bad chatbot response. It's real money moving to the wrong chain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our 4-layer approach
&lt;/h2&gt;

&lt;p&gt;We never call GPT-4 first. The LLM is the last resort, not the primary parser.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Layer 1: compromise.js   (zero-dep NLP, offline)    ← 80% of intents
Layer 2: 12 regex patterns (deterministic matching)  ← 5% of intents
Layer 3: GPT-4 fallback   (only when conf &amp;lt; 0.6)     ← 15% of intents
Layer 4: RAG memory        (learns from past parses)  ← ongoing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Layer 1: compromise.js
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/spencermountain/compromise" rel="noopener noreferrer"&gt;compromise.js&lt;/a&gt; is a zero-dependency NLP library that runs in the browser, Node.js, and Deno. It handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subject-verb-object extraction ("swap ETH for USDC")&lt;/li&gt;
&lt;li&gt;Named entity recognition ("Ethereum", "Solana", "Arbitrum")&lt;/li&gt;
&lt;li&gt;Number and unit parsing ("1.5 ETH", "500 USDC")&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It weighs ~200KB and requires no API key. For well-formed intents, it's sufficient 80% of the time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;nlp&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;compromise&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;parseWithCompromise&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nx"&gt;Intent&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;doc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;nlp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tokens&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;match&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#Noun+&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;amounts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="c1"&gt;// ... extract structured intent&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Layer 2: Regex patterns
&lt;/h3&gt;

&lt;p&gt;For the 5% of intents where compromise.js yields low confidence, we fall through to 12 regex patterns covering common structures:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;PATTERNS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="c1"&gt;// "swap X for Y on Z"&lt;/span&gt;
  &lt;span class="sr"&gt;/swap&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(?&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;amount&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;\d&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;\.?\d&lt;/span&gt;&lt;span class="sr"&gt;*&lt;/span&gt;&lt;span class="se"&gt;)\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(?&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;source&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;\w&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;)\s&lt;/span&gt;&lt;span class="sr"&gt;+for&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(?&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;dest&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;\w&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;)\s&lt;/span&gt;&lt;span class="sr"&gt;+on&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(?&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;chain&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;\w&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="c1"&gt;// "bridge X to Y"&lt;/span&gt;
  &lt;span class="sr"&gt;/bridge&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(?&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;amount&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;\d&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;\.?\d&lt;/span&gt;&lt;span class="sr"&gt;*&lt;/span&gt;&lt;span class="se"&gt;)\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(?&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;token&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;\w&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;)\s&lt;/span&gt;&lt;span class="sr"&gt;+to&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(?&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;chain&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;\w&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="c1"&gt;// "send X to Y on Z"&lt;/span&gt;
  &lt;span class="sr"&gt;/send&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(?&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;amount&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;\d&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;\.?\d&lt;/span&gt;&lt;span class="sr"&gt;*&lt;/span&gt;&lt;span class="se"&gt;)\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(?&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;token&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;\w&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;)\s&lt;/span&gt;&lt;span class="sr"&gt;+to&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(?&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;chain&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;\w&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="c1"&gt;// ... 9 more patterns&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each pattern maps matched groups to a validated &lt;code&gt;Intent&lt;/code&gt; structure. If the mapping contains an unrecognized chain or token, the parse fails safely — no hallucination possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 3: GPT-4 fallback
&lt;/h3&gt;

&lt;p&gt;Only when both layers 1 and 2 return confidence &amp;lt; 0.6 do we call GPT-4. The prompt is structured to minimize hallucination:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`
Parse the following cross-chain intent into JSON.
Only use chain names from this list: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;VALID_CHAINS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;, &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;
Only use token symbols from this list: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;VALID_TOKENS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;, &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;
If any value cannot be determined, set it to null. Do not infer.

Input: "&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"
Output:`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The LLM is constrained to a known vocabulary. If it returns a chain name not in &lt;code&gt;VALID_CHAINS&lt;/code&gt;, the system rejects the parse. This caught the "Arbitrum" → "ARB" hallucination described above.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 4: RAG memory
&lt;/h3&gt;

&lt;p&gt;Every successful parse (regardless of which layer handled it) is stored in a vector database. Common patterns are promoted to new regex patterns over time.&lt;/p&gt;

&lt;p&gt;After 6 months of operation, layer 4 has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generated 4 new patterns now handled by layer 2&lt;/li&gt;
&lt;li&gt;Increased layer 1 hit rate from 72% to 80%&lt;/li&gt;
&lt;li&gt;Reduced LLM fallback from 22% to 15%&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Confidence scoring
&lt;/h2&gt;

&lt;p&gt;Each layer assigns a confidence score. We stop at the first layer with score &amp;gt; 0.6.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;intent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;confidence&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;parseIntent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;swap 1 ETH for USDC on Solana&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;intent&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// {&lt;/span&gt;
&lt;span class="c1"&gt;//   sourceChain: "solana",&lt;/span&gt;
&lt;span class="c1"&gt;//   sourceToken: "ETH",&lt;/span&gt;
&lt;span class="c1"&gt;//   destToken: "USDC",&lt;/span&gt;
&lt;span class="c1"&gt;//   sourceAmount: "1",&lt;/span&gt;
&lt;span class="c1"&gt;//   confidence: 0.85&lt;/span&gt;
&lt;span class="c1"&gt;// }&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Confidence is based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many fields were successfully extracted (4/4 is better than 3/4)&lt;/li&gt;
&lt;li&gt;Whether all chain/token names are in the known vocabulary&lt;/li&gt;
&lt;li&gt;Pattern match strength (regex exact match &amp;gt; compromise fuzzy match &amp;gt; LLM generation)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If confidence is below 0.6 after all 4 layers, the intent is rejected and the agent is asked to rephrase.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we tested this
&lt;/h2&gt;

&lt;p&gt;175 tests covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Well-formed intents ("swap 1 ETH for USDC on Solana")&lt;/li&gt;
&lt;li&gt;Missing chain names ("swap 1 ETH for USDC")&lt;/li&gt;
&lt;li&gt;Novel phrasing ("move my bags to polygon")&lt;/li&gt;
&lt;li&gt;Deliberately adversarial inputs ("ETH for BTC on Ethereum ethereum ethereum")&lt;/li&gt;
&lt;li&gt;Chain/token confusion ("bridge to ARB on Arbitrum")&lt;/li&gt;
&lt;li&gt;Mixed case, typos, extra whitespace&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Property-based tests using &lt;code&gt;fast-check&lt;/code&gt; verify invariants: the parser never returns a chain name not in &lt;code&gt;VALID_CHAINS&lt;/code&gt;, never returns a token symbol not in &lt;code&gt;VALID_TOKENS&lt;/code&gt;, and never fabricates an amount.&lt;/p&gt;

&lt;p&gt;Zero hallucinated chains in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  When you SHOULD use an LLM
&lt;/h2&gt;

&lt;p&gt;The 4-layer system isn't anti-LLM. It's pro-determinism.&lt;/p&gt;

&lt;p&gt;Use an LLM when the input is genuinely novel, the phrasing is ambiguous, or the intent contains information your deterministic layers can't handle. But don't use an LLM as your &lt;strong&gt;primary&lt;/strong&gt; parser for financial inputs.&lt;/p&gt;

&lt;p&gt;The LLM is a safety net, not the primary system. Build deterministic layers first. Let the LLM handle edge cases. And always validate the output against a known vocabulary before accepting it.&lt;/p&gt;




&lt;p&gt;The parser is MIT licensed and works without any API key: &lt;a href="https://github.com/kawacukennedy/kuberna-labs/blob/main/backend/src/services/intentParser.ts" rel="noopener noreferrer"&gt;&lt;code&gt;backend/src/services/intentParser.ts&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you've hit similar hallucination problems with LLM-based extraction, I'd love to hear how you solved it in the comments.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Previously in this series: &lt;a href="https://dev.to/n3on/we-built-an-open-source-sdk-for-cross-chain-ai-agents-heres-what-broke-2in6"&gt;We Built an Open-Source SDK for Cross-Chain AI Agents — Here's What Broke&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Next in this series: &lt;a href="https://dev.to/next-post-link"&gt;How We Built a Circuit Breaker for AI Agents That Touch Real Money&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>typescript</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>We Built an Open-Source SDK for Cross-Chain AI Agents, Here's What Broke</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Wed, 24 Jun 2026 14:28:31 +0000</pubDate>
      <link>https://dev.to/n3on/we-built-an-open-source-sdk-for-cross-chain-ai-agents-heres-what-broke-2in6</link>
      <guid>https://dev.to/n3on/we-built-an-open-source-sdk-for-cross-chain-ai-agents-heres-what-broke-2in6</guid>
      <description>&lt;p&gt;It's 3 AM and your AI agent just bridged $500 to a chain you've never heard of.&lt;/p&gt;

&lt;p&gt;The logs say "optimal route found." The balance says $0. The agent can't explain why.&lt;/p&gt;

&lt;p&gt;This is the problem we spent 6 months solving.&lt;/p&gt;

&lt;p&gt;We built Kuberna Labs, an MIT-licensed SDK that gives AI agents secure execution rails across any blockchain. The whole thing is open-source: &lt;a href="https://github.com/kawacukennedy/kuberna-labs" rel="noopener noreferrer"&gt;github.com/kawacukennedy/kuberna-labs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's what we actually had to build.&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/kawacukennedy" rel="noopener noreferrer"&gt;
        kawacukennedy
      &lt;/a&gt; / &lt;a href="https://github.com/kawacukennedy/kuberna-labs" rel="noopener noreferrer"&gt;
        kuberna-labs
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Agent Orchestration Platform — Deploy, run, and certify autonomous AI agents that execute cross-chain Web3 tasks. Smart contracts, SDK, backend, and dashboard for AI-powered DeFi automation.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Kuberna Labs&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Agent Orchestration Platform&lt;/strong&gt; — Deploy, run, and certify autonomous AI agents that execute cross-chain Web3 tasks.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs/actions" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/2b5ef80d121d0c8454e58d1da53a44a3fdaece44e04dc36996f6f23a9f1ba6f2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6b61776163756b656e6e6564792f6b756265726e612d6c6162732f63692e796d6c3f6272616e63683d6d61696e266c6162656c3d4349266c6f676f3d676974687562" alt="CI Status"&gt;&lt;/a&gt;
&lt;a href="https://github.com/kawacukennedy/kuberna-labs/stargazers" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/0f8af3f82f53d7144899dc61369e12dbed60a01646fcd2d1501a20a3b483e2c1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6b61776163756b656e6e6564792f6b756265726e612d6c6162733f7374796c653d666c6174266c6f676f3d676974687562" alt="GitHub Stars"&gt;&lt;/a&gt;
&lt;a href="https://www.npmjs.com/package/@kuberna/sdk" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/54f884de382aaf63a461e7e17ae3c7d6871f732f17ff4cb9aac598b5dc3b6b92/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f406b756265726e612f73646b3f6c6162656c3d53444b266c6f676f3d6e706d" alt="NPM Version"&gt;&lt;/a&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://www.typescriptlang.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/1c0e325b9f7692186108e036502a027c2b3d529adab93db6e73d91c3bddf125c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352e332d3331373843363f6c6f676f3d74797065736372697074" alt="TypeScript"&gt;&lt;/a&gt;
&lt;a href="https://soliditylang.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/94073514357940dfdc0defefedf96bae5cb652bffbe0bba6f9d7ac602c3c4d57/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536f6c69646974792d253545302e382e32302d3336333633363f6c6f676f3d736f6c6964697479" alt="Solidity"&gt;&lt;/a&gt;
&lt;a href="https://www.prisma.io/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/736409b0fb12480179bad7c0ea0b6105aeed1788a27d3dbac95b2e0515ad6b3f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507269736d612d4c61746573742d3244333734383f6c6f676f3d707269736d61" alt="Prisma"&gt;&lt;/a&gt;
&lt;a href="https://x.com/Arnaud_Kennedy" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fa6df6541242a3c330375f244750bb8b648c8c0bc363975cdcd013dd8ca7094d/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f41726e6175645f4b656e6e6564793f7374796c653d736f6369616c" alt="Twitter Follow"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;⭐️ &lt;strong&gt;If you find this project useful, please star it on GitHub!&lt;/strong&gt; ⭐️&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;It helps others discover the project and motivates contributors.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://star-history.com/#kawacukennedy/kuberna-labs&amp;amp;Date" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7a53e2cf3f57e83721f826b8d537e22b61da978142b82731c64f9a17e8f799fa/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d6b61776163756b656e6e6564792f6b756265726e612d6c61627326747970653d44617465" alt="Star History Chart"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📋 Table of Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#overview" rel="noopener noreferrer"&gt;Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#architecture" rel="noopener noreferrer"&gt;Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#quick-start" rel="noopener noreferrer"&gt;Quick Start&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#key-features" rel="noopener noreferrer"&gt;Key Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#project-structure" rel="noopener noreferrer"&gt;Project Structure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#available-scripts" rel="noopener noreferrer"&gt;Available Scripts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#contributing" rel="noopener noreferrer"&gt;Contributing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#community" rel="noopener noreferrer"&gt;Community&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#roadmap" rel="noopener noreferrer"&gt;Roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kawacukennedy/kuberna-labs#license" rel="noopener noreferrer"&gt;License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Overview&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Kuberna Labs gives AI agents secure execution rails across any blockchain: agents parse natural language intents, make autonomous trading decisions, settle via on-chain escrow, and get post-quantum certified for verifiable reputation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Target users:&lt;/strong&gt; Web3 developers and teams who want to deploy autonomous AI agents that can trade, monitor, and execute on any chain without managing LLM infrastructure, blockchain RPCs, or certification pipelines.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;✨ What Makes Kuberna Different?&lt;/h3&gt;

&lt;/div&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;Kuberna&lt;/th&gt;
&lt;th&gt;Others&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Natural Language → On-Chain Action&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Parse "swap 1 ETH for USDC on Solana" → escrow → execution → certificate&lt;/td&gt;
&lt;td&gt;Require manual&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/kawacukennedy/kuberna-labs" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  What "agent execution" actually means
&lt;/h2&gt;

&lt;p&gt;Most people think "AI agent" means a chatbot with tool access. That's not what we're building.&lt;/p&gt;

&lt;p&gt;An agent that &lt;em&gt;calls an API&lt;/em&gt; and an agent that &lt;em&gt;settles a financial transaction&lt;/em&gt; are fundamentally different problems. The first is about formatting HTTP requests. The second is about moving value across chains, proving what happened, and resolving disputes when something goes wrong.&lt;/p&gt;

&lt;p&gt;Agent execution, in our definition, means:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;An agent forms an &lt;strong&gt;intent&lt;/strong&gt; ("swap 1 ETH for USDC on Solana")&lt;/li&gt;
&lt;li&gt;That intent is &lt;strong&gt;parsed&lt;/strong&gt; into a structured, verifiable format&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Executors&lt;/strong&gt; compete to fulfill the intent at the best price&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;escrow contract&lt;/strong&gt; holds funds until conditions are met&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;TEE attestation&lt;/strong&gt; proves the agent's decision was made correctly&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every layer above had to be built from scratch. No off-the-shelf solutions existed for open-source agent settlement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why intent-based execution is safer than direct wallets
&lt;/h2&gt;

&lt;p&gt;Giving an agent a private key is the obvious approach. And it's terrifying.&lt;/p&gt;

&lt;p&gt;If an agent holds a key, that key is accessible wherever the agent runs. A compromised agent means a drained wallet. There's no intermediary, no dispute window, no recourse.&lt;/p&gt;

&lt;p&gt;Our architecture inverts this: &lt;strong&gt;the agent never holds keys.&lt;/strong&gt; It posts intents. Executors compete to fulfill those intents. An on-chain escrow contract settles the transaction only when conditions are met.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sdk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;KubernaSDK&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;KUBERNA_API_KEY&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;intent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;intents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;sourceChain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ethereum&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;destChain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;solana&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;sourceToken&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ETH&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;destToken&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;USDC&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;sourceAmount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1.0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent posts an intent. The SDK handles the rest. No keys, no custody, no single point of failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we stop the intent parser from hallucinating chains
&lt;/h2&gt;

&lt;p&gt;This was the hardest technical problem we solved.&lt;/p&gt;

&lt;p&gt;We started with GPT-4 to parse natural language intents. The results were terrifying:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Input: "bridge my ETH to Arbitrum"&lt;/span&gt;
&lt;span class="c1"&gt;// GPT-4 output:&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;sourceChain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ethereum&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;destChain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Arbitrum&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;token&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ARB&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It confused the destination &lt;strong&gt;chain&lt;/strong&gt; with the &lt;strong&gt;ARB token&lt;/strong&gt;. If an agent executed this parse, it would swap ETH for ARB instead of bridging. That's a $10,000 hallucination.&lt;/p&gt;

&lt;p&gt;We built a 4-layer fallback system:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;compromise.js&lt;/strong&gt; — zero-dependency NLP that works fully offline. Handles 80% of intents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;12 regex patterns&lt;/strong&gt; — matching "X for Y on Z" and variations. Deterministic, no failure mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPT-4 fallback&lt;/strong&gt; — only when confidence &amp;lt; 0.6 from layers 1 and 2. Activated in ~15% of cases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RAG memory&lt;/strong&gt; — learns from past parses. Common patterns are promoted to layer 2 over time.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each layer assigns a confidence score. We stop at the first layer with score &amp;gt; 0.6.&lt;/p&gt;

&lt;p&gt;The result: zero hallucinated chains in production. 175 tests covering every edge case.&lt;/p&gt;

&lt;h2&gt;
  
  
  What on-chain escrow looks like for AI agents
&lt;/h2&gt;

&lt;p&gt;Trustless settlement requires an escrow contract that handles the agent-specific edge cases:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function assignExecutor(
  bytes32 intentId,
  address executor,
  bytes calldata params
) external nonReentrant onlyAgent(intentId) {
  Escrow storage e = escrows[intentId];
  require(e.status == EscrowStatus.PENDING, 'not pending');
  e.executor = executor;
  e.executorParams = params;
  e.status = EscrowStatus.ASSIGNED;
  emit ExecutorAssigned(intentId, executor, params);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;nonReentrant&lt;/code&gt; modifier on &lt;code&gt;assignExecutor&lt;/code&gt; and &lt;code&gt;raiseDispute&lt;/code&gt; prevents reentrancy attacks. Every intent has a dispute window. If the agent disagrees with execution, funds are held pending resolution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why TEE attestation matters for provable decisions
&lt;/h2&gt;

&lt;p&gt;An agent's decision trace must be provable. Without attestation, the agent can claim "I don't know what happened" and you have no way to verify.&lt;/p&gt;

&lt;p&gt;We run decision-making inside an SGX enclave. Every inference produces a cryptographic receipt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"intentId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0xabc..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"decision"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"executor_selected"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"executorAddress"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0xdef..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"confidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.87&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"attestation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sgx://enclave-123/receipt/0x789..."&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This receipt is stored on-chain. Anyone can verify that the agent made the decision it claims to have made, inside a trusted execution environment, at a specific point in time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The circuit breaker problem
&lt;/h2&gt;

&lt;p&gt;An agent that can't stop calling a dead API is an agent that burns money.&lt;/p&gt;

&lt;p&gt;We implemented a sliding-window circuit breaker around all OpenAI calls:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CLOSED&lt;/strong&gt; — normal operation&lt;/li&gt;
&lt;li&gt;3 failures in 5 minutes → &lt;strong&gt;OPEN&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;30 second probe interval → &lt;strong&gt;HALF_OPEN&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Probe succeeds → &lt;strong&gt;CLOSED&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Probe fails → back to &lt;strong&gt;OPEN&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;circuit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;CircuitBreaker&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;intentParser&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;threshold&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;windowMs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="nx"&gt;_000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;probeIntervalMs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="nx"&gt;_000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;circuit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;swap 1 ETH for USDC on Solana&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When the circuit is open, the agent falls back to the local compromise.js parser. No API call needed. The agent still works — it just makes simpler decisions.&lt;/p&gt;

&lt;p&gt;Graceful degradation &amp;gt; perfect uptime.&lt;/p&gt;

&lt;h2&gt;
  
  
  What broke (the honest part)
&lt;/h2&gt;

&lt;p&gt;Not everything went smoothly. Here's what we got wrong:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Math.sin() as a price oracle.&lt;/strong&gt; Our first "market data provider" used &lt;code&gt;Math.sin()&lt;/code&gt; to generate fake price data. It was a placeholder that somehow made it to staging. A real API integration would have caught this earlier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Direct wallet integration.&lt;/strong&gt; Our first design gave agents access to a wallet. We reversed this after a close call in testing. The intent-based architecture is harder to build but fundamentally safer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No circuit breaker.&lt;/strong&gt; We deployed the first version without rate limiting on API calls. The agent called a dead OpenAI endpoint 47 times before we noticed. Each call cost money. Each call returned nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intent parser hallucinating chains.&lt;/strong&gt; The GPT-4 hallucination problem above cost us a week of refactoring. The 4-layer system was born from failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where we're going next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;zkTLS integration&lt;/strong&gt; — proving agent decisions without revealing sensitive data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solana support&lt;/strong&gt; — the first non-EVM chain in the execution layer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NEAR Intents&lt;/strong&gt; — cross-chain settlement using NEAR's intent infrastructure&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;The whole thing is MIT. 175 tests, all green. If you've fought with cross-chain settlement and won (or lost), I'd love to hear about it in the comments. PRs very welcome.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Next in this series: &lt;a href="https://dev.to/n3on/why-we-dont-let-gpt-4-parse-financial-intents-and-what-we-use-instead-3ij2"&gt;Why We Don't Let GPT-4 Parse Financial Intents (And What We Use Instead)&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>blockchain</category>
      <category>opensource</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Building Autonomous Cross-Chain AI Agents with Kuberna Labs</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Sun, 15 Mar 2026 20:13:27 +0000</pubDate>
      <link>https://dev.to/n3on/building-autonomous-cross-chain-ai-agents-with-kuberna-labs-4fdb</link>
      <guid>https://dev.to/n3on/building-autonomous-cross-chain-ai-agents-with-kuberna-labs-4fdb</guid>
      <description>&lt;p&gt;If you've ever tried to build an AI agent that can actually &lt;em&gt;do&lt;/em&gt; something on-chain—like swap tokens, monitor a protocol, or execute a trade across chains—you know the pain. You need to manage private keys, estimate gas, handle failed transactions, and orchestrate complex cross-chain flows. It's brittle, time-consuming, and error-prone.&lt;/p&gt;

&lt;p&gt;That's why we built &lt;strong&gt;Kuberna Labs&lt;/strong&gt;: an open-source SDK and infrastructure that abstracts away the complexity of cross-chain execution for AI agents.&lt;/p&gt;

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

&lt;p&gt;Our architecture is designed to take a high-level intent (e.g., "Swap 1 ETH to USDC on Solana") and execute it securely, with cryptographic guarantees. Here's how it works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;LLM / NLP Engine&lt;/strong&gt; – Parses natural language into structured tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kuberna SDK&lt;/strong&gt; – Provides a unified API for agent creation, intent submission, and execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execution Layer&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TEEs&lt;/strong&gt; (Phala, Marlin) – Run agent logic in trusted enclaves with remote attestation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;zkTLS&lt;/strong&gt; (Reclaim, zkPass) – Fetch verified Web2 data without exposing credentials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intent Router&lt;/strong&gt; (ERC-7683) – Broadcasts intents to a decentralized solver network.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solver Network&lt;/strong&gt; – Agents compete to fulfill intents, with funds secured in escrow contracts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most AI agents today are just chatbots—they can't actually transact value. Kuberna turns them into autonomous economic actors. Imagine an agent that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitors a DeFi protocol's TVL and alerts you on Discord.&lt;/li&gt;
&lt;li&gt;Executes arbitrage across DEXes when profitable.&lt;/li&gt;
&lt;li&gt;Proves your bank balance on-chain without revealing the number (via zkTLS).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Get Started in 2 Minutes&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @kuberna/sdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;KubernaSDK&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@kuberna/sdk&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sdk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;KubernaSDK&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createAgent&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;YieldOptimizer&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;framework&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ElizaOS&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Agent &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; is live!`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The SDK handles all the hard stuff—wallet management, gas estimation, intent routing—so you can focus on your agent's logic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Source &amp;amp; Community&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kuberna Labs is 100% open-source and built in public. We're based in Kigali, Rwanda, and we're on a mission to become the operating system for the agentic economy.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/kawacukennedy/kuberna-labs" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://discord.gg/74jRFM7u" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;We'd love your contributions, ideas, and stars. Let's build the future of autonomous agents together.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>blockchain</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Sunder: The Open‑Source AI Coding Assistant That Translates, Explains, and Pairs With You</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Thu, 12 Feb 2026 09:00:17 +0000</pubDate>
      <link>https://dev.to/n3on/sunder-the-open-source-ai-coding-assistant-that-translates-explains-and-pairs-with-you-1i1g</link>
      <guid>https://dev.to/n3on/sunder-the-open-source-ai-coding-assistant-that-translates-explains-and-pairs-with-you-1i1g</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Every developer knows the drill:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You find a brilliant Python snippet, but your project is in JavaScript.&lt;/li&gt;
&lt;li&gt;You want a second pair of eyes, but scheduling a code review takes days.&lt;/li&gt;
&lt;li&gt;Copilot helps, but it’s proprietary, doesn’t explain &lt;em&gt;why&lt;/em&gt;, and can’t translate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sunder&lt;/strong&gt; fixes all of that; and it’s now &lt;strong&gt;open source&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Sunder?
&lt;/h2&gt;

&lt;p&gt;Sunder is an &lt;strong&gt;AI‑powered collaborative platform&lt;/strong&gt; for code snippets. Think GitHub Gists meets Figma meets Gemini.&lt;/p&gt;

&lt;p&gt;With Sunder you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Save &amp;amp; discover&lt;/strong&gt; snippets across 50+ languages
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Translate&lt;/strong&gt; code between languages with &lt;strong&gt;functional equivalence&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pair program&lt;/strong&gt; with an AI that learns your style
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real‑time collaborate&lt;/strong&gt; on snippets with cursors, chat, and video
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get explanations&lt;/strong&gt; and refactoring suggestions on demand
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All inside a beautiful Next.js + Tailwind UI.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Open Source?
&lt;/h2&gt;

&lt;p&gt;We believe developer tools should be &lt;strong&gt;transparent, community‑owned, and accessible to everyone&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;By open‑sourcing Sunder we’re saying:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You shouldn’t need a corporate budget to have an AI pair programmer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We also want to build the &lt;strong&gt;best AI‑first coding platform&lt;/strong&gt; – and that can only happen with contributions from developers like you.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It in 60 Seconds
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/kawacukennedy/sunder
&lt;span class="nb"&gt;cd &lt;/span&gt;sunder
./scripts/setup.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it. Docker Compose spins up PostgreSQL, Redis, and a &lt;strong&gt;mock AI server&lt;/strong&gt; – you don’t even need a Gemini API key.&lt;br&gt;&lt;br&gt;
Then open &lt;code&gt;http://localhost:3000&lt;/code&gt; and start exploring.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 What Needs Help?
&lt;/h2&gt;

&lt;p&gt;We’ve curated &lt;strong&gt;20+ “good first issues”&lt;/strong&gt; with detailed instructions and mentors.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Example Issue&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🎨 Frontend (React)&lt;/td&gt;
&lt;td&gt;Add syntax highlighting for Rust&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚙️ Backend (Node)&lt;/td&gt;
&lt;td&gt;Optimize snippet search with trigram indexes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧠 AI (Gemini)&lt;/td&gt;
&lt;td&gt;Improve translation accuracy for Go → TypeScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📚 Docs&lt;/td&gt;
&lt;td&gt;Write a tutorial for real‑time collaboration&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/kawacukennedy/sunder/labels/good%20first%20issue" rel="noopener noreferrer"&gt;Browse good first issues →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Join Our Community
&lt;/h2&gt;

&lt;p&gt;We’re on Discord; ask questions, share what you build, and meet other contributors.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://discord.gg/n8G4BVe7" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fdiscord%2F1234567890%3Fcolor%3D5865F2%26label%3DJoin%2520Discord%26logo%3Ddiscord" alt="Discord" width="179" height="20"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  One Last Thing
&lt;/h2&gt;

&lt;p&gt;If you believe AI tools should be open and collaborative:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Star the repo&lt;/strong&gt; – it helps others find us
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Share this post&lt;/strong&gt; with a friend who loves AI
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick an issue&lt;/strong&gt; and make your first contribution today
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s build the future of coding – together.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Sunder on GitHub:&lt;/strong&gt; &lt;a href="https://github.com/kawacukennedy/sunder" rel="noopener noreferrer"&gt;github.com/kawacukennedy/sunder&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Contact:&lt;/strong&gt; &lt;a href="//kawacukent@gmail.com"&gt;Email&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Twitter:&lt;/strong&gt; &lt;a href="http://x.com/Arnaud_Kennedy" rel="noopener noreferrer"&gt;@Arnaud_Kennedy&lt;/a&gt;&lt;/p&gt;




</description>
      <category>opensource</category>
      <category>ai</category>
      <category>javascript</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>I’m Building a High-Signal Discord for Developers Who Actually Want to Build (Not Another Dead Server)</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Thu, 08 Jan 2026 18:44:17 +0000</pubDate>
      <link>https://dev.to/n3on/im-building-a-high-signal-discord-for-developers-who-actually-want-to-build-not-another-dead-19je</link>
      <guid>https://dev.to/n3on/im-building-a-high-signal-discord-for-developers-who-actually-want-to-build-not-another-dead-19je</guid>
      <description>

&lt;p&gt;Most developer Discord servers fail for the same reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Too many channels&lt;/li&gt;
&lt;li&gt;No structure&lt;/li&gt;
&lt;li&gt;No onboarding&lt;/li&gt;
&lt;li&gt;Everyone talks, nobody builds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I decided to build something different.&lt;/p&gt;

&lt;p&gt;I just launched a &lt;strong&gt;Developer Discord Community&lt;/strong&gt; designed around &lt;strong&gt;clarity, progression, and real collaboration&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What makes this server different
&lt;/h3&gt;

&lt;p&gt;This is not a “drop a link and disappear” Discord.&lt;/p&gt;

&lt;p&gt;We’ve designed it with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Structured onboarding&lt;/strong&gt; (Beginner, Intermediate, Advanced)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clean channel UX&lt;/strong&gt; (you only see what’s relevant to you)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focused help channels&lt;/strong&gt; (no noise, no spam)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project collaboration&lt;/strong&gt; (ideas → teams → execution)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A new Web3 channel&lt;/strong&gt; for serious discussions around blockchain, smart contracts, and decentralized apps&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Who this is for
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Developers who want to &lt;strong&gt;learn properly&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Developers who want to &lt;strong&gt;build real projects&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Developers who want &lt;strong&gt;feedback, not fluff&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Developers who want a community that respects their time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stacks include:&lt;br&gt;
Frontend, Backend, Mobile, AI/ML, DevOps — and now &lt;strong&gt;Web3&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What you’ll actually do inside
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ask and answer real technical questions&lt;/li&gt;
&lt;li&gt;Get code reviews&lt;/li&gt;
&lt;li&gt;Collaborate on projects&lt;/li&gt;
&lt;li&gt;Share resources that matter&lt;/li&gt;
&lt;li&gt;Learn from developers at different levels&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Join here
&lt;/h3&gt;

&lt;p&gt;👉 &lt;a href="https://discord.gg/9nqtzGVb" rel="noopener noreferrer"&gt;Discord Server&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re tired of low-signal communities and want a place that feels intentional and well-run, you’re welcome.&lt;/p&gt;

&lt;p&gt;Let’s build something meaningful.&lt;/p&gt;




</description>
      <category>developer</category>
      <category>career</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>I Built 12 Projects In 12 Days… and Almost Lost My Mind 😭💻</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Tue, 02 Dec 2025 11:51:56 +0000</pubDate>
      <link>https://dev.to/n3on/i-built-12-projects-in-12-days-and-almost-lost-my-mind-56p8</link>
      <guid>https://dev.to/n3on/i-built-12-projects-in-12-days-and-almost-lost-my-mind-56p8</guid>
      <description>&lt;p&gt;If you’ve ever said &lt;strong&gt;“I’ll start coding seriously tomorrow”&lt;/strong&gt;,&lt;br&gt;
and then tomorrow becomes &lt;em&gt;next week&lt;/em&gt;… and next week becomes&lt;br&gt;
&lt;strong&gt;“after this YouTube video”&lt;/strong&gt;…&lt;/p&gt;

&lt;p&gt;Yeah. Same.&lt;/p&gt;

&lt;p&gt;I wasn’t a “perfect” coder — I wasn’t even a consistent coder.&lt;/p&gt;

&lt;p&gt;I was more like:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start a project → Get excited → Get stuck → Open TikTok → Never return.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But deep inside, something had to change.&lt;/p&gt;

&lt;p&gt;So I did something… &lt;strong&gt;questionable&lt;/strong&gt;, bold, and slightly unhinged:&lt;br&gt;
I challenged myself to build &lt;strong&gt;12 projects in 12 days&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Did I suffer? Yes.&lt;br&gt;
Did I improve? &lt;em&gt;More than I expected.&lt;/em&gt;&lt;br&gt;
Would I do it again?&lt;/p&gt;

&lt;p&gt;…Let’s not talk about that yet.&lt;/p&gt;




&lt;h1&gt;
  
  
  😤 Days 1–3: “I Am Him” Energy
&lt;/h1&gt;

&lt;p&gt;I started small — a little too small.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A weather app&lt;/li&gt;
&lt;li&gt;A mini Pac-Man style game&lt;/li&gt;
&lt;li&gt;A simple note app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I felt unstoppable. I was coding like I had a personal sponsorship from Red Bull.&lt;/p&gt;




&lt;h1&gt;
  
  
  😵 Days 4–6: Bug-Induced Hallucinations
&lt;/h1&gt;

&lt;p&gt;This is where things… shifted.&lt;/p&gt;

&lt;p&gt;You know those bugs that exist purely to test your patience?&lt;/p&gt;

&lt;p&gt;Like when a button doesn’t work because you spelled &lt;code&gt;onclick&lt;/code&gt; as &lt;code&gt;onlcik&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;for 2 hours straight&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At one point, I opened my console and it opened &lt;em&gt;back at me&lt;/em&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  😭 Days 7–9: The Existential Dread Arc
&lt;/h1&gt;

&lt;p&gt;Halfway through, I questioned EVERYTHING:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;My skills&lt;/li&gt;
&lt;li&gt;My sanity&lt;/li&gt;
&lt;li&gt;My life decisions&lt;/li&gt;
&lt;li&gt;Whether computers were even meant for humans&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But each time I considered giving up, a tiny voice whispered:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Bro, you already tweeted about this challenge. You can’t embarrass yourself now.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I kept going.&lt;/p&gt;




&lt;h1&gt;
  
  
  🤯 Days 10–12: Final Boss Mode
&lt;/h1&gt;

&lt;p&gt;Something weird happened:&lt;br&gt;
I started coding… calmly?&lt;/p&gt;

&lt;p&gt;My debugging got faster.&lt;br&gt;
My problem-solving improved.&lt;br&gt;
I didn’t cry (as much).&lt;/p&gt;

&lt;p&gt;By Day 12, I pushed the last project, closed VS Code, and just sat there.&lt;/p&gt;

&lt;p&gt;I felt &lt;strong&gt;peace&lt;/strong&gt;.&lt;br&gt;
Or maybe burnout. Hard to tell.&lt;/p&gt;




&lt;h1&gt;
  
  
  💡 What I Learned (that school doesn’t teach you)
&lt;/h1&gt;

&lt;h3&gt;
  
  
  ✔ Consistency &amp;gt; Motivation
&lt;/h3&gt;

&lt;p&gt;Motivation comes and goes.&lt;br&gt;
Consistency stays — especially when your pride is on the line.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ Projects teach faster than tutorials
&lt;/h3&gt;

&lt;p&gt;You can’t “tutorial” your way into mastery.&lt;br&gt;
You need to build stuff. Break stuff. Fix stuff. Cry a bit.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ Your future self will thank you
&lt;/h3&gt;

&lt;p&gt;Even if your current self is suffering and eating cold noodles at 2 AM.&lt;/p&gt;




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

&lt;p&gt;This challenge didn’t turn me into a genius overnight.&lt;/p&gt;

&lt;p&gt;But it &lt;strong&gt;changed my mindset&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you're a beginner reading this, let me tell you:&lt;br&gt;
You &lt;em&gt;can&lt;/em&gt; become a great developer — just don’t quit when it gets hard.&lt;/p&gt;

&lt;p&gt;Start small. Build consistently.&lt;br&gt;
And maybe don’t do 12 projects in 12 days unless you're mentally prepared.&lt;/p&gt;

&lt;p&gt;(You’re probably not. I wasn’t.)&lt;/p&gt;




&lt;h1&gt;
  
  
  ❤️ If You Enjoyed This
&lt;/h1&gt;

&lt;p&gt;Leave a comment!&lt;br&gt;
Share the article!&lt;br&gt;
Tell me if you want the &lt;strong&gt;“12 Projects in 12 Days” full breakdown + code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I might drop it.&lt;br&gt;
After I recover.&lt;/p&gt;




</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>discuss</category>
      <category>programming</category>
    </item>
    <item>
      <title>👨‍💻 Welcome to the Life of a Developer</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Mon, 24 Nov 2025 15:48:33 +0000</pubDate>
      <link>https://dev.to/n3on/welcome-to-the-life-of-a-developer-4aak</link>
      <guid>https://dev.to/n3on/welcome-to-the-life-of-a-developer-4aak</guid>
      <description>&lt;p&gt;Hey there! If you’ve ever wondered what it’s like to &lt;strong&gt;be a software developer&lt;/strong&gt;, pull up a chair, grab some coffee, and brace yourself. &lt;/p&gt;




&lt;h3&gt;
  
  
  My Daily Routine
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;9:00 AM&lt;/strong&gt; – Open laptop and stare at code for 5 minutes wondering if I'm alive.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;9:05 AM&lt;/strong&gt; – Realize I have no idea what I’m doing, Google everything.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;11:00 AM&lt;/strong&gt; – Solve a bug that shouldn’t have existed in the first place.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2:00 PM&lt;/strong&gt; – Automate a task that takes 2 minutes, just to feel like a wizard.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4:00 PM&lt;/strong&gt; – Remember I skipped lunch. Eat instant noodles.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;6:00 PM&lt;/strong&gt; – Code review: Cry silently while pretending to understand your teammate’s code.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2:00 AM&lt;/strong&gt; – Push a fix to production. Panic internally. Celebrate externally. 🎉&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Developer Truths
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Debugging&lt;/strong&gt; is like being a detective in a crime movie where you are also the murderer.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stack Overflow&lt;/strong&gt; is basically my second home.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coffee&lt;/strong&gt;: not a drink, a lifestyle.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Comments&lt;/strong&gt;: If future-me can’t understand this, no one can.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Why I Love Development
&lt;/h3&gt;

&lt;p&gt;Because at the end of the day, I build things that &lt;strong&gt;make life easier&lt;/strong&gt;, &lt;strong&gt;solve problems&lt;/strong&gt;, and occasionally &lt;strong&gt;cause chaos in production&lt;/strong&gt;. And somehow, people pay me for it. 💸&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;"Talk is cheap. Show me the code." – Linus Torvalds&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;PS:&lt;/strong&gt; If you read this and laughed (or cried), &lt;strong&gt;star this repo&lt;/strong&gt;. You know, for moral support. &lt;strong&gt;&lt;a href="https://github.com/kawacukennedy/life_os.git" rel="noopener noreferrer"&gt;Star it here!&lt;/a&gt;&lt;/strong&gt; ⭐&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>devhumor</category>
      <category>career</category>
    </item>
    <item>
      <title>🚀 Autonomous Process Auditor (APA)</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Sat, 22 Nov 2025 22:43:08 +0000</pubDate>
      <link>https://dev.to/n3on/autonomous-process-auditor-apa-3p0p</link>
      <guid>https://dev.to/n3on/autonomous-process-auditor-apa-3p0p</guid>
      <description>&lt;h3&gt;
  
  
  &lt;em&gt;AI that doesn’t assist — it works.&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;I just built &lt;strong&gt;Autonomous Process Auditor (APA)&lt;/strong&gt; for the &lt;strong&gt;Agentic AI Hackathon (IBM watsonx Orchestrate)&lt;/strong&gt; — and it might be the most &lt;em&gt;useful&lt;/em&gt; AI agent I’ve ever created.&lt;/p&gt;

&lt;p&gt;Audits suck.&lt;br&gt;
They’re slow, manual, error-prone, and nobody wants to do them.&lt;/p&gt;

&lt;p&gt;So I built an AI agent that does &lt;strong&gt;100% of the auditing work&lt;/strong&gt; automatically.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔥 What APA Does
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✅ &lt;strong&gt;Automates end-to-end auditing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;No more spreadsheets. No more human mistakes.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 &lt;strong&gt;Validates workflows across tools&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Slack, Jira, Notion, Gmail, internal systems — APA checks everything.&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 &lt;strong&gt;Detects anomalies in real time&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Human reviewers catch mistakes late. AI catches them instantly.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ &lt;strong&gt;Generates audit trails automatically&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Every action. Every timestamp. Fully traceable &amp;amp; exportable.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔗 &lt;strong&gt;Uses IBM watsonx Orchestrate to chain skills&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;APA can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pull data&lt;/li&gt;
&lt;li&gt;Analyze patterns&lt;/li&gt;
&lt;li&gt;Flag issues&lt;/li&gt;
&lt;li&gt;Write reports&lt;/li&gt;
&lt;li&gt;Notify teams&lt;/li&gt;
&lt;li&gt;Log results
—all without human intervention.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Why This Matters
&lt;/h2&gt;

&lt;p&gt;Most “AI assistants” still need humans for everything important.&lt;br&gt;
APA isn’t an assistant.&lt;br&gt;
It’s an &lt;strong&gt;Agentic AI system&lt;/strong&gt; that completes tasks &lt;em&gt;autonomously&lt;/em&gt; from start to finish.&lt;/p&gt;

&lt;p&gt;This is the future of work.&lt;br&gt;
Not chatbots — &lt;em&gt;agents that handle entire workflows&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏆 If this doesn’t win the hackathon…
&lt;/h2&gt;

&lt;p&gt;…then maybe I need to build an &lt;strong&gt;Autonomous Judge Auditor&lt;/strong&gt; too 😤🔥&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 What do you think?
&lt;/h2&gt;

&lt;p&gt;Would you trust an AI agent to run audits at your company?&lt;br&gt;
Or is this too much automation?&lt;/p&gt;

&lt;p&gt;Let’s talk 👇&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>automation</category>
      <category>showdev</category>
    </item>
    <item>
      <title>🚀 The Unexpected Lesson That Finally Made Me a Better Developer</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Thu, 20 Nov 2025 06:44:04 +0000</pubDate>
      <link>https://dev.to/n3on/the-unexpected-lesson-that-finally-made-me-a-better-developer-69h</link>
      <guid>https://dev.to/n3on/the-unexpected-lesson-that-finally-made-me-a-better-developer-69h</guid>
      <description>&lt;p&gt;Hi everyone 👋&lt;/p&gt;

&lt;p&gt;I’ve been building things on the internet for a few years now. Some projects failed quietly, some did well, and some never escaped the &lt;em&gt;"idea in my notes app"&lt;/em&gt; stage.&lt;/p&gt;

&lt;p&gt;But a few weeks ago, something strange happened. I hit a wall.&lt;/p&gt;

&lt;p&gt;Not the typical &lt;em&gt;"debugging until 3am"&lt;/em&gt; wall, I’m talking about that moment where you open your laptop… and just stare. Nothing feels exciting. No idea feels good enough. You keep scrolling, comparing yourself to devs shipping insane stuff every other week.&lt;/p&gt;

&lt;p&gt;And I realized something:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I wasn’t stuck because I lacked skills. I was stuck because I forgot &lt;em&gt;why&lt;/em&gt; I code.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🌱 The Moment Everything Shifted
&lt;/h2&gt;

&lt;p&gt;I was working on a side project I was really excited about. But somewhere along the way, I started optimizing the wrong things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reading 10 articles before writing a single line of code&lt;/li&gt;
&lt;li&gt;Trying to make every feature “startup-worthy”&lt;/li&gt;
&lt;li&gt;Refactoring code that didn’t even exist yet&lt;/li&gt;
&lt;li&gt;Watching more tutorials than actually building&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One night, instead of coding, I shut everything down and took a walk. No headphones. No screens.&lt;/p&gt;

&lt;p&gt;And I asked myself a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What tiny thing can I build that solves a real problem I personally feel?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not something impressive. Not something viral.&lt;/p&gt;

&lt;p&gt;Just something &lt;em&gt;useful&lt;/em&gt;. For me.&lt;/p&gt;

&lt;p&gt;That question changed everything.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ I Built Something Small, And It Completely Reignited My Momentum
&lt;/h2&gt;

&lt;p&gt;The next morning I built a tiny tool to automate something I did almost daily.&lt;/p&gt;

&lt;p&gt;Nothing fancy.&lt;/p&gt;

&lt;p&gt;No authentication. No animations. No pixel-perfect UI.&lt;/p&gt;

&lt;p&gt;But for the first time in months, I &lt;em&gt;shipped&lt;/em&gt; something.&lt;/p&gt;

&lt;p&gt;And that tiny win made me feel something I hadn’t felt in a while:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Momentum.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 The Real Secret to Leveling Up as a Developer
&lt;/h2&gt;

&lt;p&gt;Here’s the thing nobody tells you:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;You don’t grow from consuming. You grow from creating.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every dev you admire learned this the hard way.&lt;/p&gt;

&lt;p&gt;They didn’t magically know everything before they started.&lt;/p&gt;

&lt;p&gt;They built things they weren’t ready for.&lt;/p&gt;

&lt;p&gt;They made mistakes.&lt;/p&gt;

&lt;p&gt;They Googled everything.&lt;/p&gt;

&lt;p&gt;They broke production (more than once).&lt;/p&gt;

&lt;p&gt;And they kept going.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧨 Why Your Next Project Should Be Small, Imperfect, and Personal
&lt;/h2&gt;

&lt;p&gt;If you’re feeling stuck too, try this:&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔️ Build something just for yourself
&lt;/h3&gt;

&lt;p&gt;Not the world. Not investors. Not dev influencers. &lt;em&gt;You.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔️ Limit yourself to one feature
&lt;/h3&gt;

&lt;p&gt;No feature creep. No perfection.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔️ Ship it in 48 hours
&lt;/h3&gt;

&lt;p&gt;Because constraints create creativity.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔️ Share what you learned
&lt;/h3&gt;

&lt;p&gt;That’s the part most people skip — but it’s where the growth really happens.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❤️ This Is Your Reminder
&lt;/h2&gt;

&lt;p&gt;You're not behind.&lt;br&gt;
You're not late.&lt;br&gt;
You're not supposed to know everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You just have to start.&lt;/strong&gt; Even if it’s small. Even if it's imperfect. Even if it’s a little messy.&lt;/p&gt;

&lt;p&gt;Your future self will thank you.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔥 Before You Go
&lt;/h2&gt;

&lt;p&gt;If you’re reading this and it resonated, drop a comment:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s the small project &lt;em&gt;you&lt;/em&gt; want to ship this week?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s hype each other up and build cool stuff together.&lt;/p&gt;




&lt;p&gt;Thanks for reading 💙&lt;/p&gt;

&lt;p&gt;If this helped you, feel free to follow me — I share real, honest content about coding, learning, and building things that matter.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I Built a “Useless” App at 2 AM… And People Actually Loved It 😳</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Mon, 17 Nov 2025 19:32:05 +0000</pubDate>
      <link>https://dev.to/n3on/i-built-a-useless-app-at-2-am-and-people-actually-loved-it-4n87</link>
      <guid>https://dev.to/n3on/i-built-a-useless-app-at-2-am-and-people-actually-loved-it-4n87</guid>
      <description>&lt;p&gt;Late one night, fueled by too much coffee and existential dread about my career, I decided to build an app.  &lt;/p&gt;

&lt;p&gt;Was it perfect? Nope.&lt;br&gt;&lt;br&gt;
Was it pretty? Definitely not.&lt;br&gt;&lt;br&gt;
Did I almost delete it multiple times? Absolutely.  &lt;/p&gt;

&lt;p&gt;But here’s the insane part: when I shared it with a few friends, &lt;strong&gt;they actually started using it&lt;/strong&gt;. And that’s when I realized:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You don’t need to build a masterpiece. You just need to build something that works.  &lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  5 Brutal Truths About Shipping Stuff No One Asked For
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Your first version will be ugly.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Like, really ugly. And that’s okay. People don’t care if it’s polished—they care if it &lt;strong&gt;solves a problem&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tiny problems are gold mines.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
That small frustration you’ve learned to ignore? That’s your next app idea. Seriously.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Feedback &amp;gt; Planning. Always.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You can spend weeks designing the “perfect” app… or 3 hours getting real feedback that actually matters. Hint: choose the latter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Share your mess.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Don’t wait for the “finished product.” People love seeing progress, learning curves, and even failures. Authenticity = engagement.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Celebrate weird wins.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
That one person who screenshots your app and says “This actually helps me”? That’s proof your work matters. Pat yourself on the back. You earned it.  &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Here’s the kicker: that midnight project that I thought was &lt;strong&gt;useless&lt;/strong&gt; is now being used by a small community.  &lt;/p&gt;

&lt;p&gt;And the lesson?  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You don’t have to wait for inspiration. You don’t have to wait for perfection. You just have to &lt;strong&gt;start&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;💬 &lt;strong&gt;Your turn:&lt;/strong&gt; Have you ever built something “just for fun” that actually worked? Or failed gloriously? Drop your story in the comments. Let’s normalize messy wins.  &lt;/p&gt;

&lt;p&gt;🔁 &lt;strong&gt;Pro tip:&lt;/strong&gt; Share this with a dev friend who’s stuck on a side project. You might be the push they need to finally ship.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🚀 Follow Me on X (Twitter) — Let’s Build Something Insane Together</title>
      <dc:creator>kennedy</dc:creator>
      <pubDate>Mon, 17 Nov 2025 12:09:10 +0000</pubDate>
      <link>https://dev.to/n3on/follow-me-on-x-twitter-lets-build-something-insane-together-nmn</link>
      <guid>https://dev.to/n3on/follow-me-on-x-twitter-lets-build-something-insane-together-nmn</guid>
      <description>&lt;p&gt;Hey Dev Community! 👋&lt;/p&gt;

&lt;p&gt;I'm &lt;strong&gt;on a mission to build, ship, and share&lt;/strong&gt; everything I learn in &lt;strong&gt;AI, Web Development, Blockchain, Growth Hacking, and Indie Hacking&lt;/strong&gt; — all in public.&lt;/p&gt;

&lt;p&gt;If you're obsessed with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⚡ Insanely practical coding tutorials&lt;/li&gt;
&lt;li&gt;🤖 AI tools, prompts, and workflows&lt;/li&gt;
&lt;li&gt;🛠️ Real-life projects built from scratch&lt;/li&gt;
&lt;li&gt;🔥 Growth strategies for devs and creators&lt;/li&gt;
&lt;li&gt;💼 Shipping ideas fast (and actually finishing them)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then you’re going to love what I drop on &lt;strong&gt;X (Twitter)&lt;/strong&gt; every single day.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 What You’ll Get on My X Feed
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Actionable Dev Tips&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;No fluff. Just real examples, code snippets, and things you can implement today.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Public Building&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I share everything I’m working on — wins, mistakes, failures, breakthroughs.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Viral-Level AI Prompts&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Prompts for devs, designers, marketers, founders.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;Mini Deep-Dives&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;On frontend, backend, full-stack architecture, and smarter workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. &lt;strong&gt;Motivation for Builders&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Because dev burnout is real.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 Why Follow Me?
&lt;/h2&gt;

&lt;p&gt;Because I'm not just tweeting — I'm &lt;strong&gt;designing content to make you level up fast&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I break down:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to think like a developer&lt;/li&gt;
&lt;li&gt;How to move faster as a builder&lt;/li&gt;
&lt;li&gt;How to turn simple ideas into real projects&lt;/li&gt;
&lt;li&gt;How to use AI to supercharge your workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All in &lt;strong&gt;30–180 second reads&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  💎 Bonus: I Interact With My Followers
&lt;/h2&gt;

&lt;p&gt;Ask a question? I reply.&lt;br&gt;
Need help on a project? I jump in.&lt;br&gt;
Need a custom prompt? I create one.&lt;/p&gt;

&lt;p&gt;I’m building a &lt;strong&gt;community of sharp developers, indie hackers, and technical creatives&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 My X Content Strategy (aka Why This Will Be Worth Your Follow)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🟦 High-value threads
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🟪 Memes + humor to keep it fun
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🟩 Quick tutorials
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🟥 Hot takes (that spark discussions)
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🟧 Live project updates
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🟨 Community challenges
&lt;/h3&gt;

&lt;p&gt;This isn’t a typical "follow me" pitch. This is an invite to a &lt;strong&gt;high-signal feed&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Follow Me on X
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://x.com/Arnaud_Kennedy" rel="noopener noreferrer"&gt;https://x.com/Arnaud_Kennedy&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⭐ If You Found This Inspiring
&lt;/h2&gt;

&lt;p&gt;Drop a ❤️ or leave a comment.&lt;/p&gt;

&lt;p&gt;Let’s grow together.&lt;br&gt;
Let’s build together.&lt;br&gt;
Let’s win together.&lt;/p&gt;

&lt;p&gt;— &lt;strong&gt;Kennedy&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>programming</category>
      <category>webdev</category>
      <category>developer</category>
    </item>
  </channel>
</rss>
