Skip to content
Shipworthy

Software Engineering

This hub covers practical software engineering for working developers: architecture, data modelling, testing, reliability, performance, and the habits that keep a codebase easy to change. It is less about the framework of the month and more about the ideas that outlast it.

It is for developers who have shipped a few things and are now meeting harder problems. A write that must never happen twice. A test suite nobody trusts. A service that falls over under load. A codebase that fights every change. It is also for engineers who work with AI assistants every day, because reviewing generated code well takes the same judgement as writing it, and arguably more.

The approach is concrete and checked. Posts start from a real problem, show code that runs, and explain the trade-offs instead of declaring one right way. Technical claims are checked against official documentation, papers and published engineering write-ups, and the sources are listed. Where a pattern is used in this site's own codebase, the post says so and shows it; where something is general advice, the post says that too. There are no cargo-cult rules here, only reasons you can weigh against your own situation.

Where to start: idempotent writes in DynamoDB with a guard item shows how to make an operation safe to retry, and why checking first and writing second fails under load. It is a small pattern with a large payoff, and the reasoning applies well beyond DynamoDB. Then read system design interview prep, covering the twelve patterns that matter. It is written for interviews, but it doubles as a reference for caching, queues, rate limiting and failure handling in everyday backend work.

All posts