<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ebby Builds!</title><link>http://blog.ebbypeter.com/</link><description>Recent content on Ebby Builds!</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 31 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://blog.ebbypeter.com/index.xml" rel="self" type="application/rss+xml"/><item><title>The Architecture Review You Actually Need (But Never Get)</title><link>http://blog.ebbypeter.com/2026/03/the-architecture-review-you-actually-need-but-never-get/</link><pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/03/the-architecture-review-you-actually-need-but-never-get/</guid><description>Most architecture reviews are compliance theatre. They arrive late, check the wrong things, and produce feedback nobody acts on. Here&amp;rsquo;s what a review that actually challenges a design looks like, and why the problem is structural, not personal.</description></item><item><title>Everyone Owns Cloud Security. That's Why Nobody Does.</title><link>http://blog.ebbypeter.com/2026/03/everyone-owns-cloud-security-thats-why-nobody-does/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/03/everyone-owns-cloud-security-thats-why-nobody-does/</guid><description>165 organisations got hit in the Snowflake breach using no novel attack — just stolen credentials, no MFA, and nobody watching. The shared responsibility model didn&amp;rsquo;t fail technically. It failed organisationally. Security wrote the policy. Engineering assumed someone reviewed it. The platform team figured &amp;lsquo;managed&amp;rsquo; meant secured. Procurement filed the SOC 2 and called it done. Nobody lied. Nobody was negligent. They just each assumed someone else had it.</description></item><item><title>KQL for Adults: Writing Queries That Don't Lie to You</title><link>http://blog.ebbypeter.com/2026/03/kql-for-adults-writing-queries-that-dont-lie-to-you/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/03/kql-for-adults-writing-queries-that-dont-lie-to-you/</guid><description>Most KQL running in production is subtly wrong. Wrong operators, unscoped subqueries, and alert rules that silently miss events due to ingestion latency. Here&amp;rsquo;s how to write queries you can actually defend.</description></item><item><title>Why Your Application Gateway Logs Don't Tell the Whole Story (Until You Correlate Them)</title><link>http://blog.ebbypeter.com/2026/03/why-your-application-gateway-logs-dont-tell-the-whole-story-until-you-correlate-them/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/03/why-your-application-gateway-logs-dont-tell-the-whole-story-until-you-correlate-them/</guid><description>Access logs, firewall logs, backend health, and metrics each tell a partial truth about what Application Gateway is doing. Here&amp;rsquo;s how they mislead you in isolation, and the KQL that fixes that.</description></item><item><title>Detection Is Not Protection: What Azure WAF Detection Mode Actually Does (and Doesn't)</title><link>http://blog.ebbypeter.com/2026/03/detection-is-not-protection-what-azure-waf-detection-mode-actually-does-and-doesnt/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/03/detection-is-not-protection-what-azure-waf-detection-mode-actually-does-and-doesnt/</guid><description>Most teams think a WAF in Detection mode is partially protecting them. It isn&amp;rsquo;t. Here&amp;rsquo;s what actually happens to requests, why the logs actively mislead, and how organisations end up stuck in Detection mode indefinitely without noticing.</description></item><item><title>Your Alerts Are a Product. They're Just a Bad One.</title><link>http://blog.ebbypeter.com/2026/02/your-alerts-are-a-product.-theyre-just-a-bad-one./</link><pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/02/your-alerts-are-a-product.-theyre-just-a-bad-one./</guid><description>Alert fatigue isn&amp;rsquo;t a people problem, it&amp;rsquo;s a product design failure. Your on-call engineers are the users. Here&amp;rsquo;s why noisy alerts are biologically inevitable under bad design, and what treating alerting as a product actually looks like.</description></item><item><title>Azure Will Stay Up. Your System Is a Different Story.</title><link>http://blog.ebbypeter.com/2026/02/azure-will-stay-up.-your-system-is-a-different-story./</link><pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/02/azure-will-stay-up.-your-system-is-a-different-story./</guid><description>Azure&amp;rsquo;s infrastructure is genuinely reliable. That&amp;rsquo;s exactly the problem. The more stable the platform, the easier it is to mistake platform health for system health, and that gap is where the expensive outages live. Availability is an architectural choice, not a SKU.</description></item><item><title>Your DR Plan Has Never Been Tested</title><link>http://blog.ebbypeter.com/2026/02/your-dr-plan-has-never-been-tested/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/02/your-dr-plan-has-never-been-tested/</guid><description>Most Azure DR tests confirm the secondary came up. They don&amp;rsquo;t confirm your RTO is real, your RPO commitment holds under load, or that failback won&amp;rsquo;t silently destroy the incident window. Here&amp;rsquo;s how to test DR honestly, with exit criteria that actually prove the plan works.</description></item><item><title>The Hidden Cost of 'Retry Everything': How Naive Retry Logic Creates a Self-Inflicted DDoS</title><link>http://blog.ebbypeter.com/2026/02/the-hidden-cost-of-retry-everything-how-naive-retry-logic-creates-a-self-inflicted-ddos/</link><pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/02/the-hidden-cost-of-retry-everything-how-naive-retry-logic-creates-a-self-inflicted-ddos/</guid><description>Retries are load, not safety. Without exponential backoff and jitter, your retry logic doesn&amp;rsquo;t protect against outages, it causes them. This post covers the mechanics of retry storms, five anti-patterns found in real production code, and what correct retry design actually looks like across layered Azure architectures.</description></item><item><title>The Hidden Cost of 'Just Turn On Logging' in Azure</title><link>http://blog.ebbypeter.com/2026/01/the-hidden-cost-of-just-turn-on-logging-in-azure/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/01/the-hidden-cost-of-just-turn-on-logging-in-azure/</guid><description>Your team enabled logging everywhere, a responsible move. Then the Azure bill arrived. This post traces exactly why Log Analytics costs spiral without warning, what the AzureDiagnostics table is quietly doing to your budget, and how resource-specific tables plus DCR transformations give you back control.</description></item><item><title>Autoscaling Is Not a Recovery Strategy</title><link>http://blog.ebbypeter.com/2026/01/autoscaling-is-not-a-recovery-strategy/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/01/autoscaling-is-not-a-recovery-strategy/</guid><description>Autoscaling is not a recovery strategy. It&amp;rsquo;s an elasticity tool, and knowing the difference is what separates teams that survive incidents from teams that just watch their instance count go up while users experience the outage anyway.</description></item><item><title>dotLOG - Bringing Notepad's Best Kept Secret to VS Code</title><link>http://blog.ebbypeter.com/2026/01/dotlog-bringing-notepads-best-kept-secret-to-vs-code/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/01/dotlog-bringing-notepads-best-kept-secret-to-vs-code/</guid><description>Windows Notepad has had a hidden logging trick since 1992 - type .LOG as the first line of a file and it automatically appends a timestamp every time you open it. I missed it when I moved to VS Code, so I built dotLOG to bring it back.</description></item><item><title>Getting Hugo Running with Tranquilpeak on Modern Hugo (v0.156+)</title><link>http://blog.ebbypeter.com/2026/01/getting-hugo-running-with-tranquilpeak-on-modern-hugo-v0.156/</link><pubDate>Tue, 06 Jan 2026 00:00:00 +0000</pubDate><guid>http://blog.ebbypeter.com/2026/01/getting-hugo-running-with-tranquilpeak-on-modern-hugo-v0.156/</guid><description>Tranquilpeak is still one of the most elegant Hugo themes around, but it was built for an older Hugo. Here are all the fixes you need to get it running on Hugo v0.156+, collected in one place so you don&amp;rsquo;t have to go hunting.</description></item></channel></rss>