Skip to content

Interview practice

TandemCode

Practice coding interview problems with a partner.

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%

Repository

Latest release
No GitHub releases
Created
Aug 14, 2025
Last push
Oct 13, 2026
Open source
Yes
Synced
Oct 27, 2026
naman0r/tandemcode