<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on DevBar Blog</title><link>https://blog.devbar.app/posts/</link><description>Recent content in Posts on DevBar Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 30 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.devbar.app/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Why We Built DevBar</title><link>https://blog.devbar.app/posts/why-we-built-devbar/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.devbar.app/posts/why-we-built-devbar/</guid><description>&lt;p>It was 2 AM during a production incident. A payment service was returning 503s. I had PagerDuty open in one tab, the relevant GitHub PR in another, a Datadog dashboard in a third, Linear for the incident ticket, and Slack somewhere underneath all of it. I spent four minutes — four actual minutes — just trying to find the deployment that caused the regression.&lt;/p>
&lt;p>The code fix took thirty seconds. Finding it took four minutes.&lt;/p></description></item><item><title>Building Real-Time Alerts Without Polling</title><link>https://blog.devbar.app/posts/building-real-time-alerts-without-polling/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.devbar.app/posts/building-real-time-alerts-without-polling/</guid><description>&lt;p>The first version of DevBar polled every integration on a 60-second interval. It worked, but 60 seconds is an eternity during a production incident. By the time the menu bar updated to show a new PagerDuty alert, the on-call engineer had already gotten a phone call.&lt;/p>
&lt;p>We needed sub-second delivery. Here&amp;rsquo;s what we built.&lt;/p>
&lt;h2 id="why-polling-is-the-wrong-model-for-alerts">Why polling is the wrong model for alerts&lt;/h2>
&lt;p>Polling feels simple: fetch data every N seconds, diff it, surface changes. The problems compound quickly in practice.&lt;/p></description></item></channel></rss>