Job Search

JOB SEARCH TECHNICAL INTERVIEWS

A strong technical interview is a conversation, not a trivia contest.

Technical knowledge matters.

But knowing something and showing how you think under interview conditions are different skills.

A strong interview makes your reasoning visible: how you understand the problem, what you assume, what you check, what tradeoffs you see, and how you would prove the result.

Technical interviews are testing more than recall.

Different teams and interviewers emphasize different things. These are common signals that strong technical interviews can reveal.

Technical depth
Can you explain the system beyond definitions?
Reasoning
Can someone follow how you reached the conclusion?
Troubleshooting
Can you investigate methodically instead of guessing?
Communication
Can you make assumptions, uncertainty, and decisions understandable?
Evidence
Can you connect your answers to real things you have built, operated, debugged, or changed?
Operational judgment
For production-oriented roles, do you consider impact, blast radius, reversibility, and safe mitigation?

Prepare for this interview, not for technical interviews in general.

Map the role, your evidence, the company context, the format, and the logistics before deciding how to practice.

01

Role

  • What technical areas does the role emphasize?
  • Which responsibilities appear central?
  • What level of ownership is expected?

Use Role Fit to identify the technical priorities without rebuilding the role analysis here.

Review the Role Fit Guide

02

Resume & evidence

  • Can I defend every important technical claim?
  • Can I separate what I did from what the team did?
  • Can I explain the real scale, architecture, decisions, tradeoffs, failures, and result?

Anything on the resume can become an interview question.

Review the Resume Guide

03

Company & team

  • What does the company build?
  • What kind of technical environment might this team operate?
  • What useful information about the role or team is publicly available?

Use the available context to make preparation more relevant, not to guess private details.

04

Format

  • Is this troubleshooting, coding, scripting, system design, architecture, a technical deep dive, a take-home, a panel, or a mixed interview?
  • What tools or environment are expected?

Knowing the format changes how you practice.

05

Logistics

  • Have I confirmed the time, timezone, and meeting link?
  • Is the coding environment or required software ready?
  • Are the camera, microphone, internet, and physical environment reliable?

Remove avoidable friction before the interview begins.

Do not make the interviewer guess how you got there.

Weak

“It's DNS.”

Stronger

“The service responds when I use the IP directly, but requests fail through the hostname.

That makes name resolution suspicious.

I'd verify DNS next.”

The stronger answer does not narrate every thought. It gives the interviewer enough information to understand the observation, what it suggests, what comes next, and why.

Observation
What did I see?
Interpretation
What does it suggest?
Next check
What would I test next?
Why
What am I trying to prove or eliminate?

Thinking out loud does not mean saying every thought.

Useful

“I would check CPU next because the latency increase started at the same time CPU saturation increased.”

Not useful

“I guess maybe CPU... or memory... maybe network... I'm not sure...”

The goal is structured reasoning, not a stream of consciousness.

Use TRACE when the question is about a system, architecture, or troubleshooting problem.

TRACE is especially useful for system behavior questions, architecture discussions, troubleshooting scenarios, production incidents, and infrastructure problems.

It is not mandatory for every question. A simple factual question or coding exercise may need a different structure.

T

Target

Clarify the goal, symptom, scope, and impact.

  • What exactly is failing?
  • Who is affected?
  • When did it start?
  • What changed?
  • What does success look like?

R

Route

Walk the system end to end. Understand the path the request, data, process, or dependency follows.

  • Client → DNS → network → load balancer → service → dependency → response

A

Assumptions

Separate fact from assumption. State what you know and what you have not proven.

  • I know the service responds directly.
  • I have not yet proven DNS is healthy.
  • I am assuming all users are affected unless evidence shows otherwise.

C

Checks

Explain what evidence would prove or eliminate a hypothesis.

  • Metrics, logs, traces, events, configuration, dependency health, recent changes, process state, resource state, and network behavior.

E

Evidence

