<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
  <title>Nicolás Duque</title>
  <link>https://nicolasduque.com</link>
  <description>Notes on shipping React/Node.js products and putting LLMs and AI agents into production. Written by Nicolás Duque, senior full-stack engineer and former tech lead.</description>
  <language>en</language>
<item>
  <title>LLMs in production: the hard part is the contract around the model</title>
  <link>https://nicolasduque.com/blog/llms-in-production-the-contract-around-the-model/</link>
  <guid>https://nicolasduque.com/blog/llms-in-production-the-contract-around-the-model/</guid>
  <pubDate>Wed, 16 Sep 2026 12:00:00 GMT</pubDate>
  <description>What I learned putting OpenAI, Anthropic and Gemini behind an accounting product: schemas, deterministic checks, confidence thresholds and a human review queue.</description>
</item>
<item>
  <title>Designing an MCP server an LLM can use safely</title>
  <link>https://nicolasduque.com/blog/designing-an-mcp-server-an-llm-can-use-safely/</link>
  <guid>https://nicolasduque.com/blog/designing-an-mcp-server-an-llm-can-use-safely/</guid>
  <pubDate>Wed, 19 Aug 2026 12:00:00 GMT</pubDate>
  <description>Lessons from exposing market data, account data and a trade journal to Claude through MCP: grouping tools, failing clearly, and never letting the model place an order.</description>
</item>
<item>
  <title>Reading bank notification emails to track spending in Colombia</title>
  <link>https://nicolasduque.com/blog/reading-bank-emails/</link>
  <guid>https://nicolasduque.com/blog/reading-bank-emails/</guid>
  <pubDate>Wed, 05 Aug 2026 12:00:00 GMT</pubDate>
  <description>Colombian banks don't offer open APIs to regular developers, so Nora reads the transaction alerts they already send by email. Here's how the pipeline works.</description>
</item>
<item>
  <title>Rules first, LLM second: categorizing Colombian bank transactions</title>
  <link>https://nicolasduque.com/blog/rules-first-llm-second/</link>
  <guid>https://nicolasduque.com/blog/rules-first-llm-second/</guid>
  <pubDate>Wed, 15 Jul 2026 12:00:00 GMT</pubDate>
  <description>In Nora, my personal-finance app, the LLM is the last resort, not the first step. Here's the pipeline and why every AI answer becomes a rule.</description>
</item>
<item>
  <title>Dashboards from JSON schemas: replacing spreadsheet reports</title>
  <link>https://nicolasduque.com/blog/json-schema-dashboards/</link>
  <guid>https://nicolasduque.com/blog/json-schema-dashboards/</guid>
  <pubDate>Wed, 10 Jun 2026 12:00:00 GMT</pubDate>
  <description>At LeoVegas I built a Node.js service and a schema-driven dashboard framework with pluggable database connectors, so product managers could stop building reports by hand.</description>
</item>
<item>
  <title>Rules as data: onboarding customers without shipping code</title>
  <link>https://nicolasduque.com/blog/rules-as-data/</link>
  <guid>https://nicolasduque.com/blog/rules-as-data/</guid>
  <pubDate>Wed, 27 May 2026 12:00:00 GMT</pubDate>
  <description>At KitchenSync every restaurant had its own accounting rules. Moving those rules out of code and into configuration changed how we onboarded customers.</description>
</item>
<item>
  <title>What I learned leading a team of four engineers</title>
  <link>https://nicolasduque.com/blog/leading-a-team-of-four/</link>
  <guid>https://nicolasduque.com/blog/leading-a-team-of-four/</guid>
  <pubDate>Wed, 13 May 2026 12:00:00 GMT</pubDate>
  <description>Small pull requests, mandatory review, CI, quality audits and settling technical debates with data: the habits that kept quality up at KitchenSync.</description>
