The best-working process has been something like this:
- talk with a colleague about how to solve a problem
- create a draft PR with a sketch and ask the colleague for feedback
- maybe paircode with the colleague bit?
- code review time! the colleague is the reviewer