Nobody writes code from a blank page anymore. TruDev tests engineers the way they actually work: a real repo, a real ticket, 70+ signals.
What changed
Your resume screen reads for keywords. Your coding round tests recall. Engineering stopped looking like either one years ago.
What they wrote
What the filter kept
The filter matches vocabulary. Everything that separates a senior engineer from a mid (context, judgment, what they would have done differently) only ever exists in sentences.
The interview
Q3: Invert a binary tree.
You have 45 minutes.
function invert(root) {
|
}
Blank editor. No context.
No internet, no tools, no teammates.
Seen it before? You pass.
The job
TICKET-4412 payments 500s on retry
payments-service · 847 files
$ pytest tests/
FAILED test_retry_backoff
1 failed, 211 passed. Go.
213,004 lines they did not write.
The same tools they use on Monday, AI included.
Cannot be memorised. Only done.
One of these looks like Monday morning. Your process tests the other one.
The simulation
Real repo. Real ticket. Ninety minutes.

payments-service
TICKET-4412
EXPLORER
▾
payments-service
▾
api
▾
payments
retry_handler.py
webhook.py
models.py
▸
queue
▸
lib
▸
tests
config/retry.yaml
847 files · 213,004 lines
retry_handler.py
webhook.py
retry.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from queue import Consumer
from lib.backoff import compute_delay
MAX_ATTEMPTS = 5
def handle(event, attempt=0):
“””Retry a failed payment webhook.”””
if attempt >= MAX_ATTEMPTS:
raise MaxRetriesExceeded(event.id)
delay = compute_delay(attempt)
if not event.idempotency_key:
event.idempotency_key = derive_key(event)
return schedule(event, delay)
Python 3.11 · main
Ln 88, Col 12
An unfamiliar production repo
847 files they didn’t write, in a service they’ve never opened. No blank editor, no greenfield: the same cold start as their first week on the job.
See a sample session
A real ticket, and a clock
A genuine incident from a production backlog, with the constraints that come with it. They triage, reproduce and fix under time, the way an on-call morning actually goes.
How scenarios are built

payments-service
18:24
left
TICKET-4412
Payments return 500 on retry spike
P1
payments
on-call
Retries fire every 5s regardless of
attempt count. Queue backs up under
load and the consumer times out.
ACCEPTANCE
✓
Backoff grows per attempt
✓
No duplicate charges
Regression test added
retry_handler.py
test_retry.py
86
87
88
89
90
91
def compute_delay(attempt):
return 5 # TODO: exponential
# attempt 0 → 5s
# attempt 1 → 5s
# attempt 2 → 5s ← never grows
TERMINAL
$ pytest tests/test_retry.py
FAILED test_retry_backoff
assert 5 == 10
1 failed, 211 passed in 4.21s

payments-service
RECORDING
retry_handler.py
86
87
88
89
90
def compute_delay(attempt):
base = 5
return base * (2 ** attempt)
# grows 5s → 10s → 20s
SESSION ACTIVITY
70+ signals
14:02
opened retry_handler.py
14:06
grep MaxRetriesExceeded · 14 hits
14:16
breakpoint set · line 88
14:19
stepped through retry loop ×6
14:21
asked AI: why constant backoff?
14:34
edited compute_delay()
14:47
pytest -k backoff · failed
15:07
pytest -k backoff · passed
15:26
added regression test
Every move on the record
Seventy-plus signals captured while they work: which files they opened, how they debugged, what they asked the AI, what they kept. Every score points back to a moment you can replay.
See a sample report
Why TruDev
What a puzzle round
can never tell you.
None of these show up in a resume, a phone screen, or a take-home. All four come out of one ninety-minute session.
Your ATS keeps the pipeline. TruDev slots in where the interview happens, sends the result back automatically, and changes nothing else about how your team already works.
What candidates said
after their first run
Unedited, from engineers who sat a real TruDev interview during the beta.

FAQ
Questions
answered.
Still curious?