Verify the conclusion or fix. Do not stop at: ‘I changed it.’ Finish with: ‘How do I know?’

  • What result would confirm my hypothesis?
  • How would I know the mitigation worked?
  • How would I verify customer impact recovered?
  • What could still be broken?

TRACE example

“The website is down. What do you do?”

Target
Who is affected? Since when? What changed? What is the customer impact?
Route
Client → DNS → network → load balancer → service → dependency.
Assumptions
What currently appears healthy? What have I not proven?
Checks
Metrics, logs, traces, events, recent changes, and dependency health.
Evidence
How will I prove the customer path is healthy again?

Show a method, not a command dump.

Before listing tools or commands, establish what changed, what is affected, how urgent it is, what normal looks like, and whether a safe mitigation exists.

What changed?
Deploy, configuration, dependency, traffic, or infrastructure?
What is affected?
One host, one service, one region, one customer segment, or everyone?
How urgent is it?
Is the system degraded, unavailable, dangerous, or putting data at risk?
What does normal look like?
What useful baseline should I compare against?
Can I mitigate safely?
Rollback, fail over, disable a feature, or reduce blast radius?

Then build evidence.

Metrics

What changed quantitatively?

Logs

What events or failures occurred?

Traces

Where is the request spending time or failing?

Events

What changed in the environment?

Configuration

Did expected state change?

Dependencies

Are upstream or downstream systems healthy?

For Linux and production troubleshooting practice, use the Linux Troubleshooting Cheat Sheet as a supporting reference.

Use the Linux Troubleshooting Cheat Sheet

A stronger answer is not simply a longer answer.

Too shallow

“Put it behind a load balancer.”

The interviewer cannot see enough reasoning or system understanding.

Right depth

Answer the question first. Explain the most important reason. Mention the next major concern. Let the interviewer pull the conversation deeper.

The answer is useful now and has room to expand.

Too deep

A simple question turns into twelve cloud services, Kubernetes internals, Kafka, BGP, service mesh, and multi-region architecture when none of it was needed.

The candidate is demonstrating everything they know instead of solving the problem asked.

Depth depends on the role.

These are useful readiness levels for a technical domain, not a universal maturity ladder.

  1. Need review

    I cannot explain this reliably yet.

  2. Explain

    I understand the normal system and can explain how it works.

  3. Troubleshoot

    I can reason through failures and identify useful evidence.

  4. Tradeoffs

    I can discuss design choices, failure behavior, operational safety, and context.

You do not need Tradeoffs-level depth in every technology. Prioritize based on the role.

Good engineering questions often do not have one universal answer.

What do we gain?
What becomes simpler, faster, safer, or more capable?
What do we give up?
What cost, complexity, risk, or constraint does the choice introduce?
When does it fit?
Which requirements and operating conditions make the choice reasonable?
When would I choose something else?
Which changed constraint would make another option better?

Useful dimensions may include simplicity, reliability, availability, latency, consistency, cost, operational burden, security, scalability, and developer experience.

System design behavior

A system-design discussion does not require you to unload an entire distributed-systems course. Make the decision path understandable.

Clarify
What are the requirements?
Constraints
What matters most: scale, latency, availability, consistency, security, or cost?
Assumptions
What am I assuming?
Baseline
Start with a simple, reasonable design.
Tradeoffs
Explain the choices instead of naming components without a reason.
Failure modes
What breaks, and how would the system respond?
Evolve
How would the design change if the requirements changed?

Do not assume there is one secret architecture hidden in the interviewer's head.

Getting stuck does not have to end the interview.

Knowledge gap

You do not know something.

Recovery

Your first assumption or answer was wrong, or you had a bad moment.

When you do not know

Say what you know
“Let me start with the part I am confident about.”
State the boundary
“I do not remember the exact flag, but I know what information I need.”
State an assumption
“Can I assume DNS is resolving correctly?”
Reason from first principles
Use what you understand about the system instead of guessing randomly.
Ask for one useful clue
If needed, ask one focused question that helps you continue.

