This is really, really good. I shoot for the top 10-20% of code reviewers/review turnaround time wherever I’m at. Unfortunately you can’t really measure it, at least when you’re hiring or looking for a new position.
(although maybe… you could set up webhooks w/ github to publish data on turnaround time per person…)
My comments on the matter (originally emailed to the author):
IME, if it take a long time to get into a code review to do it, the code reviews are too large. I tend to have very succinct code reviews explicitly to ensure my reviewers can have really good SLAs are responding. Big dump code changes are necessary sometimes but often avoidable. And they cause a lot of bugs and pain.
To be fair, having a bunch of branches out for review means the author needs to context switch as well/ re-load the code back into memory.
I would have liked more detail on the code review practice itself - how to do it, what to look for, what tools could be used and so on.
This is an area where I notice a lot of difference between reviewers. I tend to look for stuff like (no particular order; numbered only for reference):
I felt that I did fairly casual reviews, looking at the changed code in isolation. I assumed that the automated build would do its thing and the code would actually run. I have had colleagues that would run the code, and even step through it in a debugger before giving it the green light. Those colleagues didn’t manage to get through many reviews, and often required a lot of chasing…
Names are huge for me. In my experience, algorithms, data structures, even component boundaries and (some) platform choices are all easier to change then a bad name that has had some time to settle in. So I am very aggressive when reviewing code that I think introduces such a name. (Of course I’m referring here to names that will be used widely within a project; very local names are not as big a deal.)
Where I work we port to 4 different platforms and I’m one of the guys that has to do that so these are additional points for me (We use C/C++, every application uses the same cross platform library):