<?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>Ships It Friday</title>
  <link>https://shipsitfriday.com/</link>
  <atom:link href="https://shipsitfriday.com/feed.xml" rel="self" type="application/rss+xml"/>
  <description>Dev humour about the mistakes: bad deploys, worse decisions, and code that was confidently wrong. Named after the classic one — shipping to production on a Friday.</description>
  <language>en</language>
  <lastBuildDate>Thu, 06 Aug 2026 00:00:00 GMT</lastBuildDate>
  <item>
    <title>Off was the flag</title>
    <link>https://shipsitfriday.com/comics/dead-flags</link>
    <guid isPermaLink="true">https://shipsitfriday.com/comics/dead-flags</guid>
    <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
    <description>Toby deleted 47 dead feature flags — all the ones set to false. The half-built features shipped to everyone.</description>
    <content:encoded><![CDATA[<p><img src="https://res.cloudinary.com/ewdrrr3a/image/upload/f_auto,q_auto,w_960/v1786030625/comics/comic-016-dead-flags/web.webp" alt="Four-panel comic. Panel 1: Toby leans back proudly from his laptop showing an all-red diff, saying &quot;I deleted 47 dead feature flags. Codebase is finally clean.&quot; June looks over tiredly. Panel 2: June asks &quot;Which ones?&quot; Toby, beaming, answers &quot;All the ones set to false.&quot; Panel 3 (silent): the live production site displays a half-built Beta Checkout page with lorem text, a button labelled TODO, and a rising support ticket counter. Panel 4: June pinches the bridge of her nose and says &quot;Turn it back off.&quot; Toby shrugs and says &quot;Off was the flag.&quot;" width="1254" height="1254"></p><p>Toby deleted 47 dead feature flags — all the ones set to false. The half-built features shipped to everyone.</p>]]></content:encoded>
    <category>feature-flags</category>
    <category>cleanup</category>
    <category>release-management</category>
  </item>
  <item>
    <title>From itself</title>
    <link>https://shipsitfriday.com/comics/permanent-redirect</link>
    <guid isPermaLink="true">https://shipsitfriday.com/comics/permanent-redirect</guid>
    <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
    <description>301'd a test route as permanent instead of 302. Three months later it is still getting traffic — from itself.</description>
    <content:encoded><![CDATA[<p><img src="https://res.cloudinary.com/ewdrrr3a/image/upload/f_auto,q_auto,w_960/v1786023428/comics/comic-015-permanent-redirect/web.webp" alt="Four-panel cartoon. Panel 1: Toby types at his terminal grinning, June skeptical beside him. Toby says &quot;Just for the migration test — 301, permanent redirect!&quot; Panel 2: Toby deletes the old route, celebrating, while June walks away. Toby says &quot;Test passed! Deleting the old route now.&quot; Panel 3 (silent): calendar weeks flip by, browsers worldwide lock in the cached redirect, and the old server sits dusty as traffic still flows to it. Panel 4: June stares at a dashboard showing a redirect loop and Toby's grin fades. June says &quot;The route's been gone three months. It's still getting hits — from itself.&quot;" width="1254" height="1254"></p><p>301'd a test route as permanent instead of 302. Three months later it is still getting traffic — from itself.</p>]]></content:encoded>
    <category>http</category>
    <category>caching</category>
    <category>routing</category>
  </item>
  <item>
    <title>Radical transparency</title>
    <link>https://shipsitfriday.com/comics/radical-transparency</link>
    <guid isPermaLink="true">https://shipsitfriday.com/comics/radical-transparency</guid>
    <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
    <description>Toby made the logs transparent. Literally — passwords and all, on the public status dashboard.</description>
    <content:encoded><![CDATA[<p><img src="https://res.cloudinary.com/ewdrrr3a/image/upload/f_auto,q_auto,w_960/v1786005547/comics/comic-014-radical-transparency/web.webp" alt="Four-panel cartoon. Panel 1: Toby, grinning, tells June &quot;Added a log line for debugging. Passwords too, just in case!&quot; while committing code. Panel 2: June, alarmed, says &quot;Toby. Logs aren't private. They pipe straight to the public status dashboard.&quot; Panel 3 (silent): the office all-hands TV shows the public dashboard scrolling raw passwords while the team stares, frozen. Panel 4: Dale beams, unaware, declaring &quot;Radical transparency! Investors are going to love this.&quot; while Toby and June trade horrified looks." width="1254" height="1254"></p><p>Toby made the logs transparent. Literally — passwords and all, on the public status dashboard.</p>]]></content:encoded>
    <category>logging</category>
    <category>security</category>
    <category>prod-data</category>
  </item>
  <item>
    <title>Frame it for the wall</title>
    <link>https://shipsitfriday.com/comics/hockey-stick</link>
    <guid isPermaLink="true">https://shipsitfriday.com/comics/hockey-stick</guid>
    <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
    <description>Nobody checked the axis before framing it. The hockey stick was the bill, not the users.</description>
    <content:encoded><![CDATA[<p><img src="https://res.cloudinary.com/ewdrrr3a/image/upload/f_auto,q_auto,w_960/v1785995345/comics/comic-013-hockey-stick/web.webp" alt="Four-panel cartoon. Panel 1: Toby sets autoscaling to unlimited, saying &quot;Cranking autoscaling to unlimited — demo can't choke on stage.&quot; Panel 2: Toby leaves saying &quot;Demo crushed it. Heading out!&quot; while the dashboard stays maxed. Panel 3 (silent): an empty office at night, a cost graph spiking into a steep hockey-stick curve. Panel 4: Dale points at the same chart in a meeting, thrilled, saying &quot;THIS is the growth chart! Frame it for the wall!&quot; — not realising it is the billing graph, not users." width="1254" height="1254"></p><p>Nobody checked the axis before framing it. The hockey stick was the bill, not the users.</p>]]></content:encoded>
    <category>cloud-cost</category>
    <category>autoscaling</category>
    <category>infra</category>
  </item>
  <item>
    <title>Great initiative</title>
    <link>https://shipsitfriday.com/comics/reply-all-prod</link>
    <guid isPermaLink="true">https://shipsitfriday.com/comics/reply-all-prod</guid>
    <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
    <description>Toby just wanted to test the email flow. Production sent it to all 812,004 customers.</description>
    <content:encoded><![CDATA[<p><img src="https://res.cloudinary.com/ewdrrr3a/image/upload/f_auto,q_auto,w_960/v1785994842/comics/comic-012-reply-all-prod/web.webp" alt="Four-panel cartoon. Panel 1: Toby grins, flipping a DEBUG/TEST_MODE toggle, saying &quot;Just testing the email flow real quick — flipping this switch.&quot; Panel 2: Toby clicks Run Script, saying &quot;Sending...&quot;, not watching the terminal. Panel 3 (silent): the terminal counter reads &quot;EMAILS SENT: 812,004 | BOUNCED: 0&quot; and Toby is frozen mid-blink. Panel 4: Dale bursts in cheerfully with a spiking chart, saying &quot;Open rates just tripled! Great initiative, Toby.&quot; while Toby sits ashen-faced." width="1254" height="1254"></p><p>Toby just wanted to test the email flow. Production sent it to all 812,004 customers.</p>]]></content:encoded>
    <category>email</category>
    <category>staging</category>
    <category>testing</category>
  </item>
  <item>
    <title>No cap</title>
    <link>https://shipsitfriday.com/comics/no-cap</link>
    <guid isPermaLink="true">https://shipsitfriday.com/comics/no-cap</guid>
    <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
    <description>June skipped the autoscaling cap just for tonight. Dale called the bill a growth metric.</description>
    <content:encoded><![CDATA[<p><img src="https://res.cloudinary.com/ewdrrr3a/image/upload/f_auto,q_auto,w_960/v1785995885/comics/comic-011-no-cap/web.webp" alt="Four-panel cartoon. Panel 1: June, confident, says &quot;Traffic's spiking. Autoscale it — skip the instance cap, we're fine.&quot; Panel 2: June, wide-eyed, says &quot;...it's still scaling.&quot; Panel 3 (silent): a dashboard shows 48,203 instances and a cost figure spinning upward. Panel 4: Dale, beaming with the bill, says &quot;No cap, no problem. We'll call it growth.&quot; while June holds his head in his hands." width="1254" height="1254"></p><p>June skipped the autoscaling cap just for tonight. Dale called the bill a growth metric.</p>]]></content:encoded>
    <category>cloud-costs</category>
    <category>autoscaling</category>
    <category>infra</category>
  </item>
  <item>
    <title>Real clean</title>
    <link>https://shipsitfriday.com/comics/force-push-main</link>
    <guid isPermaLink="true">https://shipsitfriday.com/comics/force-push-main</guid>
    <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
    <description>Toby tidied his git history. Main did not survive the tidying.</description>
    <content:encoded><![CDATA[<p><img src="https://res.cloudinary.com/ewdrrr3a/image/upload/f_auto,q_auto,w_960/v1785996005/comics/comic-010-force-push-main/web.webp" alt="Four-panel cartoon. Panel 1: Toby, relaxed, says &quot;Tidying up my branch. Force-pushing to main, real quick.&quot; Panel 2: Toby smirks and says &quot;Ah. Nice and clean history now.&quot; Panel 3 (silent): June's monitor shows her commits missing; she stares in flat shock. Panel 4: June, arms crossed, deadpan, says &quot;Yeah. Real clean.&quot; — Toby's screen now shows his own branch wiped instead." width="1254" height="1254"></p><p>Toby tidied his git history. Main did not survive the tidying.</p>]]></content:encoded>
    <category>git</category>
    <category>version-control</category>
    <category>team-workflow</category>
  </item>
  <item>
    <title>LGTM</title>
    <link>https://shipsitfriday.com/comics/ai-review</link>
    <guid isPermaLink="true">https://shipsitfriday.com/comics/ai-review</guid>
    <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
    <description>You asked the AI to review the PR. It approved it in 0.3 seconds. Production disagreed.</description>
    <content:encoded><![CDATA[<p><img src="https://res.cloudinary.com/ewdrrr3a/image/upload/f_auto,q_auto,w_960/v1785971428/comics/comic-007-ai-review/web.webp" alt="Four-panel cartoon. Panel 1: June, a tired developer in a teal hoodie holding a laptop, asks Pip, a small periwinkle robot assistant, &quot;PIP, CAN YOU REVIEW THIS BEFORE I MERGE?&quot; Panel 2: Pip, with unchanging dot eyes and a small smile, raises an arm and says &quot;APPROVED! LGTM! SHIP IT!&quot; Panel 3 (silent): a monitor shows a dashboard reading &quot;PROD&quot; and &quot;DOWN&quot; with a red crashing graph; June looks alarmed. Panel 4: Pip, same cheerful face, says &quot;WANT ME TO REVIEW THE OUTAGE TOO?&quot; Footer reads shipsitfriday.com." width="1254" height="1254"></p><p>You asked the AI to review the PR. It approved it in 0.3 seconds. Production disagreed.</p>]]></content:encoded>
    <category>ai-tooling</category>
    <category>code-review</category>
  </item>
  <item>
    <title>Zero incidents</title>
    <link>https://shipsitfriday.com/comics/muted-alerts</link>
    <guid isPermaLink="true">https://shipsitfriday.com/comics/muted-alerts</guid>
    <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
    <description>Muted the alerts channel for one quiet Friday night. Found out about the outage a week later.</description>
    <content:encoded><![CDATA[<p><img src="https://res.cloudinary.com/ewdrrr3a/image/upload/f_auto,q_auto,w_960/v1785973468/comics/comic-009-muted-alerts/web.webp" alt="Four-panel cartoon. Panel 1: Dale mutes the #alerts channel, saying &quot;Muting #alerts. A dev deserves one quiet Friday.&quot; Panel 2: Russ relaxes at his dark desk, saying &quot;Weirdly quiet tonight.&quot; Panel 3 (silent): Russ's phone shows &quot;247 notifications&quot; while a wall monitor behind him glows red with server fire icons. Panel 4: Dale holds up a trophy saying &quot;Zero incidents this week. Great job, team!&quot; while Russ stares in horror at a laptop full of red alerts behind him." width="1254" height="1254"></p><p>Muted the alerts channel for one quiet Friday night. Found out about the outage a week later.</p>]]></content:encoded>
    <category>on-call</category>
    <category>alerting</category>
    <category>monitoring</category>
  </item>
  <item>
    <title>Always green</title>
    <link>https://shipsitfriday.com/comics/flaky-retry</link>
    <guid isPermaLink="true">https://shipsitfriday.com/comics/flaky-retry</guid>
    <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
    <description>The flaky test only failed sometimes, so we retried it until it passed. Now it passes even with the code deleted.</description>
    <content:encoded><![CDATA[<p><img src="https://res.cloudinary.com/ewdrrr3a/image/upload/f_auto,q_auto,w_960/v1785949975/comics/comic-006-flaky-retry/web.webp" alt="Four-panel cartoon. Panel 1: June, a tired developer in a teal hoodie holding a laptop, says &quot;THE TEST ONLY FAILS SOMETIMES.&quot; Panel 2: Toby, a small intern in a backwards cap holding a red can up high, says &quot;SO I MADE IT RETRY UNTIL IT PASSES.&quot; Panel 3 (silent): a laptop screen shows a CI log reading &quot;RETRYING, ATTEMPT 47&quot; and &quot;PASSED&quot; with a green check mark; June stares flatly. Panel 4: Toby, smug, says &quot;NOW IT ALWAYS PASSES. EVEN WITH THE CODE DELETED.&quot; Footer reads shipsitfriday.com." width="1254" height="1254"></p><p>The flaky test only failed sometimes, so we retried it until it passed. Now it passes even with the code deleted.</p>]]></content:encoded>
    <category>flaky-tests</category>
    <category>ci</category>
    <category>testing</category>
  </item>
</channel>
</rss>
