How we replaced whiteboards with pull requests, and why candidates keep improving the interview itself
May 15, 2026 — 7 min read

Most technical interviews are performances. You walk into a room (or a Zoom call), solve a contrived puzzle under artificial time pressure, and everyone pretends this reveals something meaningful about how you work.
We got tired of pretending.
At AngelList, we build the financial infrastructure behind $200B+ in venture & private assets. Our engineering team is small (fewer than 50 people) and every hire has an outsized impact. We needed an interview process that actually measured what matters: Can you read a codebase? Can you think critically when an AI is confidently wrong? Can you ship?
So we built one. And then we asked candidates to make it better.
Our exercise gives candidates a domain-relevant coding challenge: implement a three-tier venture fund distribution waterfall in JavaScript. Return of capital, preferred return, carried interest: the actual mechanics of how money flows through a fund. It's self-contained, doesn't require framework knowledge, and exercises algorithmic thinking and numeric precision.

Candidates also get access to a Claude AI assistant while they work. This is intentional. We're not testing whether someone can avoid using AI. We're testing whether they can use it well. Can they evaluate what the AI gives them? Do they verify the output, or do they trust it and move on?
The exercise is calibrated to reward critical thinking. Candidates who read code carefully and verify behavior against edge cases tend to do well. Candidates who accept the first plausible answer, whether from an AI or from their own intuition, tend to miss important details.
We record the ai chat alongside every keystroke, with millisecond timestamps, so we can see exactly how candidates approach the problem: how they prompt the AI, how they respond to its suggestions, and whether they validate the output before shipping.
Candidates who clear the take-home move to a follow-up interview. But it's not a system design whiteboard. It's not a behavioral question gauntlet.
We give them access to the testing platform's actual codebase (the same Next.js app they just used to take the assessment) and ask them to ship a pull request.
No contrived task. No "build a TODO app." Just: look at this production codebase, find something worth improving, and ship it.
What happens next has consistently surprised us.
One candidate noticed that the Part 2 coding environment forced you to choose between the AI chat panel and your test cases. If you wanted to refine a test case while writing code, you had to navigate back to Part 1. So he built a tabbed sidebar that lets candidates toggle between the AI assistant and an inline test case editor, complete with streaming indicators when Claude is responding off-screen, localStorage persistence for crash recovery, and event-driven architecture so admin replay could follow every edit. Three pull requests, all merged.
Another candidate found a data loss bug that nobody on our team had caught. When a candidate submitted their assessment, if the network request failed, their work was silently dropped. The event flush function swallowed errors, the beforeunload handler didn't use keepalive: true, and the submit flow didn't check whether the flush actually succeeded. He extracted the flush logic into a standalone module, added retry semantics, wrote seven unit tests, and introduced Vitest to the project, all in the interview.
Nathan Amin dug into how the AI assistant was calibrated and found ways to make it sharper. The assessment's difficulty depends on subtle choices in how the AI behaves, and he saw room to improve the signal-to-noise ratio, making the exercise a better test of what we actually care about. He refined the calibration, making the assessment more precise without making it unfair. He made the interview better, and he was right.
A candidate added a small but thoughtful UX improvement: when you add a new test case, the platform now copies the previous case's structure instead of inserting a blank. It sounds minor, but it means candidates spend time thinking about edge cases instead of re-typing boilerplate, which is exactly what we want the assessment to measure.
Another candidate noticed the timer was confusing. There was a clock on the start page but no indication of what it meant. Was it already running? Had they already started? The candidate fixed the labeling and ensured the timer only began when the user explicitly clicked "Start Assessment."
Every one of these PRs told us something a whiteboard never could.
The candidate who built the tabbed sidebar demonstrated component architecture, state management, and product thinking, and they documented the design decisions in their PR description as clearly as any staff engineer would.
The candidate who found the data loss bug showed the instinct that matters most in production systems: skepticism. They didn't trust that the happy path was the only path.
Nathan, who improved the assessment's calibration, showed something rare: willingness to make someone else's work better, even when it means raising the bar for people who come after you. Nathan is now on the team.
These aren't hypothetical "tell me about a time when..." stories. They're commits. They're merged to main. They're running in production right now.
There's something poetic about an interview process that improves itself. Every candidate who ships a PR makes the platform better for the next candidate. The assessment gets more polished, the edge cases get caught, the UX gets smoother.
It also sends a signal about what working at AngelList is actually like. We're a small team building critical infrastructure. There's no ticket queue. Nobody assigns you a JIRA story with acceptance criteria pre-written. You look at the codebase, you find what matters, and you ship it. If you need AI to move fast, use it. If the AI is wrong, catch it.
AngelList's interview was the first one that actually felt like work I wanted to do: understand the system, find what matters, ship it for the next person. That's also how AngelList operates. They give you agency immediately and reward you for using it.
We're a small team with an absurd amount of leverage. More than half of top-tier U.S. VC deals involve investors on AngelList. We're building bitemporal accounting systems, AI agents for customer operations, and the infrastructure that turns messy legal reality into auditable financial records.
If you're the kind of engineer who reads the implementation instead of trusting the function name, we'd like to talk.
