<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Mustafa Shaikh — essays and notes</title><description>How distributed systems fail, and the design decisions that stop them.</description><link>https://shaikhmustafa.dev/</link><language>en-us</language><item><title>Exactly-once is a promise you make to a person</title><link>https://shaikhmustafa.dev/essays/exactly-once/</link><guid isPermaLink="true">https://shaikhmustafa.dev/essays/exactly-once/</guid><description>Networks deliver at most once or at least once. &quot;Exactly once&quot; is something you build at the edges, one side effect at a time.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate></item><item><title>Dead or just slow?</title><link>https://shaikhmustafa.dev/essays/failure-detection/</link><guid isPermaLink="true">https://shaikhmustafa.dev/essays/failure-detection/</guid><description>Every failure detector trades how quickly it notices a death against how often it mourns a node that was only late. You get to pick the trade, not escape it.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate></item><item><title>A queue is a promise to be slow later</title><link>https://shaikhmustafa.dev/essays/queues/</link><guid isPermaLink="true">https://shaikhmustafa.dev/essays/queues/</guid><description>Utilization near 100 % looks like efficiency on a dashboard and feels like an outage to the people waiting. Queues don&apos;t remove overload; they postpone it.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate></item><item><title>Retries are a load amplifier</title><link>https://shaikhmustafa.dev/essays/retries/</link><guid isPermaLink="true">https://shaikhmustafa.dev/essays/retries/</guid><description>A retry policy is a promise about how much extra traffic you will send at the worst possible moment. Most teams never read the promise.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate></item><item><title>Mask personal data before it has a chance to be logged</title><link>https://shaikhmustafa.dev/essays/pii-masking/</link><guid isPermaLink="true">https://shaikhmustafa.dev/essays/pii-masking/</guid><description>If raw personal data reaches your logs, your analytics or your search index even once, you have a cleanup project, not a feature. Masking belongs at the front of the pipeline.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate></item><item><title>Coding agents need a map, not a bigger prompt</title><link>https://shaikhmustafa.dev/essays/agents-need-a-map/</link><guid isPermaLink="true">https://shaikhmustafa.dev/essays/agents-need-a-map/</guid><description>AI coding agents fail on real codebases for the same reason new hires do — they can&apos;t see the shape of the system. Give them a map, a narrow brief and a way to prove their work.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate></item><item><title>Translations are a build artifact, not a spreadsheet</title><link>https://shaikhmustafa.dev/essays/translations/</link><guid isPermaLink="true">https://shaikhmustafa.dev/essays/translations/</guid><description>Most internationalisation bugs come from treating translated text as content someone pastes in. Treat it like code — keyed, versioned, tested and shipped — and most of them disappear.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate></item><item><title>Migrating off a monolith without stopping the money</title><link>https://shaikhmustafa.dev/essays/strangler/</link><guid isPermaLink="true">https://shaikhmustafa.dev/essays/strangler/</guid><description>The strangler pattern is easy to draw and hard to finish. Most of the difficulty is in the data, and most of the risk is in the last step nobody schedules.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate></item></channel></rss>