A postmortem is easy to hold and hard to make useful. The meeting happens, a document is written, four action items are recorded, and six months later the same failure occurs and somebody finds the old document while searching for something else. The word “blameless” gets most of the attention in discussions of this,...
Software Engineering
Articles and resources on software engineering principles, best practices, architecture, code quality, and professional development techniques.
Technical documentation fails in a specific and predictable way. Somebody writes a great deal of it during a quiet fortnight, the system changes, nobody updates it, and within a year the document is confidently wrong. At that point it is worse than nothing, because a reader who trusts it acts on information that no...
Developer onboarding is usually measured in how long the induction takes, which is the wrong end of the problem. The number that matters is how long before a new engineer can change something and be confident they have not broken anything else, and in most teams that is measured in months rather than days. The delay is...
Software testing strategies are usually described in terms of coverage, and coverage is the least informative number in the whole discipline. A codebase at ninety per cent can ship a bug on its most-used path, because coverage measures which lines executed during a test run, not whether anything meaningful was asserted...
Choosing between software licensing models is one of the most consequential strategic decisions founders make when building enterprise applications in 2026. Pick the wrong contract format and you can limit your distribution reach, restrict SaaS scaling opportunities, or accidentally force yourself to share proprietary...
A legacy PHP application is often the software equivalent of a building that has been extended a dozen times: it works, the business depends on it, and nobody wants to touch it. Old PHP versions, no tests, mixed concerns, and years of accumulated shortcuts make every change risky. The good news is that legacy PHP...
The software development life cycle, usually shortened to SDLC, is the structured process teams follow to take software from an idea to a working, maintained product. Understanding it matters whether you build software or commission it, because the quality of the process largely determines the quality, cost, and...
What is software development? At its simplest, software development is the process of designing, building, testing, and maintaining the programs that run on computers, phones, servers, and devices. It is how an idea becomes a working application. But that one-line definition hides a great deal, and if you are a...
A COBOL to C++ migration is one of the most impactful modernization projects an organization can take on, and also one of the most underserved. There are still roughly 220 billion lines of COBOL running in production today. Banks process trillions of dollars through it. Governments run pension systems, tax collection,...
The memory safety discussion between C++ and Rust has become one of the most active topics in software engineering. Government agencies have weighed in, conference talks are dedicated to it, and opinions run strong on both sides. Let me be upfront: Rust is an excellent language. Its ownership model and borrow checker...