← writing

The Algorithm Interview Is Dead - Sun Tzu, Probably

Four years building systems for millions of users. The hardest algorithm I've shipped in production is O(n) → O(1). Let's talk about what technical interviews are actually supposed to test.

M

MELVIN LIU

October 12, 2026 · 9 min read

careerengineeringinterviewsopinion

The last time I sat in a technical interview, the question was a variant of Spiral Matrix II: fill an n×n matrix in spiral order, except instead of incrementing by 1 at every step, the starting integer of each new row carries over from wherever the previous row left off. Forty-five minutes, shared screen, the interviewer watching. I got through it.

The week before, I had diagnosed a production incident in our core service: a Redis bottleneck compounded by thread saturation and a fundamental mismatch between synchronous and asynchronous design assumptions that had quietly degraded throughput for weeks. Zero graph traversal involved.

Side-by-side comparison of standard vs modified Spiral Matrix II for n=3. Standard fills unique values 1-9. Modified carries over the last value at each turn, resulting in repeated values: 1,2,3 / 5,5,3 / 5,4,4.
The modification: at each direction change, the new leg starts at the same value as the last (no +1). Four carry-over cells. Forty-five minutes to notice it.

I'm not here to say interviews are too hard. I'm here to say they're measuring the wrong thing. The companies that built this system are finally starting to admit it.

What They Test vs. What Actually Ships

Tier list comparing algorithm interview difficulty against production frequency. 2D DP rates S in interviews but Never in production. Hash maps rate Easy in interviews but Daily Driver in production.
The tier list nobody talks about. The lower the interview rating, the higher the production frequency.

Ask most production engineers what the most algorithmically complex thing they've ever shipped looks like, and you'll get a version of the same answer. APIs serving millions of users. Incidents debugged at 2 AM that would have cost real money if someone guessed wrong. Caching layers redesigned under memory constraints. Queues eliminated. Instances decommissioned. Costs cut.

And then, if you push them on the algorithm: they moved a lookup from O(n) to O(1) with a hash map.

That's it. That's the ceiling for most of us. No segment trees. No 2D dynamic programming. No topological sort. A hash map, the data structure taught in week three of a CS intro course and ranked "Easy" on LeetCode.

The hardest parts of real engineering work are rarely algorithmic. A Redis optimization? The hard part is picking the right serialization format and understanding how the allocator behaves under pressure. Not an algorithm problem. A microservice migration replacing a legacy monolith? System design, risk mitigation, stakeholder communication. An infrastructure consolidation? Operational judgment, not big-O complexity.

Real engineering is mostly reading code, understanding tradeoffs, communicating under pressure, and making judgment calls in the dark. The algorithm is usually the last thing you reach for, and when you do, it's almost always a hash map.

The Industry Is Finally Saying It Out Loud

Two things happened close together in 2026 that I think matter.

Google changed their interview loop. In May 2026, they introduced a Code Comprehension round: candidates receive a 200–500 line unfamiliar codebase and spend 60 minutes reading it, identifying bugs, discussing design choices, and working with an AI assistant. The company noted that 75% of all new code at Google is now AI-generated. Engineers review, debug, and validate rather than write from scratch. The interview changed to match the job.

Note

Google's Code Comprehension round replaces one traditional coding interview. Candidates work through an unfamiliar production codebase, identifying bugs and evaluating design choices, with Gemini as an assistant. The emphasis is on code reading fluency, independent debugging, and critical AI evaluation.

This is significant not because Google is fast-moving on hiring; they aren't. It's significant because algorithm interviews were specifically designed to emulate Google. You didn't LeetCode grind because you wanted to work at your mid-size fintech company. You did it because that's what Google did, and everyone else followed.

Then HackerRank's CEO wrote a public apology.

HackerRank article opening: Sorry, we made you grind l**tcode. CEO Vivek's apology letter.
HackerRank's opening. On billboards in SF, apparently.

We're sorry we made you grind leetcode.

That line is apparently on billboards in San Francisco now. The company that built the tooling that normalized algorithm-based hiring is publicly acknowledging that they helped create a system where candidates spend months preparing for interviews with little connection to the actual job. Their proposed solution, a platform where candidates solve real-work problems in an agentic environment, is directionally correct, even if the apology is somewhat self-serving.

When the cigarette company admits smoking was bad for you, you should probably take the hint.

Why LeetCode Became the Standard (And Why It Stuck)

Iceberg diagram. Above water: objective, language-agnostic, scales to thousands of candidates. Below water: whether you could afford months of prep, CS degree recency, whether you memorized this exact problem, performance anxiety, target school bias.
What we say algorithm interviews measure. What they actually measure.

