<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Luke Kranz - Writing</title>
    <link>https://www.lkranz.com/blog/</link>
    <description>Blog posts by Luke Kranz, Full Stack Data and Software Engineer.</description>
    <item>
      <title>Who Becomes the Product Builder?</title>
      <link>https://www.lkranz.com/blog/who-becomes-the-product-engineer</link>
      <guid>https://www.lkranz.com/blog/who-becomes-the-product-engineer</guid>
      <pubDate>Thu, 05 Nov 2026 12:00:00 GMT</pubDate>
      <description>A feature that took nine weeks used to hide four weeks of product indecision. The build takes a week now, the indecision has nowhere to go, and the product manager and software engineer are being pushed into one job.</description>
    </item>
    <item>
      <title>Is AI Actually Making Your Engineers More Efficient?</title>
      <link>https://www.lkranz.com/blog/is-ai-actually-making-your-engineers-more-efficient</link>
      <guid>https://www.lkranz.com/blog/is-ai-actually-making-your-engineers-more-efficient</guid>
      <pubDate>Tue, 06 Oct 2026 12:00:00 GMT</pubDate>
      <description>Writing code got faster. Deciding what to build did not. The first of three posts on AI and engineering productivity: why engineers feel faster and companies cannot find the gains.</description>
    </item>
    <item>
      <title>Can Your LLM Vibe Code Your Semantic Layer?</title>
      <link>https://www.lkranz.com/blog/semantics-of-semantic-layers</link>
      <guid>https://www.lkranz.com/blog/semantics-of-semantic-layers</guid>
      <pubDate>Sun, 27 Sep 2026 12:00:00 GMT</pubDate>
      <description>Five models built a semantic layer from the same warehouse, then answered 30 finance questions against each one. The layer decided the answer almost every time.</description>
    </item>
    <item>
      <title>Routing Data Questions by Difficulty</title>
      <link>https://www.lkranz.com/blog/talk-to-your-data-harness</link>
      <guid>https://www.lkranz.com/blog/talk-to-your-data-harness</guid>
      <pubDate>Fri, 25 Sep 2026 12:00:00 GMT</pubDate>
      <description>No router I tested beat running Sonnet 5 on everything, and prompt caching saved far more than routing could.</description>
    </item>
    <item>
      <title>Running Coding Agents with Herdr and Agent Board</title>
      <link>https://www.lkranz.com/blog/running-coding-agents-with-herdr-and-agent-board</link>
      <guid>https://www.lkranz.com/blog/running-coding-agents-with-herdr-and-agent-board</guid>
      <pubDate>Sun, 20 Sep 2026 12:00:00 GMT</pubDate>
      <description>I run Claude Code, Codex, and Muse side by side from a local kanban board that starts agents in Herdr tabs and shows what each one is doing.</description>
    </item>
    <item>
      <title>Running Jev in Snowflake</title>
      <link>https://www.lkranz.com/blog/running-jev-in-snowflake</link>
      <guid>https://www.lkranz.com/blog/running-jev-in-snowflake</guid>
      <pubDate>Sat, 19 Sep 2026 12:00:00 GMT</pubDate>
      <description>Jevflake is a dbt package that calls TypeSafe's Jev model from inside Snowflake. Examples of each question type, what it costs, and how it compared with AI_CLASSIFY and AI_FILTER on the same rows.</description>
    </item>
    <item>
      <title>Move Everything to an Open Table Format</title>
      <link>https://www.lkranz.com/blog/move-everything-to-an-open-table-format</link>
      <guid>https://www.lkranz.com/blog/move-everything-to-an-open-table-format</guid>
      <pubDate>Sat, 19 Sep 2026 12:00:00 GMT</pubDate>
      <description>Iceberg, Delta, and DuckLake are all strong. The hard part is that every engine reading a table has to support the same features, so pick the format by what your slowest reader can handle.</description>
    </item>
    <item>
      <title>What I Actually Use Snowflake Cortex For</title>
      <link>https://www.lkranz.com/blog/snowflake-cortex-in-practice</link>
      <guid>https://www.lkranz.com/blog/snowflake-cortex-in-practice</guid>
      <pubDate>Wed, 14 May 2025 12:00:00 GMT</pubDate>
      <description>A year after Cortex AI went GA: LLM functions in SQL earn their keep on classification and summarization, Analyst needs a semantic view to be trustworthy, and exact numbers stay in SQL.</description>
    </item>
    <item>
      <title>dbt Mesh and the MetricFlow Semantic Layer Made Multi-Project dbt Sane</title>
      <link>https://www.lkranz.com/blog/dbt-mesh-and-metricflow-semantic-layer</link>
      <guid>https://www.lkranz.com/blog/dbt-mesh-and-metricflow-semantic-layer</guid>
      <pubDate>Wed, 20 Mar 2024 12:00:00 GMT</pubDate>
      <description>Coalesce 2023 gave us dbt Mesh for cross-project references and a rebuilt Semantic Layer on MetricFlow. I split our monolith, and metrics defined once finally beat metrics defined everywhere.</description>
    </item>
    <item>
      <title>Why I Reach for Go When the Pipeline Has to Actually Run</title>
      <link>https://www.lkranz.com/blog/go-for-data-pipelines-that-have-to-run</link>
      <guid>https://www.lkranz.com/blog/go-for-data-pipelines-that-have-to-run</guid>
      <pubDate>Thu, 16 Nov 2023 12:00:00 GMT</pubDate>
      <description>Python wins for exploration and dbt owns the warehouse, but the ingestion service that pages you at 2am is written in Go: one binary, explicit errors, and goroutines for fan-out.</description>
    </item>
  </channel>
</rss>
