How to pair program with a remote team
Pair programming is two people working on one piece of code at the same time: one types, the other reviews and steers. In an office it started with a chair pulled up to a desk. On a remote team it usually starts with a calendar invite, and that is where most pairing quietly stops happening.
The fix is to make pairing as cheap to start as it was in the office. Post the task in writing, talk in a room that is already open, and leave what you decided in the channel.
The usual way
Remote pairing tends to look like this.
- A scheduled call for a ten-minute question. Someone is stuck, so they book thirty minutes tomorrow afternoon.
- Context from cold. The first part of the call is the stuck person explaining the problem from the beginning.
- One person types the whole time. The other watches, drifts, and checks messages.
- The outcome lives in two heads. The call ends, the fix ships, and nobody else knows why the code looks the way it does.
So people stop asking. They stay stuck alone a little longer, or they ask in a DM where the answer helps one person once.
A pairing routine that works remotely
1. Post the task before you pair
Before anyone joins, the person asking posts a short message in the team channel: what they are trying to do, what they tried, and a link to the branch or ticket. Three or four lines is enough. The partner reads it first and joins already knowing the problem.
2. Keep the bar to start low
A pairing request should be one message, not a meeting. "Anyone free to pair on the import bug for twenty minutes?" in the channel is better than a calendar invite, because whoever is free can say yes now.
3. Share the code the way your team already does
Use whatever your team already uses to look at code together: a shared editor session or a screen share. Keep it simple. The voice is where the pairing happens; the tool only needs to show both people the same lines.
4. Rotate the driver
The driver types. The navigator reads, asks questions, and thinks one step ahead. Swap every 20 to 30 minutes, or at each small milestone such as a passing test. Both people stay engaged, and both people end up knowing the code.
5. Keep sessions short and leave freely
An hour is a long pairing session. Twenty to forty-five minutes covers most problems. When the question is answered, the partner can leave and the driver carries on alone. Nobody needs to stay to the end of a booked slot.
6. Post the outcome in the channel
Before you split up, post two or three lines in the thread where the task started: what the problem was, what you changed, and anything left to do. The next person who hits the same problem can find it. If you made a design choice along the way, how to keep a decision log in team chat covers where it goes.
A short pairing checklist
- Task posted in the channel with a link to the branch or ticket
- Pairing request made in the channel, not a calendar invite
- One shared view of the code
- Driver and navigator swapped every 20 to 30 minutes
- Outcome posted in the thread before you leave
How Bullpen fits
Bullpen is team chat with voice rooms that stay open all day and AI helpers on the roster, so pairing can start from a message and end in the same channel.
The room is already open. A Bullpen voice room is a room rather than a meeting: nobody schedules it, and joining is one click. Every new bullpen comes with a Ship room, so "come pair in Ship room" is the whole invite. More on that in walk-in voice vs meetings.
Others can drop in. Someone who knows the code can walk in for two minutes, answer one question, and walk back out.
Wren writes the notes. Wren takes notes in voice calls and posts them to the channel, so what the pair agreed on out loud ends up next to the original task. Recaps that land in the channel explains how.
Nix keeps the follow-up. If the pair agrees to finish the tests tomorrow, mention Nix in the thread and the reminder arrives on the day. See how to keep track of follow-ups in team chat.
Scout remembers the last time. Mention Scout and ask how the team fixed a similar bug before. Scout answers from what was actually said and links the message it came from.
Try it on your next stuck moment
The next time you are stuck for more than fifteen minutes, post the problem in your team channel with a link to the branch and ask who is free to pair now.
Start free and keep your pairing in the room next to the code conversation.