<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Federico Calo - Tech Blog</title>
    <link>https://federicocalo.dev/en/blog</link>
    <description>Articles about software development, AI, machine learning, architecture and technology</description>
    <language>en</language>
    <lastBuildDate>Wed, 05 Aug 2026 12:00:00 GMT</lastBuildDate>
    <atom:link href="https://federicocalo.dev/feed-en.xml" rel="self" type="application/rss+xml"/>
    <atom:link href="https://pubsubhubbub.appspot.com/" rel="hub"/>
    <managingEditor>info@federicocalo.dev (Federico Calo)</managingEditor>
    <webMaster>info@federicocalo.dev (Federico Calo)</webMaster>
    <image>
      <url>https://federicocalo.dev/assets/images/logo.png</url>
      <title>Federico Calo - Tech Blog</title>
      <link>https://federicocalo.dev/en/blog</link>
    </image>
    <item>
      <title>After Gemini CLI: Antigravity and gemini-api</title>
      <link>https://federicocalo.dev/en/blog/after-gemini-cli-antigravity-gemini-api</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/after-gemini-cli-antigravity-gemini-api</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Google Gemini for Developers</category>
      <description>Since 18 June 2026 Gemini CLI no longer serves individual accounts. What Antigravity CLI is, what gemini-api is for, and how to migrate your configuration.</description>
    </item>
    <item>
      <title>Codex vs Claude Code, Copilot, Cursor: an honest look</title>
      <link>https://federicocalo.dev/en/blog/codex-vs-claude-code-copilot-cursor-comparison</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/codex-vs-claude-code-copilot-cursor-comparison</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OpenAI Codex</category>
      <description>Codex against Claude Code, GitHub Copilot and Cursor: prices as listed in October 2026, real differences and a way to choose without fandom.</description>
    </item>
    <item>
      <title>Getting cited by Perplexity: what's proven</title>
      <link>https://federicocalo.dev/en/blog/getting-cited-by-perplexity-what-is-proven</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/getting-cited-by-perplexity-what-is-proven</guid>
      <pubDate>Thu, 29 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Perplexity</category>
      <description>How an answer engine picks sources is unknown from outside: what is documented, what is conjecture and how to measure what can be measured.</description>
    </item>
    <item>
      <title>Codex: cloud, subagents, skills and MCP to delegate</title>
      <link>https://federicocalo.dev/en/blog/codex-cloud-subagents-skills-mcp</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/codex-cloud-subagents-skills-mcp</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OpenAI Codex</category>
      <description>Delegate to Codex cloud, run subagents in parallel, write skills and connect MCP servers: what pays off, what it costs and when it does not fit.</description>
    </item>
    <item>
      <title>Gemini API: Tiers, Limits and Data Privacy</title>
      <link>https://federicocalo.dev/en/blog/gemini-api-tiers-limits-privacy</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/gemini-api-tiers-limits-privacy</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Google Gemini for Developers</category>
      <description>Free tier, Tiers 1-3, spend thresholds and rate limits of the Gemini API: what is published, what is not, and why the free tier suits no sensitive data.</description>
    </item>
    <item>
      <title>PerplexityBot and Perplexity-User: robots.txt</title>
      <link>https://federicocalo.dev/en/blog/perplexitybot-and-perplexity-user-robots-txt</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/perplexitybot-and-perplexity-user-robots-txt</guid>
      <pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Perplexity</category>
      <description>Two agents, different rules: what robots.txt controls, what it does not, how to verify from your logs who really visits and what Cloudflare reported in 2025.</description>
    </item>
    <item>
      <title>Codex exec and SDK: the agent in CI, safely</title>
      <link>https://federicocalo.dev/en/blog/codex-exec-ci-sdk-automation</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/codex-exec-ci-sdk-automation</guid>
      <pubDate>Tue, 27 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OpenAI Codex</category>
      <description>How to use codex exec, JSON output, response schemas and the SDK to run Codex in CI while keeping the API key away from the code in your repo.</description>
    </item>
    <item>
      <title>Gemini: 1M-Token Context, Thinking, Caching</title>
      <link>https://federicocalo.dev/en/blog/gemini-context-thinking-caching</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/gemini-context-thinking-caching</guid>
      <pubDate>Tue, 27 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Google Gemini for Developers</category>
      <description>One million tokens shared across input, thinking and output: what changes with Gemini 4 Argon, thinking_level, and when implicit caching saves money.</description>
    </item>
    <item>
      <title>Costs, QPS and 429s on the Perplexity API</title>
      <link>https://federicocalo.dev/en/blog/costs-qps-and-429s-on-the-perplexity-api</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/costs-qps-and-429s-on-the-perplexity-api</guid>
      <pubDate>Tue, 27 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Perplexity</category>
      <description>Usage tiers, QPS, the kinds of 429 and a spending ceiling of your own: how to estimate and control Perplexity API costs without knowing everything.</description>
    </item>
    <item>
      <title>Codex: which model and how much reasoning to pick</title>
      <link>https://federicocalo.dev/en/blog/codex-models-reasoning-effort-costs</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/codex-models-reasoning-effort-costs</guid>
      <pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OpenAI Codex</category>
      <description>Astra, Sol, Terra or Luna? The Codex models as of October 2026, plan limits, credits and how to pick a reasoning level without wasting usage.</description>
    </item>
    <item>
      <title>Perplexity MCP in Claude Code and Cursor</title>
      <link>https://federicocalo.dev/en/blog/perplexity-mcp-in-claude-code-and-cursor</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/perplexity-mcp-in-claude-code-and-cursor</guid>
      <pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Perplexity</category>
      <description>Perplexity's official MCP server in Claude Code, Cursor and VS Code: installation, the four tools, the costs and the risk of web text in the context.</description>
    </item>
    <item>
      <title>Gemini: Functions, JSON and Google Search</title>
      <link>https://federicocalo.dev/en/blog/gemini-function-calling-loop-modes</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/gemini-function-calling-loop-modes</guid>
      <pubDate>Sun, 25 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Google Gemini for Developers</category>
      <description>How to let a Gemini model call your functions: the declaration, the function_call and function_result loop, the auto, any, none and validated modes.</description>
    </item>
    <item>
      <title>From Sonar to the Agent API: migrating safely</title>
      <link>https://federicocalo.dev/en/blog/from-sonar-to-the-agent-api-migrating-safely</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/from-sonar-to-the-agent-api-migrating-safely</guid>
      <pubDate>Sun, 25 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Perplexity</category>
      <description>Sonar has been absorbed by Perplexity's Agent API: what changes in request, response and citations, and how to migrate with a test on your own traffic.</description>
    </item>
    <item>
      <title>Gemini API: Key, SDK and the Interactions API</title>
      <link>https://federicocalo.dev/en/blog/gemini-api-key-sdk-interactions</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/gemini-api-key-sdk-interactions</guid>
      <pubDate>Sat, 24 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Google Gemini for Developers</category>
      <description>From API key to first response: the google-genai SDK, the new Interactions endpoint, server-side state, and what changes compared with generateContent.</description>
    </item>
    <item>
      <title>Perplexity Search API for your RAG</title>
      <link>https://federicocalo.dev/en/blog/perplexity-search-api-for-your-rag</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/perplexity-search-api-for-your-rag</guid>
      <pubDate>Sat, 24 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Perplexity</category>
      <description>Perplexity's Search API returns sources, not answers: parameters, costs, limits and a RAG pipeline that checks the citations in code.</description>
    </item>
    <item>
      <title>Codex AGENTS.md and config.toml: give it stable rules</title>
      <link>https://federicocalo.dev/en/blog/codex-agents-md-config-toml-setup</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/codex-agents-md-config-toml-setup</guid>
      <pubDate>Fri, 23 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OpenAI Codex</category>
      <description>How Codex reads AGENTS.md, where config.toml lives, which file wins when they conflict, and how to keep your rules under the 32 KiB limit.</description>
    </item>
    <item>
      <title>Gemini for Developers: Models and Pricing</title>
      <link>https://federicocalo.dev/en/blog/gemini-for-developers-models-pricing</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/gemini-for-developers-models-pricing</guid>
      <pubDate>Fri, 23 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Google Gemini for Developers</category>
      <description>Which Gemini models exist on 30 October 2026, what they cost and which to pick: Gemini 4 Argon, 3.8 Flash and Flash-Lite, with trade-offs and dated sources.</description>
    </item>
    <item>
      <title>Perplexity Agent API: effort and citations</title>
      <link>https://federicocalo.dev/en/blog/perplexity-agent-api-effort-and-citations</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/perplexity-agent-api-effort-and-citations</guid>
      <pubDate>Fri, 23 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Perplexity</category>
      <description>How to use Perplexity's Agent API: effort levels from fast to xhigh, how to read the sources in the response and where the real cost hides.</description>
    </item>
    <item>
      <title>Codex sandbox and approvals: how far to trust the agent</title>
      <link>https://federicocalo.dev/en/blog/codex-sandbox-approvals-permissions</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/codex-sandbox-approvals-permissions</guid>
      <pubDate>Thu, 22 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OpenAI Codex</category>
      <description>Read-only, workspace-write or full access? How Codex combines sandbox and approvals, what each choice costs and which one to use locally and in CI.</description>
    </item>
    <item>
      <title>Perplexity for developers: the map</title>
      <link>https://federicocalo.dev/en/blog/perplexity-for-developers-the-map</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/perplexity-for-developers-the-map</guid>
      <pubDate>Thu, 22 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Perplexity</category>
      <description>Perplexity's five developer APIs under one key: when to pick the Agent API, the Search API or the others, what it costs, and what became of Sonar.</description>
    </item>
    <item>
      <title>Codex CLI: install and first task, step by step</title>
      <link>https://federicocalo.dev/en/blog/codex-cli-install-first-task</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/codex-cli-install-first-task</guid>
      <pubDate>Wed, 21 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OpenAI Codex</category>
      <description>How to install Codex CLI, sign in with ChatGPT or an API key and run your first task: /init, /permissions, /review and Git checkpoints to roll back.</description>
    </item>
    <item>
      <title>OpenAI Codex today: what it is and what it costs</title>
      <link>https://federicocalo.dev/en/blog/openai-codex-what-it-is-today-product-map</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/openai-codex-what-it-is-today-product-map</guid>
      <pubDate>Tue, 20 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OpenAI Codex</category>
      <description>Codex is now a family of surfaces: CLI, IDE extension, app, web and cloud. What it is, which plans include it and when it pays off, with dated sources.</description>
    </item>
    <item>
      <title>06 - Petri Nets: structure, markings, reachability, liveness and safety</title>
      <link>https://federicocalo.dev/en/blog/formal-methods-06-06-petri-nets-structure-reachability-liveness</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/formal-methods-06-06-petri-nets-structure-reachability-liveness</guid>
      <pubDate>Thu, 08 Oct 2026 10:20:45 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Formal Methods</category>
      <description>Graphical-mathematical model for concurrent systems; places, transitions, markings; liveness, safety and boundedness properties; deadlock and starvation.</description>
    </item>
    <item>
      <title>03 - Finite state machines and automata</title>
      <link>https://federicocalo.dev/en/blog/formal-methods-03-03-finite-state-machines</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/formal-methods-03-03-finite-state-machines</guid>
      <pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Formal Methods</category>
      <description>Deterministic and non-deterministic automata, modeling behavior, verifying reachability and liveness properties.</description>
    </item>
    <item>
      <title>03 - Source Coding: Huffman and Shannon's First Theorem</title>
      <link>https://federicocalo.dev/en/blog/information-theory-03-03-source-coding-huffman-kraft</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/information-theory-03-03-source-coding-huffman-kraft</guid>
      <pubDate>Tue, 06 Oct 2026 11:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Information Theory</category>
      <description>Prefix codes and Kraft inequality. Huffman code construction. Shannon's first theorem: average length of any code &gt;= H(X). Optimal compression.</description>
    </item>
    <item>
      <title>06 - Lossy compression and rate-distortion: Shannon's third theorem and model quantization</title>
      <link>https://federicocalo.dev/en/blog/information-theory-06-lossy-compression-rate-distortion</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/information-theory-06-lossy-compression-rate-distortion</guid>
      <pubDate>Tue, 06 Oct 2026 09:45:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Information Theory</category>
      <description>Shannon's rate-distortion theory: compression with distortion constraint, the third theorem, and the bridge to machine learning model quantization.</description>
    </item>
    <item>
      <title>05 - Model checking: how it works, state explosion, counterexamples</title>
      <link>https://federicocalo.dev/en/blog/formal-methods-05-05-model-checking-how-works-state-explosion</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/formal-methods-05-05-model-checking-how-works-state-explosion</guid>
      <pubDate>Tue, 06 Oct 2026 09:42:15 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Formal Methods</category>
      <description>Exhaustive state space search; scalability challenges; state compression and abstraction techniques; counterexamples as debugging tools.</description>
    </item>
    <item>
      <title>04 - Temporal Logic: LTL and CTL, how to express "eventually" and "always"</title>
      <link>https://federicocalo.dev/en/blog/formal-methods-04-04-temporal-logic-ltl-ctl-eventually-always</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/formal-methods-04-04-temporal-logic-ltl-ctl-eventually-always</guid>
      <pubDate>Sun, 04 Oct 2026 08:15:22 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Formal Methods</category>
      <description>Linear Temporal Logic (LTL) and branching-time temporal logic (CTL): formal semantics, temporal operators, liveness and safety properties.</description>
    </item>
    <item>
      <title>02 - Mutual Information and Kullback-Leibler Divergence</title>
      <link>https://federicocalo.dev/en/blog/information-theory-02-02-mutual-information-kl-divergence</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/information-theory-02-02-mutual-information-kl-divergence</guid>
      <pubDate>Sat, 03 Oct 2026 09:30:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Information Theory</category>
      <description>Mutual information I(X;Y): how much Y reduces uncertainty about X. Kullback-Leibler divergence: measure of distance between distributions. Jensen's inequality, relationship between both concepts.</description>
    </item>
    <item>
      <title>02 - Logic for specification: propositional and first-order</title>
      <link>https://federicocalo.dev/en/blog/formal-methods-02-02-logic-for-specification</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/formal-methods-02-02-logic-for-specification</guid>
      <pubDate>Sat, 03 Oct 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Formal Methods</category>
      <description>Propositional logic, first-order logic, preconditions, postconditions, loop invariants. How to formalize behavior.</description>
    </item>
    <item>
      <title>05 - Error-correcting codes: Hamming distance, Hamming and Singleton bounds</title>
      <link>https://federicocalo.dev/en/blog/information-theory-05-error-correcting-codes-hamming</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/information-theory-05-error-correcting-codes-hamming</guid>
      <pubDate>Fri, 02 Oct 2026 10:30:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Information Theory</category>
      <description>Hamming distance, linear block codes, Hamming and Singleton bounds for error correction: from theory to practice on disks and networks.</description>
    </item>
    <item>
      <title>01 - Shannon Entropy</title>
      <link>https://federicocalo.dev/en/blog/information-theory-01-01-shannon-entropy</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/information-theory-01-01-shannon-entropy</guid>
      <pubDate>Wed, 30 Sep 2026 10:15:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Information Theory</category>
      <description>Definition and properties of Shannon entropy: quantitative measure of a source's uncertainty. Formula, joint and conditional entropy, chain rule.</description>
    </item>
    <item>
      <title>04 - Noisy channels and capacity: from error probability to Shannon's second theorem</title>
      <link>https://federicocalo.dev/en/blog/information-theory-04-noisy-channels-capacity-shannon</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/information-theory-04-noisy-channels-capacity-shannon</guid>
      <pubDate>Tue, 29 Sep 2026 08:15:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Information Theory</category>
      <description>The binary symmetric channel, channel capacity, and Shannon's second theorem: the foundation of reliable communication over real channels.</description>
    </item>
    <item>
      <title>01 - When to invest in formal methods</title>
      <link>https://federicocalo.dev/en/blog/formal-methods-01-01-when-to-invest</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/formal-methods-01-01-when-to-invest</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Formal Methods</category>
      <description>Formal specification, mathematical verification, when the cost of a bug exceeds the cost of a proof. ROI in critical systems.</description>
    </item>
    <item>
      <title>Legal Documents in a Walled Garden: What the Architecture Describes, What the Client's Legal Counsel Decides</title>
      <link>https://federicocalo.dev/en/blog/walled-garden-legaltech-portabilita-dato</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/walled-garden-legaltech-portabilita-dato</guid>
      <pubDate>Wed, 05 Aug 2026 12:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Data Sovereignty</category>
      <description>A law firm's documents living inside a proprietary platform raise an architectural question before a legal one: in what format do they come out, and at what cost? This article describes an on-prem architecture for legal documents — what's a verifiable fact, what isn't — and why...</description>
    </item>
    <item>
      <title>Healthcare Data On-Prem: What the Architecture Describes, What the Compliance Counsel Decides</title>
      <link>https://federicocalo.dev/en/blog/architettura-on-prem-dati-sanitari-baa</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/architettura-on-prem-dati-sanitari-baa</guid>
      <pubDate>Wed, 05 Aug 2026 09:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Data Sovereignty</category>
      <description>A workload that handles healthcare data can't send that data outside the client's perimeter, and there's no third-party processor to hand it to. This article describes what an on-prem architecture does — what's a verifiable fact, what isn't — and why the question of a BAA...</description>
    </item>
    <item>
      <title>On-Prem Infrastructure TCO: An Honest Calculation Framework</title>
      <link>https://federicocalo.dev/en/blog/framework-tco-infrastruttura-on-prem</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/framework-tco-infrastruttura-on-prem</guid>
      <pubDate>Mon, 03 Aug 2026 09:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Data Sovereignty</category>
      <description>The total cost of ownership of an infrastructure that keeps data in-house isn't a sales figure: it's a sum of line items — hardware, maintenance, in-house skills, lock-in risk, billing model. A calculation framework with the real figures measured on the production machine...</description>
    </item>
    <item>
      <title>Optimizing LLM Costs in Production: Self-Hosting, Caching, and Quantization</title>
      <link>https://federicocalo.dev/en/blog/ottimizzare-costi-llm</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/ottimizzare-costi-llm</guid>
      <pubDate>Sun, 19 Jul 2026 09:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>AI Cost Optimization</category>
      <description>How to reduce LLM inference costs from cloud API consumption to zero marginal cost with self-hosted Ollama on VPS. Strategies: GGUF quantization, semantic caching, batching, model selection...</description>
    </item>
    <item>
      <title>Java 21 for Spring Boot developer: Virtual Threads, Pattern Matching, Records and String Templates</title>
      <link>https://federicocalo.dev/en/blog/java-21-spring-boot</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/java-21-spring-boot</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Clean Architecture</category>
      <description>Java 21 LTS transforms Spring Boot development with virtual threads, advanced pattern matching, immutable records and string templates. Practical guide with real examples...</description>
    </item>
    <item>
      <title>JPA and Flyway in Clean Architecture: Pure Domain, Persistence Adapters, and Schema Versioning</title>
      <link>https://federicocalo.dev/en/blog/jpa-flyway-clean-architecture</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/jpa-flyway-clean-architecture</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Clean Architecture</category>
      <description>How to integrate JPA/Hibernate and Flyway database migrations in the infrastructure layer of Clean Architecture Spring Boot, keeping the domain layer pure, separating JPA entities from domain models, and managing schema versioning with full traceability.</description>
    </item>
    <item>
      <title>Testing Spring Boot with Testcontainers: Integration Testing with Real Databases</title>
      <link>https://federicocalo.dev/en/blog/testing-spring-testcontainers</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/testing-spring-testcontainers</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Clean Architecture</category>
      <description>Complete guide to Testcontainers for Spring Boot integration testing. Real PostgreSQL and Redis containers, @DynamicPropertySource, container reuse, testing infrastructure layer in Clean Architecture, CI/CD best practices.</description>
    </item>
    <item>
      <title>SOLID Principles in Practice with Java and TypeScript</title>
      <link>https://federicocalo.dev/en/blog/solid-java-typescript</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/solid-java-typescript</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Clean Architecture</category>
      <description>The 5 SOLID principles (SRP, OCP, LSP, ISP, DIP) explained with real-world examples in Java 21 and TypeScript. For each: an anti-pattern (wrong) and the correct version (right). Link SOLID to Clean Architecture. Examples from Spring Boot and Angular.</description>
    </item>
    <item>
      <title>Domain Layer in Clean Architecture: Pure Entities and Value Objects</title>
      <link>https://federicocalo.dev/en/blog/domain-layer-clean-architecture</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/domain-layer-clean-architecture</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Clean Architecture</category>
      <description>The domain layer is the heart of Clean Architecture: pure business logic, zero Spring, zero JPA. Learn how to model immutable entities with Java records, implement value objects with constructor-based validation, and protect business rules.</description>
    </item>
    <item>
      <title>Use Case Pattern in Spring Boot Clean Architecture</title>
      <link>https://federicocalo.dev/en/blog/use-case-spring-clean</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/use-case-spring-clean</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Clean Architecture</category>
      <description>Application layer with use case (interactor), ports and DTO as Java records. Orchestration domain-infrastructure without presentation coupling. Transactions, dependency injection, anti-pattern business logic in controller.</description>
    </item>
    <item>
      <title>Infrastructure Layer: JPA and Redis in Clean Architecture</title>
      <link>https://federicocalo.dev/en/blog/infrastructure-jpa-redis</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/infrastructure-jpa-redis</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Clean Architecture</category>
      <description>The infrastructure layer implements the ports of domain/application through adapters: JPA for persistence, Redis for caching, WebClient for external services. How to maintain the dependency arrow toward the domain, avoid fatal couplings, and scale with concrete patterns on Spring Boot 3.4, PostgreSQL 16 and Redis Stack 7.</description>
    </item>
    <item>
      <title>Complete Testing in Clean Architecture: From Domain Units to Integration</title>
      <link>https://federicocalo.dev/en/blog/testing-clean-architecture</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/testing-clean-architecture</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Clean Architecture</category>
      <description>The test pyramid in Clean Architecture: pure domain unit tests (no mocks, JUnit 5 only), use case tests with mocked ports (Mockito), infrastructure integration tests with Testcontainers. Coverage per layer, what NOT to test, Java 21 + JUnit 5 examples.</description>
    </item>
    <item>
      <title>LightGBM for Sports Prediction: Gradient Boosting and Brier Score</title>
      <link>https://federicocalo.dev/en/blog/lightgbm-sport-prediction</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/lightgbm-sport-prediction</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>AI Engineering</category>
      <description>Sports prediction pipeline with LightGBM in Python: feature engineering, gradient boosting, probabilistic calibration, evaluation with Brier score on a dataset of 2000+ matches.</description>
    </item>
    <item>
      <title>SaaS Pricing for European Founders: Models, VAT, and Price Psychology</title>
      <link>https://federicocalo.dev/en/blog/saas-pricing-founder-eu</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/saas-pricing-founder-eu</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Founder Tools</category>
      <description>Guide to SaaS pricing models (flat, tiered, per-seat, usage-based, freemium), value-based pricing, price anchoring, VAT/MOSS EU compliance, reverse charge B2B, currencies. How to test prices and maximize revenue for European startups.</description>
    </item>
    <item>
      <title>Hiring for EU Startups: A Practical Guide to Contracts, Equity, and Compliance</title>
      <link>https://federicocalo.dev/en/blog/hiring-startup-eu</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/hiring-startup-eu</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Founder Tools</category>
      <description>How to hire in a European startup. Employment contract types, equity with vesting and cliff, cross-border employer of record, tax compliance and GDPR, technical hiring process, remote-first team building.</description>
    </item>
    <item>
      <title>Privacy by Design for AI Systems: GDPR Article 25 in Practice</title>
      <link>https://federicocalo.dev/en/blog/privacy-by-design-ai</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/privacy-by-design-ai</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>EU AI Act</category>
      <description>Privacy by Design &amp; by Default (GDPR Article 25) applied to AI systems — data minimization, pseudonymization, DPIA for high-risk AI, legal basis for training, retention, data subject rights in ML pipeline, intersection with EU AI Act. With Ollama on-prem for guaranteed privacy.</description>
    </item>
    <item>
      <title>Prompt Engineering for Code Generation: Techniques and Best Practices</title>
      <link>https://federicocalo.dev/en/blog/prompt-engineering-code</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/prompt-engineering-code</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>AI Engineering</category>
      <description>Practical guide to prompt engineering techniques for reliable code generation with LLMs. Few-shot learning, chain-of-thought, role prompting, structured output, iteration and evaluation. Real examples with Ollama on-prem.</description>
    </item>
    <item>
      <title>Angular i18n at Scale: From 18 Languages to a Sustainable IT+EN Workflow</title>
      <link>https://federicocalo.dev/en/blog/angular-i18n-18-lingue</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/angular-i18n-18-lingue</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Angular Moderno</category>
      <description>Practical guide to i18n consolidation in Angular 21 SSR: migrating from 18 runtime languages (XLF translation) to Pattern A (IT+EN compiled AOT). i18n markers, build gates, configuration, trade-off reasoning, and lessons learned.</description>
    </item>
    <item>
      <title>Re-ranking in RAG Pipelines: Cross-Encoders and Two-Stage Retrieval</title>
      <link>https://federicocalo.dev/en/blog/reranking-rag-cross-encoder</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/reranking-rag-cross-encoder</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>RAG Engineering</category>
      <description>Two-stage retrieval for perfect relevance: bi-encoder for fast retrieval, cross-encoder for intelligent re-ranking of top-k. Quality metrics (nDCG, MRR, recall@k), latency-quality trade-offs, and real-world implementation with sentence-transformers + RediSearch on local Ollama.</description>
    </item>
    <item>
      <title>FastAPI for ML Microservices with Pydantic v2</title>
      <link>https://federicocalo.dev/en/blog/fastapi-ml-pydantic</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/fastapi-ml-pydantic</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>AI Engineering</category>
      <description>Build ML microservices with FastAPI (Python 3.12) and Pydantic v2: request/response validation, async/await, lifespan for model loading at boot, dependency injection, health checks, graceful degradation with on-prem Ollama.</description>
    </item>
    <item>
      <title>Provider and Deployer Obligations under the EU AI Act</title>
      <link>https://federicocalo.dev/en/blog/provider-deployer-eu-ai-act</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/provider-deployer-eu-ai-act</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>EU AI Act</category>
      <description>The distinction between provider and deployer in EU Regulation 2024/1689 is critical: each role has precise responsibilities for risk management, technical documentation, logging, and transparency. Guide to 4 risk levels, high-risk system obligations, timeline, and operational checklist.</description>
    </item>
    <item>
      <title>EU AI Act Conformity Assessment: A Step-by-Step Procedure</title>
      <link>https://federicocalo.dev/en/blog/conformity-assessment-eu-ai</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/conformity-assessment-eu-ai</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>EU AI Act</category>
      <description>Operational guide to conformity assessment for high-risk AI systems. Internal evaluation, Notified Body involvement, EU Declaration of Conformity, CE marking, NEBA registration, post-market monitoring. Checklists and templates.</description>
    </item>
    <item>
      <title>Italian LLMs in 2024: Minerva, LLaMAntino, and the First Native Models</title>
      <link>https://federicocalo.dev/en/blog/llm-italiani-2024</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/llm-italiani-2024</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Italian NLP</category>
      <description>In 2024, the first Large Language Models fully trained or significantly adapted for Italian emerge: Minerva (Sapienza NLP), LLaMAntino, Camoscio, and Fauno represent a breakthrough in Italian NLP. Features, datasets, benchmarks...</description>
    </item>
    <item>
      <title>The Italian LLM Landscape in 2025: Models, Ecosystem, and Practical Choices</title>
      <link>https://federicocalo.dev/en/blog/landscape-llm-italiani</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/landscape-llm-italiani</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Italian NLP</category>
      <description>2025 overview of the Italian language model ecosystem — new models, Italian benchmarks, how to select the right model for your use case, and local deployment via Ollama on-prem.</description>
    </item>
    <item>
      <title>Italian NLP with spaCy and Transformers: A Practical Pipeline</title>
      <link>https://federicocalo.dev/en/blog/nlp-italiano-spacy</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/nlp-italiano-spacy</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Italian NLP</category>
      <description>Complete NLP pipeline for Italian: tokenization, POS tagging, lemmatization, NER and dependency parsing with spaCy and Hugging Face transformers. Italian models (BERT, UmBERTo), language-specific challenges, sentiment analysis and text classification with Python 3.12 examples.</description>
    </item>
    <item>
      <title>Fine-tuning an LLM for Italian: LoRA, Datasets, and Evaluation</title>
      <link>https://federicocalo.dev/en/blog/fine-tuning-llm-italiano</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/fine-tuning-llm-italiano</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Italian NLP</category>
      <description>How to fine-tune an open-source model for Italian using LoRA on consumer GPUs, prepare quality datasets, evaluate performance with Italian benchmarks, and deploy locally via Ollama...</description>
    </item>
    <item>
      <title>RAG in Italian: Multilingual Embeddings and Semantic Retrieval</title>
      <link>https://federicocalo.dev/en/blog/rag-italiano-embedding</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/rag-italiano-embedding</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Italian NLP</category>
      <description>Building an effective RAG pipeline for Italian content: choosing multilingual embeddings, semantic chunking, RediSearch HNSW, retrieval + re-ranking, generation with Ollama on-prem, quality evaluation.</description>
    </item>
    <item>
      <title>CrewAI in Production: Scalable Multi-Agent Architecture with Persistent Memory</title>
      <link>https://federicocalo.dev/en/blog/crewai-produzione-multi-agent</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/crewai-produzione-multi-agent</guid>
      <pubDate>Wed, 15 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Multi-Agent AI Systems</category>
      <description>CrewAI orchestrates specialized AI agents with clear tasks, integrated tools, and persistent memory. Complete guide on production architecture, Ollama on-prem, PostgreSQL, observability and scaling.</description>
    </item>
    <item>
      <title>INP and Core Web Vitals: From 59 to 88 with Four Angular SSR Fixes</title>
      <link>https://federicocalo.dev/en/blog/inp-cwv-angular-ssr-59-to-88-four-fixes</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/inp-cwv-angular-ssr-59-to-88-four-fixes</guid>
      <pubDate>Tue, 14 Jul 2026 11:05:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Original Research</category>
      <description>Four real interventions that took an Angular SSR home page from a mobile PageSpeed score of 59 to 88: precompute instead of fan-out, PlatformLocation instead of REQUEST at prerender, read/write split with afterNextRender, and a prerender-compatible host-based CSP. With measured numbers and a public repository.</description>
    </item>
    <item>
      <title>ProjectHub Poker and Retro: a real BE-FE slice where the schema holds up real time</title>
      <link>https://federicocalo.dev/en/blog/projecthub-poker-retro-be-fe-slice-schema-real-time</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/projecthub-poker-retro-be-fe-slice-schema-real-time</guid>
      <pubDate>Tue, 14 Jul 2026 11:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Architecture</category>
      <description>Real-time collaboration is a schema problem, not a WebSocket problem. I document the ProjectHub Poker/Retro vertical (V184/V185) as a real end-to-end slice: eleven Postgres tables, a one-directional phase FSM, STOMP broadcast, server-side anonymity, and a dot-voting budget, with the trade-offs declared at every fork. No code changes.</description>
    </item>
    <item>
      <title>Three Production Postmortems: Flyway, JAR Deploy, and Duplicate Beans</title>
      <link>https://federicocalo.dev/en/blog/production-postmortems-flyway-jar-deploy-duplicate-beans</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/production-postmortems-flyway-jar-deploy-duplicate-beans</guid>
      <pubDate>Tue, 14 Jul 2026 10:50:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Platform Engineering</category>
      <description>A comment in an applied Flyway migration breaks the checksum. A non-atomic cp during deploy causes an intermittent NoClassDefFoundError. Two beans with the same simple name crash the boot. Three real incidents, one root cause: violated immutability.</description>
    </item>
    <item>
      <title>Multi-Bucket Rate Limiting: Why One Number for the Whole API Is a Mistake</title>
      <link>https://federicocalo.dev/en/blog/multi-bucket-rate-limiting-bucket4j-postmortem</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/multi-bucket-rate-limiting-bucket4j-postmortem</guid>
      <pubDate>Tue, 14 Jul 2026 10:45:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>DevSecOps</category>
      <description>Four separate Bucket4j buckets (API, AI, report download, token) versus one shared number. Routing to the right bucket is where real bugs are born: the postmortem of the CSP-report flood that blocked email verification with 429s.</description>
    </item>
    <item>
      <title>ArchUnit and Clean Architecture: the 4-Layer Diagram Is a Lie Until You Enforce It</title>
      <link>https://federicocalo.dev/en/blog/archunit-clean-architecture-4-layer-diagram-lie</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/archunit-clean-architecture-4-layer-diagram-lie</guid>
      <pubDate>Tue, 14 Jul 2026 10:40:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Architettura Software</category>
      <description>The backend's ArchUnit gate was running zero executed tests, a total false green. How I found it, what I froze with FreezingArchRule (30+4 historical violations), and why a 4-layer diagram without automated enforcement is not an architecture.</description>
    </item>
    <item>
      <title>Four Production Postmortems: Why Green Tests Are Not Enough</title>
      <link>https://federicocalo.dev/en/blog/production-postmortems-flyway-archunit-jar-race-duplicate-beans</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/production-postmortems-flyway-archunit-jar-race-duplicate-beans</guid>
      <pubDate>Tue, 14 Jul 2026 10:10:58 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Original Research</category>
      <description>Four real production incidents that all started from a fully green build: a Flyway crash from a removed comment, an ArchUnit gate dead for months, a JAR deploy race condition, a duplicate Spring bean. Root cause, fix, and a reproducible public repository for each.</description>
    </item>
    <item>
      <title>How I build in about 4 hours with the GSD agentic workflow</title>
      <link>https://federicocalo.dev/en/blog/how-i-build-in-4-hours-gsd-agentic-workflow</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/how-i-build-in-4-hours-gsd-agentic-workflow</guid>
      <pubDate>Tue, 14 Jul 2026 10:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Claude Code Workflow</category>
      <description>Claude Code Workflow series. How I built a custom booking module in a little over four hours with GSD and specialized agents: the real per-phase time datum, the trade-offs, and why AI is accompaniment and never the director. Portfolio AI provider: Ollama on-prem.</description>
    </item>
    <item>
      <title>OnPush and Signals as Default, Not Exception: 1215 Components in an Angular 21 Monorepo</title>
      <link>https://federicocalo.dev/en/blog/onpush-signals-default-not-exception-angular-21</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/onpush-signals-default-not-exception-angular-21</guid>
      <pubDate>Tue, 14 Jul 2026 09:52:54 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Angular Moderno</category>
      <description>1215 out of 1219 components in this portfolio use ChangeDetectionStrategy.OnPush. Why "turn it on when I need it" is a comfortable lie, what immutability discipline actually costs, and when Default is the better call instead.</description>
    </item>
    <item>
      <title>Strict Mode Is Not Enough: 100 Type Breaches in a 100% Strict TypeScript Monorepo</title>
      <link>https://federicocalo.dev/en/blog/strict-mode-not-enough-any-typescript-monorepo</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/strict-mode-not-enough-any-typescript-monorepo</guid>
      <pubDate>Tue, 14 Jul 2026 09:52:54 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>TypeScript Avanzato</category>
      <description>strict, strictTemplates, and strictInjectionParameters all on, yet 54 ': any' and 46 'as any' survive across 3884 files. Why strict mode only eliminates accidental errors, not deliberate escape hatches, and what to actually do about the remaining anys.</description>
    </item>
    <item>
      <title>Zero Prerendered Articles: Why Prerendering Everything Is a Build Risk, Not an Optimization</title>
      <link>https://federicocalo.dev/en/blog/prerender-vs-server-on-demand-angular-blog-articles</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/prerender-vs-server-on-demand-angular-blog-articles</guid>
      <pubDate>Tue, 14 Jul 2026 09:52:54 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Angular Moderno</category>
      <description>app.routes.server.ts assigns Prerender to 50 route configurations and Server to 134, deliberately including every article page. Why "prerender everything" stops being safe advice past a certain scale, and the real trade-off between TTFB and build stability.</description>
    </item>
    <item>
      <title>Clean Architecture Spring Boot Template: the ArchUnit gate that genuinely runs</title>
      <link>https://federicocalo.dev/en/blog/clean-architecture-spring-boot-template-archunit-gate-that-runs</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/clean-architecture-spring-boot-template-archunit-gate-that-runs</guid>
      <pubDate>Tue, 14 Jul 2026 09:30:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Original Research</category>
      <description>Most Clean Architecture templates ship a green-for-nothing ArchUnit gate that runs zero tests. I extracted a Spring Boot 3.4 template from my production backend, sanitized by hand (no git filter-repo), with JWT, Flyway, and an ArchUnit gate that genuinely executes four rules. Public repo, green build on JDK 21.</description>
    </item>
    <item>
      <title>Side project launch: real Italian case studies</title>
      <link>https://federicocalo.dev/en/blog/side-project-case-study-italiani</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/side-project-case-study-italiani</guid>
      <pubDate>Tue, 14 Jul 2026 09:30:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Indie Maker Italia</category>
      <description>Analysis of 5 Italian side projects launched in 2024-2025: strategies, mistakes, real costs, and ROI. How indie makers from Turin, Milan, and Rome transformed an idea into 5-6 figure revenue.</description>
    </item>
    <item>
      <title>AI On-Prem vs Cloud: Privacy, Cost, and Data Sovereignty</title>
      <link>https://federicocalo.dev/en/blog/ai-on-prem-vs-cloud-privacy-cost-data-sovereignty</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/ai-on-prem-vs-cloud-privacy-cost-data-sovereignty</guid>
      <pubDate>Tue, 14 Jul 2026 09:24:30 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Platform Engineering</category>
      <description>A B2B comparison with real TCO: on-prem AI with Ollama on a VPS costs zero extra per month, metered cloud bills per token. An honest trade-off on cost, latency, model ceiling, and data sovereignty for decision-makers.</description>
    </item>
    <item>
      <title>GEO Retrofit Benchmark: 741 Structural Errors to Zero Without Touching Existing Prose</title>
      <link>https://federicocalo.dev/en/blog/geo-retrofit-benchmark-741-to-0-structural-errors</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/geo-retrofit-benchmark-741-to-0-structural-errors</guid>
      <pubDate>Tue, 14 Jul 2026 09:14:16 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Original Research</category>
      <description>Most GEO advice is cosmetic. An additive engine (injects, does not rewrite) took 741 structural errors to zero across 194 bilingual articles: 386 missing-FAQ errors closed automatically, 310 missing-citation errors closed only after manual review.</description>
    </item>
    <item>
      <title>Sport Intelligence Benchmark: Brier 0.5783 Across 97,000 Matches, V2 LightGBM Ensemble</title>
      <link>https://federicocalo.dev/en/blog/sport-intelligence-benchmark-97k-matches</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/sport-intelligence-benchmark-97k-matches</guid>
      <pubDate>Tue, 14 Jul 2026 08:51:44 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Original Research</category>
      <description>Why accuracy lies about football predictions and the Brier score does not. The portfolio's Sport Intelligence engine publishes a Brier score of 0.5783 across 97,000 historical matches, with a V2 LightGBM ensemble, isotonic calibration, and a reproducible public repo.</description>
    </item>
    <item>
      <title>Funding OSS in EU: NLnet, Sovereign Tech Fund</title>
      <link>https://federicocalo.dev/en/blog/funding-oss-eu-nlnet-sovereign</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/funding-oss-eu-nlnet-sovereign</guid>
      <pubDate>Sat, 20 Jun 2026 08:00:00 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OSS Sustainability</category>
      <description>How to access European funding for open source: NLnet Foundation, Sovereign Tech Fund, and NGI programs. Complete guide to applications, budgeting, and winning case studies from the OSS community.</description>
    </item>
    <item>
      <title>Open Core business model: case studies 2027</title>
      <link>https://federicocalo.dev/en/blog/open-core-business-case-studies</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/open-core-business-case-studies</guid>
      <pubDate>Sat, 20 Jun 2026 04:41:27 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OSS Sustainability</category>
      <description>The Open Core model through three cases: ESLint, Supabase and HashiCorp. Technical anatomy, what stays open, what turns paid, and pricing architecture.</description>
    </item>
    <item>
      <title>Maintainer burnout: prevention strategies</title>
      <link>https://federicocalo.dev/en/blog/maintainer-burnout-prevenzione</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/maintainer-burnout-prevenzione</guid>
      <pubDate>Sat, 20 Jun 2026 01:22:55 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OSS Sustainability</category>
      <description>Article from the Open Source Sustainability 2027 series. Maintainer burnout is a silent crisis that strikes open source project stewards. Concrete strategies through automation, community management, and economic sustainability to prevent exhaustion.</description>
    </item>
    <item>
      <title>OSS commercial license: AGPL vs BSL vs Elastic</title>
      <link>https://federicocalo.dev/en/blog/oss-commercial-agpl-bsl-elastic</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/oss-commercial-agpl-bsl-elastic</guid>
      <pubDate>Fri, 19 Jun 2026 22:04:22 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OSS Sustainability</category>
      <description>When you publish an open source project, you must choose how to protect yourself from those who profit without contributing. AGPL, BSL, and Elastic License offer three different strategies for commercial copyleft.</description>
    </item>
    <item>
      <title>Sponsor models OSS: GitHub vs Open Collective</title>
      <link>https://federicocalo.dev/en/blog/sponsor-models-github-open-collective</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/sponsor-models-github-open-collective</guid>
      <pubDate>Fri, 19 Jun 2026 18:45:50 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>OSS Sustainability</category>
      <description>Discover the two leading platforms for monetizing open source projects: GitHub Sponsors vs Open Collective. Analysis of pros/cons, revenue models, case studies and the right strategy for your project.</description>
    </item>
    <item>
      <title>Playwright a11y testing: @axe-core integration</title>
      <link>https://federicocalo.dev/en/blog/playwright-a11y-axe-core</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/playwright-a11y-axe-core</guid>
      <pubDate>Fri, 19 Jun 2026 15:27:17 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Playwright Components</category>
      <description>Article from the Playwright Component Testing Avanzato series. Published November 26, 2027.</description>
    </item>
    <item>
      <title>Mock e network interception avanzati</title>
      <link>https://federicocalo.dev/en/blog/playwright-mock-network-interception</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/playwright-mock-network-interception</guid>
      <pubDate>Fri, 19 Jun 2026 12:08:45 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Playwright Components</category>
      <description>Advanced mocking and network interception in Playwright: routes and network events, mock patterns, dynamic interception, context versus page…</description>
    </item>
    <item>
      <title>Test parallelism Playwright: shard strategies</title>
      <link>https://federicocalo.dev/en/blog/test-parallelism-playwright-shard</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/test-parallelism-playwright-shard</guid>
      <pubDate>Fri, 19 Jun 2026 08:50:13 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Playwright Components</category>
      <description>Test parallelism in Playwright: how workers and shards work, handling shared state, hybrid strategies, configuration, and troubleshooting.</description>
    </item>
    <item>
      <title>Visual Regression Testing with Playwright + Percy</title>
      <link>https://federicocalo.dev/en/blog/visual-regression-playwright-percy</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/visual-regression-playwright-percy</guid>
      <pubDate>Fri, 19 Jun 2026 05:31:40 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Playwright Components</category>
      <description>Automate visual testing of your components with Percy and Playwright. Learn to capture snapshots, manage baselines, and integrate visual regression into CI/CD.</description>
    </item>
    <item>
      <title>Playwright Component Testing: setup completo</title>
      <link>https://federicocalo.dev/en/blog/playwright-component-testing-setup</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/playwright-component-testing-setup</guid>
      <pubDate>Fri, 19 Jun 2026 02:13:08 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Playwright Components</category>
      <description>Article in the Playwright Component Testing Advanced series. Complete Playwright setup for component testing in Angular with fixtures, configuration and best practices.</description>
    </item>
    <item>
      <title>Bun production deployment: Docker + Kubernetes</title>
      <link>https://federicocalo.dev/en/blog/bun-production-docker-kubernetes</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/bun-production-docker-kubernetes</guid>
      <pubDate>Thu, 18 Jun 2026 22:54:35 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Bun Runtime 2027</category>
      <description>Bun in production with Docker and Kubernetes: a multi-stage Dockerfile, building and pushing the image, YAML manifests, health checks, and rolling updates.</description>
    </item>
    <item>
      <title>Bun + Hono: stack edge minimal</title>
      <link>https://federicocalo.dev/en/blog/bun-hono-stack-edge</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/bun-hono-stack-edge</guid>
      <pubDate>Thu, 18 Jun 2026 19:36:03 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Bun Runtime 2027</category>
      <description>A minimal edge REST API with Bun and Hono: setup, JWT authentication, database and cache integration, and why this stack stays lightweight.</description>
    </item>
    <item>
      <title>Bun nativo: SQLite + Redis client built-in</title>
      <link>https://federicocalo.dev/en/blog/bun-nativo-sqlite-redis</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/bun-nativo-sqlite-redis</guid>
      <pubDate>Thu, 18 Jun 2026 16:17:31 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Bun Runtime 2027</category>
      <description>Bun's built-in SQLite and Redis clients: native usage, a cache pattern with SQLite fallback, a benchmark against Node.js, and production best practices.</description>
    </item>
    <item>
      <title>Migrazione da Node.js a Bun: gotchas</title>
      <link>https://federicocalo.dev/en/blog/migrazione-node-bun-gotchas</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/migrazione-node-bun-gotchas</guid>
      <pubDate>Thu, 18 Jun 2026 12:58:58 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Bun Runtime 2027</category>
      <description>Migrating from Node.js to Bun without surprises: package manager and lockfiles, CommonJS versus ES Modules, divergent APIs, async behavior, and native addons.</description>
    </item>
    <item>
      <title>Bun vs Node vs Deno: benchmark realistico 2027</title>
      <link>https://federicocalo.dev/en/blog/bun-vs-node-deno-2027</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/bun-vs-node-deno-2027</guid>
      <pubDate>Thu, 18 Jun 2026 09:40:26 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Bun Runtime 2027</category>
      <description>Node.js, Bun and Deno compared: startup time, HTTP throughput, memory use, and TypeScript compilation, plus how to choose a runtime for your project.</description>
    </item>
    <item>
      <title>Tauri mobile (Android + iOS): roadmap</title>
      <link>https://federicocalo.dev/en/blog/tauri-mobile-android-ios</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/tauri-mobile-android-ios</guid>
      <pubDate>Thu, 18 Jun 2026 06:21:53 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Tauri Rust Desktop</category>
      <description>Tauri on Android and iOS: the state of mobile support, reusing desktop Rust code, architecture, roadmap, dev environment setup, and native API access.</description>
    </item>
    <item>
      <title>Cross-platform deploy: macOS + Windows + Linux</title>
      <link>https://federicocalo.dev/en/blog/cross-platform-deploy-tauri</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/cross-platform-deploy-tauri</guid>
      <pubDate>Thu, 18 Jun 2026 03:03:21 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Tauri Rust Desktop</category>
      <description>Shipping a Tauri app on macOS, Windows and Linux: tauri.conf.json, code signing, macOS notarization, and installers and bundles for each system.</description>
    </item>
    <item>
      <title>Tauri plugins ecosystem 2027</title>
      <link>https://federicocalo.dev/en/blog/tauri-plugins-ecosystem-2027</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/tauri-plugins-ecosystem-2027</guid>
      <pubDate>Wed, 17 Jun 2026 23:44:49 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Tauri Rust Desktop</category>
      <description>The Tauri 2 plugin ecosystem: the IPC model, official and community plugins, how to write a custom plugin, and notes on performance and security.</description>
    </item>
    <item>
      <title>Rust frontend integration: shared types</title>
      <link>https://federicocalo.dev/en/blog/rust-frontend-integration-tipi</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/rust-frontend-integration-tipi</guid>
      <pubDate>Wed, 17 Jun 2026 20:26:16 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Tauri Rust Desktop</category>
      <description>Article from the Tauri 2 + Rust Desktop Apps series. Published 17 June 2026.</description>
    </item>
    <item>
      <title>Tauri 2 vs Electron: 90% bundle reduction</title>
      <link>https://federicocalo.dev/en/blog/tauri-2-vs-electron-bundle</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/tauri-2-vs-electron-bundle</guid>
      <pubDate>Wed, 17 Jun 2026 17:07:44 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Tauri Rust Desktop</category>
      <description>Tauri 2 versus Electron: why bundle size matters, the Rust backend plus web frontend architecture, how to measure it, and a performance comparison.</description>
    </item>
    <item>
      <title>Cost optimization vector DB: tier strategies</title>
      <link>https://federicocalo.dev/en/blog/cost-optimization-vector-db-tier</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/cost-optimization-vector-db-tier</guid>
      <pubDate>Wed, 17 Jun 2026 13:49:11 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Vector DB Decision</category>
      <description>Cutting vector database costs with tiering: cold storage on PostgreSQL, a warm index on Redis Stack, a hot cloud index, and an in-memory cache layer.</description>
    </item>
    <item>
      <title>Vector DB scaling: beyond 100M vectors</title>
      <link>https://federicocalo.dev/en/blog/vector-db-scaling-100m</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/vector-db-scaling-100m</guid>
      <pubDate>Wed, 17 Jun 2026 10:30:39 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Vector DB Decision</category>
      <description>Modern Vector Databases can scale beyond 100 million vectors while maintaining sub-100ms query latency using HNSW hierarchical indexing, geographic sharding, quantized compression, and batch processing.</description>
    </item>
    <item>
      <title>Hybrid search: BM25 + dense embeddings</title>
      <link>https://federicocalo.dev/en/blog/hybrid-search-bm25-dense</link>
      <guid isPermaLink="true">https://federicocalo.dev/en/blog/hybrid-search-bm25-dense</guid>
      <pubDate>Wed, 17 Jun 2026 07:12:07 GMT</pubDate>
      <dc:creator>Federico Calo</dc:creator>
      <category>Vector DB Decision</category>
      <description>Hybrid search combines BM25 (lexical search) and dense embeddings (semantic search) for the best of both worlds. Discover how to implement it with RediSearch and Ollama, practical trade-offs, and real-world use cases.</description>
    </item>
  </channel>
</rss>
