Sample assessment
What the candidate does. What you get back.
Exactly what a candidate sees and submits, and the full report that lands in your inbox — scoring, a moment-by-moment replay, anti-cheat, and a debrief that tests whether they can explain their own code. Toggle between the two. No sales call needed.
Candidate's view
Add pagination to a live product-search function
The catalog has grown to ~50,000 products and the results page needs to paginate. Extend search_productswithout breaking the existing callers, and make sure it holds up at 50k rows. An AI assistant is available — how they direct it, and whether they check it, is part of what we measure.
catalog.py · starter codegiven
# catalog.py — live product search. Keep existing callers working.
PRODUCTS = load_products() # ~50,000 rows
def search_products(query, category=None):
results = [p for p in PRODUCTS
if query.lower() in p["name"].lower()]
if category:
results = [p for p in results if p["category"] == category]
return results
catalog.py · submittedPython
# catalog.py — added keyset pagination. Old callers unaffected.
from collections import namedtuple
SearchPage = namedtuple("SearchPage", ["items", "next_cursor"])
def search_products(query, category=None, *, cursor=None, limit=None):
results = [p for p in PRODUCTS
if query.lower() in p["name"].lower()]
if category:
results = [p for p in results if p["category"] == category]
# No pagination requested -> original behaviour, callers unchanged.
if limit is None:
return results
# Keyset pagination: stable sort, then seek past the cursor. No full
# re-scan per page, and no drift if the catalog changes mid-scroll.
results.sort(key=lambda p: p["id"])
if cursor is not None:
results = [p for p in results if p["id"] > cursor]
page = results[:limit]
next_cursor = page[-1]["id"] if len(page) == limit else None
return SearchPage(page, next_cursor)
AI assistantcandidate-directed
Candidate
Need to paginate search_products — 50k rows, and existing callers pass (query, category).
AI assistant
Add offset and limit params and return results[offset:offset + limit].
Candidate
Offset re-scans all 50k every page and drifts if the catalog changes mid-scroll, so users see duplicates or skips. I'll use a keyset cursor on id, and keep the old signature by only paginating when a limit is passed.
AI assistant
Keyset avoids the offset drift and scales better — solid call.
✦ Overrode the AI's offset suggestion — and said why.
Tab switches: 0
Paste events: 0
AI tool: Claude (allowed)
Total time: 15m 40s
Real assessments include 3–6 problems custom-built from your job description, the full anti-cheat trail, and a senior-engineer walkthrough for every dimension. Your first candidate is on us.