This document provides a guide to best practices in pair programming. It defines pair programming as two people working together at a single computer to write code that will be deployed to production. It describes different styles of pair programming such as driver-navigator and mob programming. It also discusses remote pair programming and antipatterns to avoid like navigators giving low-level instructions or drivers not taking breaks. Finally, it outlines some lesser known benefits of pair programming like reducing distractions and regressions.