antman-does-software.comCouplingCoupling is not intrinsically bad. Too little coupling makes systems brittle - changes have to be repeated in multiple places, system behaviour grows increasingly inconsistent, and finding 100% of the code that needs to be updated as part of a change...Aug 30, 2025·2 min read
antman-does-software.comReliable HTTP: Outsmarting the Two Generals with WebhooksThe Two Generals Problem is a mathematical theorem proving that no messaging protocol can reliably ensure that two parties share the same state. However, some approaches guarantee that two distributed systems will follow an acceptable state progressi...Apr 15, 2024·21 min read
antman-does-software.comThe Fundamental Problems of SoftwareAs far as I can tell, there are six immutable fundamental problems faced by all commercial software. Identifying the correct problem to solve Getting the right specifications to solve the problem Distributing a shared understanding of the specific...Nov 26, 2023·7 min read
antman-does-software.comThe Four Quadrants of ComplexityEssential complexity is where software engineers are uniquely able to deliver business value, whereas accidental complexity is what some engineers think looks good on their resumes. Another dimension, shown in the diagram below, is frequency. This ...Nov 5, 2023·3 min read
antman-does-software.comImplementing the Outbox Pattern in Nodejs and PostgresAs applications scale, infrequent problems become significant. A network failure for 0.1% of requests is trivial at 1,000 requests per day, but a nightmare for customer support at 1,000,000 requests per day. This commonly happens when we have externa...Apr 23, 2023·11 min read