Remote pair programming sounds difficult because both developers need to see the same screen, use the same development environment, and work on the same task at the same time. In practice, it becomes manageable with the right screen-sharing and communication tools.
When COVID-19 moved us into home offices, we tested several options. Some worked better than others, but none was perfect. Our requirements were straightforward: shared screen access, keyboard and mouse control, voice communication, and cross-platform support.
Voice and Client Communication
Q: How do you talk while pairing?
A: We primarily use Discord for voice communication. It is reliable, easy to join, and works well for long development sessions.
Q: How do you communicate with clients?
A: For video meetings, we normally use the platform preferred by the client, such as Zoom, Slack, or Teams. For smaller or ongoing discussions, we use tools such as Fleep and Slack.
Remote Pair Programming Tools We Tested
Q: How do you share the screen and controls?
A: Of the tools we tested, Steam Remote Play and AnyDesk became our main options. Each has different strengths and weaknesses. We also evaluated Floobits and kept an eye on Tuple.
Steam Remote Play
Steam Remote Play is designed for gaming, but its low-latency streaming also works surprisingly well for software development.
Pros:
- Shares the entire desktop
- Supports multiple monitors
- Shares keyboard and mouse input
- Free to use
- Uses peer-to-peer traffic
Cons:
- The host computer needs enough performance for game-oriented streaming
- Both clients must be up to date before they can connect
- Image quality may become blurry on slower connections or at high resolutions
- Some system shortcuts, including
Alt+Tab, may not work as expected - The Windows key may not work
- Initial setup is not trivial
In our experience, a wired Ethernet connection and a 1440p display provided a good balance of clarity and responsiveness.
AnyDesk
Pros:
- Shares the entire desktop
- Shares keyboard and mouse input
- Supports system shortcuts, including Alt and Windows key combinations
- Simple to set up
Cons:
- Keyboard and mouse control can feel restrictive when both people try to interact at the same time
- Floating name labels add visual clutter
- Commercial use is not free
The input-locking behavior was the biggest drawback for us. Without it, AnyDesk would have been a stronger alternative to Steam Remote Play.
Floobits
Pros:
- Each developer works in their own local environment
- Supports several IDEs, so developers can use their preferred editor
- Shares keyboard input
- Preserves normal keyboard shortcuts
Cons:
- Code is synchronized through a centralized service rather than peer to peer
- Commercial use is not free
Floobits and similar IDE plugins work well when the pair only needs to edit code. Our sessions also involve browsers, terminals, chat tools, database clients, and other applications, so editor-only collaboration does not fully meet our needs.
Tuple
Pros:
- Designed specifically for pair programming
Cons:
- At the time of our evaluation, it was available only on macOS
We planned to test Tuple when a Linux version became available.
What We Learned About Remote Pair Programming
Remote work created a wave of new collaboration tools, and no team can test every option. The best choice depends on operating systems, network quality, security requirements, and whether developers need to share only an editor or the entire desktop.
We still prefer working together in the office, but a reliable remote setup lets us continue pair programming from home. It is useful not only during exceptional situations, but also on ordinary days when someone is well enough to work yet should avoid coming into the office.