The problem is not saying “I do not know.” The problem is pretending to know something you do not.

A bad five minutes does not have to become a bad interview.

You may misunderstand a question, make a wrong assumption, get corrected, blank temporarily, need a hint, or realize the first path is wrong.

  1. Acknowledge

    Recognize the incorrect assumption, misunderstanding, or missed signal.

  2. Reset

    Stop defending a path that no longer makes sense.

  3. Use the new information

    Update the model of the problem.

  4. Continue

    Move forward with the corrected reasoning.

Prioritize by role, not by ego.

If Kubernetes is central to the role and it is your weakest important area, that matters more than polishing a technology the team barely uses.

  1. Job description

  2. 5 to 8 important areas

  3. Current depth

  4. Weakest important area

  5. Practice

Build a learning loop.

  1. Understand

    Can I explain how it works?

  2. Practice

    Can I use it?

  3. Break

    Can I reason through failure?

  4. Explain

    Can I teach the system clearly?

  5. Repeat

    Can I do it again without relying on memorized wording?

Practice systems from beginning to end.

Complete journeys connect isolated technical knowledge into system behavior.

Git / delivery

git push → remote → CI → build → test → artifact → deploy → runtime

Request path

user request → DNS → network → load balancer → service → dependency → response

Kubernetes

pod scheduled → image pulled → container started → readiness → service traffic

Incident

detection → triage → mitigation → recovery → verification

Coding & scripting interviews

Coding is one interview format. Focus on making the work understandable rather than silently coding for twenty minutes.

Understand
Clarify inputs, outputs, constraints, and edge cases.
Plan
Explain the approach before disappearing into code.
Implement
Keep the solution understandable.
Test
Check normal and useful edge cases.
Verify
Explain complexity or failure behavior where relevant.

Do not optimize before the basic solution works.

Do not stop the instant the code executes.

Your strongest examples should come from work you can actually explain.

  • incidents
  • migrations
  • difficult bugs
  • infrastructure changes
  • automation
  • performance problems
  • operational improvements
  • architecture decisions
  • project tradeoffs

Interview day is execution, not another study session.

Listen
Hear the full question. Do not start solving halfway through.
Clarify
Resolve important ambiguity.
Structure
Give the answer a path.
Reason
Make the thinking visible.
Check
Use evidence instead of random guesses.
Recover
Change direction when new information invalidates the first path.
Verify
Explain how you would know.

Validate before you stop.

What assumption did I make?

What important thing could still fail?

How would I verify this?

Not every answer requires a long validation speech. One meaningful sanity check may be enough. Validation should feel like engineering judgment, not ceremony.

Are you ready to perform, not just study?

Role map
Do I know what this interview is likely to test?
Resume
Can I defend every important technical claim I made?
Technical depth
Can I explain the important systems beyond definitions?
Reasoning
Can someone follow how I reached my answer?
TRACE
Can I structure systems and troubleshooting questions using Target, Route, Assumptions, Checks, and Evidence?
Troubleshooting
Can I investigate methodically instead of listing random commands?
Assumptions
Do I separate what I know from what I assume?
Depth
Can I answer clearly first and go deeper when needed?
Tradeoffs
Can I explain why one choice is better in a particular context?
Operational judgment
For production-oriented roles, do I consider impact, blast radius, reversibility, and safe mitigation?
Evidence
Can I connect important answers to real work?
Uncertainty
Can I say ‘I do not know’ without ending the conversation?
Recovery
Can I change direction when my assumption is wrong?
Validation
Can I explain how I would prove the result?
Communication
Can the interviewer understand my reasoning without decoding jargon?

Make your reasoning easy to follow.

Understand the problem.

State your assumptions.

Build evidence.

Explain the tradeoffs.

Recover when you are wrong.

Verify the result.

KEEP GOING