The standard justification is that algorithm interviews are objective. Language-agnostic, they scale to thousands of candidates, they give every interviewer the same rubric. These are real advantages, but they obscure two uncomfortable reasons the practice actually spread and stayed.

It's operationally cheap for the company. A LeetCode problem requires zero domain knowledge from the interviewer. A senior engineer can run five algorithm screens in a single afternoon: pull up a problem, watch the candidate code, move on. Writing a meaningful, role-relevant interview question takes hours. Calibrating it takes iteration. Grading it requires judgment. Algorithm screens are the laziest defensible path to a hiring decision. Companies optimized for their own engineers' time, not for signal quality.

It spread through FAANG cargo-culting. When Google and Microsoft started using algorithm-heavy interviews in the early 2000s, every startup and mid-size company copied them, not because the evidence supported the approach, but because it felt prestigious. "We interview like Google" became a proxy for engineering rigor, even when the company had nothing in common with Google's actual engineering challenges. The practice propagated through pure institutional imitation.

And it's not just me saying it:

Okay, But What About Google and Meta?

Yes. I know. If you're building the ranking algorithm for 3 billion Instagram Reels, or maintaining Spanner's distributed transaction log, or keeping YouTube's recommendation engine from melting, you probably do need engineers who think in graph traversals and Byzantine fault tolerance.

I'm not claiming complex algorithms are never relevant. I'm claiming they're relevant for maybe 2% of engineering jobs, and that 2% has been setting the bar for the other 98%.

The irony is that the companies with the most resources to run selective algorithm screens are also the ones that can afford false negatives. When you have 100,000 applicants for 500 roles, you can filter aggressively and lose a lot of good engineers and it barely registers. When your 40-person startup uses the same process, you're actively selecting against the people who have production experience but not enough free time to grind LeetCode for three months.

The rest of the industry adopted the aesthetic without the justification.

What Good Interviews Actually Test

Side-by-side comparison. Left: blank editor with prompt to implement Dijkstra's from memory, labelled measures interview prep. Right: real code snippet with a highlighted bug, labelled measures actual job skills.
The interview that exists vs. the interview that would actually tell you something.

Google's Code Comprehension round is a useful template. Here's what it evaluates, and what more interviews should:

Code reading fluency. Can you orient yourself in an unfamiliar codebase within minutes? This is what engineers do on day one of every job, every time they join a new team, every time they get paged at 3 AM on a service they've never touched.

Debugging under real constraints. Given a broken system with real code, can you form a hypothesis, test it, and narrow it down? Not from a blank editor, but from production-style code with all the ambiguity that implies.

Tradeoff articulation. Can you explain why you'd pick approach A over approach B, and what you're giving up? Can you defend a decision when someone pushes back?

AI judgment. Can you use an AI assistant as a tool? Prompt it, evaluate the output critically, reject it when it's wrong. This is now a core engineering competency, not an optional skill.

Domain curiosity. Do you ask questions about the business context? Do you understand that software doesn't exist in a vacuum and that the right answer depends on constraints you haven't been told yet?

The system design round, which most companies already include, is already closer to this than algorithm interviews are. It's where experienced engineers tend to separate themselves. The algorithm round is where candidates who've spent three months grinding NeetCode separate from candidates who've spent three months shipping software. These are not the same thing.

What Will Happen Now

The interview is not going away. It is changing shape, and faster than most hiring managers realize.

Agentic interviewers are already live. Platforms are shipping AI-driven sessions where candidates receive a real codebase, a production-style task, and an AI assistant they're expected to use. The evaluator is no longer watching whether you can implement merge sort from memory. It's watching how you operate: do you prompt clearly, do you verify the output, do you catch what the model gets wrong?

That is a harder test. Not harder in the grinding-NeetCode sense, but harder in the way real work is hard: ambiguous, contextual, resistant to memorization. You cannot prepare for it by solving 300 problems in a list. You prepare for it by actually shipping software.

The transition will be uneven. Companies will keep running algorithm screens out of inertia. Hiring managers who built their careers on hard graph problems will keep writing hard graph problems. The grind-prep ecosystem will adapt slowly, then all at once.

But the direction is already set. Google moved. HackerRank publicly apologized and built Chakra. The tooling for AI-native interviews exists and is being adopted. What remains is for the rest of the industry to follow, which it will, because it always does.

The algorithm interview is not dead. It is being deprecated.

Split screen: left panel in red shows LeetCode Hard difficulty, right panel in green shows O(n) to O(1) optimization. Bottom text reads: The Algorithm Interview Is Dead.

Discussion

Sign in to leave a comment.

or continue with

Loading comments...