Why most people practise the wrong way
Most candidates prepare by grinding problems alone. That builds recall, but it skips the part that actually fails people in interviews: thinking out loud, handling pressure, and responding to a follow-up you did not expect. A mock interview is the closest you can get to the real thing without the stakes, so it deserves a plan rather than a few random sessions in the final week.
The gap is easy to miss because solo practice feels productive. You solve a problem, you check the answer, you move on. But the interview room asks something different. It asks you to narrate a half-formed idea while a stranger watches, to recover when your first approach is wrong, and to stay coherent when the clock is visible. None of that is exercised when you code in silence with the solution one tab away.
The goal of a mock plan is not to feel ready. It is to find the specific places where you go quiet, ramble, or freeze, and then close those gaps one at a time. A good plan is structured, repeatable, and honest about what is not working yet.
A mock interview that always goes well is a mock interview that is too easy. If you are not occasionally getting stuck or corrected, you are rehearsing, not training.
What good practice looks like versus weak practice
It helps to name the difference before you start, because the two can look similar from the outside.
| Weak practice | Strong practice |
|---|---|
| Solve, check answer, repeat | Solve out loud, then review the recording |
| Friend who agrees with everything | Partner who interrupts and probes |
| Same comfortable problem types | Deliberate focus on weak rounds |
| No notes, no log | One written fix after every session |
| Cram harder as the date nears | Taper in the final two days |
If most of your column is on the left, the plan below is the correction.
Set a target and work backwards
Start with the loop you expect to face. A backend role might include a coding screen, a system design round, and two behavioural conversations. A frontend role might swap system design for a UI build or a debugging exercise. Read your target job descriptions and list the rounds you are likely to get. If you are not sure what a given company runs, the recruiter screen is the moment to ask. Recruiters answer this readily, and the structure they describe tells you exactly what to rehearse.
Then assign each round a confidence score from one to five. Be strict. A three means you can muddle through on a good day. Anything below a four needs deliberate practice. This scoring tells you where to spend time, so you are not over-preparing the round you already handle well. Most people inflate these numbers, so a useful test is to ask whether you could pass that round cold, right now, with a sharp interviewer. If the honest answer is no, it is not a four.
A four-week structure works for most people:
- Week one: baseline mocks across every round type, no preparation, just to measure where you are.
- Week two: focused drills on your two weakest rounds.
- Week three: full mock loops that string rounds together, closer to interview conditions.
- Week four: light maintenance, sleep, and one or two final mocks to stay warm.
If you only have two weeks, compress weeks two and three and keep the baseline session. Skipping the baseline is the most common mistake, because it removes your only honest measurement. The baseline feels like a waste when you are short on time, but it is the one session that tells you where the other sessions should go.
How the plan shifts by seniority
The same skeleton applies at every level, but the weight changes. The table below is a rough guide for where to spend a fixed amount of practice time.
| Level | Coding | System design | Behavioural |
|---|---|---|---|
| Junior to mid | 60% | 15% | 25% |
| Senior | 35% | 35% | 30% |
| Staff and above | 20% | 40% | 40% |
At junior level the bar is correctness and clean thinking under time, so coding dominates. At senior level the design round starts carrying real weight and the behavioural round shifts from "are you pleasant" to "can you own and influence". At staff level the technical rounds rarely sink a strong candidate; the design discussion and the stories about leading through ambiguity do. Adjust the plan to where the decision actually gets made for your level.
Find partners and tools that push back
A mock interview only helps if the interviewer challenges you. A friend who nods along teaches you nothing. You have a few options:
- Peers in the same job search. Trade interviewer and candidate roles. The person interviewing learns just as much by watching for vague answers, so this is not charity, it is mutual training.
- Paid mock services. Platforms like interviewing.io and Pramp connect you with engineers who run realistic loops, and some offer anonymous practice. Paid mocks are worth it for the round you cannot crack alone, because a real engineer sees the blind spot you keep missing.
- An LLM as a practice interviewer. This is cheap and available at any hour. The trick is forcing it to behave like a real interviewer rather than handing you the answer.
A useful prompt for AI practice looks like this:
Act as a senior backend interviewer for a 45-minute coding round.
Give me one problem. Ask me to clarify before I code.
Push back on my approach with one follow-up before I write anything.
Do not give hints unless I am stuck for more than two minutes.
After my solution, probe edge cases and complexity.
Score me on communication, correctness, and how I handled ambiguity,
and tell me the single thing that would most improve my score.The point is to stop the model from being a polite tutor. Make it interrupt, question, and withhold approval. The default behaviour of a model is to help you feel competent, which is the opposite of what a mock is for. If it starts coaching mid-problem, stop it and remind it to behave like an interviewer who is scoring you.
One caveat: an LLM will not replicate the social pressure of a human watching you. Use it for volume and for behavioural rehearsal, but make sure at least one or two sessions per round type are with a real person before the interview that matters.
Run each session like the real thing
Treat a mock as a dress rehearsal, not a study session. Set a timer. Use the same tools you will use in the real interview, whether that is a shared editor, a whiteboard, or a video call with screen share. Talk through your reasoning even when it feels awkward, because silence is what interviewers struggle to score. An interviewer cannot give you credit for a correct idea they never heard.
Record the session if your partner agrees. Watching yourself is uncomfortable and extremely useful. You will catch filler habits, long pauses, and moments where you jumped to code before understanding the problem. These are invisible to you in the moment.
After each mock, spend ten minutes on three questions:
- Where did I lose the interviewer's confidence?
- What did I assume that I should have checked?
- What would have made my answer one level stronger?
Write the answers down. A practice plan without notes is just activity, and you will repeat the same mistakes.
A worked example: clarifying before you code
Here is the same opening to a coding round, done two ways. The problem is "given a list of meeting time intervals, find the minimum number of rooms required".
A weak start jumps straight in:
Candidate: Okay, meeting rooms. I'll sort by start time and then
use a heap to track end times. Let me just write it.This skips every signal an interviewer is looking for in the first two minutes. It assumes the input shape, ignores edge cases, and gives the interviewer nothing to assess except code.
A strong start spends sixty seconds first:
Candidate: A few quick questions before I code.
Are the intervals sorted, or should I assume arbitrary order?
Can two meetings share a boundary, so does [9, 10] and [10, 11]
count as one room or two?
Are start and end always valid, with start < end?
And roughly how large can the input be, so I know whether an
O(n log n) sort is acceptable?
Interviewer: Arbitrary order, a shared boundary means the room is
free, inputs are valid, and assume up to a million intervals.
Candidate: Good. So a shared endpoint frees the room, which I'll
handle with my comparison. With a million intervals, O(n log n) is
fine and O(n squared) is not. I'll separate starts and ends, sort
both, and sweep. Let me talk through it as I write.The second version surfaces three decisions the first one buried: the boundary rule, the input scale, and the complexity target. It also signals seniority, because checking constraints before committing to an approach is exactly the judgement a strong engineer shows on the job. The code that follows can be identical. The difference in score comes from the first sixty seconds.
Common mistakes that quietly cost the offer
Most rejections are not about a missing algorithm. They are about repeated habits that the candidate never noticed because no one recorded them. The most common are:
- Coding before understanding. You solve a problem the interviewer did not ask. Always restate the problem and confirm constraints first.
- Going silent under pressure. When stuck, narrate the stuckness: "I'm considering two approaches and I'm weighing the trade-off." Silence reads as a freeze.
- Ignoring the hint. Interviewers nudge on purpose. If you talk over a hint or dismiss it, you signal that you do not collaborate well.
- No edge cases or testing. Finishing the happy path and saying "done" leaves easy marks on the table. Walk one or two cases by hand.
- Over-engineering the design round. Reaching for Kafka and global sharding before clarifying scale is a classic over-correction. Ask for the numbers first, then size the system to them.
- Behavioural answers with no result. A story that ends before the outcome leaves the interviewer unable to score impact.
Drill behavioural rounds with the same rigour
Engineers often over-index on technical rounds and wing the behavioural ones. That is a mistake, because behavioural rounds are where level and judgement get assessed. Build a small bank of stories covering conflict, failure, ownership, ambiguity, and influence. Practise telling each in two minutes with a clear situation, action, and result.
The structure that travels best is STAR: Situation, Task, Action, Result. The trap is spending ninety seconds on the situation and ten on the result. Invert that. The interviewer cares most about what you did and what changed because of it.
Here is a compressed before and after for the same prompt, "tell me about a time you disagreed with a teammate".
Before, vague and result-free:
"We were building a payments feature and a colleague wanted to use a different library. I thought mine was better. We talked about it and eventually went with one of them and it worked out fine."
After, specific and scored on impact:
"On a payments feature, a senior engineer wanted a heavier client library; I argued for a lighter one because our bundle size budget was already tight. Rather than debate opinions, I measured both: the heavier one added 140 kilobytes and 200 milliseconds to first load on a mid-range phone. I shared the numbers, we agreed the lighter library plus a small wrapper met our needs, and I owned the wrapper. Mobile conversion held steady and we stayed inside the performance budget."
The second version names the stakes, shows how the disagreement was resolved with evidence rather than seniority, and ends on a concrete result. In a mock, have your partner ask follow-ups like "what would you do differently" or "how did the other person react". The follow-ups are where weak stories collapse, so that is exactly where you want the practice.
Track progress and know when to stop
Keep a simple log: date, round type, confidence before, confidence after, and the single biggest fix. Over a few weeks you will see scores climb, and you will see which round refuses to improve. That stubborn round is where to book a paid mock with a real engineer, because it usually signals a blind spot you cannot see alone.
A few lines per session is enough. The value is in the pattern across sessions, not the detail of any one entry.
| Date | Round | Before | After | Biggest fix |
|---|---|---|---|---|
| 02 Jun | Coding | 2 | 3 | Restate constraints before coding |
| 04 Jun | System design | 2 | 2 | Ask for scale numbers up front |
| 06 Jun | Behavioural | 3 | 4 | Lead with the result, trim the setup |
Notice the design round above stayed flat at two across two sessions. That is the signal to stop self-practising it and book a real engineer, because two failed attempts at the same gap means you cannot see what you are missing.
Stop ramping in the final two days. More cramming raises anxiety and lowers performance. A short, easy mock the day before keeps you warm without draining you. The plan has done its job when your weakest round sits at a four and you can explain your thinking under time pressure without going quiet.
Frequently asked questions
How many mock interviews do I actually need? Quality matters more than count, but a useful floor is two to three per round type, with at least one against a real human for the round that decides your level. Beyond roughly eight to ten total, returns drop sharply unless you are fixing a specific named weakness.
Should I do mocks with strangers or friends? Both. Friends are free and low-friction for volume and behavioural rehearsal. Strangers, especially paid ones, remove the politeness that makes friends go easy on you, and they surface blind spots you have stopped noticing. Use friends to build reps and strangers to stress-test.
What if I freeze in a mock? Good. That is the cheapest possible place to freeze. Note what triggered it, narrate your way out next time, and treat the freeze as the exact thing the mock was for. Freezing in practice is data; freezing in the real interview is a rejection.
Can I prepare for system design entirely with an LLM? You can get a long way on the mechanics, but design rounds reward back-and-forth judgement and reading the interviewer's signals. Do the bulk of your reps with a model, then validate against at least one experienced engineer before it counts.
How far ahead should I start? Four weeks is comfortable for a full loop. If you have less, keep the baseline session and compress the middle weeks rather than cutting the measurement. Starting the week before is survivable but leaves no room to close a stubborn gap.
Continue your prep
Pair your mock plan with role-specific material and sample answers: