<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Sandeep Sidhu</title><description>Security, observability, and AI in engineering workflows, written by an SRE who has run production for 20+ years.</description><link>https://www.sandeepsidhu.com/</link><item><title>Remote desktop lessons: hidden cursors, black frames, and testing Windows without a screen</title><link>https://www.sandeepsidhu.com/p/remote-desktop-lessons-hidden-cursors-black-frames-headless-windows/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/remote-desktop-lessons-hidden-cursors-black-frames-headless-windows/</guid><description>I shipped four small remote-desktop features this week: view-only by default, a draggable session banner, showing the end user&apos;s mouse, and real multi-monitor support. The features were the easy part. These are the notes I want to remember from making them work.</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Two years of building a security platform solo with AI agents: the honest architecture tour</title><link>https://www.sandeepsidhu.com/p/two-years-of-building-a-security-platform-solo-with-ai-agents/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/two-years-of-building-a-security-platform-solo-with-ai-agents/</guid><description>One SRE, two regions, one security platform in production. What the architecture looks like, what the AI agents did, where they burned me, and what I would not do again.</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Change windows for machines: the CI build that unlocked, deployed, and relocked prod by itself</title><link>https://www.sandeepsidhu.com/p/change-windows-for-machines/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/change-windows-for-machines/</guid><description>We gave the deploy pipeline the same deal a human operator gets: file a change, get a window, do the work, get locked out again. This week a build rode the whole loop with zero human touches.</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate></item><item><title>SOC 2 for a 10-person SaaS: what I&apos;d actually do first</title><link>https://www.sandeepsidhu.com/p/soc2-for-a-10-person-saas/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/soc2-for-a-10-person-saas/</guid><description>A customer asked for your SOC 2 report and you have no security team. Here is the order I would do things in, from someone who builds compliance tooling and runs production for a living.</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate></item><item><title>An AI-built agent wedged a 2GB prod host: unbounded maps, OOM loops, and the fixes</title><link>https://www.sandeepsidhu.com/p/an-ai-agent-wedged-a-2gb-prod-host/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/an-ai-agent-wedged-a-2gb-prod-host/</guid><description>A monitoring agent is supposed to be the lightest thing on the box. Ours ate a small host alive - and the command path that could have fixed it remotely was broken in the same binary. A post-mortem.</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Capturing security events with eBPF: from fork-storm noise to a usable signal</title><link>https://www.sandeepsidhu.com/p/ebpf-security-events-from-fork-storm-to-signal/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/ebpf-security-events-from-fork-storm-to-signal/</guid><description>eBPF gives you every exec on a host, far more than anyone can read. How our agent DDoSed itself with docker inspect, why container healthchecks are the loudest thing on a server, and the filtering that turned a firehose into a signal.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>The day our own fail2ban banned the ops IP</title><link>https://www.sandeepsidhu.com/p/the-day-fail2ban-banned-the-ops-ip/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/the-day-fail2ban-banned-the-ops-ip/</guid><description>We shipped SSH auto-blocking and it promptly banned our own ops IP. A staging story about automation that locks you out, an unnecessary server reset, and designing auto-response you can survive.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Paired pollers so a check is never missed - and the bug that taught the opposite lesson</title><link>https://www.sandeepsidhu.com/p/paired-pollers-and-the-double-execution-bug/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/paired-pollers-and-the-double-execution-bug/</guid><description>Redundant pollers mean an uptime check never silently skips. Then a legacy scheduler ran every check three times and I learned that duplicate execution is its own outage.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Hetzner vs the RAM price spike: what SaaS infra costs in 2026</title><link>https://www.sandeepsidhu.com/p/hetzner-and-the-ram-price-spike/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/hetzner-and-the-ram-price-spike/</guid><description>DRAM is roughly 3x its pre-AI-boom price and it shows in every hosting invoice. Real lessons from running a two-region SaaS on Hetzner through the squeeze.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>LLM tool-use with tenant isolation: pinning tenancy server-side</title><link>https://www.sandeepsidhu.com/p/llm-tool-use-tenant-isolation/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/llm-tool-use-tenant-isolation/</guid><description>If the model picks the arguments, the model can pick the wrong tenant. How AlertKick&apos;s AI assistants query customer data with tenancy pinned server-side and a whitelist of what tools may touch.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The bug where commands silently stopped reaching agents</title><link>https://www.sandeepsidhu.com/p/the-bug-where-commands-silently-stopped-reaching-agents/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/the-bug-where-commands-silently-stopped-reaching-agents/</guid><description>A Kafka migration left one half of the pipe pointing at the old brokers. Nothing errored, nothing alerted - commands were published to one cluster and consumed from another. On testing message paths end to end.</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate></item><item><title>EU + US regions on Hetzner: multi-region SaaS on a budget</title><link>https://www.sandeepsidhu.com/p/multi-region-on-a-budget-eu-us-on-hetzner/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/multi-region-on-a-budget-eu-us-on-hetzner/</guid><description>Geo-routing with a Cloudflare Worker, agent token replication, certificate SANs and sticky sessions - the unglamorous plumbing of running two regions without cloud-provider magic.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate></item><item><title>Kafka in KRaft mode, three brokers per region, deployed with Ansible</title><link>https://www.sandeepsidhu.com/p/kafka-in-kraft-mode-three-brokers-per-region-with-ansible/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/kafka-in-kraft-mode-three-brokers-per-region-with-ansible/</guid><description>Why we skipped managed Kafka, what a minimal HA KRaft deployment on Hetzner actually looks like, and the co-location trade that makes it nearly free.</description><pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate></item><item><title>One install script, six Linux distros: what universal agent installation really takes</title><link>https://www.sandeepsidhu.com/p/one-install-script-six-linux-distros/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/one-install-script-six-linux-distros/</guid><description>curl | bash is the easy part. Init systems, package managers, ancient glibc, and every other thing a single install script must survive when it runs on hardware you have never seen.</description><pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Exploring eBPF with libbpf and ebpf go library</title><link>https://www.sandeepsidhu.com/p/exploring-ebpf-with-libbpf-and-ebpf-go-library/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/exploring-ebpf-with-libbpf-and-ebpf-go-library/</guid><description>Exploring eBPF with libbpf and ebpf go library</description><pubDate>Thu, 26 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Managing OpenShift Nodes with Sync Pods and ConfigMaps</title><link>https://www.sandeepsidhu.com/p/managing-openshift-nodes-with-sync-pods-and-configmaps/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/managing-openshift-nodes-with-sync-pods-and-configmaps/</guid><description>Managing OpenShift Nodes with Sync Pods and ConfigMaps</description><pubDate>Tue, 10 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Kubernetes vs. OpenShift: Understanding the Differences and Choosing the Right Solution</title><link>https://www.sandeepsidhu.com/p/kubernetes-vs-openshift-understanding-the-differences-and-choosing-the-right-solution/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/kubernetes-vs-openshift-understanding-the-differences-and-choosing-the-right-solution/</guid><description>Kubernetes vs. OpenShift: Understanding the Differences and Choosing the Right Solution
</description><pubDate>Fri, 02 Dec 2022 00:00:00 GMT</pubDate></item><item><title>vault HA mysql backend cannot assign requested address</title><link>https://www.sandeepsidhu.com/p/vault-ha-mysql-backend-cannot-assign-requested-address/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/vault-ha-mysql-backend-cannot-assign-requested-address/</guid><description>Vault HA mysql backend cannot assign requested address</description><pubDate>Thu, 19 May 2022 00:00:00 GMT</pubDate></item><item><title>Git cherry pick examples</title><link>https://www.sandeepsidhu.com/p/git-cherry-pick-examples/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/git-cherry-pick-examples/</guid><description>Git cherry pick examples</description><pubDate>Thu, 12 Nov 2020 00:00:00 GMT</pubDate></item><item><title>Getting rid of ads on samsung smart tv</title><link>https://www.sandeepsidhu.com/p/samsung-smart-tv/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/samsung-smart-tv/</guid><description>I started seeing samsung push ads to the main TV display bar. So, I decided to do something about.
</description><pubDate>Sun, 14 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Start With Empathy</title><link>https://www.sandeepsidhu.com/p/start-with-empathy/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/start-with-empathy/</guid><description>About my observations and thoughts over number of years on what I have seen as interactions between engineering teams and development teams and faults there-in
</description><pubDate>Tue, 04 Feb 2020 00:00:00 GMT</pubDate></item><item><title>Starting to Blog Again</title><link>https://www.sandeepsidhu.com/p/starting-to-blog-again/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/starting-to-blog-again/</guid><description>Starting to Blog Again</description><pubDate>Sun, 02 Feb 2020 00:00:00 GMT</pubDate></item><item><title>Cobertura Report Not showing css properly</title><link>https://www.sandeepsidhu.com/p/cobertura-report-not-showing-css-properly/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/cobertura-report-not-showing-css-properly/</guid><description>Cobertura Report Not showing css properly</description><pubDate>Sat, 17 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Rackspace Cloud DNS management and API usage</title><link>https://www.sandeepsidhu.com/p/rackspace-cloud-dns-management-and-api-usage/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/rackspace-cloud-dns-management-and-api-usage/</guid><description>Rackspace Cloud DNS management and API usage</description><pubDate>Sat, 13 Jun 2015 00:00:00 GMT</pubDate></item><item><title>Interactive Command line Interface to Rackspace Cloud Files</title><link>https://www.sandeepsidhu.com/p/interactive-command-line-interface-to-rackspace-cloud-files/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/interactive-command-line-interface-to-rackspace-cloud-files/</guid><description>Interactive Command line Interface to Rackspace Cloud Files</description><pubDate>Wed, 19 Sep 2012 00:00:00 GMT</pubDate></item><item><title>Rackspace Cloud Files and php</title><link>https://www.sandeepsidhu.com/p/rackspace-cloud-files-and-php/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/rackspace-cloud-files-and-php/</guid><description>Rackspace Cloud Files and php</description><pubDate>Thu, 06 Oct 2011 00:00:00 GMT</pubDate></item><item><title>Recovering deleted files from Linux ext3 filesystem on Cloud Servers</title><link>https://www.sandeepsidhu.com/p/recovering-deleted-files-from-linux-ext3-filesystem-on-cloud-servers/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/recovering-deleted-files-from-linux-ext3-filesystem-on-cloud-servers/</guid><description>Recovering deleted files from Linux ext3 filesystem on Cloud Servers.</description><pubDate>Fri, 30 Sep 2011 00:00:00 GMT</pubDate></item><item><title>Cloud Servers - High Availability with heartbeat on CentOS 5.5</title><link>https://www.sandeepsidhu.com/p/cloud-servers-high-availability-with-heartbeat-on-linux-centos-5-5/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/cloud-servers-high-availability-with-heartbeat-on-linux-centos-5-5/</guid><description>Cloud Servers - High Availability with heartbeat on CentOS 5.5</description><pubDate>Thu, 19 May 2011 00:00:00 GMT</pubDate></item><item><title>MySQL master master replication on Debian 5 (Lenny)</title><link>https://www.sandeepsidhu.com/p/mysql-master-master-replication-on-debian-5-lenny/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/mysql-master-master-replication-on-debian-5-lenny/</guid><description>MySQL master master replication on Debian 5 (Lenny)</description><pubDate>Thu, 19 May 2011 00:00:00 GMT</pubDate></item><item><title>Installing XenServer using usb - mboot.c32: not a COM32R image</title><link>https://www.sandeepsidhu.com/p/installing-xenserver-using-usb-mboot-c32-not-a-com32r-image/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/installing-xenserver-using-usb-mboot-c32-not-a-com32r-image/</guid><description>Installing XenServer using usb - mboot.c32: not a COM32R image</description><pubDate>Fri, 15 Apr 2011 00:00:00 GMT</pubDate></item><item><title>Mounting Rackspace Cloud Files using cloudfuse into ubuntu 10.10 v2</title><link>https://www.sandeepsidhu.com/p/mounting-cloud-files-using-cloudfuse-into-ubuntu-10-10-v2/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/mounting-cloud-files-using-cloudfuse-into-ubuntu-10-10-v2/</guid><description>Mounting Rackspace Cloud Files using cloudfuse into ubuntu 10.10 v2</description><pubDate>Thu, 17 Mar 2011 00:00:00 GMT</pubDate></item><item><title>Installing Apache, MySQL, and PHP on Fedora 14 on Rackspace cloud servers.</title><link>https://www.sandeepsidhu.com/p/installing-apache-mysql-and-php-on-fedora-14-on-rackspace-cloud-servers/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/installing-apache-mysql-and-php-on-fedora-14-on-rackspace-cloud-servers/</guid><description>Installing Apache, MySQL, and PHP on Fedora 14 on Rackspace cloud servers.</description><pubDate>Thu, 10 Mar 2011 00:00:00 GMT</pubDate></item><item><title>Rackspace cloud servers - linux rescue mode</title><link>https://www.sandeepsidhu.com/p/rackspace-cloud-servers-linux-rescue-mode/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/rackspace-cloud-servers-linux-rescue-mode/</guid><description>Rackspace cloud servers - linux rescue mode</description><pubDate>Thu, 30 Dec 2010 00:00:00 GMT</pubDate></item><item><title>Extract pages from a PDF file in Ubuntu 10.10</title><link>https://www.sandeepsidhu.com/p/extract-pages-from-a-pdf-file-in-ubuntu-10.10/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/extract-pages-from-a-pdf-file-in-ubuntu-10.10/</guid><description>Extract pages from a PDF file in Ubuntu 10.10</description><pubDate>Sat, 11 Dec 2010 00:00:00 GMT</pubDate></item><item><title>Java runtime environment on fedora 14</title><link>https://www.sandeepsidhu.com/p/java-runtime-env-on-fedora-14/</link><guid isPermaLink="true">https://www.sandeepsidhu.com/p/java-runtime-env-on-fedora-14/</guid><description>Java runtime environment on fedora 14</description><pubDate>Mon, 29 Nov 2010 00:00:00 GMT</pubDate></item></channel></rss>