{"slug": "the-interview-that-ships-to-production-replacing-whiteboards-with-pull-requests", "title": "The Interview That Ships to Production: replacing whiteboards with pull requests", "summary": "AngelList replaced traditional technical interviews with a process centered on a domain-relevant coding challenge and a production pull request. Candidates complete a JavaScript exercise using an AI assistant, which tests their ability to critically evaluate AI output, and successful candidates then ship an actual improvement to the interview platform's codebase. The article highlights how candidates have consistently improved the interview itself by fixing bugs, adding features, and refining the AI's calibration.", "body_md": "How we replaced whiteboards with pull requests, and why candidates keep improving the interview itself\nMay 15, 2026 — 7 min read\nMost 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.\nWe got tired of pretending.\nAt 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?\nSo we built one. And then we asked candidates to make it better.\nOur 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.\nCandidates 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?\nThe 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.\nWe 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.\nCandidates 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.\nWe 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.\nNo contrived task. No \"build a TODO app.\" Just: look at this production codebase, find something worth improving, and ship it.\nWhat happens next has consistently surprised us.\nOne 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.\nAnother 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\nhandler didn't use keepalive: true\n, 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.\nNathan 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.\nA 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.\nAnother 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.\"\nEvery one of these PRs told us something a whiteboard never could.\nThe 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.\nThe 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.\nNathan, 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.\nThese aren't hypothetical \"tell me about a time when...\" stories. They're commits. They're merged to main\n. They're running in production right now.\nThere'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.\nIt 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.\nAngelList'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.\nWe'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.\nIf you're the kind of engineer who reads the implementation instead of trusting the function name, we'd like to talk.", "url": "https://wpnews.pro/news/the-interview-that-ships-to-production-replacing-whiteboards-with-pull-requests", "canonical_source": "https://www.angellist.com/blog/the-interview-that-ships-to-production", "published_at": "2026-05-18 15:24:34+00:00", "updated_at": "2026-05-21 08:35:49.821386+00:00", "lang": "en", "topics": ["startups", "venture-capital", "artificial-intelligence", "developer-tools"], "entities": ["AngelList", "Claude"], "alternates": {"html": "https://wpnews.pro/news/the-interview-that-ships-to-production-replacing-whiteboards-with-pull-requests", "markdown": "https://wpnews.pro/news/the-interview-that-ships-to-production-replacing-whiteboards-with-pull-requests.md", "text": "https://wpnews.pro/news/the-interview-that-ships-to-production-replacing-whiteboards-with-pull-requests.txt", "jsonld": "https://wpnews.pro/news/the-interview-that-ships-to-production-replacing-whiteboards-with-pull-requests.jsonld"}}