Engineering & Product Principles

Operational principles for building reliable, scalable software systems

Home
Resources

Engineering & Product Principles

These principles prevent organisational fracture by ensuring teams adopt consistent methodologies. They are operational, not aspirational. We reference them daily to resolve debates and guide decisions.

The opposite of each principle is valid. We have chosen differently based on our context: building grid infrastructure, not social media. Maximum impact with minimum complexity.

Company Principles

Evidence Improves Decisions

Challenge decisions by presenting better evidence. The accountable owner synthesises input and decides based on data and testing. Testing beats guessing. Validate assumptions through customer testing and prototyping before committing resources.

Quality Enables Speed

Ship less at high quality rather than more with compromises. Trust from operators is earned through reliability, not features. Better to exceed modest goals than miss ambitious ones.

Documentation Is Leverage

Clear standard operating procedures and architecture documents enable scaling through partners, not hiring. Write once, execute many times.

Buy Over Build

Leverage existing solutions across all domains: software, hardware, and operations. Use open-source or commercial solutions to avoid technical debt. We orchestrate existing components rather than creating new ones from scratch. Every line of custom code is technical debt.

Continuous Flow

Small, continuous delivery beats big phases. Limit work in progress. Ship daily, not quarterly. Momentum compounds.

Product Principles

Expertise-Led, Customer-Informed

We don't need every customer's opinion to know what's right. We understand the problem deeply and trust our expertise to solve it, while ensuring customer insights inform our decisions. Internal expertise drives speed, customer validation prevents building purely theoretical solutions.

Validate Before Committing

Test critical assumptions before committing resources, especially for hardware. Software iterates on feedback. Hardware validates upfront by leveraging existing solutions and making necessary modifications. Prototype and test whether for technical solutions or customer acceptance.

Absolute Reliability, Invisible Impact

Grid stability is non-negotiable. Customer impact should be imperceptible. Engineer the how, never compromise on what.

Engineering Principles

Outcomes Before Implementation

Start with what must be achieved, then figure out how. Technology serves the outcome, not the other way around. Outside-in engineering: start with outcomes and interactions, then build systems that support them as simply as possible.

Simple Scales Better

Monoliths over microservices. One codebase over many. Reduce cognitive overhead so we can focus on what matters. Complexity is the enemy of reliability.

Process Prevents Mistakes

Incidents reveal process gaps, not personal failures. When something breaks, we strengthen the system that allowed it. No blame, just better safeguards. Personal and team responsibility means calling out deviations and using principles to guide decision-making.

Living Principles

These principles are embedded into our culture through continuous improvement. We review them during retrospectives and stand-ups to keep them alive and integrated into our workflow. We challenge violations and update principles as we learn something fundamental.

Perfect is the enemy of good. These principles evolve as our understanding deepens.