Interview practice
Tandem Code
Practice coding interview problems with a partner.
- Live
- Ranked 6 of 12
Screenshot. The TandemCode home page with two cursors typing in a shared editor
Shared editor
Two people edit one Monaco editor and see each other’s cursors live.
Overview
In a coding interview you think aloud while someone watches your code take shape. TandemCode lets two people practice that together: one room, one editor with live cursors, a chat, and one verdict that both see at the same moment.
The React app edits a Monaco editor over a Yjs document. A FastAPI server relays the editor frames between the two browsers without keeping a copy, records them for replay, and rate-limits every socket. Design rooms add a shared whiteboard in the same document.
A run becomes a pending submission that a separate runner claims and judges inside a throwaway container with no network, a read-only disk and gVisor in production. Postgres notifies the room when the verdict lands, and an accepted run can be timed on larger inputs to estimate how it scales. The API, runner and database run on one AWS Lightsail host with Docker Compose and Caddy, and the web app is on Vercel.
What it does
Hidden tests
Each problem has visible examples plus hidden tests that report only pass or fail.
One verdict for the room
A run is judged once and the result appears for everyone in the room.
Session replay
After a room closes, anyone who was in it can replay the typing, the chat and every run.
Sandboxed runs
Every run gets its own container with no network and a read-only disk.
Complexity estimate
An accepted run can be timed on bigger inputs to estimate how it scales.
Public or unlisted rooms
Share a room by invite link, or list it and wait for a partner.
Design rooms
A shared whiteboard for system design practice that replays like code.
More screenshots
2 screenshots of TandemCode.
Screenshot. The TandemCode home page on a phone
Screenshot. The TandemCode about page
By the numbers
Read from naman0r/tandemcode, where TandemCode is built. Synced from GitHub on Oct 27, 2026.
- Stars
- 0
- Forks
- 1
- Release downloads
- 0
- Commits
- 117
- Contributor
- 1
- Code
- 384 KB
Languages
- Python58.5%
- TypeScript38.4%
- Shell1.6%
- Dockerfile0.5%
- Other1.1%
Contributor
Repository
- Latest release
- No GitHub releases
- Created
- Aug 14, 2025
- Last push
- Oct 13, 2026
- License
- Apache License 2.0
- Open source
- Yes
- Ranking
- 6 of 12, score 0.30
- Synced
- Oct 27, 2026


