Engineering philosophy

Core tenets of engineering

Simple

Reduced complexity is the highest principle. Fewer things can go wrong, less cognitive overhead is needed when working with code, less time is spent on maintenance, and long-term velocity is higher.

Testable

Testable software is well-designed software: loosely coupled, modular, and with a clear separation of concerns. The tests these practices enable provide a safety net for refactoring, and a help to clearly document of the intent of the code.

Immutable

If something can be immutable, it should be. Making a variable const/readonly is good, and constexpr is even better. A system with no moving parts is very hard to break, and much easier to reason about.

Readable

Code is for the humans who read, extend, support, and debug it. The best code is obvious. People come and go, but the code remains, so it should be written with clarity so any new engineer, including your future self, can understand it. Among other things this helps mitigate the Hit By a Bus Problem.

Documented

For the same reasons code should be human-readable it should be well-documented, with documentation that is versioned alongside the software it documents. Documentation supports knowledge sharing, team member fungibility, and ease of use.

Lightweight

Every line of code is a liability. Code requires maintenance, adds opportunities for bugs, and increases cognitive load when reading the codebase. Solutions should be as lightweight as possible to achieve the desired result without sacrificing readability.