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
- Sliding Window: Substring, subarray problems
- Two Pointers: Pair problems, palindromes
- Fast & Slow Pointers: Cycle detection
- Merge Intervals: Scheduling, overlaps
- Cyclic Sort: Missing numbers in range
- In-place Reversal of Linked List: List manipulation
- BFS/DFS: Tree and graph traversal
- Top K Elements: Heaps
- Binary Search: Sorted arrays, search space
- Backtracking: Permutations, combinations
- 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:
- Requirements (5 min): Clarify functional and non-functional requirements
- Estimation (3 min): Users, QPS, storage needs
- High-Level Design (10 min): Draw main components
- Deep Dive (20 min): Focus on 2-3 components in detail
- 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.