How we think.
Notes from the work, lessons from real projects, and our take on building software that stays useful once real people start using it.
Real project lessons, not generic software advice.
Practical thinking around scope, delivery, and support.
Case studies from systems that actually shipped.
Work that shipped.
A closer look at the problems, decisions, and trade-offs behind real systems we have worked on.
2025 · South Africa
Logistics & Operations Platform
A South African logistics operator was running an entire bulk-commodity load chain on spreadsheets, email threads, and phone calls. We built them an operations platform connecting every role around live load data.
One live platform across every role in the load chain.
2025 · Multi-year SLA
Market Data & Trading Indicators
A trading indicators platform needed live charting and decision-support tools across global equities, crypto, forex, and the Safex Agri commodity feed — on an interface its subscribers already knew.
Live data across six markets, on a chart traders already know.
Opinions on software.
Straightforward writing on custom software, scoping, operations, and the decisions that make systems easier to live with.
5 min read · June 2026
Your spreadsheet is not the problem.
88% of spreadsheets contain errors. But the error rate isn't the real problem - it's what spreadsheets become over time in a growing business, and what that costs you at the exact moment you can least afford it.
6 min read · June 2026
Most software projects fail before the build starts.
Most custom software failures are not technical failures. They are failures of problem definition. The brief described a solution, the team built it - and six months later, the software worked and did not fix what was wrong.
7 min read · June 2026
Most systems called real-time
Real-time is one of the most overused terms in software. Most implementations described as real-time are polling - the system checks for new data every few seconds. True real-time is event-driven, and the two have fundamentally different infrastructure requirements.
5 min read · June 2026
Sharper than a freelancer.
Every development agency claims to move fast. Most do not. We sit deliberately between a freelancer and a large agency - and the speed is structural, not aspirational. Here is what actually makes the difference.
6 min read · July 2026
The tool is not broken.
The trigger for replacing software is almost never breakdown - it is outgrowth. The system does exactly what it was built to do. The business around it has changed. Six signals your operation has already crossed that line.
6 min read · July 2026
The system should not depend on heroics
SLA support for bespoke software is fundamentally different from SLA support for a packaged product. The system should not depend on heroics to stay running - and that is only possible when the people supporting it are the people who built it.
7 min read · August 2026
Every integration that does not exist
Integration debt is the accumulated cost of manual data transfer between systems that have never been connected. Unlike technical debt, it is invisible - it lives in someone's job description, in the extra thirty minutes at end of day, in the error that only surfaces when both systems are open at the same time.