Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Interview Preparation Kit for Software Engineer
Introduction
Course Overview
Week 1 (Coding - Introduction to Data Structures, Array, Matrix)
Understanding Data Structures
Types of Data Structures
An Overview of Big-O
Introduction to Arrays
Problem 1: Running Sum of 1d Array (easy)
Solution: Running Sum of 1d Array (easy)
Problem 2: Contains Duplicate (easy)
Solution: Contains Duplicate (easy)
Problem 3: Left and Right Sum Differences (easy)
Solution: Left and Right Sum Differences (easy)
Problem 4: Find the Highest Altitude(easy)
Solution: Find the Highest Altitude (easy)
Introduction to Matrix
Problem 1: Richest Customer Wealth (easy)
Solution: Richest Customer Wealth (easy)
Problem 2: Matrix Diagonal Sum (easy)
Solution: Matrix Diagonal Sum (easy)
Problem 3: Row With Maximum Ones(easy)
Solution: Row With Maximum Ones(easy)
Week 1 (System Design - Introduction, Load Balancing, API Gateway)
Introduction to System Design
Introduction to Load Balancing
Uses of Load Balancing
Load Balancing Algorithms
Load Balancer Types
Stateless vs. Stateful Load Balancing
High Availability and Fault Tolerance
Scalability and Performance
Challenges of Load Balancers
Introduction to API Gateway
Usage of API gateway
Advantages and disadvantages of using API gateway
Week 2 (Coding - Stack, Queue, LinkedList)
Introduction to Stack
Operations on Stack
Implementing Stack Data Structure
Applications of Stack
Problem 1: Balanced Parentheses
Solution: Balanced Parentheses
Problem 2: Reverse a String
Solution: Reverse a String
Problem 3: Decimal to Binary Conversion
Solution: Decimal to Binary Conversion
Introduction to Queues
Working with Simple Queues
Diving Deeper – Circular Queues and Deques
Applications and Advanced Concepts
Problem 1: Reverse a Queue
Solution: Reverse a Queue
Problem 2: Implement Stack using Queues
Solution: Implement Stack using Queues
Problem 3: Generate Binary Numbers from 1 to N
Solution: Generate Binary Numbers from 1 to N
Introduction to LinkedList
Operations on Singly Linked List
Operations on Doubly Linked List
Problem 1: Reverse Linked List (easy)
Solution: Reverse Linked List (easy)
Problem 2: Remove Duplicates from Sorted List (easy)
Solution: Remove Duplicates from Sorted List (easy)
Problem 3: Merge Two Sorted Lists (easy)
Solution: Merge Two Sorted Lists (easy)
Week 2 (System Design - Key Characteristics of Distributed Systems, DNS, Caching)
Scalability
Availability
Latency and Performance
Concurrency and Coordination
Security and Privacy
Monitoring and Observability
Resilience and Error Handling
Introduction to DNS
DNS Resolution Process
DNS Load Balancing and High Availability
Introduction to Caching
Why is Caching Important?
Types of Caching
Cache Replacement Policies
Cache Invalidation
Cache Read Strategies
Cache Coherence and Consistency Models
Caching Challenges
Cache Performance Metrics
Week 3 (Coding - Tree, HashTable, HashSet)
Introduction to Tree
Binary Search Tree (BST)
Maximum Depth (or Height) of Binary Tree (easy)
Solution: Maximum Depth (or Height) of Binary Tree (easy)
Balanced Binary Tree (easy)
Solution: Balanced Binary Tree (easy)
Minimum Difference Between BST Nodes (easy)
Solution: Minimum Difference Between BST Nodes (easy)
Introduction to Hashing
Introduction to Hash Tables
Issues with Hash Tables
Problem 1: First Non-repeating Character (easy)
Solution: First Non-repeating Character (easy)
Problem 2: Largest Unique Number (easy)
Solution: Largest Unique Number (easy)
Problem 3: Maximum Number of Balloons (easy)
Solution: Maximum Number of Balloons (easy)
Introduction to HashSets
Problem 1: Counting Elements (easy)
Solution: Counting Elements (easy)
Problem 2: Jewels and Stones (easy)
Solution: Jewels and Stones (easy)
Problem 3: Unique Number of Occurrences (easy)
Solution: Unique Number of Occurrences (easy)
Week 3 (System Design - CDN, Data Partitioning, Proxy Server)
What is CDN?
CDN Architecture
Push CDN vs. Pull CDN
Introduction to Data Partitioning
Partitioning Methods
Data Sharding Techniques
Benefits of Data Partitioning
Common Problems Associated with Data Partitioning
What is a Proxy Server?
Uses of Proxies
Week 4 (System Design - Replication, CAP & PACELC Theorems, Databases, Indexes)
What is Redundancy?
What is Replication?
Introduction to CAP Theorem
Components of CAP Theorem
Trade-offs in Distributed Systems
Examples of CAP Theorem in Practice
Beyond CAP Theorem
Introduction to Databases
SQL Databases
NoSQL Databases
SQL vs. NoSQL
Real-World Examples and Case Studies
What are Indexes?
Types of Indexes
Week 5 (System Design - Bloom Filters, Long-Polling, WebSockets, Quorum, Heartbeat))
Introduction to Bloom Filters
How Bloom Filters Work
Benefits & Limitations of Bloom Filters
Variants and Extensions of Bloom Filters
Applications of Bloom Filters
Difference Between Long-Polling, WebSockets, and Server-Sent Events
What is Quorum?
What is Heartbeat?
Week 6 (System Design - Checksum, Leader & Follower, Messaging System)
What is Checksum?
Uses of Checksum
What is Leader and Follower Pattern?
Introduction to Messaging System
Introduction to Kafka
Messaging patterns
Popular Messaging Queue Systems
RabbitMQ vs. Kafka vs. ActiveMQ: A Battle of Messaging Brokers
Scalability and Performance
Week 7 (System Design - Introduction to System Design Interview, Master Template, Designing URL Shortening and Pastebin)
System Design Interviews - A step by step guide
System Design Master Template
Designing a URL Shortening service like TinyURL
Designing Pastebin
Week 8 (System Design - Designing Dropbox, Facebook Messenger, Twitter, Netflix)
Designing Dropbox
Designing Facebook Messenger
Designing Twitter
Designing Youtube or Netflix
Week 9 (System Design - Designing Typeahead Suggestion, API Rate Limiter, Twitter Search, Web Crawler)
Designing Typeahead Suggestion
Designing an API Rate Limiter
Designing Twitter Search
Designing a Web Crawler
Week 10 (System Design - Designing Facebook Newsfeed, Yelp, Uber, Ticketmaster)
Designing Facebook’s Newsfeed
Designing Yelp or Nearby Friends
Designing Uber backend
Designing Ticketmaster
Week 10 (Coding - Modified Binary Search, Bitwise XOR, Top 'K' Elements)
Introduction to Modified Binary Search Pattern
Order-agnostic Binary Search (easy)
Solution: Order-agnostic Binary Search
Ceiling of a Number (medium)
Solution: Ceiling of a Number
Next Letter (medium)
Solution: Next Letter
Number Range (medium)
Solution: Number Range
Introduction to Bitwise XOR Pattern
Single Number (easy)
Solution: Single Number
Two Single Numbers (medium)
Solution: Two Single Numbers
Complement of Base 10 Number (medium)
Solution: Complement of Base 10 Number
Introduction to Top 'K' Elements Pattern
Top 'K' Numbers (easy)
Solution: Top 'K' Numbers
Solution: Kth Smallest Number
Kth Smallest Number (easy)
'K' Closest Points to the Origin (easy)
Solution: 'K' Closest Points to the Origin
Connect Ropes (easy)
Solution: Connect Ropes
Week 11 (System Design - Design a Key-Value Store)
Dynamo: Introduction
High-Level Architecture
Data Partitioning
Replication
Vector Clocks and Conflicting Data
The Life of Dynamo’s put() & get() Operations
Anti-entropy Through Merkle Trees
Gossip Protocol
Dynamo Characteristics and Criticism
Summary: Dynamo
Week 11 (Coding - K-way Merge, Backtracking, Topological Sort, Multi-threaded)
Introduction to K-way Merge Pattern
Merge K Sorted Lists (medium)
Solution: Merge K Sorted Lists
Kth Smallest Number in M Sorted Lists (medium)
Solution: Kth Smallest Number in M Sorted Lists
Kth Smallest Number in a Sorted Matrix (hard)
Solution: Kth Smallest Number in a Sorted Matrix (hard)
Introduction to Backtracking Pattern
Combination Sum (medium)
Solution: Combination Sum
Word Search (medium)
Solution: Word Search
Sudoku Solver (hard)
Solution: Sudoku Solver
Factor Combinations (medium)
Solution: Factor Combinations
Introduction to Topological Sort Pattern
Topological Sort (medium)
Solution: Topological Sort
Tasks Scheduling (medium)
Solution: Tasks Scheduling
Tasks Scheduling Order (medium)
Solution: Tasks Scheduling Order
Alien Dictionary (hard)
Solution: Alien Dictionary
Introduction to Multi-threaded Pattern
Same Tree (medium)
Solution: Same Tree
Invert Binary Tree (medium)
Solution: Invert Binary Tree
Binary Search Tree Iterator (medium)
Solution: Binary Search Tree Iterator
Week 11 (Behavioral Interview)
What is a behavioral interview?
Why prepare for the behavioral interview?
What this course promises?
The STAR method
How to prepare for behavioral interview?
Answering behavioral interview questions effectively
Collaboration and teamwork questions
Adaptability questions
Problem solving and decision making questions
Initiative and leadership questions
Managing constraints and setbacks questions
Week 12 (Coding - Dynamic Programing, 0/1 Knapsack, Fibonacci Numbers, Longest Common Substring)
What is Dynamic Programming?
0/1 Knapsack
Solution: 0/1 Knapsack
Equal Subset Sum Partition
Solution: Equal Subset Sum Partition
Subset Sum
Solution: Subset Sum
Minimum Subset Sum Difference
Solution: Minimum Subset Sum Difference
Fibonacci numbers
Solution: Fibonacci numbers
Staircase
Solution: Staircase
Number factors
Solution: Number factors
Minimum jumps to reach the end
Solution: Minimum jumps to reach the end
House thief
Longest Common Substring
Solution: Longest Common Substring
Longest Common Subsequence
Solution: Longest Common Subsequence
Minimum Deletions & Insertions to Transform a String into another
Solution: Minimum Deletions & Insertions to Transform a String into another
Longest Increasing Subsequence
Solution: Longest Increasing Subsequence
Week 12 (System Design - Designing Distributed Messaging System)
Messaging Systems: Introduction
Kafka: Introduction
High-level Architecture
Kafka: Deep Dive
Consumer Groups
Kafka Workflow
Role of ZooKeeper
Controller Broker
Kafka Delivery Semantics
Kafka Characteristics
Summary: Kafka
Teach online with
Latency and Performance
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock