<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Narayanaraj Dharmalingam — Writing</title>
    <link>https://narayanaraj.com/writing</link>
    <atom:link href="https://narayanaraj.com/rss.xml" rel="self" type="application/rss+xml" />
    <description>Engineering notes on LLM cost reduction, agent observability, Kubernetes for AI and EU AI sovereignty, from systems that run in production.</description>
    <language>en</language>
    <lastBuildDate>Sat, 19 Sep 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>An audit trail for every LLM call: why I built the evidence layer first</title>
      <link>https://narayanaraj.com/writing/an-audit-trail-for-every-llm-call</link>
      <guid isPermaLink="true">https://narayanaraj.com/writing/an-audit-trail-for-every-llm-call</guid>
      <pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate>
      <category>EU AI sovereignty &amp; self-hosted LLMs</category>
      <description>On nCloud I put a hash-chained audit gateway in front of every model call before choosing a model, because the record is the part a customer has to prove.</description>
    </item>
    <item>
      <title>How we cut Claude inference costs 38% in production</title>
      <link>https://narayanaraj.com/writing/cutting-claude-inference-costs-38-percent</link>
      <guid isPermaLink="true">https://narayanaraj.com/writing/cutting-claude-inference-costs-38-percent</guid>
      <pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate>
      <category>LLM cost engineering</category>
      <description>Model routing, response caching and prompt compression cut Claude inference cost 38% on a multi-tenant marketplace platform run by two engineers, with quality held.</description>
    </item>
    <item>
      <title>Is the cheaper model good enough? Evaluating LLM routing before it takes traffic</title>
      <link>https://narayanaraj.com/writing/is-the-cheaper-model-good-enough</link>
      <guid isPermaLink="true">https://narayanaraj.com/writing/is-the-cheaper-model-good-enough</guid>
      <pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate>
      <category>Agent observability &amp; evaluation</category>
      <description>How to prove a cheaper model is good enough before it takes production traffic: a fixed evaluation set, per-class scores, a checked judge, then a canary.</description>
    </item>
    <item>
      <title>One OpenTelemetry layer across four clouds: moving off ELK without a coverage gap</title>
      <link>https://narayanaraj.com/writing/one-opentelemetry-layer-across-four-clouds</link>
      <guid isPermaLink="true">https://narayanaraj.com/writing/one-opentelemetry-layer-across-four-clouds</guid>
      <pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate>
      <category>Kubernetes for AI workloads</category>
      <description>How a live airline operations platform moved from ELK log shipping to OpenTelemetry Collectors, with sampling at the edge and no gap in coverage.</description>
    </item>
    <item>
      <title>Routing between Haiku, Sonnet and Opus: a decision table that works</title>
      <link>https://narayanaraj.com/writing/routing-between-haiku-sonnet-and-opus</link>
      <guid isPermaLink="true">https://narayanaraj.com/writing/routing-between-haiku-sonnet-and-opus</guid>
      <pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate>
      <category>LLM cost engineering</category>
      <description>A code-level walk through a heuristic router for Claude models: the decision table, the classifier signals, escalation, and the numbers to watch before you trust it.</description>
    </item>
  </channel>
</rss>