Skip to main content
Back to career
#Interviews#Career#DSA#Software Engineering

Technical Interviews: A Practical Guide from Preparation to Offer

My honest guide to cracking technical interviews — DSA patterns, system design basics, behavioural questions, and negotiation. No fluff.

December 2024
12 min read

The Honest Truth About Technical Interviews

Technical interviews are not a perfect measure of engineering skill — but they're the gate you have to pass. So let's pass them efficiently.


Phase 1: Data Structures & Algorithms

You don't need to memorise 500 LeetCode problems. You need to recognise 15 patterns.

The Core Patterns

PatternWhen to useKey data structure
Sliding WindowContiguous subarray/substringArray, String
Two PointersSorted arrays, pairsArray
Fast & Slow PointersCycles, middle of listLinked List
Merge IntervalsOverlapping rangesArray
Cyclic SortSorted range, missing numbersArray
Binary SearchSorted inputArray
BFSShortest path, level orderQueue
DFSTree traversal, pathsStack/Recursion
Dynamic ProgrammingOptimal substructureArray/Map
BacktrackingCombinations, permutationsArray

Sliding Window Example

def max_sum_subarray(arr, k):
    window_sum = sum(arr[:k])
    max_sum = window_sum
    for i in range(k, len(arr)):
        window_sum += arr[i] - arr[i - k]
        max_sum = max(max_sum, window_sum)
    return max_sum

Study Order (4-6 weeks)

Week 1: Arrays, Strings, Hash Maps
Week 2: Linked Lists, Stacks, Queues
Week 3: Trees, BFS, DFS
Week 4: Graphs, Union Find
Week 5: Dynamic Programming (start easy)
Week 6: Mock interviews on Pramp or interviewing.io

Phase 2: System Design

For mid-level and senior roles, system design is often more important than DSA.

Framework: RESHADED

  • R — Requirements (clarify functional & non-functional)
  • E — Estimation (users, QPS, storage)
  • S — Storage (SQL vs NoSQL, schema)
  • H — High-level design (boxes and arrows)
  • A — APIs (REST endpoints)
  • D — Deep dive (bottlenecks, scale)
  • E — Edge cases
  • D — Discuss trade-offs

Key Concepts to Know

  • Load balancing: Round-robin, least connections, consistent hashing
  • Caching: Redis, CDN, cache invalidation strategies
  • Databases: SQL vs NoSQL, sharding, replication, indexing
  • Message queues: Kafka, RabbitMQ for async processing
  • CAP theorem: Consistency, Availability, Partition tolerance

Phase 3: Behavioural Questions — STAR Method

Situation → Task → Action → Result

Prepare 5-6 stories that can answer most behavioural questions:

  1. Biggest technical challenge you overcame
  2. Conflict with a teammate — how you resolved it
  3. Project you're most proud of
  4. Time you failed and what you learned
  5. Tight deadline — how you prioritised

Phase 4: The Interview Day

  • Think out loud — interviewers want to see your process
  • Clarify before coding — ask about edge cases, constraints
  • Write a brute force first, then optimise
  • Test with examples before saying you're done
  • Ask good questions at the end:
    • "What does the first 90 days look like?"
    • "What's the biggest technical challenge the team faces?"
    • "How is success measured for this role?"

Phase 5: Negotiation

Always negotiate. The first offer is rarely the best offer.

  • Get the offer in writing before negotiating
  • Research salaries on Glassdoor, Levels.fyi, LinkedIn Salary
  • Negotiate base, equity, signing bonus as a package
  • Use the silent pause: state your counter and wait

Questions? Connect on LinkedIn — happy to do mock interviews too.

if (helpful) {

}

Found this useful? Follow me on GitHub · Hire me for your project

Technical Interviews: From Preparation to Success | hesbon.dev