Pair programming is one of the well known technical practices from eXtreme Programming, and more generally from the agile software development community. It is a technique where two developers work together on the same workstation, sharing the same screen and keyboard, to deliver a meaningful chunk of functionality.
Some of the expected benefits of pair programming are:
Remote pairing is a variation of pair programming where the two programmers work on the same code from separate physical location. For that, the pair will need some kind of screen sharing software, as well as video and audio communication tool. Ideally, the two partners will be able to edit the code in real time, switching role from driver to navigator as easily as if they were physically sharing a screen.
Some of the most famous code editors propose extensions to make this kind of remote pairing easier:
In the best case, these extensions allow the pair to edit the code at the same time, but also to debug the code remotely. This means that, while the code is being executed on the first developer's machine, the other developer share the exact same debugging context, which means local variables, breakpoints and so on. The collaboration becomes almost seamless.
GitPod has an interesting approach where you can launch a pod from any Git repository on GitHub or GitLab and run the code. It actually runs a container for you behind the scene, and clone the repository with all the dependencies and SDKs you need in your development environment, depending on the type of source code the source Git repo contains. It also features sharing & snapshotting.
Some of these tools include an audio feed and a chat for communication, but you can use your favorite communication tool if you like. Just imagine that using Visual Studio Live Share, a developer could be remote pairing from his windows laptop using Visual Studio while his partner is on his Mac using VS Code, without additional setup. How awesome is that!