Ask them about their own code.
ProjectVerify reads the project an applicant shows you, interviews them about how it works, and gives you a report where every conclusion is tied to their answer and the lines it was about.
src/lib/availability.ts
- 1
import { now, LEAD_TIME_MS } from './clock'; - 2
- 3
export function openSlots(day: Day, bookings: Booking[]) { - 4a
const taken = new Set(bookings.map((b) => b.slotId)); - 5│
return day.slots - 6│
.filter((slot) => !taken.has(slot.id)) - 7
.filter((slot) => slot.start > now() + LEAD_TIME_MS); - 8
}
db/schema.sql
- 12
create table bookings ( - 13
id uuid primary key, - 14
slot_id uuid not null references slots (id), - 15b
unique (slot_id) - 16
);
Two people book the last slot within the same second. What happens?
Both requests read the bookings before either one writes, so openSlots shows the slot as free to botha. The insert is what stops it: there is a unique constraint on slot_idb, so the second booking fails. Right now that shows up as a generic error page, which is the first thing I would fix.
- 25minutes per interview
- 9questions written from their own code
- 1change they make to it
How it works
Send a link
Invite one applicant or paste in a list. Each person gets their own link, and nobody needs an account.
They talk through their own code
They share a repository. We read it and write questions about how it actually works. They answer in about 25 minutes, then make one small change to it in the browser.
You read the evidence
Every conclusion points to the answer it came from and the lines of code it was about, so you can check it yourself.