Skip to content
AyoKoding

Artifact: A Pairing Session Log -- Driver/Navigator, Timed Swap

ex-36 · exercises co-20 · explicit roles, a timed switch, and both partners able to explain the diff.

Session: implement compare_and_swap() for balance_store.py
Participants: Amara (starts as Driver), Jun (starts as Navigator)
Rule: swap roles every 15 minutes, timer-enforced
 
00:00  Amara (Driver) types the function signature; Jun (Navigator) reads the ADR aloud, flags the
       eventual-consistency edge case the signature needs to handle.
00:15  SWAP -- Jun now Driver, Amara now Navigator.
00:15  Jun implements the retry loop; Amara spots a missing bound on retry count, catches it before
       it's typed.
00:30  SWAP -- Amara now Driver, Jun now Navigator.
00:30  Amara writes the test for the stale-read race condition; Jun questions whether the test
       actually exercises the race or just the happy path -- they rewrite it together.
00:45  Session ends. Both Amara and Jun can independently explain every line of the final diff.

Verify: the log shows exactly three 15-minute intervals with an explicit role swap at each boundary, and both participants can explain the resulting diff (the closing line states this directly) -- satisfying co-20's rule.

Key takeaway: the timed swap is what keeps BOTH people actively engaged -- a navigator who never drives silently checks out, and a driver who never navigates loses the second set of eyes that catches the retry-count bug above before it ships.

Why It Matters: this session caught a missing retry bound and a happy-path-only test DURING implementation, not in review -- exactly the "shared context, fewer defects" trade pairing makes for high-risk work (co-20), worth the solo-throughput cost specifically because this code (concurrent balance writes) is exactly the kind of work where a defect is expensive.

Last updated July 17, 2026

Command Palette

Search for a command to run...