Non-Functional Requirements and Modularity
When software engineers talk about requirements, we’re often talking past each other. Functional requirements are easy to write, decompose…
When software engineers talk about requirements, we’re often talking past each other. Functional requirements are easy to write, decompose…
Software developers hear about abstractions all the time. They’re hailed as the answer to complexity, the foundation of clean architecture, and the secret to flexible systems. But what is an abstraction really? Is it just a way to hide details? Is it a simplification? A mental model? Something real,
A novel about outages, war rooms, and the people who break — long before the systems do.
The dream of building software using only artificial intelligence is no longer science fiction. Tools like GPT-4, Claude, and open-source…
Let’s flip the script.
I’ve come across a recurring design challenge in software systems that relies heavily on feature flags: they often turn into configuration…
I recently came across an interesting post on the Atlassian blog about “Scaling Jira Cloud migrations with external importers.” I like…
Careers aren’t ladders anymore. They’re portfolios. They’re products. They’re stories we craft – not paths we follow.
“Bloat isn’t when code is big. Bloat is when code makes easy things hard.”
Ask any aspiring software developer how they plan to become better at software design, and chances are “learning design patterns” will be…
Software errors don’t spring forth from a single bug or an isolated lapse in concentration. They propagate — emerging from a cascade of…
“Questions organise our thinking around what we don’t know.”