How to practise trunk-based development with feature flags, branch by abstraction, and dark launches. Code examples in Ruby, Python, Java, and TypeScript.