Clear, interview ready breakdowns of the concepts that get confused most often. Each page gives you a straight verdict, a full comparison table, and exactly when to reach for each option.
21 comparisons and growingTCP sets up a connection and guarantees your data arrives in order, so use it when correctness matters more than speed. UDP fires packets with no handshake and no guarantee, so use it when speed matters more than the odd lost packet.
Operating SystemsA process is an independent running program with its own memory space. A thread is a lighter unit of execution that runs inside a process and shares that memory with other threads in the same process.
Git and Version ControlMerge combines two branches by creating a new merge commit and keeps the full history exactly as it happened. Rebase replays your commits on top of another branch, producing a clean straight line but rewriting commit history.
System DesignA monolith ships as one deployable unit and is simpler to build and run early on. Microservices split the system into independent services that scale and deploy separately, at the cost of more operational complexity.
SecurityAuthentication answers who you are, usually through a password or token. Authorization answers what you are allowed to do, usually checked after authentication succeeds.
DevOps and CloudA container shares the host operating system kernel and only packages the application and its dependencies, so it starts in seconds. A virtual machine includes a full guest operating system, so it is heavier but more isolated.
Programming FundamentalsA compiler translates your entire source code into machine code before running it, producing a fast standalone program. An interpreter reads and executes your code line by line, which is more flexible but usually slower.
Programming FundamentalsSynchronous code runs one step at a time and blocks until each step finishes. Asynchronous code can start a task and move on, coming back to handle the result once it is ready.
NetworkingHTTP sends data in plain text that anyone on the network can read. HTTPS wraps the same HTTP traffic in TLS encryption, so the data cannot be read or tampered with in transit.
API DesignREST is an architectural style built on standard HTTP methods and typically uses JSON, making it simple and widely used. SOAP is a stricter protocol with its own messaging format and built in standards for security and reliability, still common in enterprise and financial systems.
Programming FundamentalsA library is a tool you call when you need it, so your code stays in control. A framework provides the overall structure and calls your code at the right moments, so it stays in control.
SecuritySession based auth stores the user's login state on the server and uses a cookie just to reference it. Token based auth puts the user's identity directly inside a signed token, so the server does not need to store anything.
DatabasesNormalization organizes data to remove duplication, keeping each fact in exactly one place. Denormalization intentionally reintroduces some duplication to make reads faster, at the cost of extra work to keep copies in sync.
Programming FundamentalsStatic typing checks types before the program runs, catching type errors early. Dynamic typing checks types while the program runs, which is more flexible but can let type errors slip through until that exact line executes.
Data Structures and AlgorithmsRecursion solves a problem by having a function call itself on smaller inputs until it reaches a base case. Iteration solves the same kind of problem using a loop. Recursion is often cleaner for problems that are naturally recursive, while iteration usually uses less memory.
Data Structures and AlgorithmsLinear search checks every element one by one and works on any data. Binary search repeatedly cuts the search space in half, which is far faster, but only works if the data is already sorted.
Git and Version Controlgit fetch downloads new commits from the remote but does not touch your working files. git pull does the same download and then immediately merges those changes into your current branch.
System DesignVertical scaling adds more power, like CPU or RAM, to a single existing machine. Horizontal scaling adds more machines and spreads the load across them. Horizontal scaling is what most large systems eventually rely on.
System DesignA reverse proxy sits in front of one or more servers and forwards client requests to them, often adding caching or security. A load balancer is a specific type of reverse proxy whose main job is distributing traffic across multiple servers to keep load even.
API DesignREST sends human readable JSON over standard HTTP and is easy for anyone to consume. gRPC sends compact binary Protobuf messages over HTTP/2, which is faster and more efficient, but harder to read directly and less friendly for public facing APIs.
System DesignA cache stores data in memory for very fast access but can lose that data if it restarts, and is meant to be temporary. A database stores data on disk so it survives restarts and is the durable source of truth, but reading from disk is slower than reading from memory.