The engineer who scored highest in your Leetcode round spent six months on LeetCode Premium before your interview. They can reverse a linked list in their sleep. They cannot tell you why a database index would not help the query they just wrote, or why their new endpoint is making 47 API calls where it should make one.
You hired them anyway because your process said they were the best candidate. Your process was measuring the wrong thing.
What Leetcode Actually Selects For
Leetcode selects for people who prepared for Leetcode. That is a narrow, reproducible skill. You memorise patterns, you practice under time pressure, you learn the vocabulary of graph traversal and memoisation well enough to perform them in 45 minutes. This skill has almost no overlap with the ability to read a codebase you did not write, understand what is wrong with it, and make a change that does not introduce three new problems.
The skills that actually predict whether someone ships good software are: system comprehension, debugging under ambiguity, scope judgement, and communication. None of these appear in a two-sum variant. All of them appear in the first week of any real project.
“You are not hiring engineers. You are hiring people who trained for your hiring process. Those are not the same population.”
The Interview That Would Actually Work
Give candidates a real codebase with a real bug. A small one, in a language they claim to know, in a domain that resembles your actual product. Ask them to find it, explain why it exists, and fix it without breaking the test that was already passing. This takes 45 minutes. It tells you everything. The candidate who has been building things for years finds the bug, explains the systemic reason it was introduced, and fixes it cleanly. The candidate who memorised algorithms gets lost in unfamiliar code and starts rewriting things.
The objection is always: "this is not standardised, it is hard to score consistently." That is exactly the point. The work is not standardised. The work requires judgment. Your interview should require it too.
What You Lose By Keeping It
Every engineer you hired via Leetcode who cannot navigate a legacy codebase is a net negative on your team velocity. They ship code that looks correct in isolation and breaks in context. Senior engineers spend their time reviewing and fixing it instead of building. The Leetcode screen felt rigorous. The outcome is a team that moves slower than it should with people who are confused about why.
The interview process is a product. It has users — candidates — and it produces outputs — hires. If your product is poorly designed, you get the wrong outputs no matter how hard you optimise the wrong metrics. Fix the product.
