<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Jeff Bailey | What X</title><link>https://jeffbailey.us/categories/what-x/</link><description>This website contains learning resources, opinions, and facts about software-related technology.</description><language>en</language><generator>Hugo</generator><atom:link href="https://jeffbailey.us/categories/what-x/rss.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Fri, 14 Aug 2026 00:00:00 +0000</lastBuildDate><item><title>What Is Lima?</title><link>https://jeffbailey.us/blog/2026/01/31/what-is-lima/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/01/31/what-is-lima/</guid><pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Containers</category><category>macOS</category><category>Development</category><description><![CDATA[<p>When Docker altered Docker Desktop licensing in 2021, teams received emails from procurement to stop using it or buy seats. Switching a Mac to Lima after such emails, the command line remains nearly unchanged. Containers run, ports forward, and bind mounts appear inside the container.</p>
<p>That leaves a question: what is doing the work now? Docker Desktop feels like one thing. Lima seems like tangled parts.</p>
<p>This article explains what Lima is, how it runs Linux on your Mac, and its relation to tools like <code>nerdctl</code>, Colima, and Rancher Desktop.</p>]]></description></item><item><title>What Is Envoy?</title><link>https://jeffbailey.us/blog/2026/08/13/what-is-envoy/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/08/13/what-is-envoy/</guid><pubDate>Thu, 13 Aug 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>DevOps</category><category>Software Architecture</category><description><![CDATA[<p>Run <code>kubectl get pods</code> in a Kubernetes cluster with Istio installed, and every application pod shows <code>2/2</code> containers. You deployed one container. The second is Envoy, and it now handles every byte of network traffic your application sends or receives.</p>
<p>Envoy is an open-source, high-performance proxy for cloud-native systems. It handles networking tasks like routing, retries, timeouts, load balancing, encryption, and telemetry, replacing application-managed functions. By the end of this article, you&rsquo;ll understand why Envoy exists, how its configuration works, and why Kubernetes tools such as Istio, Envoy Gateway, Contour, and Emissary build on it.</p>]]></description></item><item><title>What Is Boolean Logic?</title><link>https://jeffbailey.us/blog/2026/07/29/what-is-boolean-logic/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/07/29/what-is-boolean-logic/</guid><pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Programming</category><category>Software Engineering</category><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>Every <code>if</code> statement relies on ideas humans learn before talking. Booleans seem simple: one bit, two values. But explaining a boolean to someone with no programming background is difficult.</p>
<p>Boolean logic is a reasoning system based on two values, true and false, with three operations: AND, OR, NOT. It underpins all digital computers and program conditionals.</p>
<p>By the end of this article, you&rsquo;ll understand Boolean logic, its purpose, how it works, and the mental patterns humans need before &ldquo;true&rdquo; and &ldquo;false&rdquo; mean anything.</p>]]></description></item><item><title>What Is a Knowledge Graph?</title><link>https://jeffbailey.us/blog/2026/06/23/what-is-a-knowledge-graph/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/06/23/what-is-a-knowledge-graph/</guid><pubDate>Tue, 23 Jun 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Data Engineering</category><category>AI Engineering</category><category>Software Architecture</category><description><![CDATA[<p>Most data starts as rows in tables: customers, orders, tickets. To see how a customer links to a product they refunded through a support ticket, you write joins. The connections exist, but the tables hide them; they surface only when you go looking.</p>
<p>A knowledge graph puts those connections first, treating the relationships between entities as the main thing. By the end of this article, you&rsquo;ll know what a knowledge graph is, why people build them, how one works, and where it helps and where it doesn&rsquo;t.</p>]]></description></item><item><title>What Is a Software Ontology?</title><link>https://jeffbailey.us/blog/2026/05/28/what-is-a-software-ontology/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/05/28/what-is-a-software-ontology/</guid><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Explanation</category><category>Software Architecture</category><category>Domain-Driven Design</category><description><![CDATA[<p>Open a mature codebase and grep for <code>Customer</code>. In billing, it means an active, paid account; in support, anyone who has sent an email; in analytics, a deduplicated household. The bug isn&rsquo;t in one module, but in three teams misunderstanding they&rsquo;re referring to the same thing.</p>
<p>A software ontology is a clearly defined, shared model of a domain that includes concepts, meanings, and relationships, documented and integrated with code. This article explains its role in Domain-Driven Design (DDD), why it exists, and how it functions as a mental model.</p>]]></description></item><item><title>What Is the AT Protocol? A Developer's Mental Model</title><link>https://jeffbailey.us/blog/2026/05/25/what-is-atproto/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/05/25/what-is-atproto/</guid><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Distributed Systems</category><category>Protocols</category><category>Social Web</category><description><![CDATA[<p>Most social networks use a single database with an app, storing usernames, posts, algorithms, moderation rules, and HTML within the same company. Building on top means relying on the vendor&rsquo;s rate-limited API, which can change or disappear unexpectedly.</p>
<p>The AT Protocol (ATproto) divides the monolith into parts that different people can run, use different languages for, and swap out without losing accounts or posts. Bluesky is its biggest app, but the protocol is more interesting for developers than the app.</p>]]></description></item><item><title>What Is the Hourglass of Uncertainty?</title><link>https://jeffbailey.us/blog/2026/05/20/what-is-the-hourglass-of-uncertainty/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/05/20/what-is-the-hourglass-of-uncertainty/</guid><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Software Engineering</category><category>Estimation</category><category>Project Management</category><description><![CDATA[<h2 id="the-pattern">The pattern</h2>
<p>The team is three weeks away from shipping. The demo went well. Estimates are tight. Velocity is trending up. The product manager is drafting the launch email.</p>
<p>Then the integration tests hit, the third-party API rate-limits at production volume, a database query takes four seconds instead of two, a security review finds an authentication gap, and the analytics team sees a schema mismatch.</p>
<p>Three weeks become three months.</p>]]></description></item><item><title>What Is Conway's Law?</title><link>https://jeffbailey.us/blog/2026/05/12/what-is-conways-law/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/05/12/what-is-conways-law/</guid><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Software Engineering</category><category>Organization Design</category><description><![CDATA[<h2 id="the-pattern">The pattern</h2>
<p>You redraw the org chart. Six months later, the codebase has grown new seams along the new team boundaries. The teams reshaped the software without intent.</p>
<p>That pattern has a name: <strong>Conway&rsquo;s Law</strong>. Any system you ship will reflect the communication structure of the people who built it. Modules align with teams. Interfaces form along reporting lines. Coordination friction shows up as code friction.</p>
<p>This matters because technical leaders keep treating organizational problems as technical problems. A microservice split fails when two teams still own a single service. A monorepo grows congested because four teams edit the same file. The architecture is doing exactly what the org chart told it to do.</p>]]></description></item><item><title>What is Ollama?</title><link>https://jeffbailey.us/blog/2026/04/27/what-is-ollama/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/04/27/what-is-ollama/</guid><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Fundamentals</category><category>AI</category><category>Machine Learning</category><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>I first heard about Ollama when a colleague mentioned running <a href="https://jeffbailey.us/blog/2026/04/14/a-history-of-ai-ml/">GPT-like models</a> on a laptop. My first reaction was the same one most engineers have: you can do that?</p>
<p>The short answer is yes. Ollama makes it possible to run <a href="https://jeffbailey.us/blog/2025/11/20/fundamentals-of-machine-learning/">large language models</a> locally on consumer hardware. You need only a Mac, a PC, or even a Raspberry Pi and a few minutes to pull a model.</p>
<p>Ollama is an open source tool for running large language models on your own hardware. It wraps <a href="https://github.com/ggerganov/llama.cpp">llama.cpp</a>, a highly optimized C++ inference engine, and exposes a simple API that mimics the OpenAI chat endpoint. You pull models with a single command, talk to them with curl or any SDK, and the system handles GPU acceleration, memory management, and model loading automatically.</p>]]></description></item><item><title>What Is fzf?</title><link>https://jeffbailey.us/blog/2026/04/25/what-is-fzf/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/04/25/what-is-fzf/</guid><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Developer Tools</category><category>Productivity</category><category>Command Line</category><description><![CDATA[<p>I used to open files the slow way: <code>cd</code> into a directory, <code>ls</code> to see what&rsquo;s there, maybe <code>find</code> with a half-remembered filename, then pass it to whatever program I needed. Every time, I&rsquo;d lose a few seconds hunting for the right path. Multiply that by dozens of files a day, and it adds up to real friction.</p>
<p>Then I found fzf, and file selection stopped being a chore. fzf is a fuzzy finder that turns file selection into a fast, interactive search.</p>]]></description></item><item><title>What Is Zoxide?</title><link>https://jeffbailey.us/blog/2026/04/21/what-is-zoxide/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/04/21/what-is-zoxide/</guid><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Developer Tools</category><category>Productivity</category><category>Command Line</category><description><![CDATA[<p>I used to navigate my filesystem one directory at a time. <code>cd ~/Projects</code>, then <code>ls</code>, then <code>cd websites</code>, then <code>ls</code>, then <code>cd jeffbaileyblog</code>, then <code>ls</code>, then <code>cd hugo</code>. Every trip to a familiar directory cost me four or five commands. Tab-completion helped a little, but I still had to remember the path.</p>
<p>Then I installed zoxide, and <code>cd</code> started reading my mind.</p>
<h2 id="what-zoxide-actually-is">What zoxide actually is</h2>
<p>Zoxide is a smarter replacement for <code>cd</code>. It watches where you go in your terminal, ranks those directories by how often and how recently you visit them, and lets you jump to any of them by typing a fragment of the path.</p>]]></description></item><item><title>What Is Claude Code?</title><link>https://jeffbailey.us/blog/2026/04/21/what-is-claude-code/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/04/21/what-is-claude-code/</guid><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Developer Tools</category><category>AI</category><category>Productivity</category><description><![CDATA[<p>For years, &ldquo;AI in my editor&rdquo; meant autocomplete. Copilot would suggest the next few tokens, I&rsquo;d hit tab, and that was the interaction. Useful, but shallow. The AI stayed in one file, ignored my tests, and had no way to know when its suggestion broke the build.</p>
<p>Claude Code works at a different level. It runs in my terminal, reads my files, runs my commands, and talks back in plain language. When I ask it to fix a failing test, it runs the test, reads the failure, finds the bug, edits the file, and runs the test again to confirm. The result feels less like autocomplete and more like delegating a small task to a teammate.</p>]]></description></item><item><title>What Is nWave?</title><link>https://jeffbailey.us/blog/2026/04/20/what-is-nwave/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/04/20/what-is-nwave/</guid><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Programming</category><category>AI</category><description><![CDATA[<p>AI agents that can write code are easy to find. AI agents that write code I&rsquo;d actually ship are rare. nWave is one attempt at the second problem, and understanding its shape helps me think more clearly about every other AI coding tool I use.</p>
<h2 id="what-is-nwave">What is nWave?</h2>
<p>nWave is an agentic AI software delivery methodology that runs inside <a href="https://jeffbailey.us/blog/2026/04/21/what-is-claude-code/">Claude Code</a>. It slices the work of shipping a feature into six ordered waves, assigns a specialized agent to each wave, and stops for a human review between waves.</p>]]></description></item><item><title>What Are Coding Agents?</title><link>https://jeffbailey.us/blog/2026/04/04/what-are-coding-agents/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/04/04/what-are-coding-agents/</guid><pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>AI</category><category>Software</category><description><![CDATA[<p>A coding agent reads files, runs tests, edits code, and retains context over sessions. Same request in a plain chat yields worse results, even with the same model—the difference is the environment.</p>
<p>This article explains the difference between &ldquo;chat with a language model&rdquo; and &ldquo;useful coding assistant.&rdquo; You&rsquo;ll learn what a coding agent is, its components, costs, and why the system around it matters.</p>
<h2 id="why-coding-harnesses-exist">Why Coding Harnesses Exist</h2>
<p>A language model generates text but lacks a file system, shell, persistent memory, or knowledge of your repository.</p>]]></description></item><item><title>What Is Amdahl's Law?</title><link>https://jeffbailey.us/blog/2026/03/30/what-is-amdahls-law/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/03/30/what-is-amdahls-law/</guid><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Computer Science</category><category>Software Engineering</category><category>Performance</category><category>Laws</category><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>You add more cores. The program gets faster. Keep adding, and gains shrink. Eventually, speed stops rising.</p>
<p>That ceiling has a name: <strong>Amdahl&rsquo;s Law</strong>. It gives the maximum speedup from parallelizing a program, given how much work must still run sequentially.</p>
<p>This matters because it prevents wasted effort. Teams add hardware expecting a linear speedup, then hit diminishing returns. Amdahl&rsquo;s Law explains why and points you to the bottleneck that actually needs work.</p>]]></description></item><item><title>What Is Just-in-Time Catching Test Generation?</title><link>https://jeffbailey.us/blog/2026/02/14/what-is-just-in-time-catching-test-generation/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/02/14/what-is-just-in-time-catching-test-generation/</guid><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Software Engineering</category><category>Testing</category><category>AI</category><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>When I submit a pull request, I rely on <a href="https://jeffbailey.us/blog/2025/11/30/fundamentals-of-software-testing/">existing tests</a>, written months or years ago, which run with each change. But what if tests could be automatically generated for each diff, tailored to catch bugs before code lands? That&rsquo;s the premise of Just-in-Time (JIT) Catching Test Generation.</p>
<p>This approach turns traditional testing on its head. Instead of maintaining a static test suite that you update whenever behavior changes, catching tests are generated on the fly by large language models (LLMs). They are meant to fail when they find a bug. They do not live in your codebase. They exist only to catch regressions in the specific code change under review.</p>]]></description></item><item><title>What Is SBOM?</title><link>https://jeffbailey.us/blog/2026/02/06/what-is-sbom/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/02/06/what-is-sbom/</guid><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Open Source</category><category>Security</category><category>Compliance</category><category>Software Supply Chain</category><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>When I download software, I rarely know what&rsquo;s actually inside it. Is it just the code the vendor wrote, or does it include hundreds of open source libraries? If a vulnerability appears in one of those libraries, how would I know if I&rsquo;m affected? These questions become critical when managing software across complex supply chains.</p>
<p>A Software Bill of Materials (SBOM) answers these questions. An SBOM is essentially an inventory list that documents all the components in a software product. Just as a physical product has a bill of materials listing its parts, an SBOM lists the software components, their versions, licenses, and relationships.</p>]]></description></item><item><title>What Is OpenSSF?</title><link>https://jeffbailey.us/blog/2026/02/06/what-is-openssf/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/02/06/what-is-openssf/</guid><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Open Source</category><category>Security</category><category>Software Supply Chain</category><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>Most software relies on open source components, with your app potentially using hundreds of libraries, frameworks, and tools maintained by different teams with varying security practices. A vulnerability in one can impact thousands of applications.</p>
<p>The Open Source Security Foundation (OpenSSF), hosted by the Linux Foundation, aims to improve open source security with tools, standards, and collaboration. It unites organizations, developers, and security experts without replacing project efforts.</p>
<p>This article explains what OpenSSF is, why it exists, and how it helps secure the open source ecosystem that modern software depends on.</p>]]></description></item><item><title>What Is an OSPO?</title><link>https://jeffbailey.us/blog/2026/02/06/what-is-an-ospo/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/02/06/what-is-an-ospo/</guid><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Open Source</category><category>Strategy</category><category>Compliance</category><description><![CDATA[<h2 id="why-do-some-companies-have-a-whole-team-just-for-open-source">Why Do Some Companies Have a Whole Team Just for Open Source?</h2>
<p>Most organizations depend on open source software but never formalize how they use it. Developers pull in libraries without a consistent view of licenses. Legal finds compliance gaps late. Security can&rsquo;t see the full dependency picture. Contributing back is ad hoc. An Open Source Program Office (OSPO) is the function that steps in to coordinate all of that: strategy, policy, compliance, and community engagement. It doesn&rsquo;t replace developers or teams; it provides the structure and expertise so the organization can use open source effectively and responsibly.</p>]]></description></item><item><title>What Is the Exponential Backoff Pattern?</title><link>https://jeffbailey.us/blog/2026/02/01/what-is-the-exponential-backoff-pattern/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/02/01/what-is-the-exponential-backoff-pattern/</guid><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Reliability</category><category>Distributed Systems</category><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>Retrying a remote call immediately when it fails can worsen the situation. Overloaded dependencies may be overwhelmed further, prolonging outages.</p>
<p>Exponential backoff increases wait times between retries (e.g., 1, 2, 4 seconds) to give struggling services room to recover, rather than piling on.</p>
<p>By the end of this article, you will:</p>
<ul>
<li>Understand what exponential backoff is and why it exists.</li>
<li>See how it works conceptually and fits with timeouts and <a href="https://jeffbailey.us/blog/2025/12/17/what-is-jitter/">jitter</a>.</li>
<li>Correct the misconception that backoff alone avoids overload.</li>
</ul>
<p><strong>What this is (and isn&rsquo;t):</strong> This article explains why exponential backoff exists, how it works, and how it fits with timeouts and jitter. It does not cover SDK retry defaults, circuit breaker implementation, or load testing.</p>]]></description></item><item><title>What Is Inoreader?</title><link>https://jeffbailey.us/blog/2026/01/24/what-is-inoreader/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/01/24/what-is-inoreader/</guid><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Productivity</category><category>Information Management</category><description><![CDATA[<p>Inoreader is an RSS reader that uses automation rules and filters to organize articles. Rules sort content, filter noise, and tag items. Filters eliminate duplicates and irrelevant content before processing.</p>
<p>By the end of this article, you&rsquo;ll understand Inoreader, rules, and filters.</p>
<h2 id="why-inoreader-exists">Why Inoreader Exists</h2>
<p>RSS feeds enable subscribing to sites and automatic updates, but managing many feeds can be overwhelming. Traditional readers list unread articles and need manual organization, which works for few feeds but becomes difficult at scale.</p>]]></description></item><item><title>What Are Agent Skills?</title><link>https://jeffbailey.us/blog/2026/01/24/what-are-agent-skills/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/01/24/what-are-agent-skills/</guid><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>AI</category><category>Software Engineering</category><description><![CDATA[<p>Initially, AI coding assistants could write code but lacked context. They didn&rsquo;t know my conventions, patterns, or domain knowledge. I had to repeat my explanations at each session, and the agent couldn&rsquo;t remember the previous context.</p>
<p>Agent Skills address this by packaging procedural knowledge, instructions, and resources into reusable folders for agents to discover and use. Instead of repeatedly explaining conventions, you create a single skill that any compatible agent can use.</p>]]></description></item><item><title>What Is the Agent2Agent Protocol (A2A)?</title><link>https://jeffbailey.us/blog/2026/01/18/what-is-the-agent2agent-protocol-a2a/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/01/18/what-is-the-agent2agent-protocol-a2a/</guid><pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>AI</category><category>Open Source</category><category>Software Engineering</category><description><![CDATA[<p>AI agents are evolving from isolated tools to collaborative systems. Each works well independently, but connecting them needs custom code that doesn&rsquo;t transfer across vendors or platforms. Building bridges for only specific agent pairs isn&rsquo;t scalable.</p>
<p>The Agent2Agent Protocol (A2A) standardizes how AI agents communicate and collaborate across vendors, frameworks, or platforms. It allows agents to discover capabilities, securely exchange information, coordinate tasks, and negotiate result presentation.</p>
<p>By the end of this article, you&rsquo;ll understand why A2A exists, how it works conceptually, and what problems it solves for developers building multi-agent systems and users relying on AI tools.</p>]]></description></item><item><title>What Is MCP?</title><link>https://jeffbailey.us/blog/2026/01/15/what-is-mcp/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/01/15/what-is-mcp/</guid><pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>AI</category><category>Software Engineering</category><description><![CDATA[<p>Initially working with AI tools, I faced a common issue: each required unique integration. Connecting a language model to a database or accessing the filesystem meant writing custom code, making each a standalone project that didn&rsquo;t transfer.</p>
<p>Model Context Protocol (MCP) standardizes AI access to external tools and data sources, acting as a universal adapter. Implementing MCP once allows AI to connect to any MCP-compatible server for database, file, <a href="/blog/2026/01/16/fundamentals-of-api-design-and-contracts/">API</a>, or other services.</p>]]></description></item><item><title>What Is Nushell?</title><link>https://jeffbailey.us/blog/2026/01/08/what-is-nushell/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2026/01/08/what-is-nushell/</guid><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Developer Tools</category><category>Shell</category><category>Command Line</category><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>Have you ever written a bash pipeline that broke because the <code>ls</code> output format differed on Linux and macOS? Or spent time parsing JSON with <a href="https://jeffbailey.us/blog/2021/11/30/learn-jq/">jq</a> when you just wanted to filter a few fields? That frustration is exactly why Nushell exists.</p>
<p>Nushell handles data as structured information, not plain text. Unlike bash, zsh, or PowerShell, which output text processed by tools like <code>grep</code>, <code>awk</code>, or <code>sed</code>, Nushell returns structured data—tables, lists, records, and primitives that can be manipulated directly.</p>]]></description></item><item><title>What Is SWOT Analysis?</title><link>https://jeffbailey.us/blog/2025/12/26/what-is-swot-analysis/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2025/12/26/what-is-swot-analysis/</guid><pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Strategy</category><category>Business</category><description><![CDATA[<p>SWOT analysis categorizes internal and external factors into Strengths, Weaknesses, Opportunities, and Threats. It covers definitions, format, applications, and constraints.</p>
<h2 id="swot-analysis">SWOT Analysis</h2>
<p><strong>Type:</strong> Strategic planning framework<br>
<strong>Format:</strong> Four-quadrant matrix or list<br>
<strong>Required components:</strong> Strengths, Weaknesses, Opportunities, Threats<br>
<strong>Typical use:</strong> Strategic planning, decision-making, competitive analysis</p>
<p>SWOT analysis (Strengths, Weaknesses, Opportunities, Threats) is a structured method for evaluating an organization, project, or decision. It separates internal factors (Strengths and Weaknesses) from external factors (Opportunities and Threats) to identify strategic options.</p>]]></description></item><item><title>What Is PESTLE Analysis?</title><link>https://jeffbailey.us/blog/2025/12/26/what-is-pestle-analysis/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2025/12/26/what-is-pestle-analysis/</guid><pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Strategy</category><category>Business</category><description><![CDATA[<p>PESTLE analysis is a strategic planning framework that examines six categories of external factors affecting an organization: Political, Economic, Social, Technological, Legal, and Environmental.</p>
<h2 id="pestle-analysis">PESTLE Analysis</h2>
<p><strong>Type:</strong> Strategic planning framework<br>
<strong>Format:</strong> Six-category analysis or structured list<br>
<strong>Required components:</strong> Political, Economic, Social, Technological, Legal, Environmental factors<br>
<strong>Typical use:</strong> Strategic planning, risk assessment, market analysis, organizational change planning</p>
<p>PESTLE analysis (Political, Economic, Social, Technological, Legal, Environmental) is a diagnostic tool for auditing external factors that influence organizational decisions.</p>]]></description></item><item><title>What Is Jitter?</title><link>https://jeffbailey.us/blog/2025/12/17/what-is-jitter/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2025/12/17/what-is-jitter/</guid><pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Reliability</category><category>Distributed Systems</category><category>Performance</category><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>Jitter is variation in timing.</p>
<p>In distributed systems, jitter affects load shape by widening the tail latency and causing synchronized bursts during retries when jitter is missed in control loops.</p>
<p>This article explains the two common meanings of jitter:</p>
<ul>
<li><strong>Latency jitter</strong>: variability in request time.</li>
<li><strong>Backoff jitter</strong>: intentional randomness added to retry and scheduling intervals.</li>
</ul>
<h2 id="prerequisites-and-outcomes">Prerequisites and outcomes</h2>
<p>You do not need a deep background for this. It helps if you have seen:</p>]]></description></item><item><title>What Is Load Shedding?</title><link>https://jeffbailey.us/blog/2025/12/16/what-is-load-shedding/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2025/12/16/what-is-load-shedding/</guid><pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Reliability</category><category>Distributed Systems</category><category>Performance</category><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>When a system is overloaded, the worst thing it can do is pretend it can handle everything.</p>
<p>This causes slow failures, timeouts, frustrated users, retries, traffic surge, and larger outages.</p>
<p>By the end, you&rsquo;ll understand that once a system is saturated, accepting more work results in increased waiting, leading to timeouts, retries, and outages.</p>
<p>Load shedding is the concept of preventing “overloaded” from becoming “totally unusable”.</p>
<h2 id="what-is-load-shedding">What is load shedding</h2>
<p><strong>Load shedding</strong> is intentionally rejecting some work during overload so the system can keep serving the work that matters most.</p>]]></description></item><item><title>What Is Backpressure?</title><link>https://jeffbailey.us/blog/2025/12/16/what-is-backpressure/</link><guid isPermaLink="true">https://jeffbailey.us/blog/2025/12/16/what-is-backpressure/</guid><pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate><dc:creator>Jeff Bailey</dc:creator><category>What X</category><category>Reliability</category><category>Distributed Systems</category><category>Performance</category><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>Most distributed systems do not fail because one request is expensive. They fail because too many requests arrive at once, the system cannot keep up, and work piles up until everything times out.</p>
<p>Backpressure is the concept that stops that pileup from becoming a full outage.</p>
<h2 id="what-backpressure-is">What backpressure is</h2>
<p><strong>Backpressure</strong> is a signal, or a mechanism, that tells an upstream component to slow down because a downstream component is at or near capacity.</p>]]></description></item></channel></rss>