<?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/">
<channel>
<title>Tidewater blog</title>
<link>https://saas.phoenixcodes.org/blog</link>
<description>Notes on data freshness, lineage and alerting from the people who build Tidewater.</description>
<language>en-us</language>
<lastBuildDate>Wed, 14 Oct 2026 00:00:00 GMT</lastBuildDate>
<atom:link href="https://saas.phoenixcodes.org/blog/rss.xml" rel="self" type="application/rss+xml" />
<item>
<title>Late but green, when every job succeeds and the data is still stale</title>
<link>https://saas.phoenixcodes.org/blog/late-but-green</link>
<guid isPermaLink="false">https://saas.phoenixcodes.org/blog/late-but-green</guid>
<pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
<description>Most data incidents reach a dashboard through jobs that report success. Here is how to measure freshness directly and set expectations a team will trust.</description>
<category>Data quality</category>
<category>freshness</category>
<category>monitoring</category>
<category>dashboards</category>
<content:encoded><![CDATA[<p>Most data incidents reach a dashboard through jobs that report success. Here is how to measure freshness directly and set expectations a team will trust.</p><p>By Ines Duarte. <a href="https://saas.phoenixcodes.org/blog/late-but-green">Read the full post</a>.</p>]]></content:encoded>
</item>
<item>
<title>How we build column lineage from SQL without running your queries</title>
<link>https://saas.phoenixcodes.org/blog/lineage-from-sql</link>
<guid isPermaLink="false">https://saas.phoenixcodes.org/blog/lineage-from-sql</guid>
<pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate>
<description>We read the SQL your warehouse already ran, parse it, and resolve every column back to its source. This is how it works, where it fails and how we check it.</description>
<category>Engineering</category>
<category>lineage</category>
<category>sql</category>
<category>parsing</category>
<content:encoded><![CDATA[<p>We read the SQL your warehouse already ran, parse it, and resolve every column back to its source. This is how it works, where it fails and how we check it.</p><p>By Tomas Lindqvist. <a href="https://saas.phoenixcodes.org/blog/lineage-from-sql">Read the full post</a>.</p>]]></content:encoded>
</item>
<item>
<title>A runbook for the dashboard that is wrong at 6 a.m.</title>
<link>https://saas.phoenixcodes.org/blog/runbook-wrong-dashboard</link>
<guid isPermaLink="false">https://saas.phoenixcodes.org/blog/runbook-wrong-dashboard</guid>
<pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate>
<description>A step by step routine for the moment someone says a number looks wrong, with the queries and API calls we use to find the cause in under 15 minutes.</description>
<category>Guides</category>
<category>incident response</category>
<category>runbook</category>
<category>freshness</category>
<content:encoded><![CDATA[<p>A step by step routine for the moment someone says a number looks wrong, with the queries and API calls we use to find the cause in under 15 minutes.</p><p>By Amara Nwosu. <a href="https://saas.phoenixcodes.org/blog/runbook-wrong-dashboard">Read the full post</a>.</p>]]></content:encoded>
</item>
<item>
<title>Alert fatigue is a routing problem, not a volume problem</title>
<link>https://saas.phoenixcodes.org/blog/alert-fatigue-routing</link>
<guid isPermaLink="false">https://saas.phoenixcodes.org/blog/alert-fatigue-routing</guid>
<pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
<description>Teams mute noisy channels because nobody in them owns the alert. Route each alert to the owner, hold the rest for a digest and the volume stops mattering.</description>
<category>Product</category>
<category>alerts</category>
<category>ownership</category>
<category>on-call</category>
<content:encoded><![CDATA[<p>Teams mute noisy channels because nobody in them owns the alert. Route each alert to the owner, hold the rest for a digest and the volume stops mattering.</p><p>By Hannah Cho. <a href="https://saas.phoenixcodes.org/blog/alert-fatigue-routing">Read the full post</a>.</p>]]></content:encoded>
</item>
</channel>
</rss>
