Ship everything behind a gate
Today I learned,
how important feature gates are. Sometimes in a bunch of commits we have to ship the code but we don’t wanna release it yet. Or a feature that already shipped is broken and we need to turn it off in a minute. Feature gates solve both. Since then, I always put every feature under a gate. This stuff also helps if we wanna do A/B testing to ship incrementally, reducing errors happening to a massive number of users.