Interviewing#

Interviewing is a skill engineers use throughout their careers — on both sides of the table. As a candidate, structured preparation and storytelling separate “great engineer who bombed the interview” from “great engineer who got the offer.” As an interviewer, designing fair, signal-rich questions and evaluating without bias is a craft that most people never formally learn.

Being Interviewed#

The STAR Method#

Behavioural questions (“Tell me about a time when…”) are best answered with the STAR framework:

ComponentPurposeDurationExample
SituationSet the scene — context the interviewer needs15–20%“Our payment service was processing 10k transactions/hour and we started seeing timeout errors during peak…”
TaskWhat was your responsibility specifically?10–15%“As the backend lead, I was responsible for diagnosing the issue and implementing a fix before Black Friday.”
ActionWhat did YOU do? (not the team)50–60%“I added distributed tracing, identified the N+1 query, implemented batch loading with a circuit breaker…”
ResultQuantified outcome15–20%“Latency dropped from 800ms to 120ms at P95. Zero timeouts during Black Friday (3x normal traffic).”

STAR Anti-Patterns#

MistakeProblemFix
“We did X” without your contributionInterviewer can’t assess YOUR skillUse “I” — be specific about your role
All situation, no actionStory without substanceKeep Situation brief, spend time on Action
No measurable resultImpact is unclearQuantify: time saved, revenue impact, uptime, team velocity
Rehearsed and roboticFeels inauthenticPractice the structure, not a script. Know your stories, speak naturally.
Only success storiesSeems unreflectiveHave 2–3 failure stories with clear learnings

Building Your Story Bank#

Prepare 8–10 stories that cover these common behavioural dimensions:

DimensionExample questionsStory you need
Technical leadership“Tell me about a difficult technical decision”Architecture choice with trade-offs
Conflict resolution“How did you handle a disagreement?”Disagreement with a peer that you resolved constructively
Failure and learning“Tell me about a mistake”A real failure where you grew
Influence without authority“How did you convince others?”Persuading stakeholders or another team
Delivery under pressure“Tell me about a tight deadline”Shipping despite constraints
Ambiguity“How do you handle unclear requirements?”Navigating uncertainty, asking the right questions
Mentoring“How have you developed others?”Growing a junior engineer
Cross-team collaboration“How did you work with other teams?”Coordinating a cross-functional initiative

System Design Interviews#

System design interviews test your ability to design large-scale systems from ambiguous requirements. They evaluate breadth of knowledge, communication, and structured thinking — not memorisation of specific architectures.

The System Design Framework#

PhaseDurationWhat you do
Clarify requirements5 minAsk questions. Functional vs non-functional. Scale, consistency, latency.
High-level design10 minDraw boxes and arrows. Core components, data flow, APIs.
Deep dive15 minInterviewer picks an area. Go deep on schema, algorithms, trade-offs.
Discuss trade-offs5 minWhat would you change at 10x scale? What are the failure modes?

Requirement Clarification Questions#

Always ask these before designing anything:

CategoryQuestions to ask
ScaleHow many users? Requests per second? Data volume?
ConsistencyStrong consistency or eventual? What happens with conflicts?
AvailabilityWhat’s the SLA? Can we tolerate brief downtime?
LatencyWhat’s acceptable? P50? P99?
Access patternsRead-heavy or write-heavy? Hot spots?
ConstraintsBudget? Team size? Existing infrastructure? Compliance?

Common System Design Pitfalls#

PitfallFix
Jumping to solution without clarifying requirementsAlways spend the first 5 minutes asking questions
Over-engineering (adding Kafka, Redis, ML on day one)Start simple. Add complexity only to solve stated requirements.
Ignoring failure modesFor every component, ask “what happens when this fails?”
Not discussing trade-offsThere’s no perfect design. Show you understand the costs.
Monologue without checking in“Does this approach make sense so far? Should I go deeper on any part?”
Only one “right answer” mindsetGood interviewers want to see your reasoning, not a specific architecture

Coding Interviews#

StageWhat to do
Read the problemUnderstand completely. Restate in your own words.
ClarifyEdge cases, constraints, input format. “Can the array be empty?”
Think aloudShare your approach before coding. “I’m thinking a two-pointer approach because…”
Start simpleBrute force first (if asked to optimise, you can iterate)
Test your codeWalk through with a small example. Check edge cases.
Discuss complexityTime and space. Without being asked.

Interview Day Logistics#

PreparationWhy it matters
Test your setup (camera, mic, IDE, whiteboard tool)Technical failures create stress and waste time
Have water nearbyTalking for hours dehydrates you
Prepare questions for each interviewerShows genuine interest and evaluates the company
Know the interview format in advanceAsk the recruiter. Don’t be surprised by a system design round.
Get sleepCognitive performance drops 25%+ when tired

Conducting Interviews#

Being on the interviewing side is equally skilled work. Poor interviewers waste the company’s time, alienate candidates, and make bad hiring decisions.

