Engineering investigations
Architecture and hidden complexity
Spots where the way the code is built invites bugs: status spread across many places, words that change meaning between layers, and layers that cost more than they help.
- Status hidden in a pile of flagsPromptFinds features whose real status is spread across a pile of yes/no flags, so combinations that should be impossible can happen.
- Meaning drift across the stackPromptShows where one word (a task, a fund, a run) means slightly different things in different parts of the app.
- Layers that don't earn their keepPromptFinds extra layers of code you could delete so the code, and the agents reading it, get simpler.
- Two systems that disagreePromptFinds data kept in two places (a saved copy and a table, the browser and the server) that can quietly disagree.
- Old design choices that now cost youPromptSeparates old design choices that now cost real time or bugs from ones that are only out of fashion.
- Code that relies on lucky timingPromptFinds code that only works because things usually happen in the right order.
- Timers and connections nobody closesPromptFinds timers, listeners and connections that nobody clearly owns or shuts off.
- Screens that fight how people workPromptFinds when confusing screens are a symptom of how the product is organised rather than a list of separate bugs.