<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software Made Clear</title><description>Diagrams that show the mechanism behind the systems developers build, and the work of building them — every claim traced to a dated primary source.</description><link>https://softwaremadeclear.com/</link><language>en-GB</language><atom:link href="https://softwaremadeclear.com/rss.xml" rel="self" type="application/rss+xml"/><item><title>B-Tree vs LSM-Tree</title><link>https://softwaremadeclear.com/b-tree-vs-lsm-tree/</link><guid isPermaLink="true">https://softwaremadeclear.com/b-tree-vs-lsm-tree/</guid><description>Take the B-tree when reads must stay predictable and the LSM-tree when writes outrun where you can place them — one bill now, one bill later, your choice.</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Buffer overflows</title><link>https://softwaremadeclear.com/buffer-overflow/</link><guid isPermaLink="true">https://softwaremadeclear.com/buffer-overflow/</guid><description>Learn why writing past the end of a buffer is rarely the real bug, what sits in the memory it lands in, and why the class still tops the weakness lists.</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Congestion control</title><link>https://softwaremadeclear.com/congestion-control/</link><guid isPermaLink="true">https://softwaremadeclear.com/congestion-control/</guid><description>Learn why TCP carries two separate limits on how much it may send, which one the network controls, and why confusing them sends you tuning the wrong thing.</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Database replication</title><link>https://softwaremadeclear.com/database-replication/</link><guid isPermaLink="true">https://softwaremadeclear.com/database-replication/</guid><description>See why a replica is fed the log rather than the data, what the default setting quietly trades away, and how much you actually lose when a primary dies.</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Dead letter queues</title><link>https://softwaremadeclear.com/dead-letter-queue/</link><guid isPermaLink="true">https://softwaremadeclear.com/dead-letter-queue/</guid><description>See the four things that actually send a message to a dead letter queue, why only one of them is your code failing, and how the cycle protection works.</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Exponential backoff</title><link>https://softwaremadeclear.com/exponential-backoff/</link><guid isPermaLink="true">https://softwaremadeclear.com/exponential-backoff/</guid><description>See why retries hit hardest exactly when a system is already failing, why spacing them out is not enough on its own, and where the multiplication comes from.</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Red-black trees</title><link>https://softwaremadeclear.com/red-black-tree/</link><guid isPermaLink="true">https://softwaremadeclear.com/red-black-tree/</guid><description>Learn what the colouring rules actually buy, why you almost never write one yourself, and the contract that quietly breaks a sorted map from the inside.</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Reviewing without starting a fight</title><link>https://softwaremadeclear.com/code-review-without-a-fight/</link><guid isPermaLink="true">https://softwaremadeclear.com/code-review-without-a-fight/</guid><description>See how to leave review comments that get taken well, and which battles are worth blocking a merge over, rather than quietly letting them go.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Writing it down before you build it</title><link>https://softwaremadeclear.com/design-docs-people-read/</link><guid isPermaLink="true">https://softwaremadeclear.com/design-docs-people-read/</guid><description>See why most design docs go unread, and how to write one that gets real comments before the build starts, instead of complaints after it ships.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Influencing a design you do not own</title><link>https://softwaremadeclear.com/disagreeing-with-an-architect/</link><guid isPermaLink="true">https://softwaremadeclear.com/disagreeing-with-an-architect/</guid><description>See how to push back on a design you do not own without losing the argument or the relationship, by writing your case down first, in detail.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Events, and what they promise</title><link>https://softwaremadeclear.com/events-and-what-they-promise/</link><guid isPermaLink="true">https://softwaremadeclear.com/events-and-what-they-promise/</guid><description>Find out what an event actually guarantees once it leaves the service that raised it, and which of those promises the consumer has to absorb itself.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>What actually changes between mid and senior</title><link>https://softwaremadeclear.com/mid-to-senior-what-changes/</link><guid isPermaLink="true">https://softwaremadeclear.com/mid-to-senior-what-changes/</guid><description>See what a step up in seniority really asks for, why it is not more code, and how to tell whether you are already doing it in your current job.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Senior, staff, and the ladder above</title><link>https://softwaremadeclear.com/senior-vs-staff-engineer/</link><guid isPermaLink="true">https://softwaremadeclear.com/senior-vs-staff-engineer/</guid><description>See what actually separates a senior engineer from a staff one, and whether that title is worth chasing before your day-to-day scope changes.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Shipping without supervision</title><link>https://softwaremadeclear.com/shipping-without-supervision/</link><guid isPermaLink="true">https://softwaremadeclear.com/shipping-without-supervision/</guid><description>See what actually earns you the right to ship without someone checking first, and how to keep that trust once nobody is looking over your shoulder.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Making the case to the people who fund it</title><link>https://softwaremadeclear.com/technical-debt-to-the-business/</link><guid isPermaLink="true">https://softwaremadeclear.com/technical-debt-to-the-business/</guid><description>See how to make technical debt make sense to the people who fund the work, by trading it for scope instead of arguing over code quality itself.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Getting the title to match the work</title><link>https://softwaremadeclear.com/the-promotion-packet/</link><guid isPermaLink="true">https://softwaremadeclear.com/the-promotion-packet/</guid><description>See what actually belongs in a promotion packet, and how to gather the evidence for it before the case has to be built entirely from memory.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Estimates you can defend</title><link>https://softwaremadeclear.com/where-estimates-go-wrong/</link><guid isPermaLink="true">https://softwaremadeclear.com/where-estimates-go-wrong/</guid><description>See where estimates actually go wrong and why the error compounds across tasks, so you can give a number you are able to stand behind later.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Hand-offs through artifacts</title><link>https://softwaremadeclear.com/agent-handoffs-through-artifacts/</link><guid isPermaLink="true">https://softwaremadeclear.com/agent-handoffs-through-artifacts/</guid><description>See why agents in a pipeline never call each other, what the orchestrator is actually for, and which system holds the state when a run dies halfway.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Deterministic steps and AI steps</title><link>https://softwaremadeclear.com/deterministic-steps-and-ai-steps/</link><guid isPermaLink="true">https://softwaremadeclear.com/deterministic-steps-and-ai-steps/</guid><description>See which parts of an automated run belong in a script, which genuinely need judgement, and why an instruction file can only ask where a hook can refuse.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Ephemeral environments and seed data</title><link>https://softwaremadeclear.com/ephemeral-environments-and-seed-data/</link><guid isPermaLink="true">https://softwaremadeclear.com/ephemeral-environments-and-seed-data/</guid><description>See why a git clone is not a runnable system, why every agent run needs a throwaway database of its own, and why the seed data must be synthetic.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>From vague request to ready ticket</title><link>https://softwaremadeclear.com/from-vague-request-to-ready-ticket/</link><guid isPermaLink="true">https://softwaremadeclear.com/from-vague-request-to-ready-ticket/</guid><description>See why the arrow that sends a request back is the one that decides whether a factory works, what a context pack holds, and what must never be rewritten.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Golden sets: testing the factory</title><link>https://softwaremadeclear.com/golden-sets-for-agents/</link><guid isPermaLink="true">https://softwaremadeclear.com/golden-sets-for-agents/</guid><description>See why a change to shared agent instructions needs a regression gate, what belongs in the replay set, and why a per-attempt success rate flatters a pipeline.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Incidents back into the backlog</title><link>https://softwaremadeclear.com/incidents-back-into-the-backlog/</link><guid isPermaLink="true">https://softwaremadeclear.com/incidents-back-into-the-backlog/</guid><description>See how fingerprinting turns ten thousand production errors into one prioritised defect, and why the polling cursor and the release decide whether it works.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Measuring a factory honestly</title><link>https://softwaremadeclear.com/measuring-a-factory-honestly/</link><guid isPermaLink="true">https://softwaremadeclear.com/measuring-a-factory-honestly/</guid><description>See why a baseline collected before you start is the only thing that makes a target testable, and which of your metrics improve fastest by being gamed.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Orchestrator, or just a pipeline?</title><link>https://softwaremadeclear.com/orchestrator-or-just-a-pipeline/</link><guid isPermaLink="true">https://softwaremadeclear.com/orchestrator-or-just-a-pipeline/</guid><description>See why a first agent workflow runs fine on the build system you already have, and the specific signals that say a durable engine has earned its place.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Prompt injection in a pipeline</title><link>https://softwaremadeclear.com/prompt-injection-in-a-pipeline/</link><guid isPermaLink="true">https://softwaremadeclear.com/prompt-injection-in-a-pipeline/</guid><description>See why hidden instructions in a ticket or a log line are an architecture problem, how removing one capability per agent closes it, and what is left over.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Scoped credentials and the kill switch</title><link>https://softwaremadeclear.com/scoped-credentials-and-kill-switches/</link><guid isPermaLink="true">https://softwaremadeclear.com/scoped-credentials-and-kill-switches/</guid><description>See why a permission matrix belongs to the workflow, not the system, why the interesting cells are the empty ones, and why one off switch is not a kill switch.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The builder, and its repair loop</title><link>https://softwaremadeclear.com/the-builder-and-its-repair-loop/</link><guid isPermaLink="true">https://softwaremadeclear.com/the-builder-and-its-repair-loop/</guid><description>See why the agent that writes the code is the least interesting one in a factory, what its repair loop must be capped at, and what it may never touch.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The harness</title><link>https://softwaremadeclear.com/the-harness/</link><guid isPermaLink="true">https://softwaremadeclear.com/the-harness/</guid><description>See what the shared instruction files actually do, why they need a precedence order, and why the harness regresses far more often than the model does.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The human merge gate</title><link>https://softwaremadeclear.com/the-human-merge-gate/</link><guid isPermaLink="true">https://softwaremadeclear.com/the-human-merge-gate/</guid><description>See why a person approving every merge is a design property rather than a trust issue, how attention scales with risk, and how the gate really fails.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The PR review agent</title><link>https://softwaremadeclear.com/the-pr-review-agent/</link><guid isPermaLink="true">https://softwaremadeclear.com/the-pr-review-agent/</guid><description>See why the unit of review is not the commits an author pushed, what the build already owns, and why letting the reviewer push fixes costs you its independence.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Verifying after the deploy</title><link>https://softwaremadeclear.com/verifying-after-the-deploy/</link><guid isPermaLink="true">https://softwaremadeclear.com/verifying-after-the-deploy/</guid><description>See why a green build is not evidence a change works, how to wait for the deployed revision instead of the clock, and where post-deploy checks turn dangerous.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>What a merged change costs</title><link>https://softwaremadeclear.com/what-a-merged-change-costs/</link><guid isPermaLink="true">https://softwaremadeclear.com/what-a-merged-change-costs/</guid><description>See why the price per token predicts almost nothing about an agent bill, what actually drives it, and which levers cut it — in order of how much they save.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>What a software factory is</title><link>https://softwaremadeclear.com/what-a-software-factory-is/</link><guid isPermaLink="true">https://softwaremadeclear.com/what-a-software-factory-is/</guid><description>See why a pipeline of coding agents is two loops rather than a conveyor belt, what the return arrow does, and which published numbers do not transfer.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>When an agent stops and asks</title><link>https://softwaremadeclear.com/when-an-agent-stops-and-asks/</link><guid isPermaLink="true">https://softwaremadeclear.com/when-an-agent-stops-and-asks/</guid><description>See what an agent must record when it blocks, who the question should go to, and why the resume path — not the question — is the half teams forget to build.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Who owns the factory</title><link>https://softwaremadeclear.com/who-owns-the-factory/</link><guid isPermaLink="true">https://softwaremadeclear.com/who-owns-the-factory/</guid><description>See which jobs a software factory quietly creates, why each one needs a named person rather than a team, and which unclaimed roles fail first in an incident.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Architecture decision records</title><link>https://softwaremadeclear.com/architecture-decision-records/</link><guid isPermaLink="true">https://softwaremadeclear.com/architecture-decision-records/</guid><description>Write down the cheapest documentation a team ever produces, in the one format still worth reading a year later when nobody remembers why a call was made.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>BFS vs DFS</title><link>https://softwaremadeclear.com/bfs-vs-dfs/</link><guid isPermaLink="true">https://softwaremadeclear.com/bfs-vs-dfs/</guid><description>Pick the traversal that answers your question instead of the one you remember, and know which of the two can run out of stack on a deep graph.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Binary search</title><link>https://softwaremadeclear.com/binary-search/</link><guid isPermaLink="true">https://softwaremadeclear.com/binary-search/</guid><description>Learn why binary search finds an insertion point rather than a value, what that changes about duplicates, and why the fast search rarely decides the cost.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Binary tree vs binary search tree</title><link>https://softwaremadeclear.com/binary-tree-vs-binary-search-tree/</link><guid isPermaLink="true">https://softwaremadeclear.com/binary-tree-vs-binary-search-tree/</guid><description>Know which of the two you actually have, because the ordering rule is the only thing making a lookup cheap — and nothing in the type enforces it for you.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Bounded contexts, concretely</title><link>https://softwaremadeclear.com/bounded-contexts-concretely/</link><guid isPermaLink="true">https://softwaremadeclear.com/bounded-contexts-concretely/</guid><description>Learn where the same word is allowed to mean two different things across a codebase, and who has to arbitrate the day those two meanings collide badly.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Change data capture</title><link>https://softwaremadeclear.com/change-data-capture/</link><guid isPermaLink="true">https://softwaremadeclear.com/change-data-capture/</guid><description>See why reading the database&apos;s own log beats polling for changes, what a replication slot guarantees, and the way that same slot can take the server down.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Clustered indexes</title><link>https://softwaremadeclear.com/clustered-index/</link><guid isPermaLink="true">https://softwaremadeclear.com/clustered-index/</guid><description>See why a primary key decides where a row physically lives, why every other index carries a copy of it, and what a wide key costs across a whole schema.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Data warehouse design</title><link>https://softwaremadeclear.com/data-warehouse-design/</link><guid isPermaLink="true">https://softwaremadeclear.com/data-warehouse-design/</guid><description>Learn why a warehouse is modelled for the questions it has to answer rather than the transactions it records, and what that choice costs you at load time.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Data warehouse vs database</title><link>https://softwaremadeclear.com/data-warehouse-vs-database/</link><guid isPermaLink="true">https://softwaremadeclear.com/data-warehouse-vs-database/</guid><description>Learn which questions each of them is built to answer, so you stop asking a system tuned for one row at a time to summarise a whole year of them.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>deque in Python</title><link>https://softwaremadeclear.com/python/deque/</link><guid isPermaLink="true">https://softwaremadeclear.com/python/deque/</guid><description>Know when a Python deque beats a list, why the middle stays O(n) while both ends stay O(1), and how maxlen silently discards the data you meant to keep.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Distributed tracing</title><link>https://softwaremadeclear.com/distributed-tracing/</link><guid isPermaLink="true">https://softwaremadeclear.com/distributed-tracing/</guid><description>See what one header has to carry for a request to stay one story across a dozen services, and why the identifiers are standardised but the meaning is not.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Dynamic arrays</title><link>https://softwaremadeclear.com/dynamic-array/</link><guid isPermaLink="true">https://softwaremadeclear.com/dynamic-array/</guid><description>See why appending to a growable array is cheap on average but occasionally copies everything, and why no serious library will tell you its growth factor.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>gRPC vs REST</title><link>https://softwaremadeclear.com/grpc-vs-rest/</link><guid isPermaLink="true">https://softwaremadeclear.com/grpc-vs-rest/</guid><description>See what a binary contract between two services buys you and what it costs in reach, so the choice follows your callers rather than the fashion.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Hash tables</title><link>https://softwaremadeclear.com/hash-table/</link><guid isPermaLink="true">https://softwaremadeclear.com/hash-table/</guid><description>See what the constant-time promise of a hash table is actually conditional on, why the load factor is the dial behind it, and what oversizing one costs you.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Key-value stores</title><link>https://softwaremadeclear.com/key-value-store/</link><guid isPermaLink="true">https://softwaremadeclear.com/key-value-store/</guid><description>See why a flat key space pushes structure into your naming, why expiry belongs to the data rather than your code, and the command that blocks a server.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Latency vs throughput</title><link>https://softwaremadeclear.com/latency-vs-throughput/</link><guid isPermaLink="true">https://softwaremadeclear.com/latency-vs-throughput/</guid><description>Learn why a system can get busier and slower at the very same time, and work out which of the two numbers your users are really complaining about.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Linked lists</title><link>https://softwaremadeclear.com/linked-list/</link><guid isPermaLink="true">https://softwaremadeclear.com/linked-list/</guid><description>Learn why a linked list&apos;s famous O(1) insertion is only free once you already hold the node, and why an array wins most of the cases people reach for it.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Load balancers, concretely</title><link>https://softwaremadeclear.com/load-balancers-concretely/</link><guid isPermaLink="true">https://softwaremadeclear.com/load-balancers-concretely/</guid><description>See how round robin, least connections and a hash actually differ, and which of them stops working the moment a server keeps anything in its own memory.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Long polling</title><link>https://softwaremadeclear.com/long-polling/</link><guid isPermaLink="true">https://softwaremadeclear.com/long-polling/</guid><description>Learn how holding a request open turns polling into something that behaves like a push, and which of your timeouts will quietly break the day it does.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>LRU caches</title><link>https://softwaremadeclear.com/lru-cache/</link><guid isPermaLink="true">https://softwaremadeclear.com/lru-cache/</guid><description>Learn what least-recently-used ordering actually promises, why the cache key is the whole argument list, and the two settings that turn a cache into a leak.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Memory leaks</title><link>https://softwaremadeclear.com/memory-leak/</link><guid isPermaLink="true">https://softwaremadeclear.com/memory-leak/</guid><description>Learn why the dangerous leak is not memory you cannot reach but memory you can, and why a garbage collector fixes one of those problems and not the other.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Merge sort</title><link>https://softwaremadeclear.com/merge-sort/</link><guid isPermaLink="true">https://softwaremadeclear.com/merge-sort/</guid><description>Learn why the merge is the easy half, why the sort your language ships looks for order that is already there, and what stability actually promises.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>MVCC without the jargon</title><link>https://softwaremadeclear.com/mvcc-without-the-jargon/</link><guid isPermaLink="true">https://softwaremadeclear.com/mvcc-without-the-jargon/</guid><description>Understand why readers never block writers under MVCC, because every transaction is looking at its own snapshot instead of fighting over the same row.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>OLTP vs OLAP</title><link>https://softwaremadeclear.com/oltp-vs-olap/</link><guid isPermaLink="true">https://softwaremadeclear.com/oltp-vs-olap/</guid><description>Tell the two workloads apart by what they are judged on, so you stop trying to make one schema serve a checkout and a year-end report at once.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>OSI vs TCP/IP</title><link>https://softwaremadeclear.com/osi-vs-tcp-ip/</link><guid isPermaLink="true">https://softwaremadeclear.com/osi-vs-tcp-ip/</guid><description>Learn which of the two models describes something that actually runs on your machine, and which one is only useful for naming where a problem sits.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Pages, heaps and tuples</title><link>https://softwaremadeclear.com/pages-heaps-and-tuples/</link><guid isPermaLink="true">https://softwaremadeclear.com/pages-heaps-and-tuples/</guid><description>See what a database row physically is on disk, what happens when an update no longer fits its page, and why that single fact explains half of table bloat.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Priority queues</title><link>https://softwaremadeclear.com/priority-queue/</link><guid isPermaLink="true">https://softwaremadeclear.com/priority-queue/</guid><description>See why a priority queue is not a sorted list, why iterating one hands you a jumble, and what the heap underneath actually promises about the front of it.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Process vs thread</title><link>https://softwaremadeclear.com/process-vs-thread/</link><guid isPermaLink="true">https://softwaremadeclear.com/process-vs-thread/</guid><description>Understand what each of them actually owns, so you can tell which failures stay contained inside one and which take everything else down with them.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Rate limiting</title><link>https://softwaremadeclear.com/rate-limiter/</link><guid isPermaLink="true">https://softwaremadeclear.com/rate-limiter/</guid><description>See what the HTTP specification fixes about rate limiting, what it deliberately leaves to you, and why the counter you pick decides the burst you allow.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Recursion, drawn</title><link>https://softwaremadeclear.com/recursion-drawn/</link><guid isPermaLink="true">https://softwaremadeclear.com/recursion-drawn/</guid><description>Watch the call stack build and unwind as a real data structure instead of an abstraction, and recursion stops feeling clever and starts feeling obvious.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>SOA vs microservices</title><link>https://softwaremadeclear.com/soa-vs-microservices/</link><guid isPermaLink="true">https://softwaremadeclear.com/soa-vs-microservices/</guid><description>See what genuinely changed between the two beyond service size, and which of the older ideas quietly came back once the services multiplied.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Stack vs heap</title><link>https://softwaremadeclear.com/stack-vs-heap/</link><guid isPermaLink="true">https://softwaremadeclear.com/stack-vs-heap/</guid><description>See why one allocation is a single register move and the other is a search, and why only one of the two can leak the memory you forgot to give back.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The star schema</title><link>https://softwaremadeclear.com/star-schema/</link><guid isPermaLink="true">https://softwaremadeclear.com/star-schema/</guid><description>See why the fact table stays narrow and the dimensions stay wide, and what happens to every query the day somebody normalises those dimensions away.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Strangler-fig migration, from the inside</title><link>https://softwaremadeclear.com/strangler-fig-migration-from-the-inside/</link><guid isPermaLink="true">https://softwaremadeclear.com/strangler-fig-migration-from-the-inside/</guid><description>Replace a running production system without stopping it, and see the routing and data-ownership decisions that actually determine whether it survives.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>TCP vs UDP</title><link>https://softwaremadeclear.com/tcp-vs-udp/</link><guid isPermaLink="true">https://softwaremadeclear.com/tcp-vs-udp/</guid><description>Know when a dropped packet breaks your feature and when it costs nothing, so you stop reaching for TCP by reflex and paying for a round trip you never needed.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The write-ahead log</title><link>https://softwaremadeclear.com/the-write-ahead-log/</link><guid isPermaLink="true">https://softwaremadeclear.com/the-write-ahead-log/</guid><description>See why the log commits before the data file does, so a crash mid-write costs you a replay instead of a corrupted table and a very bad on-call night.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The TLS handshake</title><link>https://softwaremadeclear.com/tls-handshake/</link><guid isPermaLink="true">https://softwaremadeclear.com/tls-handshake/</guid><description>Learn what a handshake actually agrees before any data moves, why the order of the steps is the security, and what the fastest mode quietly gives up.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Topological sort</title><link>https://softwaremadeclear.com/topological-sort/</link><guid isPermaLink="true">https://softwaremadeclear.com/topological-sort/</guid><description>See how a build order falls out of counting prerequisites, and why whatever is left over at the end of the run is the most useful output you get.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Transaction boundaries</title><link>https://softwaremadeclear.com/transaction-boundaries/</link><guid isPermaLink="true">https://softwaremadeclear.com/transaction-boundaries/</guid><description>Find the single line in a codebase that decides what succeeds or fails together, and why it is usually drawn once, early, and never revisited after.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Unit vs integration test</title><link>https://softwaremadeclear.com/unit-vs-integration-test/</link><guid isPermaLink="true">https://softwaremadeclear.com/unit-vs-integration-test/</guid><description>This is not a purity argument about test pyramids. It is a question of which category of failure you would rather hear about first, and how loudly.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Virtual memory</title><link>https://softwaremadeclear.com/virtual-memory/</link><guid isPermaLink="true">https://softwaremadeclear.com/virtual-memory/</guid><description>Learn what the hardware does between the address in your code and the memory chip, and why a program can hand out more memory than the machine has.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>What a Kafka topic actually is</title><link>https://softwaremadeclear.com/what-is-a-kafka-topic/</link><guid isPermaLink="true">https://softwaremadeclear.com/what-is-a-kafka-topic/</guid><description>See what a topic really is on disk, why order holds inside one partition and nowhere else, and what that single fact decides about your consumers.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>When a message broker is the wrong answer</title><link>https://softwaremadeclear.com/when-a-message-broker-is-the-wrong-answer/</link><guid isPermaLink="true">https://softwaremadeclear.com/when-a-message-broker-is-the-wrong-answer/</guid><description>See three real systems that reached for a queue to patch a missing transaction boundary, and what broke later because a broker cannot supply one.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>B-tree splits, key by key</title><link>https://softwaremadeclear.com/tools/b-tree-splits/</link><guid isPermaLink="true">https://softwaremadeclear.com/tools/b-tree-splits/</guid><description>Insert keys one at a time and watch a B-tree page fill, split and push its middle key up a level, until the shape that indexes rely on makes sense.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Big-O without the ceremony</title><link>https://softwaremadeclear.com/big-o-without-the-ceremony/</link><guid isPermaLink="true">https://softwaremadeclear.com/big-o-without-the-ceremony/</guid><description>Learn exactly what a Big-O claim is promising and what it is deliberately ignoring, so the notation becomes a tool again instead of interview folklore.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Connection pooling</title><link>https://softwaremadeclear.com/connection-pooling/</link><guid isPermaLink="true">https://softwaremadeclear.com/connection-pooling/</guid><description>Find out why two hundred open connections make a database slower than twenty do, and where the real ceiling sits before your pool size makes things worse.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Hash collisions</title><link>https://softwaremadeclear.com/hash-collisions/</link><guid isPermaLink="true">https://softwaremadeclear.com/hash-collisions/</guid><description>See chaining and open addressing handle the same collision differently, and find the load factor where one of those two strategies starts to hurt you.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Why quicksort is fast in practice</title><link>https://softwaremadeclear.com/why-quicksort-is-fast-in-practice/</link><guid isPermaLink="true">https://softwaremadeclear.com/why-quicksort-is-fast-in-practice/</guid><description>Learn why quicksort&apos;s real worst case almost never happens in practice, and why cache locality quietly does more work than the pivot strategy does.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>HashMap vs Hashtable</title><link>https://softwaremadeclear.com/hashmap-vs-hashtable/</link><guid isPermaLink="true">https://softwaremadeclear.com/hashmap-vs-hashtable/</guid><description>Find out what actually separates the two beyond a capital letter, and why the older one is still in the language long after it stopped being advice.</description><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Mutex vs semaphore</title><link>https://softwaremadeclear.com/mutex-vs-semaphore/</link><guid isPermaLink="true">https://softwaremadeclear.com/mutex-vs-semaphore/</guid><description>See why one of them has an owner and the other only counts, and which class of bug each choice quietly makes possible once the code gets busy.</description><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Stack vs queue</title><link>https://softwaremadeclear.com/stack-vs-queue/</link><guid isPermaLink="true">https://softwaremadeclear.com/stack-vs-queue/</guid><description>See why the end you take from decides what the structure is good for, and which everyday jobs quietly need one of them rather than the other.</description><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate></item><item><title>AVL tree visualiser</title><link>https://softwaremadeclear.com/tools/avl-visualizer/</link><guid isPermaLink="true">https://softwaremadeclear.com/tools/avl-visualizer/</guid><description>Insert values in sorted order and watch a plain search tree collapse into a list while an AVL tree beside it rotates and holds its height near log n.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Deadlocks, seen</title><link>https://softwaremadeclear.com/deadlocks-seen/</link><guid isPermaLink="true">https://softwaremadeclear.com/deadlocks-seen/</guid><description>Watch two transactions grab the same two locks in opposite order, so the next deadlock in your logs reads as a diagram instead of an unreadable stack trace.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Dijkstra visualiser</title><link>https://softwaremadeclear.com/tools/dijkstra-visualizer/</link><guid isPermaLink="true">https://softwaremadeclear.com/tools/dijkstra-visualizer/</guid><description>Step through Dijkstra one relaxation at a time and see why it always takes the cheapest frontier node, and why one negative edge weight breaks the guarantee.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Isolation levels, and what each one lets through</title><link>https://softwaremadeclear.com/isolation-levels/</link><guid isPermaLink="true">https://softwaremadeclear.com/isolation-levels/</guid><description>Stop treating isolation levels as a safety dial and start treating them as a list of anomalies you have agreed to tolerate, so surprises stop being surprises.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Sorting algorithm visualiser</title><link>https://softwaremadeclear.com/tools/sorting-visualizer/</link><guid isPermaLink="true">https://softwaremadeclear.com/tools/sorting-visualizer/</guid><description>Step two sorting algorithms through the same array and watch their comparison counts diverge, so &quot;n log n&quot; stops being a phrase and becomes a number.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Compiler vs interpreter</title><link>https://softwaremadeclear.com/compiler-vs-interpreter/</link><guid isPermaLink="true">https://softwaremadeclear.com/compiler-vs-interpreter/</guid><description>Understand what moves when translation happens before the program runs instead of during it, and why your errors arrive at a different time as a result.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Tree traversal orders</title><link>https://softwaremadeclear.com/tree-traversal-orders/</link><guid isPermaLink="true">https://softwaremadeclear.com/tree-traversal-orders/</guid><description>Four traversal orders differ by one line of code — pick the right one on purpose and your sorted output, serialised tree, or shallow answer stops being luck.</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Why your index is not being used</title><link>https://softwaremadeclear.com/why-your-index-is-not-being-used/</link><guid isPermaLink="true">https://softwaremadeclear.com/why-your-index-is-not-being-used/</guid><description>Find the exact row count where Postgres stops trusting your index, fix the statistics instead of forcing a plan, and stop guessing why the query slowed down.</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Idempotency keys and safe retries</title><link>https://softwaremadeclear.com/idempotency-keys-and-safe-retries/</link><guid isPermaLink="true">https://softwaremadeclear.com/idempotency-keys-and-safe-retries/</guid><description>Give every retry a key, store its result in the same transaction as the effect, and stop worrying whether a lost response means the work happened twice.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Binary search tree visualiser</title><link>https://softwaremadeclear.com/tools/bst-visualizer/</link><guid isPermaLink="true">https://softwaremadeclear.com/tools/bst-visualizer/</guid><description>Insert values one at a time and watch insertion order decide the shape of a binary search tree, and that shape quietly decide every lookup&apos;s real cost.</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate></item></channel></rss>