<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Systems Design on AI VOID</title><link>https://ai-blog.noorshomelab.dev/categories/systems-design/</link><description>Recent content in Systems Design on AI VOID</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 15 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ai-blog.noorshomelab.dev/categories/systems-design/index.xml" rel="self" type="application/rss+xml"/><item><title>Chapter 2: Structured Problem Decomposition &amp;amp; Hypothesis Testing</title><link>https://ai-blog.noorshomelab.dev/real-world-software-problem-solving-guide/problem-decomposition/</link><pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/real-world-software-problem-solving-guide/problem-decomposition/</guid><description>&lt;h2 id="chapter-2-structured-problem-decomposition--hypothesis-testing"&gt;Chapter 2: Structured Problem Decomposition &amp;amp; Hypothesis Testing&lt;/h2&gt;
&lt;p&gt;Welcome back, future problem-solving guru! In Chapter 1, we explored the mindset of an experienced engineer, emphasizing curiosity, skepticism, and a continuous learning approach. Now, it&amp;rsquo;s time to equip you with the foundational techniques that turn that mindset into actionable strategies: &lt;strong&gt;structured problem decomposition&lt;/strong&gt; and &lt;strong&gt;hypothesis testing&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;These aren&amp;rsquo;t just fancy terms; they are the bedrock of efficient debugging, effective system design, and robust incident response. Whether you&amp;rsquo;re chasing down a tricky bug in a frontend component, diagnosing a performance bottleneck in a backend service, or understanding why an AI model is behaving unexpectedly, the ability to break down the problem into smaller, manageable pieces and systematically test your theories is paramount.&lt;/p&gt;</description></item><item><title>Decoupling Services with Message Queues and Asynchronous Workflows</title><link>https://ai-blog.noorshomelab.dev/systems-engineering-2026/message-queues-async-workflows/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/systems-engineering-2026/message-queues-async-workflows/</guid><description>&lt;h2 id="introduction-breaking-free-from-tight-coupling"&gt;Introduction: Breaking Free from Tight Coupling&lt;/h2&gt;
&lt;p&gt;Imagine a bustling restaurant where every customer order is taken by a chef directly, cooked immediately, and then the chef waits for the customer to finish before taking the next order. This is what synchronous, tightly coupled services often feel like in a software system. If one chef is busy or sick, the whole kitchen grinds to a halt. Not very efficient or resilient, right?&lt;/p&gt;</description></item><item><title>The Sidecar Pattern: Enhancing Services with Auxiliary Processes</title><link>https://ai-blog.noorshomelab.dev/systems-engineering-2026/sidecar-pattern/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/systems-engineering-2026/sidecar-pattern/</guid><description>&lt;p&gt;Imagine you&amp;rsquo;re building a fleet of microservices, each handling a specific business function. Soon, you realize almost every service needs to do similar things: log its activities, collect performance metrics, handle authentication, or secure its network communication. How do you implement these &amp;ldquo;cross-cutting concerns&amp;rdquo; without duplicating code, creating maintenance nightmares, or tightly coupling your services to specific technologies?&lt;/p&gt;
&lt;p&gt;This is where the &lt;strong&gt;Sidecar Pattern&lt;/strong&gt; comes into play. It&amp;rsquo;s a powerful architectural pattern that helps you enhance your services with auxiliary processes, keeping your core application logic clean and focused. By the end of this chapter, you&amp;rsquo;ll understand what the sidecar pattern is, why it&amp;rsquo;s so valuable in modern distributed systems, and how it can simplify the development and operation of complex applications, including those leveraging AI and agentic workflows.&lt;/p&gt;</description></item><item><title>Picture Processing Unit (PPU) Part 2: Sprites, Scrolling, and LCD Control</title><link>https://ai-blog.noorshomelab.dev/game-boy-emulator-fsharp/ppu-part2-sprites-scrolling/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/game-boy-emulator-fsharp/ppu-part2-sprites-scrolling/</guid><description>&lt;p&gt;This chapter builds upon our foundational Picture Processing Unit (PPU) work, where we established background tile rendering. Now, we&amp;rsquo;ll introduce the dynamic elements that bring games to life: sprites (movable objects), background scrolling, and the crucial LCD Control Register, which dictates how the display operates. By the end of this milestone, your emulator will be able to render basic sprites, scroll the background, and respond to fundamental display settings, making it capable of running more visually complex Game Boy ROMs.&lt;/p&gt;</description></item><item><title>Systems Thinking, Tradeoffs, and Architecting for AI/Agentic Workflows</title><link>https://ai-blog.noorshomelab.dev/systems-engineering-2026/systems-thinking-ai-agentic/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/systems-engineering-2026/systems-thinking-ai-agentic/</guid><description>&lt;p&gt;In the journey from a simple application to a complex distributed system, we&amp;rsquo;ve explored many patterns and practices. Yet, the most powerful tool in an engineer&amp;rsquo;s arsenal isn&amp;rsquo;t a specific technology or framework—it&amp;rsquo;s a way of thinking. This chapter brings it all together, focusing on &lt;em&gt;systems thinking&lt;/em&gt;, the art of navigating architectural tradeoffs, and how these timeless principles are more critical than ever when building the next generation of AI and agentic workflows.&lt;/p&gt;</description></item><item><title>Real-World Software Problem Solving: From Symptoms to Solutions</title><link>https://ai-blog.noorshomelab.dev/guides/real-world-software-problem-solving-guide/</link><pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate><guid>https://ai-blog.noorshomelab.dev/guides/real-world-software-problem-solving-guide/</guid><description>&lt;h2 id="introduction-the-art-and-science-of-software-problem-solving"&gt;Introduction: The Art and Science of Software Problem Solving&lt;/h2&gt;
&lt;p&gt;Welcome, fellow engineer! You&amp;rsquo;ve mastered coding, built applications, and perhaps even shipped features to production. But have you ever faced a cryptic bug, a sudden performance drop, or a system-wide outage that left you feeling lost? That&amp;rsquo;s where real-world problem-solving skills come in. This guide isn&amp;rsquo;t about writing more code; it&amp;rsquo;s about thinking like an experienced engineer when the unexpected happens, when systems fail, or when complex decisions need to be made.&lt;/p&gt;</description></item></channel></rss>