Live engineering interviews

Hire for judgment, not memorized algorithms.

AI can write the code. GetGud tests whether an engineer can read it, debug it, and reason about what happens in production, live, while you watch every decision.

Candidates never create an account. Send a link, start talking.

Question 3 of 614:32 left

Goroutines pile up when the upstream is slow

Memory grows and the goroutine count climbs into the hundreds of thousands. Click the lines that keep goroutines alive forever.

concurrencydebugginggo
1func fetchWithTimeout(ctx context.Context, url string) (string, error) {
2 ch := make(chan string)
3
4 go func() {
5 body, _ := slowFetch(url)
6 ch <- body
7 }()
8
9 select {
10 case body := <-ch:
11 return body, nil
12 case <-time.After(2 * time.Second):
13 return "", errTimeout
14 }
15}

01Why GetGud

The job changed. The interview should too.

Reading over writing

Most engineering time goes into understanding code someone else wrote. Now that someone is often a model.

Puzzles with answers

Every question has a defensible correct answer and a deterministic score. No vibes, no rubric drift.

Reasoning out loud

Candidates explain while they choose. You hear how they think and see what they decide.

Built for live

One link, one session, a shared clock. Nothing to install and nothing for the candidate to sign up for.

02Question formats

Four bounded interactions. Every one of them scores itself.

Multiple choice

Pick the answer

What does this print? Which change fixes the cause? Four plausible options, one defensible answer.

Raise the TTL
Coalesce the rebuild
Add read replicas
Multi-select

Select all that apply

Reviewing an idempotency key design. Which statements hold under concurrency and crashes? Partial credit, wrong picks cost.

Two requests can both charge
Check-then-act is safe
Scope keys per account
Line selection

Click the line

Block the PR. Find the injection. Point at the send that leaks. The same skill as reviewing real code.

9logger.info(req.body)
10db.one(`... '${email}'`)
11res.json(user)
Ordering

Put it in order

Reconstruct a failure chain or predict the event loop. Scored by how many pairs are in the right order.

1Index dropped
2Pool exhausted
3Health checks fail

03The live view

Watch the interview unfold, then keep the report.

See which question the candidate is on, what they have selected so far, and how long they have been thinking. When the interview ends, the same page becomes a report you can annotate and share with the panel.

  • Live selection

    Answers update as the candidate clicks, with connection status.

  • Shared clock

    Total time, per question time and optional limits, enforced on the server.

  • Running score

    Deterministic scoring the moment a question is submitted. Override with a note.

  • Activity signals

    Focus changes, pastes and idle periods as plain counts. Context, never a verdict.

04The library

An interview library that lives in git, written by engineers.

Families and variants

Questions that test the same idea are grouped, so an interview never asks the same thing twice and leaked questions can be rotated out.

An explicit taxonomy

Domain, task, language and a 1 to 5 difficulty scale. Build "senior backend, debugging heavy, Go where code appears" in a few clicks.

Frozen when you send it

Each interview is a fixed snapshot with a stored seed. Edits to the bank never change an interview that is already out.

Interviews that look like the job.

Sign in with Google, GitHub or LinkedIn and send your first interview in a few minutes.

Get started