<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Posts on NHE</title>
        <link>https://engholm.dev/posts/</link>
        <description>Recent content in Posts on NHE</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <copyright>&lt;a href=&#34;https://creativecommons.org/licenses/by-nc/4.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CC BY-NC 4.0&lt;/a&gt;</copyright>
        <lastBuildDate>Sat, 11 Apr 2026 14:52:00 +0000</lastBuildDate>
        <atom:link href="https://engholm.dev/posts/index.xml" rel="self" type="application/rss+xml" />
        
        <item>
            <title>🏀 What Basketball Taught Me About System Design</title>
            <link>https://engholm.dev/posts/system-design/</link>
            <pubDate>Sat, 11 Apr 2026 14:52:00 +0000</pubDate>
            
            <guid>https://engholm.dev/posts/system-design/</guid>
            <description>I’ve spent as much time on the court as I have in front of a terminal, and it’s striking how often the principles overlap. Whether you&amp;rsquo;re building a distributed system or coaching a team to the finals, the fundamentals of scale, latency, and reliability remain the same.
Here is why your tech stack is more like a basketball team than you think:
1. Throughput vs. Latency (The Fast Break) In system design, we talk about Latency (how long one request takes) and Throughput (how many requests we can handle at once).</description>
            <content type="html"><![CDATA[<p>I’ve spent as much time on the court as I have in front of a terminal, and it’s striking how often the principles overlap. Whether you&rsquo;re building a distributed system or coaching a team to the finals, the fundamentals of scale, latency, and reliability remain the same.</p>
<p>Here is why your tech stack is more like a basketball team than you think:</p>
<h3 id="1-throughput-vs-latency-the-fast-break">1. Throughput vs. Latency (The Fast Break)</h3>
<p>In system design, we talk about <strong>Latency</strong> (how long one request takes) and <strong>Throughput</strong> (how many requests we can handle at once).</p>
<ul>
<li><strong>The Point Guard:</strong> A fast break is all about low latency. Moving the ball from point A to point B as fast as possible.</li>
<li><strong>The Full Game:</strong> Your total score is your throughput. It doesn’t matter how fast your break is if you can&rsquo;t consistently execute throughout four quarters.</li>
</ul>
<h3 id="2-microservices-vs-monoliths-the-iso-player">2. Microservices vs. Monoliths (The &ldquo;Iso&rdquo; Player)</h3>
<ul>
<li><strong>The Monolith:</strong> A superstar player who does everything (scores, rebounds, defends). It’s great until they get tired (<strong>bottleneck</strong>) or injured (<strong>Single Point of Failure</strong>).</li>
<li><strong>Microservices:</strong> A balanced roster where everyone has a specific role. If the center is having an off night, the shooting guards can pick up the slack. It’s harder to coordinate, but much more resilient at scale.</li>
</ul>
<h3 id="3-load-balancing-the-extra-pass">3. Load Balancing (The Extra Pass)</h3>
<p>If the defense doubles your star player, you find the open man. In architecture, a <strong>Load Balancer</strong> acts like a veteran floor general. It sees which server is &ldquo;heavily guarded&rdquo; (overloaded) and redirects the traffic to the server with the hot hand and the most capacity.</p>
<h3 id="4-caching-the-scouting-report">4. Caching (The Scouting Report)</h3>
<p>Why recalculate a play every time you see a specific defensive set?</p>
<ul>
<li><strong>L1/L2 Cache:</strong> Knowing your teammate&rsquo;s favorite spot on the floor. It’s muscle memory—near-instant.</li>
<li><strong>Database:</strong> Watching film the night before. The data is there, but it takes a bit more effort to retrieve.</li>
</ul>
<h3 id="5-high-availability-the-bench">5. High Availability (The Bench)</h3>
<p>Your system is only as good as its depth. If your primary database goes down and you don&rsquo;t have a <strong>Read Replica</strong> or a failover strategy, you&rsquo;ve effectively forfeited the game.</p>
<hr>
<p><strong>The Bottom Line:</strong>
Whether you&rsquo;re managing $O(n)$ complexity or a 2-3 zone defense, success comes down to how well your individual components communicate under pressure.</p>
]]></content>
        </item>
        
    </channel>
</rss>
