neetcode
01
computer architecture
02
application architecture
03
design requirements
04
networking basics
05
tcp and udp
06
dns
07
http
08
websockets
09
api paradigms
10
api design
11
caching
12
cdns
13
proxies and load balancing
14
consistent hashing
15
sql
16
nosql
17
replication and sharding
18
cap theorem
19
object storage
20
message queues
arpit (b)
01
course introduction
02
what is system design
03
how to approach system design
04
how do you evaluate that you have built a good system
05
relational databases
06
database isolation levels
07
scaling databases
08
sharding and partitioning
09
non-relational databases
10
picking the right database
11
what is caching
12
populating and scaling a cache
13
caching at different levels
14
message brokers and queues
15
message stream and kafka essentials
16
realtime pubsub
17
load balancers
18
circuit balancers
19
data redundancy and recovery
20
leader election for auto-recovery
21
client server model and communication protocols
22
blob storage and s3
23
bloom filters
24
consistent hashing
25
introduction to big data tools
26
design ecommerce product listing
27
designing api rate limiter
28
designing and scaling notifications
29
designing realtime abuse master
30
designing tinder feed
31
designing twitter trends
32
designing url shortener
33
designing github gists and pastebin
34
designing a fraud detection system
35
designing a recommendation engine
36
designing a web crawler
arpit (a)
01
foundational topics in system design - i
02
foundational topics in system design - ii
03
relational databases
04
non-relational databases
05
distributed systems
06
distributed id generators
07
building social network - i
08
building social network - ii
09
storage engines - i
10
storage engines - ii
11
high throughput systems - i
12
high throughput systems - ii
13
information retrieval systems
14
adhoc system design
15
algorithmic system design - i
16
algorithmic system design - ii
data structures
arrays
1.
ram
2.
static arrays
3.
dynamic arrays
4.
stacks
5.
kadanes algo (a)
6.
sliding window fixed (a)
7.
sliding window variable (a)
8.
two pointers (a)
9.
prefix sums (a)
linked lists
1.
singly linked lists
2.
doubly linked lists
3.
queues
4.
fast and slow pointers (a)
recursion
1.
factorial
2.
fibonacci
sorting
1.
insertion sort
2.
merge sort
3.
quick sort
4.
bucket sort
binary search
1.
search array
2.
search range
trees
1.
binary search trees
2.
bst insert and remove
3.
depth first search
4.
breadth first search
5.
bst sets and maps
backtracking
1.
tree maze
2.
subsets (a)
3.
combinations (a)
4.
permutation (a)
heap priority queue
1.
heap properties
2.
push and pop
3.
heapify
hashing
1.
hash usage
2.
hash implementation
graphs
1.
intro to graphs
2.
matrix dfs
3.
matrix bfs
4.
adjacency list
5.
dijkstra (a)
6.
prims (a)
7.
kruskals (a)
8.
topological sort (a)
dp
1.
dimension dp 1
2.
dimension dp 2
3.
knapsack (a)
4.
unbounded knapsack
5.
lcs
6.
palindromes
bit manipulation
1.
bit operator
tries
1.
trie (a)
2.
union find (a)
3.
segment trees (a)
4.
iterative dfs (a)
heaps
1.
heaps (a)