Intermediate Interview Preparation Guide (2-4 Years)

Intermediate Interview Preparation Guide

For candidates with 2-4 years of software engineering experience

Overview

As an intermediate engineer, you’re expected to tackle more complex algorithmic problems and demonstrate deeper understanding of system design fundamentals. This 6-8 week intensive guide prepares you for interviews at top tech companies including FAANG.

Prerequisites

  • Comfortable with all basic data structures and algorithms
  • Can solve 80%+ of LeetCode Easy problems
  • Understanding of Big O notation
  • Experience with at least one major programming language
  • Professional software development experience

Timeline: 6-8 Weeks

Week 1: Advanced Arrays and Strings

Focus: Complex Patterns and Optimization

Topics:

  • Sliding window variations
  • Two pointers advanced techniques
  • String matching algorithms (KMP, Rabin-Karp)
  • Subarray problems

Target Problems (15-20):

  • Longest Substring Without Repeating Characters (Medium)
  • Minimum Window Substring (Hard)
  • Longest Palindromic Substring (Medium)
  • Find All Anagrams in String (Medium)
  • Sliding Window Maximum (Hard)

Week 2: Dynamic Programming Fundamentals

Focus: 1D and 2D DP

Topics:

  • Memoization vs tabulation
  • State definition and transitions
  • 1D DP (House Robber, Climbing Stairs)
  • 2D DP (Unique Paths, Edit Distance)

Target Problems (10-15):

  • Longest Increasing Subsequence (Medium)
  • Coin Change (Medium)
  • Word Break (Medium)
  • Longest Common Subsequence (Medium)
  • Edit Distance (Medium)

Week 3: Advanced Tree and Graph Algorithms

Focus: Complex Traversals and Path Finding

Topics:

  • Binary tree serialization/deserialization
  • Lowest Common Ancestor
  • Graph traversals (DFS, BFS)
  • Topological sort
  • Union-Find (Disjoint Set)

Target Problems (15-20):

  • Binary Tree Maximum Path Sum (Hard)
  • Serialize and Deserialize Binary Tree (Hard)
  • Course Schedule (Medium)
  • Number of Islands (Medium)
  • Clone Graph (Medium)

Week 4: Advanced Dynamic Programming

Focus: Knapsack, Subsequences, and Optimization

Topics:

  • 0/1 Knapsack and variations
  • Unbounded Knapsack
  • DP on strings
  • DP with bitmasks

Target Problems (10-15):

  • Partition Equal Subset Sum (Medium)
  • Target Sum (Medium)
  • Palindrome Partitioning II (Hard)
  • Burst Balloons (Hard)
  • Regular Expression Matching (Hard)

Week 5: Heaps, Tries, and Advanced Data Structures

Focus: Specialized Structures

Topics:

  • Min/Max Heap operations
  • Trie implementation
  • LRU Cache design
  • Design problems

Target Problems (10-15):

  • Implement Trie (Medium)
  • LRU Cache (Medium)
  • Top K Frequent Elements (Medium)
  • Find Median from Data Stream (Hard)
  • Design Twitter (Medium)

Week 6: System Design Fundamentals

Focus: Scalability and Architecture

Topics:

  • Load balancing
  • Caching strategies
  • Database sharding
  • CAP theorem
  • Microservices basics

Practice Designs:

  • URL Shortener (bit.ly)
  • Rate Limiter
  • Key-Value Store
  • Notification System

Weeks 7-8: Mock Interviews and Polish

Focus: Interview Performance

Activities:

  • 10-15 mock coding interviews
  • 3-5 system design mock interviews
  • Behavioral interview practice
  • Review all patterns and problem types

Study Resources

Books:

  • Cracking the Coding Interview (all chapters)
  • System Design Interview by Alex Xu (Volume 1)
  • Designing Data-Intensive Applications by Martin Kleppmann

Online Platforms:

  • LeetCode: Focus on Medium problems, aim for 150-200 total
  • AlgoExpert: Comprehensive video explanations
  • Educative: Grokking the Coding Interview, Grokking System Design

Interview Expectations by Company

Google (L3/L4):

  • 2-3 coding rounds (45-60 min each)
  • Focus: Algorithms, data structures, complexity analysis
  • Expect medium-hard problems
  • 1 round may include system design discussion

Amazon (SDE2):

  • 2-3 coding rounds
  • 1-2 rounds focused on Leadership Principles
  • Expect medium problems with edge cases
  • System design for senior positions

Facebook/Meta (E4):

  • 2 coding rounds (medium-hard)
  • 1 system design round
  • 1 behavioral round (culture fit)
  • Focus on problem-solving speed

Microsoft (60/61):

  • 2-3 coding rounds
  • Mix of easy-medium and medium-hard
  • Strong emphasis on testing and edge cases
  • System design discussion

Problem-Solving Patterns to Master

  1. Sliding Window: Substring, subarray problems
  2. Two Pointers: Pair problems, palindromes
  3. Fast & Slow Pointers: Cycle detection
  4. Merge Intervals: Scheduling, overlaps
  5. Cyclic Sort: Missing numbers in range
  6. In-place Reversal of Linked List: List manipulation
  7. BFS/DFS: Tree and graph traversal
  8. Top K Elements: Heaps
  9. Binary Search: Sorted arrays, search space
  10. Backtracking: Permutations, combinations
  11. Dynamic Programming: Optimization problems

System Design Preparation

Core Concepts to Master:

  • Horizontal vs vertical scaling
  • Load balancers (L4 vs L7)
  • Caching (Redis, Memcached)
  • Databases (SQL vs NoSQL, indexing, sharding)
  • Message queues (Kafka, RabbitMQ)
  • CDNs and edge caching
  • Microservices architecture

Design Interview Template:

  1. Requirements (5 min): Clarify functional and non-functional requirements
  2. Estimation (3 min): Users, QPS, storage needs
  3. High-Level Design (10 min): Draw main components
  4. Deep Dive (20 min): Focus on 2-3 components in detail
  5. Bottlenecks (5 min): Identify and resolve

Behavioral Interview Prep

Prepare 8-10 stories using STAR method:

  • Situation: Context and background
  • Task: What needed to be done
  • Action: What you specifically did
  • Result: Outcome and learnings

Cover these themes:

  • Leadership and influence
  • Conflict resolution
  • Technical challenges overcome
  • Failed project and learnings
  • Innovation and creativity

Success Metrics

You’re ready when:

  • ✓ Can solve 60%+ of LeetCode Medium problems
  • ✓ Comfortable with 20%+ of Hard problems
  • ✓ Can design 3-4 common systems from scratch
  • ✓ Pass 70%+ of mock interviews
  • ✓ Can explain tradeoffs clearly

Target Statistics:

  • 150-200 LeetCode problems solved
  • 5-10 system designs practiced
  • 10+ mock interviews completed

Final Tips

  • Focus on understanding patterns, not memorizing solutions
  • Practice explaining your thought process out loud
  • Time yourself consistently (45 min for coding, 45 min for system design)
  • Don’t ignore behavioral prep—it matters at senior levels
  • Apply broadly—interviewing is a skill that improves with practice

Remember: At this level, companies assess not just your coding ability, but also your communication, system design thinking, and cultural fit. Prepare holistically for the best results.

Scroll to Top