Deliberate Practice Plan for Problem Solving and System Design
Full Interview Prep Plan — DSA + System Design + Machine Coding
Start date: Mon, 23 Mar 2026 Schedule logic:
- Mon–Thu mornings (4:45–6:15): DSA problems
- Mon–Thu mornings (6:15–7:15): System design (read odd day / write from memory even day)
- Mon + Wed evenings (7:30–8:30 PM): Machine coding (skip if exhausted, do Saturday instead)
- Friday morning (5:00–6:30): DP problems
- Friday evening (6:00–8:30 PM): Machine coding deep session
- Saturday (8:00–11:00): DSA catch-up; (12:00–2:00) System design deep dive; (3:00–5:00) Machine coding OOP
- Sunday (9:00–10:30): Key technologies; (11:00–12:30) Revision; (2:00–3:30) Mock sim
Phase 1 — Foundation + Early DP
Goal: Pattern recognition + confidence + DP familiarity
Day 1 — Mon, 23/03/2026
Patterns: Two Pointers · DP — Fibonacci
Morning block (4:45–6:15) — DSA
- Squares of a Sorted Array
- Two Sum II
- 3Sum
Morning block (6:15–7:15) — System Design (read day)
- Read: Design Bit.ly — focus on URL shortening, hashing strategy, redirect flow
Evening (7:30–8:30 PM) — Machine Coding
- Design a Parking Lot — entities: ParkingLot, Level, Spot, Vehicle, Ticket. Focus on class structure first, then implement.
DP (carry to Friday or do after DSA if time)
- Climbing Stairs
- House Robber
Day 2 — Tue, 24/03/2026
Patterns: Sliding Window · DP — Fibonacci
Morning block (4:45–6:15) — DSA
- Maximum Average Subarray
- Minimum Size Subarray Sum
- Fruit Into Baskets
Morning block (6:15–7:15) — System Design (write from memory day)
- Write from memory: Bit.ly design — sketch components, data model, API. Then compare to notes.
DP (carry to Friday or do after DSA if time)
- Jump Game
- Min Cost Climbing Stairs
Day 3 — Wed, 25/03/2026
Patterns: Fast & Slow Pointers · DP — Knapsack
Morning block (4:45–6:15) — DSA
- Linked List Cycle
- Middle of Linked List
- Palindrome Linked List
Morning block (6:15–7:15) — System Design (read day)
- Read: Design Dropbox — focus on chunking, sync, metadata vs blob storage split
Evening (7:30–8:30 PM) — Machine Coding
- Design an In-Memory Cache (LRU) — entities: Cache, Node, DoublyLinkedList. Implement get/put with eviction.
DP (carry to Friday or do after DSA if time)
- Partition Equal Subset Sum
- Target Sum
Day 4 — Thu, 26/03/2026
Patterns: Stack · DP — Knapsack
Morning block (4:45–6:15) — DSA
- Valid Parentheses
- Simplify Path
- Next Greater Element
Morning block (6:15–7:15) — System Design (write from memory day)
- Write from memory: Dropbox design — sketch chunking strategy, sync flow, API. Then compare.
DP (carry to Friday or do after DSA if time)
- Subset Sum
- Last Stone Weight II
Day 5 — Fri, 27/03/2026
Patterns: Binary Search · DP — String
Morning block (5:00–6:30) — DSA + DP catchup
- Binary Search
- Search Insert Position
- Find First and Last Position
- Longest Palindromic Substring
- Word Break
Evening (6:00–8:30 PM) — Machine Coding deep session
- Design a Library Management System — entities: Library, Book, Member, Loan. Full OOP: 15 min class diagram, 45 min code, 30 min add reservation feature.
Day 6 — Revision — Mon, 30/03/2026
DSA Revision
- Re-solve failed problems from Days 1–5
- Re-solve slow problems from Days 1–5
System Design Revision (morning)
- Review Bit.ly + Dropbox notes. Write 3 key decisions for each from memory.
Machine Coding Revision (evening)
- Re-implement your weakest machine coding problem from week 1 from scratch. Focus on blank-page → class diagram habit.
Phase 2 — Core Structures
Day 7 — Tue, 31/03/2026
Patterns: Merge Intervals · DP — Fibonacci
Morning block (4:45–6:15) — DSA
- Merge Intervals
- Insert Interval
- Meeting Rooms II
Morning block (6:15–7:15) — System Design (read day)
- Read: Design Ticketmaster — focus on seat reservation, concurrency/locking, ticket lifecycle
Evening (7:30–8:30 PM) — Machine Coding
- Design a Movie Ticket Booking System — entities: Cinema, Screen, Show, Seat, Booking. Implement seat reservation with conflict handling.
DP (carry to Friday or do after DSA if time)
- Climbing Stairs
- House Robber
Day 8 — Wed, 01/04/2026
Patterns: Cyclic Sort · DP — Knapsack
Morning block (4:45–6:15) — DSA
- Missing Number
- Find All Numbers Disappeared
- First Missing Positive
Morning block (6:15–7:15) — System Design (write from memory day)
- Write from memory: Ticketmaster — sketch seat lock flow, payment integration, API. Then compare.
Evening (7:30–8:30 PM) — Machine Coding
- Design a Vending Machine — states: Idle, HasMoney, Dispensing. Implement state machine pattern with OOP.
DP (carry to Friday or do after DSA if time)
- Partition Equal Subset Sum
- Target Sum
Day 9 — Thu, 02/04/2026
Patterns: Monotonic Stack · DP — String
Morning block (4:45–6:15) — DSA
- Daily Temperatures
- Remove K Digits
- Sum of Subarray Minimums
Morning block (6:15–7:15) — System Design (read day)
- Read: Design WhatsApp — focus on message delivery guarantees, storage, online presence
DP (carry to Friday or do after DSA if time)
- Longest Palindromic Subsequence
- Edit Distance
Day 10 — Fri, 03/04/2026
Patterns: Prefix Sum · DP — Fibonacci
Morning block (5:00–6:30) — DSA + DP catchup
- Subarray Sum Equals K
- Binary Subarrays With Sum
- Maximum Size Subarray Sum Equals K
- Jump Game
- Min Cost Climbing Stairs
Evening (6:00–8:30 PM) — Machine Coding deep session
- Design a Chat Application (simplified WhatsApp) — entities: User, Message, ChatRoom, MessageStore. Focus on message state (sent/delivered/read). Full session: design → code → extend with group chat.
Day 11 — Mon, 06/04/2026
Patterns: Two Heaps · DP — Knapsack
Morning block (4:45–6:15) — DSA
- Kth Largest Element
- Top K Frequent Elements
- Find Median from Data Stream
Morning block (6:15–7:15) — System Design (write from memory day)
- Write from memory: WhatsApp design — message queuing, delivery receipt, storage. Then compare.
Evening (7:30–8:30 PM) — Machine Coding
- Design an Elevator System — entities: ElevatorSystem, Elevator, Request, Direction. Implement scheduling (SCAN or FCFS).
DP (carry to Friday or do after DSA if time)
- Subset Sum
- Target Sum
Day 12 — Revision — Tue, 07/04/2026
DSA Revision
- Re-solve failed problems from Days 7–11
- Re-solve slow problems from Days 7–11
System Design Revision (morning)
- Review Ticketmaster + WhatsApp. Write the API contracts for each (endpoints, params, response).
Machine Coding Revision (evening)
- Pick your weakest OOP problem from Phase 2. Rebuild from blank page with class diagram first. Time yourself.
Phase 3 — Trees + Graphs + DP
Day 13 — Wed, 08/04/2026
Patterns: Tree BFS · DP — String
Morning block (4:45–6:15) — DSA
- Level Order Traversal
- Zigzag Traversal
- Right Side View
Morning block (6:15–7:15) — System Design (read day)
- Read: Design FB News Feed — focus on fanout (push vs pull), ranking, pagination
Evening (7:30–8:30 PM) — Machine Coding
- Design a Social Media Feed — entities: User, Post, FeedService, FeedItem. Implement follow/unfollow and generate feed for a user.
DP (carry to Friday or do after DSA if time)
- Longest Palindromic Substring
- Word Break
Day 14 — Thu, 09/04/2026
Patterns: Tree DFS · DP — Fibonacci
Morning block (4:45–6:15) — DSA
- Path Sum
- Diameter of Binary Tree
- Binary Tree Maximum Path Sum
Morning block (6:15–7:15) — System Design (write from memory day)
- Write from memory: FB News Feed — fanout strategy, ranking model, feed storage. Then compare.
DP (carry to Friday or do after DSA if time)
- House Robber
- Climbing Stairs
Day 15 — Fri, 10/04/2026
Patterns: Graphs BFS/DFS · DP — Knapsack
Morning block (5:00–6:30) — DSA + DP catchup
- Number of Provinces
- Course Schedule
- Clone Graph
- Partition Equal Subset Sum
- Target Sum
Evening (6:00–8:30 PM) — Machine Coding deep session
- Design a Ride-Sharing App (simplified Uber) — entities: Driver, Rider, Trip, Location, MatchingService. Full session: design → code → extend with trip tracking.
Day 16 — Mon, 13/04/2026
Patterns: Island / Matrix · DP — String
Morning block (4:45–6:15) — DSA
- Number of Islands
- Max Area of Island
- Flood Fill
Morning block (6:15–7:15) — System Design (read day)
- Read: Design Uber — focus on geo-indexing, driver matching, trip state machine
Evening (7:30–8:30 PM) — Machine Coding
- Design a Rate Limiter — algorithms: Token Bucket or Sliding Window Counter. Entities: RateLimiter, Rule, Counter. Implement per-user rate limiting.
DP (carry to Friday or do after DSA if time)
- Edit Distance
- Longest Palindromic Subsequence
Day 17 — Tue, 14/04/2026
Patterns: Topological Sort · DP — Fibonacci
Morning block (4:45–6:15) — DSA
- Course Schedule
- Course Schedule II
- Alien Dictionary
Morning block (6:15–7:15) — System Design (write from memory day)
- Write from memory: Uber design — matching algorithm, trip states, surge pricing model. Then compare.
DP (carry to Friday or do after DSA if time)
- Jump Game
- Min Cost Climbing Stairs
Day 18 — Revision — Wed, 15/04/2026
DSA Revision
- Re-solve failed problems from Days 13–17
- Re-solve slow problems from Days 13–17
System Design Revision (morning)
- Review FB News Feed + Uber. Draw the data flow diagram for each from memory.
Machine Coding Revision (evening)
- Re-implement Rate Limiter using a different algorithm than you used on Day 16. Compare both approaches.
Phase 4 — Advanced Patterns
Day 19 — Thu, 16/04/2026
Patterns: Subsets · DP — Knapsack
Morning block (4:45–6:15) — DSA
- Subsets
- Subsets II
- Permutations
Morning block (6:15–7:15) — System Design (read day)
- Read: Design YouTube — focus on video upload pipeline, CDN, streaming, metadata
DP (carry to Friday or do after DSA if time)
- Subset Sum
- Target Sum
Day 20 — Fri, 17/04/2026
Patterns: Backtracking · DP — String
Morning block (5:00–6:30) — DSA + DP catchup
- Combination Sum
- Generate Parentheses
- Word Search
- Word Break
- Edit Distance
Evening (6:00–8:30 PM) — Machine Coding deep session
- Design a Video Streaming Service (simplified YouTube) — entities: VideoUploader, VideoProcessor, StreamingService, User, Video. Focus on upload states and metadata. Full session: design → code → extend with watch history.
Day 21 — Mon, 20/04/2026
Patterns: Trie · DP — Fibonacci
Morning block (4:45–6:15) — DSA
- Implement Trie
- Design Add and Search Words
- Search Suggestions System
Morning block (6:15–7:15) — System Design (write from memory day)
- Write from memory: YouTube design — upload pipeline, transcoding, CDN delivery. Then compare.
Evening (7:30–8:30 PM) — Machine Coding
- Design a Search Autocomplete System — entities: TrieNode, Trie, SearchService. Implement prefix search and top-k suggestions.
DP (carry to Friday or do after DSA if time)
- House Robber
- Climbing Stairs
Day 22 — Tue, 21/04/2026
Patterns: Union Find · DP — Knapsack
Morning block (4:45–6:15) — DSA
- Redundant Connection
- Is Graph Bipartite
- Number of Provinces
Morning block (6:15–7:15) — System Design (read day)
- Read: Design a Rate Limiter — focus on token bucket vs leaky bucket vs sliding window, distributed rate limiting
DP (carry to Friday or do after DSA if time)
- Partition Equal Subset Sum
- Target Sum
Day 23 — Wed, 22/04/2026
Patterns: Greedy · DP — String
Morning block (4:45–6:15) — DSA
- Valid Palindrome II
- Maximum Length of Pair Chain
- Remove Duplicate Letters
Morning block (6:15–7:15) — System Design (write from memory day)
- Write from memory: Rate Limiter — token bucket algorithm, Redis-based distributed implementation. Then compare.
Evening (7:30–8:30 PM) — Machine Coding
- Design a Notification Service — entities: NotificationService, Channel (Email/SMS/Push), NotificationQueue, User. Implement multi-channel dispatch with retry logic.
DP (carry to Friday or do after DSA if time)
- Longest Palindromic Subsequence
- Word Break
Day 24 — Revision — Thu, 23/04/2026
DSA Revision
- Re-solve failed problems from Days 19–23
- Re-solve slow problems from Days 19–23
System Design Revision (morning)
- Review YouTube + Rate Limiter. Write capacity estimates for each (storage, QPS, bandwidth) from memory.
Machine Coding Revision (evening)
- Pick any 2 machine coding problems from Phase 4. Solve both back-to-back with timer (45 min each). No class diagram — go straight from blank page to code. Measure speed.
Phase 5 — Interview Simulation
Day 25 — Fri, 24/04/2026
Mixed DSA (full timed session)
- Two Sum (timer: 15 min)
- Merge Intervals (timer: 20 min)
- Binary Tree Level Order (timer: 20 min)
- Number of Islands (timer: 20 min)
- Top K Frequent Elements (timer: 25 min)
- Word Break (timer: 25 min)
- Course Schedule (timer: 25 min)
- Sliding Window Maximum (timer: 30 min)
Evening — System Design Mock
- Mock: Design FB Live Comments — 45 min, no notes. Focus: real-time delivery, fan-out at scale, comment ordering.
Day 26 — Mon, 27/04/2026
Mixed DSA (full timed session)
- 3Sum (timer: 25 min)
- Minimum Window Substring (timer: 30 min)
- Clone Graph (timer: 25 min)
- House Robber (timer: 20 min)
- Coin Change (timer: 25 min)
- Insert Interval (timer: 20 min)
- Longest Consecutive Sequence (timer: 25 min)
- Valid Parentheses (timer: 15 min)
Evening — Machine Coding Mock
- Mock: Design a Food Delivery App (Zomato/Swiggy) — 60 min. Entities: Restaurant, Menu, Order, DeliveryAgent. Implement order lifecycle from blank page.
Day 27 — Tue, 28/04/2026
Mixed DSA (full timed session)
- Kth Largest Element (timer: 20 min)
- Binary Tree Maximum Path Sum (timer: 30 min)
- Product of Array Except Self (timer: 20 min)
- Subarray Sum Equals K (timer: 25 min)
- Course Schedule II (timer: 25 min)
- Jump Game (timer: 20 min)
- Meeting Rooms II (timer: 20 min)
- Generate Parentheses (timer: 25 min)
Evening — System Design Mock
- Mock: Design YouTube Top K (trending videos) — 45 min, no notes. Focus: counting at scale, approximation, time windows.
Day 28 — Revision — Wed, 29/04/2026
DSA Revision
- Re-solve failed problems from Phase 5 simulation days
- Re-solve slow problems (anything over 1.5× target timer)
System Design Revision (morning)
- Write 1-page summaries (from memory) for: FB Live Comments + YouTube Top K
Machine Coding Revision (evening)
- Full end-to-end mock: Design a Hotel Booking System — 60 min, blank page. Entities: Hotel, Room, Booking, Guest, Payment. Debrief: what felt shaky, what was fast.
Phase 6 — Final Retention
Day 29 — Thu, 30/04/2026
Worst 10 problems — re-solve all
- Your 10 most-flagged problems across all phases (fill in as you go)
- _________________________
- _________________________
- _________________________
- _________________________
- _________________________
- _________________________
- _________________________
- _________________________
- _________________________
- _________________________
Evening — System Design final sweep
- Review all 8 system design cases studied. Write 2 key decisions per system in a single list.
Day 30 — Fri, 01/05/2026
Random timed problems (5 problems, timer on)
- Problem 1 — random pick from LeetCode study plan
- Problem 2 — random pick
- Problem 3 — random pick
- Problem 4 — random pick
- Problem 5 — random pick
Final machine coding mock
- Design a problem you have NOT done before. Blank page, 60 min. No class diagram warm-up — go cold.
Appendix (1 day)
- Powers of two table
- Latency numbers
- Throughput calculations
System Design Cases — Tracker
| # | Case | Read | Written from memory | Deep dive done |
|---|---|---|---|---|
| 1 | Bit.ly | Day 1 | Day 2 | — |
| 2 | Dropbox | Day 3 | Day 4 | — |
| 3 | Ticketmaster | Day 7 | Day 8 | — |
| 4 | Day 9 | Day 11 | — | |
| 5 | FB News Feed | Day 13 | Day 14 | — |
| 6 | Uber | Day 16 | Day 17 | — |
| 7 | YouTube | Day 19 | Day 21 | — |
| 8 | Rate Limiter | Day 22 | Day 23 | — |
Machine Coding Problems — Tracker
| # | Problem | Phase | OOP focus | Done |
|---|---|---|---|---|
| 1 | Parking Lot | 1 | Spot types, vehicle hierarchy | |
| 2 | LRU Cache | 1 | HashMap + DLL composition | |
| 3 | Library Management | 1 | Loan lifecycle, reservations | |
| 4 | Movie Ticket Booking | 2 | Seat lock, concurrency | |
| 5 | Vending Machine | 2 | State machine pattern | |
| 6 | Chat App (simplified) | 2 | Message states, rooms | |
| 7 | Elevator System | 2 | Scheduling algorithm | |
| 8 | Social Media Feed | 3 | Follow graph, feed gen | |
| 9 | Ride-Sharing App | 3 | Trip state machine | |
| 10 | Rate Limiter | 3 | Algorithm choice, distributed | |
| 11 | Video Streaming (simplified) | 4 | Upload pipeline, states | |
| 12 | Search Autocomplete | 4 | Trie + top-k | |
| 13 | Notification Service | 4 | Multi-channel, retry | |
| 14 | Food Delivery App | 5 (mock) | Order lifecycle | |
| 15 | Hotel Booking System | 5 (mock) | Booking conflict, payment | |
| 16 | Unknown (cold) | 6 (final) | Blank page fluency |