Skip to main content
⚔High-Yield CS Questions & Deep Dives

100 Days of Interview Questions

High-yield Computer Science, Operating Systems, System Design, and Concurrency questions explained intuitively with visual notes and code.

#01Why Isn't a 2-Way Handshake Enough in TCP?
Computer Networks→
#02Why Do Database Indexes Slow Down INSERTs?
Databases→
#03Why Do Databases Use B+ Trees Instead of Binary Search Trees?
Databases→
#04Why Is a Process Switch Slower Than a Thread Switch?
Operating Systems→
#05Why Does Virtual Memory Make Computers Faster?
Operating Systems→
#06Why Do Page Faults Happen?
Operating Systems→
#07Why Do Zombie Processes Exist?
Operating Systems→
#08Why is TCP Reliable but UDP Isn't?
Computer Networks→
#09Why Can't One Process Access Another's Memory?
Operating Systems→
#10Why Does TCP Use a Sliding Window?
Computer Networks→
#11Why Do Databases Use Write-Ahead Logging (WAL)?
Databases→
#12Why is HTTPS More Secure Than HTTP?
Computer Networks→
#13Why Do Deadlocks Happen?
Operating Systems→
#14Why is UDP Used for Video Calls Instead of TCP?
Computer Networks→
#15Why Does Linux Use Copy-on-Write (COW)?
Operating Systems→
#16Why Do Systems Use Rate Limiters?
System Design→
#17Why Prefer Composition Over Inheritance?
OOP & Design→
#18How Databases Handle Connection Spikes
Databases→
#19Why Distributed Systems Use Consistent Hashing
System Design→
#20How Message Queues Handle Traffic Spikes
System Design→
#21Why DNS is Super Fast the Second Time
Computer Networks→
#22Why LIKE '%term' Destroys Database Performance
Databases→
#23Why Production Systems Separate Reads & Writes
System Design→
#24Mutex vs. Spinlock: Why Sleeping Kills Performance
Operating Systems→
#25Why ChatGPT Uses SSE Instead of WebSockets
System Design→
#26Why Priority Queues Use Heaps Instead of Arrays
Data Structures & Algorithms→
#27Why Docker Boots in Milliseconds While VMs Take Minutes
Operating Systems→
#28Why QuickSort beats MergeSort (O(N²) vs O(N log N))!
Data Structures & Algorithms→
#29Why NoSQL Sacrifices ACID for High Availability
System Design→
#30Forward Proxy vs Reverse Proxy: The Only Rule You Need
System Design→
#31Why APIs Use Idempotency Keys (Prevent Double Payments)
System Design→
#32Why Epoll is 100x Faster Than Select (I/O Multiplexing)
Operating Systems→
#33Why Dynamic Arrays Double Their Size (ArrayList / std::vector)
Data Structures & Algorithms→
#34Why Stack Memory is 10x FASTER Than Heap
Operating Systems→
#35Why TRUNCATE is 100x Faster Than DELETE
Databases→
#36Why Static Functions Cannot Access this in C++
OOP & Languages→
#37Why Array Traversal is 10x FASTER Than Linked Lists
Data Structures & Algorithms→
#38Why Low-Priority Threads FREEZE High-Priority Tasks
Operating Systems→
#39Why NULL = NULL is FALSE in SQL
Databases→
#40Why Strings are IMMUTABLE (Python, JS, Java)
OOP & Languages→
#41Why malloc(1GB) DOES NOT Consume 1GB RAM
Operating Systems→
#42Why Expired Cache Keys CRASH Databases
System Design→
#43Non-Repeatable Read vs Phantom Read
Databases→
#44How Bloom Filters Actually Work
System Design→
#45Why Base Destructors MUST Be Virtual in C++
OOP & Languages→
#46Why Running Out of RAM Freezes Your CPU (Thrashing)
Operating Systems→
#47Why Sorted Arrays Run 6x FASTER (Branch Prediction)
Data Structures & Algorithms→
#48College vs Production: Database Normalization (3NF vs Denormalization)
Databases→
#49College vs Production: Database Locking & MVCC
Databases→
#50College vs Production: Why Recursion CRASHES in Production
Data Structures & Algorithms→
#51College vs Production: Why SHA-256 Fails for Passwords
System Design→
#52Search Autocomplete: Debounce vs Throttle
System Design→
#53How to Scale WebSockets Across Multiple Servers
System Design→
#54Why Random UUIDs SLOW DOWN Your Database
Databases→
#55Why HashMap Capacity is ALWAYS a Power of 2
Data Structures & Algorithms→
#56Why 32-Bit Systems CANNOT Use 8GB RAM
Operating Systems→
#57Why 0.1 + 0.2 ≠ 0.3 in Programming
OOP & Languages→
#58Why 2GB Free RAM CAN'T Allocate 200MB (External Fragmentation)
Operating Systems→
#59Why 1 + 4 + 1 = 12 Bytes in C/C++ (Struct Padding)
OOP & Languages→
#60How SYN Cookies STOP Server Crashes
Computer Networks→
#61Why User Apps CANNOT Touch Hardware (CPU Protection Rings)
Operating Systems→
#62Why Sending 1 Reads as 16,777,216 Over Sockets (Endianness)
Computer Networks→
#63Why CPUs Reorder Code Behind Your Back (Memory Barriers)
Operating Systems→
#64Why HashMaps Switch to Trees at 8 Collisions
Data Structures & Algorithms→
#65Why WHERE age + 1 > 30 Kills Your Database Index
Databases→
#66How Flash Sales Accidentally Sell 2 Items When Stock is 1
Databases→
#67Why You CANNOT Truly Invalidate a JWT
System Design→
#68Why You Should NEVER Deploy 4 Nodes in a Cluster (Split-Brain & Quorum)
System Design→
#69Why 8-Core CPUs FAIL With 8 Threads (False Sharing & Cache Contention)
Operating Systems→
#70Why Postman Works But Browsers Block Your API (CORS)
Computer Networks→
#71Why Fast Pointer Moves at EXACTLY 2x (Floyd's Cycle Finding)
Data Structures & Algorithms→
#72The Bug That Broke Java for 9 Years (Binary Search Overflow)
Data Structures & Algorithms→
#73Why HashSet Can't Find Your Object (Mutable Keys)
Data Structures & Algorithms→
#74Why String += in Loops Kills Your Code (O(N²) Copy Trap)
OOP & Languages→
#75Why Google NEVER Sends Tokens to Your Browser (OAuth 2.0 PKCE & BFF)
System Design→
#76Why kill -9 CANNOT Kill a Zombie Process
Operating Systems→
#77Why free() NEVER Returns RAM to Your OS (Heap Top-of-Heap & Arenas)
Operating Systems→
#78Why Fast APIs Crash with 'Cannot Assign Address' (TIME_WAIT)
Computer Networks→
#79Why Math.abs() Returns a NEGATIVE Number
OOP & Languages→
#80Why Multi-Threaded fork() Freezes Your Code (Deadlocks)
Operating Systems→
#81How Kafka Streams at 0% CPU (Linux Zero-Copy sendfile)
System Design→
#82How Redis Counts 1 Billion Users in 12 KB RAM (HyperLogLog)
System Design→
#83Why Large Systems Prefer Rendezvous Hashing (HRW)
System Design→
#84Why Optimistic Concurrency Control Beats Locks (OCC)
Databases→
#85Why Python Leaks Memory (Garbage Collection Explained)
OOP & Languages→
#86Why 100 is 100 is True, but 300 is 300 is False in Python
OOP & Languages→
#87Why & Crashes Your Code While && Runs Safely (Short-Circuit Evaluation)
OOP & Languages→
#88Why OFFSET Kills Database Performance (Deep Pagination)
Databases→
#89The N+1 Query Problem Explained
Databases→
#90Why UDP Needs Ports Without Connections (Multiplexing)
Computer Networks→
šŸš€ Level Up Your Engineering Mindset

Never Study in Isolation. Join Binary Dose.

Connect with fellow engineers, clear conceptual doubts, and get 2 visual breakdowns & engineering mental models daily across our community channels.

Discord
Official Hub

Discord Community

Start at #welcome-and-rules, say hello in #general-chat, clear doubts, and collaborate with engineers worldwide.

Join Discord Server→
⚔
Daily Knowledge Drops

Daily Visual Deep-Dives

Bite-sized system design schematics, core OS internals, and DSA intuition served right into your feeds every single day.

šŸ’”Have handwritten notes, cheat-sheets, or want to publish a technical article?
Learn How to Contribute→