#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
| Pattern | When to use | Key data structure |
|---|---|---|
| Sliding Window | Contiguous subarray/substring | Array, String |
| Two Pointers | Sorted arrays, pairs | Array |
| Fast & Slow Pointers | Cycles, middle of list | Linked List |
| Merge Intervals | Overlapping ranges | Array |
| Cyclic Sort | Sorted range, missing numbers | Array |
| Binary Search | Sorted input | Array |
| BFS | Shortest path, level order | Queue |
| DFS | Tree traversal, paths | Stack/Recursion |
| Dynamic Programming | Optimal substructure | Array/Map |
| Backtracking | Combinations, permutations | Array |
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:
- Biggest technical challenge you overcame
- Conflict with a teammate — how you resolved it
- Project you're most proud of
- Time you failed and what you learned
- 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