<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>System Design on Software Craftsperson</title>
    <link>https://www.softwarecraftsperson.com/tags/system-design/</link>
    <description>Recent content in System Design on Software Craftsperson</description>
    <image>
      <title>Software Craftsperson</title>
      <url>https://www.softwarecraftsperson.com/logos/web/png/Color%20logo%20-%20no%20background.png</url>
      <link>https://www.softwarecraftsperson.com/logos/web/png/Color%20logo%20-%20no%20background.png</link>
    </image>
    <generator>Hugo -- 0.147.1</generator>
    <language>en</language>
    <lastBuildDate>Sat, 31 Jan 2026 11:40:00 +0000</lastBuildDate>
    <atom:link href="https://www.softwarecraftsperson.com/tags/system-design/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Design a Content Delivery Network (CDN)</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/content-delivery-network/design-cdn/</link>
      <pubDate>Sat, 21 Dec 2024 12:16:28 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/content-delivery-network/design-cdn/</guid>
      <description>Design a highly available CDN from scratch. Learn about edge servers, caching strategies, content propagation, and global content distribution.</description>
    </item>
    <item>
      <title>Design a Distributed Key-Value Store</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/key-value-store/design-kv-store/</link>
      <pubDate>Sat, 21 Dec 2024 12:16:28 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/key-value-store/design-kv-store/</guid>
      <description>Design a highly available key-value store like DynamoDB or Redis. Learn about consistent hashing, replication, partitioning, and handling failures.</description>
    </item>
    <item>
      <title>Databases Introduction - System Design Fundamentals</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/databases/2022-12-10-sys-des-db-1/</link>
      <pubDate>Sat, 10 Dec 2022 20:51:37 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/databases/2022-12-10-sys-des-db-1/</guid>
      <description>What is a database and why do we need it? Learn about database fundamentals, types of databases, SQL vs NoSQL, and when to use each for system design.</description>
    </item>
    <item>
      <title>Load Balancers Explained - Part 1</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/load-balancers/2022-11-25-sys-des-lb/</link>
      <pubDate>Fri, 25 Nov 2022 17:55:38 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/load-balancers/2022-11-25-sys-des-lb/</guid>
      <description>What is a load balancer? Learn about global and local load balancing, load balancing algorithms, health checks, and how to scale distributed systems effectively.</description>
    </item>
    <item>
      <title>System Maintainability - Building Evolvable Systems</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/non-functional-requirements/2022-10-30-sys-des-det-10/</link>
      <pubDate>Sun, 30 Oct 2022 11:30:09 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/non-functional-requirements/2022-10-30-sys-des-det-10/</guid>
      <description>What is maintainability in system design? Learn about code quality, documentation, modularity, and building systems that are easy to modify and debug.</description>
    </item>
    <item>
      <title>Abstractions in System Design - Building Modular Systems</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/foundational-concepts/2022-10-27-sys-des-det-4/</link>
      <pubDate>Thu, 27 Oct 2022 20:16:27 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/foundational-concepts/2022-10-27-sys-des-det-4/</guid>
      <description>What are abstractions and why are they crucial in system design? Learn how abstraction layers simplify complexity and enable scalable architectures.</description>
    </item>
    <item>
      <title>What is a System Design Interview</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/introduction/2022-10-16-sys-des-oview/</link>
      <pubDate>Sun, 16 Oct 2022 12:16:28 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/introduction/2022-10-16-sys-des-oview/</guid>
      <description>Why do organisations conduct system design interviews? What is expected from the candidate? Learn how to prepare and ace your system design interview.</description>
    </item>
    <item>
      <title>Databases - NoSQL Fundamentals</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/databases/2022-12-11-sys-des-db-2/</link>
      <pubDate>Sun, 11 Dec 2022 16:06:32 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/databases/2022-12-11-sys-des-db-2/</guid>
      <description>Understanding NoSQL databases - when to use them, types of NoSQL databases, and how they differ from relational databases for system design.</description>
    </item>
    <item>
      <title>Load Balancers Layer 4 vs Layer 7 - Deep Dive</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/load-balancers/2022-12-05-sys-des-lb-1/</link>
      <pubDate>Mon, 05 Dec 2022 21:27:29 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/load-balancers/2022-12-05-sys-des-lb-1/</guid>
      <description>Understanding Layer 4 and Layer 7 load balancers, OSI model, hardware vs software load balancers, and choosing the right load balancing approach.</description>
    </item>
    <item>
      <title>Fault Tolerance - Designing Resilient Systems</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/non-functional-requirements/2022-10-30-sys-des-det-11/</link>
      <pubDate>Sun, 30 Oct 2022 13:53:39 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/non-functional-requirements/2022-10-30-sys-des-det-11/</guid>
      <description>What is fault tolerance in system design? Learn about graceful degradation, redundancy, circuit breakers, and building systems that handle failures.</description>
    </item>
    <item>
      <title>Consistency Models in Distributed Systems</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/foundational-concepts/2022-10-27-sys-des-det-5/</link>
      <pubDate>Thu, 27 Oct 2022 20:56:46 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/foundational-concepts/2022-10-27-sys-des-det-5/</guid>
      <description>Understanding consistency models from strong consistency to eventual consistency. Learn CAP theorem, consistency trade-offs, and choosing the right model.</description>
    </item>
    <item>
      <title>Database Resiliency - Replication and Disaster Recovery</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/databases/2022-12-23-sys-des-db-3/</link>
      <pubDate>Fri, 23 Dec 2022 19:43:01 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/databases/2022-12-23-sys-des-db-3/</guid>
      <description>Learn about database replication strategies, disaster recovery, data redundancy, and ensuring high availability for distributed systems.</description>
    </item>
    <item>
      <title>System Availability - Understanding Uptime and SLAs</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/non-functional-requirements/2022-10-30-sys-des-det-7/</link>
      <pubDate>Sun, 30 Oct 2022 08:25:15 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/non-functional-requirements/2022-10-30-sys-des-det-7/</guid>
      <description>What is availability in system design? Learn how to measure availability, understand SLAs, calculate nines (99.9%, 99.99%), and design highly available systems.</description>
    </item>
    <item>
      <title>Failure Models in Distributed Systems</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/foundational-concepts/2022-10-30-sys-des-det-6/</link>
      <pubDate>Sun, 30 Oct 2022 06:48:26 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/foundational-concepts/2022-10-30-sys-des-det-6/</guid>
      <description>Understanding failure modes in distributed systems. Learn about crash failures, Byzantine failures, network partitions, and the fallacies of distributed computing.</description>
    </item>
    <item>
      <title>Database Scalability - Sharding and Partitioning</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/databases/2024-12-13-sys-des-db-4/</link>
      <pubDate>Fri, 13 Dec 2024 19:43:01 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/databases/2024-12-13-sys-des-db-4/</guid>
      <description>Learn database sharding, partitioning strategies, consistent hashing, and how to scale databases horizontally for millions of users.</description>
    </item>
    <item>
      <title>Approximate Calculations for System Design Interviews</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/foundational-concepts/2022-10-31-sys-des-det-12/</link>
      <pubDate>Mon, 31 Oct 2022 21:06:57 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/foundational-concepts/2022-10-31-sys-des-det-12/</guid>
      <description>Master back-of-the-envelope calculations for system design. Learn to estimate storage, bandwidth, QPS, and make quick capacity planning decisions.</description>
    </item>
    <item>
      <title>System Reliability - Building Dependable Systems</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/non-functional-requirements/2022-10-30-sys-des-det-8/</link>
      <pubDate>Sun, 30 Oct 2022 09:54:06 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/non-functional-requirements/2022-10-30-sys-des-det-8/</guid>
      <description>What is reliability in system design? Learn how to measure MTBF, MTTR, build fault-tolerant systems, and ensure consistent performance.</description>
    </item>
    <item>
      <title>What is System Design? Understanding the Fundamentals</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/introduction/2022-10-26-sys-des-det-3/</link>
      <pubDate>Wed, 26 Oct 2022 21:12:54 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/introduction/2022-10-26-sys-des-det-3/</guid>
      <description>What is system design and why does it matter? Learn the core concepts, principles, and thinking patterns behind designing scalable distributed systems.</description>
    </item>
    <item>
      <title>Domain Name System (DNS) Explained</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/foundational-concepts/2022-11-21-sys-des-dns/</link>
      <pubDate>Mon, 21 Nov 2022 20:25:01 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/foundational-concepts/2022-11-21-sys-des-dns/</guid>
      <description>What is DNS and how does it work? Learn about the internet&amp;#39;s phonebook, DNS architecture, resource records, and how domain names translate to IP addresses.</description>
    </item>
    <item>
      <title>System Scalability - Horizontal and Vertical Scaling</title>
      <link>https://www.softwarecraftsperson.com/courses/system-design/non-functional-requirements/2022-10-30-sys-des-det-9/</link>
      <pubDate>Sun, 30 Oct 2022 11:07:16 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/courses/system-design/non-functional-requirements/2022-10-30-sys-des-det-9/</guid>
      <description>What is scalability in system design? Learn horizontal vs vertical scaling, load balancing, caching strategies, and designing systems for millions of users.</description>
    </item>
    <item>
      <title>Shift Reliability Left: Use SLOs to Guide Architecture Early</title>
      <link>https://www.softwarecraftsperson.com/posts/2025-12-04-sli-slo-reliability-shift-left/</link>
      <pubDate>Thu, 04 Dec 2025 09:00:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2025-12-04-sli-slo-reliability-shift-left/</guid>
      <description>A practical guide to defining SLOs and SLIs early in the SDLC so reliability requirements shape architecture, testing, and release decisions.</description>
    </item>
    <item>
      <title>Transactional Outbox Pattern: A Practical Guide to Trade-offs</title>
      <link>https://www.softwarecraftsperson.com/posts/2025-10-08-transactional-outbox-pattern/</link>
      <pubDate>Mon, 08 Sep 2025 21:40:52 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2025-10-08-transactional-outbox-pattern/</guid>
      <description>How the Transactional Outbox Pattern solves the dual write problem between your database and message broker, with implementation choices and trade-offs.</description>
    </item>
    <item>
      <title>Lack of product thinking - A rant</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-04-01-lack-product-thinking/</link>
      <pubDate>Mon, 01 Apr 2024 22:28:49 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-04-01-lack-product-thinking/</guid>
      <description>A rant on why engineers chase shiny tech over users&amp;#39; real problems: how rewriting a monolith into microservices went wrong, and why product thinking matters.</description>
    </item>
    <item>
      <title>The journey of an email - from sender to receiver and everything in between</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-02-18-how-email-works/</link>
      <pubDate>Sun, 18 Feb 2024 18:21:06 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-02-18-how-email-works/</guid>
      <description>Follow an email from sender to inbox: user agents, mail servers, SMTP, POP3 and IMAP, then how SPF, DKIM and DMARC stop spoofing of your domain.</description>
    </item>
    <item>
      <title>What happens during a TLS handshake?</title>
      <link>https://www.softwarecraftsperson.com/posts/2023-10-22-what-happens-during-tls-handshake/</link>
      <pubDate>Sun, 22 Oct 2023 14:02:28 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2023-10-22-what-happens-during-tls-handshake/</guid>
      <description>An illustrated, step-by-step walkthrough of the TLS handshake between a client and server over HTTPS using RSA key exchange, drawn for beginners.</description>
    </item>
    <item>
      <title>Why and When would you use a Serverless approach to solving your problem?</title>
      <link>https://www.softwarecraftsperson.com/posts/2023-06-11-why-when-serverless/</link>
      <pubDate>Sun, 11 Jun 2023 13:02:28 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2023-06-11-why-when-serverless/</guid>
      <description>Serverless versus fully orchestrated solutions: cold starts, testing, lock-in, pay-per-use and built-in scaling, and how I answered it in an interview.</description>
    </item>
    <item>
      <title>What is a System Design Interview</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-10-16-system-design-overview/</link>
      <pubDate>Sun, 16 Oct 2022 12:16:28 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-10-16-system-design-overview/</guid>
      <description>What a system design interview is, why companies run them and what interviewers expect, with how to prepare and the distributed systems fundamentals to know.</description>
    </item>
    <item>
      <title>What is Software Architecture and what does a software architect do?</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-07-24-software-architecture/</link>
      <pubDate>Sat, 24 Jul 2021 15:37:38 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-07-24-software-architecture/</guid>
      <description>What software architecture is, what a software architect does and how architecture differs from design, with an example of improving a system&amp;#39;s design.</description>
    </item>
    <item>
      <title>What is Caching? The different types of caches and interfaces in .NET Core for caching</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-06-20-caching/</link>
      <pubDate>Sun, 20 Jun 2021 16:50:45 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-06-20-caching/</guid>
      <description>What caching is, why you can&amp;#39;t cache everything, in-memory versus distributed caches, and the interfaces ASP.NET Core gives you for caching in web applications.</description>
    </item>
    <item>
      <title>Proxy vs Reverse Proxy - What are they?</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-06-06-proxy-reverse/</link>
      <pubDate>Sun, 06 Jun 2021 15:25:41 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-06-06-proxy-reverse/</guid>
      <description>What a proxy server and a reverse proxy are, what each one is useful for and how they differ, explained simply for developers new to networking.</description>
    </item>
  </channel>
</rss>
