Pairing works because two people pay two different kinds of attention. The driver is down in the code, typing; thenavigator is up a level, watching for the edge case, the better name, the approach that is about to go sideways. Sitting side by side, swapping between those modes costs nothing — you just slide the keyboard over. Remote, it falls apart fast: one person screen-shares and does all the typing while the other narrates into a mic, allowed to point but never to touch. That is not pairing, it is dictation. Giving both developers the same live editor is the whole fix, and it is what ShareCode is built to do.
Two roles, one editor
Driver and navigator on a shared document
Since both people have full edit access to the same document, there is no “give me control” ritual. The navigator can fix a typo mid-sentence, sketch a function signature for the driver to fill in, or take over entirely when it is their turn to drive. Live cursors show exactly where the other person is looking, so you stay oriented even when you are working slightly ahead of each other.
Why it works for remote teams
Remote pairing usually fails on friction: time zones, VPNs, mismatched editor setups, and screen-share tools that turn crisp code into blurry video. Because ShareCode runs in the browser and needs no setup on either side, the only thing you coordinate is the time. Drop the link in a call, and you are pairing. It is equally good for onboarding a new hire, debugging a gnarly issue together, or a quick mob session with three people in the same space.
The same engine as everything else
Pairing uses the exact same conflict-free sync that powers all real-time editing on ShareCode: edits are merged with CRDTs so two people can type at once without overwriting each other, and the document persists so you can pick the session back up later. If you want the technical detail, the real-time collaboration page and the blog posts below cover it.
The two styles: driver-navigator and ping-pong
Most pairing falls into one of two rhythms, and both work well in a shared editor. In the classic driver-navigator style, one person types while the other thinks ahead — watching for edge cases, questioning the approach, and keeping an eye on the bigger picture. The pair swaps roles regularly so neither person switches off. In ping-pong pairing, common in test-driven development, one person writes a failing test, the other makes it pass and then writes the next failing test, and the keyboard bounces back and forth. Because both developers have full edit access in ShareCode, handing over is just a matter of who starts typing — there is no control to request and no screen-share to pass around.
How to run a good remote pairing session
Remote pairing is a skill, and a few habits make it dramatically more effective. Agree on the goal before you start so you are both solving the same problem. Keep a voice channel open alongside the editor — the code carries the what, but the conversation carries thewhy. Swap the driver role often, every ten or fifteen minutes or every test, so both people stay engaged and the navigator never becomes a passive spectator. And take breaks; pairing is intense precisely because both minds are fully engaged, and an hour of focused pairing is worth more than three of half-attention.
The live cursors help here in a way that is easy to underrate. Being able to see exactly where your partner is looking — and to point at a line by simply moving your caret there — restores a lot of the shorthand you lose when you are not in the same room. “This one” means something again.
When to pair, and when not to
Pairing is not the right tool for every task, and being honest about that keeps it valuable. It shines on hard problems where two perspectives genuinely help, on unfamiliar code where one person knows the territory, on critical changes where a second set of eyes is worth the cost, and on onboarding where the goal is knowledge transfer as much as output. It is usually overkill for routine, well-understood work that one person can finish quickly, or for open-ended research that benefits from quiet, solo exploration first. A good rule of thumb: pair when the thinking is the hard part, work solo when the typing is.
Onboarding new hires by pairing
One of the highest-value uses of pairing is bringing a new teammate up to speed. Reading documentation tells a new hire how things are supposed to work; pairing shows them how things actually work — the shortcuts, the gotchas, the reasons behind decisions that no document captures. A shared editor with zero setup is ideal for this, because a new hire can be productive in a session before their local environment is even fully configured. Sitting together in the same code space, a mentor can demonstrate a change, hand the keyboard over, and let the new person try it immediately with help one cursor away.
Mobbing with three or more
Pairing's bigger sibling is mob programming, where a small group works on the same problem together — one driver, several navigators, rotating regularly. It is a powerful way to make a tricky decision as a team, spread knowledge quickly, or align on a tricky refactor. Because the same conflict-free engine handles any number of simultaneous editors, ShareCode scales from a pair to a small mob without changing anything: everyone joins the same link, the live cursors keep the group oriented, and the document stays consistent no matter who is typing.
Frequently asked questions
Can both people really type at the same time?
Yes. Both developers have live edit access, and edits merge without overwriting each other — so you are never blocked waiting for the keyboard to be handed over.
Do we need to install anything to pair?
No. ShareCode runs in the browser on any operating system. The only thing you coordinate is the time — open the link and start pairing.
Will our session still be there tomorrow?
Yes. Each code space persists at its own URL, so you can close the tab and pick the session back up later from the same link.
How often should we swap the driver role?
A good rhythm is every ten to fifteen minutes, or after each passing test if you are pairing ping-pong style. Frequent swaps keep both people engaged and stop the navigator from drifting into a passive role. Because both of you already have edit access in ShareCode, swapping is instant — there is no control to hand over.
Why pairing is worth the two seats
The obvious objection to pairing is cost: why put two developers on one task? The answer is that the second seat is not overhead, it is quality and knowledge moving in real time. Research and decades of industry practice — going back to the work that named the driver-navigator model — consistently find that pairs produce code with fewer defects and that the design tends to be better, because a second person is questioning assumptions as they are made rather than weeks later in review. Bugs caught at the moment of writing are the cheapest bugs you will ever fix.
The less measurable benefit is knowledge sharing. When two people build something together, the understanding lives in two heads instead of one, which reduces the “only Sara knows how that works” risk that quietly slows every team down. Pairing also keeps people focused — it is much harder to drift into a distracted half-hour when someone is working alongside you — and it spreads good habits, from keyboard shortcuts to testing discipline, by simple osmosis. None of this means you should pair on everything, but it explains why teams that pair on the work that matters rarely regret it.
Pairing across time zones
Distributed teams face a real constraint: the window where two people's working hours overlap can be small. The way to make the most of it is to treat synchronous time as precious. Use the overlap for the genuinely collaborative work — the hard design decisions, the gnarly bug, the onboarding walkthrough — and leave the routine, well-understood tasks for solo time. Because a ShareCode space persists at its own URL, a pairing session does not have to vanish when one person logs off: the document is still there for the other to continue, annotate, or leave notes in, and you can pick the thread back up at the next overlap without losing context.
A little etiquette goes a long way
Good pairing is as much about manners as mechanics. Resist the urge to grab the keyboard and fix something yourself when you are navigating — describe it and let the driver make the change, so they stay engaged and learning. Be patient with different working speeds; the point is shared understanding, not a race. Disagree about the approach out loud and early rather than silently rewriting each other's code. And give credit generously — pairing produces shared work, and treating it that way is what makes people want to do it again. The shared editor gives you the technical foundation; these habits are what make a session genuinely productive.
Go deeper on the blog
References & Sources
The primary sources, specifications, and documentation behind this article. Each link opens in a new tab.
- Pair Programming Illuminated
Laurie Williams & Robert Kessler · Addison-Wesley
Foundational work on the driver/navigator model and the benefits of pairing.
dl.acm.org - On Pair Programming
Martin Fowler · martinfowler.com
A practical, modern overview of pairing styles, including remote pairing patterns.
martinfowler.com - Yjs — shared editing framework
Kevin Jahns · Yjs documentation
The CRDT layer that keeps both developers' editors in sync during a pairing session.
docs.yjs.dev
Pair with someone today
Open a code space, share the link with your pair, and start driving.