I’ve found an incredible technique called “Branch by abstraction.” I find this to be very helpful.
One of the biggest benefits is the reduced risk of the code review. I often see that the smaller the pull request, the more detailed comments its author gets, and the faster it gets reviewed. For Clojure, I find the magic number of changes to be around 70 lines of code. Using branch by abstraction, a bigger change can be implemented step by step, with thorough reviews, thus reducing the risk of breaking the build. Then a remote feature flag can be used to switch on the new code path for testers.