DEV Community

Cover image for The Interview Question Pattern Nobody Tells You About
Igor Potapenko
Igor Potapenko

Posted on

The Interview Question Pattern Nobody Tells You About

The Interview Question Pattern Nobody Tells You About

I've spent the last few weeks going deep on technical interview questions — across backend, frontend, QA, DevOps, mobile, data — trying to figure out why some candidates who clearly know the material still stumble in interviews.

There's a pattern. Once you see it, you can't unsee it, and it changes how you should actually prepare.

Every technical question has two layers

Take a question as basic as "what's the difference between let and var in JavaScript." There's the textbook answer — block scope vs function scope, hoisting behavior, temporal dead zone. Most candidates have this memorized cold.

Then there's the follow-up: "here's a loop with var i and a setTimeout inside it — what does this log, and why?"

That second question is where interviews are actually won or lost. It's not testing whether you memorized a definition. It's testing whether you understand the definition well enough to predict behavior you haven't seen before.

I started calling this "what gets recited" vs "what actually gets tested." Almost every technical interview question worth asking has both layers, and interviewers use the second layer specifically because the first one is trivially prep-able.

Some examples across different areas

Django ORM: What gets recited — the ORM lets you query with Python instead of SQL. What actually gets tested — "why is this view slow" (almost always N+1 queries), and whether you reach for select_related vs prefetch_related and can explain why one fits foreign keys and the other fits reverse relations / many-to-many.

React re-renders: What gets recited — React re-renders on state or prop changes. What actually gets tested — given a component tree, which children re-render when the parent's state changes, and why React.memo does or doesn't help in a specific case.

TCP vs UDP: What gets recited — TCP is reliable, UDP is fast. What actually gets tested — "why would you choose UDP knowing it drops packets," which requires naming a real tradeoff (video calls, live streaming) instead of just contrasting definitions.

DNS: What gets recited — DNS resolves domains to IPs. What actually gets tested — "a user says the site is down, your server logs show nothing wrong, what do you check first" — which is really asking whether you know DNS is a common invisible failure point before you even reach the application layer.

Notice the shape is always the same. Layer one is something you could get from a flashcard app. Layer two only shows up if you've actually hit the failure mode, debugged it, or thought hard enough about why the textbook answer is true.

Why "just study more questions" doesn't fix this

The instinct when prepping is to collect more questions. More LeetCode, more question banks, more "Top 50 X interview questions" articles (guilty — I've written a bunch of these myself). But collecting more layer-one answers doesn't help you with layer two, because layer two isn't really about the topic — it's about whether you can reason out loud when someone pushes on your answer.

That's a different skill than recognition. Reading "oh yeah, N+1 queries, I know that" when you see it in an article is not the same cognitive task as noticing it live, in someone else's code, under mild time pressure, while explaining your reasoning as you go.

What actually helps

A few things I'd genuinely recommend, roughly in order of effort:

  1. After you learn any concept, write your own follow-up question for it. If you just learned about the N+1 problem, ask yourself: "okay, when would prefetch_related actually be worse than just eating the N+1?" Forcing yourself to generate the follow-up is most of the value of having one asked to you.
  2. Explain answers out loud, not just in your head. There's a real gap between "I understand this" and "I can produce a coherent explanation of this on demand." You only find that gap by actually talking, not by silently reviewing notes.
  3. Practice with something that pushes back. Reading a Q&A list gets you layer one. You need something — a person or a tool — that notices when your answer is thin and asks the natural follow-up, the way a real interviewer would.

That third point is exactly the gap I was trying to close with Prepair — it's a free mock interview tool that asks role-specific questions and actually follows up when an answer stays surface-level, instead of just checking your response against a static answer key. Full disclosure, I built it, so take the plug for what it's worth — but the "recited vs. tested" gap above is the actual problem it's trying to solve, not just marketing copy.

The takeaway

If you're prepping for interviews, don't just ask "do I know this topic." Ask "could I survive a good follow-up question on this topic, out loud, right now." Most of the time the honest answer is no, and that gap — not gaps in raw knowledge — is what actually shows up in a bad interview.


What's a follow-up question that caught you off guard in an interview, even though you knew the base topic cold? Curious what patterns other people have run into.

Top comments (0)