Push complexity into your data
“Fold knowledge into data, so program logic can be stupid and robust.” — The Art Of Unix Programming
Good design principles can help us code 1000% faster. 10x engineers are not just 10x because they fly through jq, vi, i3, and tmux on a black and white screen. They’re 10x because they design code that’s fast to implement. Good design principles help us write code that doesn’t need to be debugged (debugging is incredibly time consuming) and code doesn’t need to be refactored as requirements change (refactoring is also incredibly time consuming).
In this post, we’ll cover one of my favorite design principles, "pushing complexity into your data." We’ll start by going over a story of how I applied it just last week and then we’ll dig into the theory and related ideas.
Partial Test Updates
I’m building new product where customers value our correctness. Correctness requires comprehensive testing. Comprehensive testing using standard techniques time consuming to write. We have to write out each…