The first principle of software design

In this post, I want to talk about how I think about designing software systems, starting from the first and most important principle. This is inspired by my experience conducting interviews at Redox, mentoring engineers over the years, as well as designing complex systems myself.