Async code review across time zones without losing days per comment
Othman Shareef · September 6, 2026 · 6 min read
On a co-located team, a lazy review comment costs five minutes: “why is this a map?” gets answered across the desk and everyone moves on. Async code review on a distributed team reprices every one of those exchanges. With a nine-hour gap, the same throwaway question lands after the author has gone home, gets answered while the reviewer sleeps, and the clarification arrives a full calendar day after the diff was ready. Nobody was slow. The process was.
Async code review is a round-trip problem
Google’s review guidance sets one business day as the maximum response time, and on a distributed team that ceiling becomes the floor: with little or no overlap, every exchange takes roughly a day no matter how disciplined people are. That changes the arithmetic of everything else. A review that takes four round trips is not four small delays; it is most of a week. So the metric worth optimizing in async code review on a distributed team is not response latency, which geography has fixed for you, but exchange count. Every practice below is the same idea wearing different clothes: turn two round trips into one, or one into zero.
Front-load the context
The first round trip on most PRs is pure orientation: what is this, why now, where do I start reading. On a distributed team that costs a day, and it is entirely avoidable, because the author already knows the answers. The discipline of author self-review pays double across time zones: annotate your own diff before requesting review, flag the risky part, say what you are unsure about, explain the approach you rejected. For AI-assisted changes this is even more binding, since the reasoning lives in a session that will be gone by morning; capture the intent while it exists. A description the reviewer can trust is the cheapest day you will ever buy back.
Batch comments into complete reviews, never dribble
Commenting as you read is a habit formed in offices, where each comment costs the author a glance. Async, each dribbled comment is potentially its own day-long round trip, and a review that arrives in three installments can eat three days before the author even knows the verdict. The rule for distributed teams is absolute: read the entire diff, then submit one review that is complete on its own terms. Complete means it states an explicit outcome (approve, approve with nits, changes requested), separates blocking issues from suggestions, and asks every question in the same pass. It also means each comment carries enough context to be actionable without a follow-up: the craft covered in review comments that land. A comment that needs a clarifying question before the author can act on it is, across time zones, a two-day comment.
End every day with a handoff note
The silent killer in follow-the-sun review is ambiguous state: the author pushed fixes but did not say which comments they address; the reviewer looked again but did not say whether they are done. The other side wakes up, cannot tell whose move it is, and a day evaporates on nothing. The fix is a norm, not a tool: whoever touches the PR last before signing off writes one summary comment. Addressed 1 through 4, pushed in the latest commits; disagree on 5, reasoning inline; still need your call on the migration ordering. Thirty seconds of writing, and the counterpart starts their day with a move to make instead of an investigation. Teams that adopt this one habit routinely drop a full round trip per PR. (Full disclosure: making that wake-up triage fast is exactly why our own tool, Pyor, has a comments inbox; but the norm works in any tool, including plain GitHub.)
Record walkthroughs for the big ones
For a large or architecturally novel change, the first review pass is mostly the reviewer reconstructing your mental model, and their orientation questions are another day gone. A five minute screen recording collapses that: walk the diff in the order it should be read, name the core decision, point at the two places you want real scrutiny. The reviewer watches it at the start of their day and begins from understanding instead of archaeology. This is not a substitute for reading the code; it is a substitute for the round trip where the reviewer asks you where to start.
Budget overlap hours for the contentious threads
Some disagreements should not be settled async. A design dispute that has gone two rounds in comments will not converge on round three; it will generate a week of increasingly formal paragraphs. Overlap hours, if you have even one or two, are the scarcest resource a distributed team owns, and they should be spent exactly there: fifteen minutes of synchronous conversation resolves what five async rounds cannot. The practical rule is a two-round cap. Any thread still open after two exchanges gets pulled into the next overlap window, decided, and summarized back onto the PR for the record. Everything else (nits, questions with factual answers, mechanical fixes) stays async, where it belongs. Distributed review fails when teams treat every thread the same; it works when the expensive channel is reserved for the threads that need it.