Designing Interview Questions#

PrincipleImplementation
Test what matters for the roleDon’t ask algorithm puzzles for a frontend role
Multiple signals per questionA good question reveals several things at once
Consistent across candidatesEveryone gets the same core question (allows comparison)
Calibrated difficultyThe question should differentiate, not just pass/fail
No gotchas or trick questionsYou’re evaluating skills, not cleverness

Behavioural Question Design#

Weak questionStrong questionWhy the strong version is better
“Are you a team player?”“Tell me about a time you disagreed with a teammate about a technical approach.”Tests behaviour, not self-assessment
“How do you handle stress?”“Describe a situation where you had competing urgent priorities.”Specific, forces a real example
“What’s your biggest weakness?”“Tell me about a recent piece of feedback you received and what you did with it.”Tests self-awareness and growth mindset

Evaluating Candidates Fairly#

BiasHow it manifestsMitigation
Halo effectStrong in one area → assume strong everywhereScore each dimension independently
Similar-to-meFavour candidates like yourselfDiverse interview panels
AnchoringFirst impression colours everythingTake notes during, score after
RecencyRemember the last candidate bestScore immediately after each interview
ConfirmationLook for evidence supporting your initial impressionActively seek disconfirming evidence
Culture fit vs culture addReject people who are “different”Define culture values explicitly. Hire for values, not sameness.

Writing Good Interview Feedback#

Your interview scorecard should be useful to the hiring committee, not just “thumbs up/down”:

ComponentWhat to include
Summary2-3 sentences: overall impression and key signal
Specific evidenceWhat exactly did they say/do that informed your assessment?
Dimension scoresRate each area independently (e.g., technical depth, communication, problem-solving)
ConcernsAny flags — be specific about what concerned you
Comparison to bar“Meets/exceeds/below bar for [level]” with reasoning

Rules for feedback:

  • Write it immediately after the interview (memory decays fast)
  • Don’t read others’ feedback before writing yours (prevents groupthink)
  • Be specific — “good communicator” is worthless; “explained complex async concepts clearly using analogies” is useful
  • Don’t evaluate based on nervousness — judge substance, not presentation anxiety

Giving Good Signal as an Interviewer#

Your job is to create conditions where the candidate can demonstrate their actual ability:

PrincipleApplication
Put them at ease2 minutes of warm-up. Introduce yourself. Explain the format.
Provide context“There’s no single right answer. I’m interested in your reasoning.”
Help when stuckGive a nudge after 2–3 minutes of struggle (not the answer)
Manage time“We have 10 minutes left — let’s make sure we cover X”
Leave time for their questionsTheir questions reveal priorities, curiosity, and judgment
Be honest about the roleDon’t oversell. Candidates who join with false expectations leave.

The Candidate Experience#

Remember: you’re being interviewed too. The candidate is evaluating your company, your team, and you.

Signal you sendCandidate interpretation
Prepared with questions, on timeThis team values my time and is organised
Distracted, late, didn’t read resumeThis company doesn’t care about people
Genuinely interested in their answersThis team values me as a person
Adversarial, trying to stump themThis is not a safe place to be vulnerable or learn
Honest about challengesTrustworthy — I’ll know what I’m signing up for
Only talks positivesSomething’s being hidden

Interview Types and What They Test#

Interview typeWhat it evaluatesDuration
BehaviouralPast behaviour, values, communication, self-awareness45–60 min
System designArchitecture skills, trade-off thinking, communication45–60 min
CodingProblem-solving, code quality, algorithmic thinking45–60 min
Take-home projectReal-world code quality, completeness, autonomy2–4 hours (time-boxed)
Pair programmingCollaboration, communication, real-time problem solving45–60 min
Culture / valuesAlignment with team norms, communication style30–45 min
PresentationAbility to explain complex topics, handle questions30–45 min

After the Interview#

As a Candidate#

OutcomeAction
Offer receivedEvaluate against your criteria (not just compensation). Ask clarifying questions.
RejectionAsk for feedback (many companies provide it). Learn. Don’t take it personally.
No responseFollow up once after a week. If still nothing, move on.

As an Interviewer#

ActionTimeline
Write feedbackSame day, within 2 hours
Attend debriefWithin 48 hours of final interview
Communicate decision to candidateWithin 1 week of final interview

Key Takeaways#

  • Use STAR (Situation-Task-Action-Result) for behavioural questions — spend 50%+ on the Action
  • Build a bank of 8–10 stories covering common dimensions (leadership, failure, conflict, delivery)
  • System design interviews: always clarify requirements first, start simple, discuss trade-offs
  • As an interviewer: test what matters for the role, not abstract puzzles
  • Score candidates independently per dimension to avoid halo effects
  • Write feedback immediately after each interview — before reading others’ assessments
  • Both sides are evaluating. Candidate experience is employer branding.
  • The best interviews feel like a conversation between potential colleagues, not an interrogation