These are a few principles I use to make decisions. They will change over time as I learn and grow.
Engineering
- Engineers should have regular, direct exposure to users and their problems.
- Every decision is a tradeoff. Be acutely aware about the tradeoff you’re making when making a decision that will be difficult to reverse.
- Engineers should understand all parts of the stack on the product they are working on - frontend, backend, ci/cd and infrastructure. The smaller the product, the deeper the understanding.
- Think in probabilities, not right and wrong. When making a decision, always think about how likely it is that a certain path will lead to the desired outcome. This might sound obvious at first, but it really isn’t. There are times when multiple paths look like they might achieve the same goal - it’s good to take a step back and think about the likelihood of each.