</item>
<item>
  <title>Three ways LLMs fail in production, and what to do about each</title>
  <link>https://nicolasduque.com/blog/three-ways-llms-fail/</link>
  <guid>https://nicolasduque.com/blog/three-ways-llms-fail/</guid>
  <pubDate>Wed, 22 Apr 2026 12:00:00 GMT</pubDate>
  <description>API errors, broken output and answers that look right but aren't. Each one needs a different defense.</description>
</item>
<item>
  <title>A dev team of agents, each in its own git worktree</title>
  <link>https://nicolasduque.com/blog/a-dev-team-of-agents-in-git-worktrees/</link>
  <guid>https://nicolasduque.com/blog/a-dev-team-of-agents-in-git-worktrees/</guid>
  <pubDate>Wed, 08 Apr 2026 12:00:00 GMT</pubDate>
  <description>How I turned Claude Code into a small team: a project manager, backend, frontend, database and QA agents working in parallel without stepping on each other.</description>
</item>
<item>
  <title>Five levers for LLM cost that matter more than a clever prompt</title>
  <link>https://nicolasduque.com/blog/five-levers-for-llm-cost/</link>
  <guid>https://nicolasduque.com/blog/five-levers-for-llm-cost/</guid>
  <pubDate>Wed, 25 Mar 2026 12:00:00 GMT</pubDate>
  <description>Model per task, fewer tokens, caching, batching and measuring every request: the cost controls I rely on when LLMs run inside a real product.</description>
</item>
<item>
  <title>One shared TypeScript library for every service, without a god library</title>
  <link>https://nicolasduque.com/blog/a-shared-typescript-library/</link>
  <guid>https://nicolasduque.com/blog/a-shared-typescript-library/</guid>
  <pubDate>Wed, 11 Mar 2026 12:00:00 GMT</pubDate>
  <description>At KitchenSync I designed a shared TypeScript library with more than 16 modules used across the whole platform. Here's how to keep something like that useful instead of dangerous.</description>
</item>
<item>
  <title>Shipping software under IEC 62304</title>
  <link>https://nicolasduque.com/blog/shipping-under-iec-62304/</link>
  <guid>https://nicolasduque.com/blog/shipping-under-iec-62304/</guid>
  <pubDate>Wed, 25 Feb 2026 12:00:00 GMT</pubDate>
  <description>What building a triage module for a digital healthcare platform taught me about traceability, risk and documented change, and why those habits are worth keeping outside healthcare.</description>
</item>
<item>
  <title>Turning a mobile app into a white-label SaaS</title>
  <link>https://nicolasduque.com/blog/white-label-mobile-saas/</link>
  <guid>https://nicolasduque.com/blog/white-label-mobile-saas/</guid>
  <pubDate>Wed, 11 Feb 2026 12:00:00 GMT</pubDate>
  <description>How we refactored Doktor24's mobile app so partners could get their own branded version from configuration, with a CI/CD pipeline that builds each brand.</description>
</item>
<item>
  <title>Backend for frontend: one API per kind of client</title>
  <link>https://nicolasduque.com/blog/backend-for-frontend/</link>
  <guid>https://nicolasduque.com/blog/backend-for-frontend/</guid>
  <pubDate>Wed, 28 Jan 2026 12:00:00 GMT</pubDate>
  <description>At Doktor24, patients, practitioners and configurators needed very different things from the same platform. Node.js BFF services gave each client an API shaped for it.</description>
</item>
<item>
  <title>Micro-frontends with Module Federation: what we gained and what it cost</title>
  <link>https://nicolasduque.com/blog/micro-frontends-with-module-federation/</link>
  <guid>https://nicolasduque.com/blog/micro-frontends-with-module-federation/</guid>
  <pubDate>Wed, 14 Jan 2026 12:00:00 GMT</pubDate>
  <description>At Doktor24 we split a healthcare web platform into micro-frontends so teams could ship on their own schedule. Here's the reasoning, the trade-offs, and when I wouldn't do it.</description>
</item>
</channel>
</rss>