<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Engineering on Darek&#39;s Blog</title>
    <link>http://blog.dwornikowski.com/tags/engineering/</link>
    <description>Recent content in Engineering on Darek&#39;s Blog</description>
    <image>
      <title>Darek&#39;s Blog</title>
      <url>http://blog.dwornikowski.com/openg.png</url>
      <link>http://blog.dwornikowski.com/openg.png</link>
    </image>
    <generator>Hugo -- 0.147.2</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 04 Jul 2026 10:00:00 +0200</lastBuildDate>
    <atom:link href="http://blog.dwornikowski.com/tags/engineering/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How MCP Works: What It Exposes, How It Talks, and How It Got Here</title>
      <link>http://blog.dwornikowski.com/posts/how-mcp-works/</link>
      <pubDate>Sat, 04 Jul 2026 10:00:00 +0200</pubDate>
      <guid>http://blog.dwornikowski.com/posts/how-mcp-works/</guid>
      <description>A ground-up explainer of the Model Context Protocol: the host-client-server model, the primitives servers and clients expose to each other (tools, resources, prompts, sampling, elicitation), the transports, and the protocol&amp;#39;s evolution from the 2024 launch to the 2026 release candidate.</description>
    </item>
    <item>
      <title>Prove It: Two Gates, No Mocks</title>
      <link>http://blog.dwornikowski.com/posts/prove-it-dual-testing/</link>
      <pubDate>Tue, 09 Jun 2026 09:00:00 +0200</pubDate>
      <guid>http://blog.dwornikowski.com/posts/prove-it-dual-testing/</guid>
      <description>A small prompt habit that changes how a coding agent verifies its own work: stop asking for passing tests, ask it to prove the feature works — once locally against a real Tilt stack with no mocks, then again on staging against real data and integrations.</description>
    </item>
    <item>
      <title>The Sixth Layer: When a Local Model Beats the LLM That Trained It</title>
      <link>http://blog.dwornikowski.com/posts/local-model-llm-classifier/</link>
      <pubDate>Thu, 07 May 2026 12:00:00 +0200</pubDate>
      <guid>http://blog.dwornikowski.com/posts/local-model-llm-classifier/</guid>
      <description>A follow-up to my LLM cost-optimization post: how I replaced ~55% of the remaining LLM calls in a product classifier with a small local model trained on the LLM&amp;#39;s own labels — and why the local model ended up more accurate than the labels it learned from.</description>
    </item>
    <item>
      <title>From $200 to $30: Five Layers of LLM Cost Optimization</title>
      <link>http://blog.dwornikowski.com/posts/cutting-llm-costs-token-optimization/</link>
      <pubDate>Fri, 24 Apr 2026 12:00:00 +0200</pubDate>
      <guid>http://blog.dwornikowski.com/posts/cutting-llm-costs-token-optimization/</guid>
      <description>A walkthrough of how I cut an LLM-based product classifier&amp;#39;s token usage by ~92% through compression, two-stage prompting, exact-match lookups, similarity caching, and batching.</description>
    </item>
  </channel>
</rss>
