Add a whiteboard interview mode

Open
#65 2 comments 0 reactions 1 assignee View on GitHub

@ColtenOuO is already working on this.

Since Sep 19, 2026.

Assessment

This issue has not been assessed yet.

Description

I would like to propose a new feature: Whiteboard Interview Mode

Motivation

Many real algorithm interviews are held at a whiteboard: the candidate explains the approach by drawing, traces an example by hand, and ends with handwritten pseudo-code. CodeTrial only offers the editor-and-tests format today, so there is no way to practice explaining an algorithm without a compiler to lean on.

Proposal

A separate mode, chosen in the lobby next to the duration and the interview loop. A whiteboard interview has no editor, no starter code and no test runs; it uses the same problem bank, taking only the statement and examples.

Board

Replaces the editor and test panels. Pen, eraser, undo/redo, clear and a few colors, on a fixed-size scrollable canvas so the interviewer always sees the whole board. Mouse input only for the first version. Strokes are kept as vectors, not pixels.

How the interviewer sees it

After each stroke settles (about one second of debounce), the board is exported as a JPEG and sent over the data channel to the agent, which forwards it to Gemini Live as a realtime image. The existing camera frame path is off by default and holds a single slot, so the board gets its own path rather than sharing it. A read_board tool, like read_editor, lets the interviewer ask for the latest board.

Interview flow

Repeat, Examples (drawn), Approach (drawn), Trace (walk an example through the drawing, in place of Code), Edge cases and complexity (in place of Test and Optimize), and a final handwritten pseudo-code step.

Report

The transcript plus the final board image, graded on clarity, trace correctness, edge cases, complexity and the pseudo-code, still against the problem's optimal and pitfalls. The report request is text-only today and would need to carry an image.

How a board reaches the interviewer
flowchart LR
    stroke["Stroke ends"] --> debounce["Debounce about 1s"]
    debounce --> jpeg["Export JPEG"]
    jpeg --> channel["Data channel"]
    channel --> agent["Agent"]
    readboard["read_board tool"] --> agent
    agent --> gemini["Gemini Live, realtime image"]
Dominant language
Rust
Stars
54
Forks
8
Avg merge
9h 41m
Merged PRs (30d)
43

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sysprog21/codetrial

All issues in sysprog21/codetrial

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.