Category
The evidence is mixed and context-dependent — it reliably improves knowledge transfer and defect rates and costs more raw developer hours, so whether it works depends entirely on what you are
Predictability above cleverness — a good API is one where a developer can guess correctly what something is called and how it behaves, because they will guess far more often than they will read the
Concurrency is about structure; parallelism is about execution. A concurrent program is composed of tasks that can make progress independently; a parallel program actually runs them at the same
A branching strategy where everyone commits to a single shared branch frequently — at least daily — with short-lived branches lasting hours rather than weeks. It is the practice most strongly
Two of the simplest data structures, distinguished entirely by which element you get back: a stack returns the most recently added, a queue returns the oldest. That single difference determines an
An HTTP request sent by a service to you when something happens — the inverse of an API call, and the reason it is sometimes described as a reverse API or a push notification for servers. The problem
Scaling up means a bigger machine; scaling out means more machines. They fail at different points and impose completely different demands on your software. Scaling up — vertical. More cores, more
A small number of patterns that differ in who writes to the cache and when — and choosing the wrong one for your consistency requirements is where cache bugs come from. The read patterns:
Almost always — and the textbook answer, which favours linked lists for insertion and deletion, is misleading on modern hardware because it ignores how memory actually behaves. The theoretical
A function that calls itself, solving a problem by reducing it to a smaller version of the same problem until it reaches a case simple enough to answer directly. The two required parts. A base case,
Responsible disclosure is reporting a security vulnerability to the affected organisation first, giving them time to fix it before details become public. A bug bounty programme is the formalised,
A written proposal describing what you intend to build and why, circulated before the work starts. Its value is not the document — it is that writing forces you to confront decisions you would
More often than the marketing suggests. Serverless genuinely removes operational work and introduces a specific set of constraints — and choosing it for a workload that fits badly produces higher
A circuit breaker stops calling a failing dependency for a while, so a slow or broken service does not take down everything that depends on it. It exists because the default behaviour — retrying
By measuring before changing anything, because intuition about where time goes is reliably wrong — and the great majority of wasted optimisation effort comes from skipping that step. The order that
As complete snapshots, not as differences — which is the single fact that makes Git's behaviour comprehensible, because almost every mental model imported from older version control systems is wrong
A compiler that translates code to machine instructions while the program is running, using information only available at runtime — which is how languages that appear to be interpreted achieve
Because time is a political and cultural construct, not a physical constant. Almost every intuitive assumption a programmer makes about dates turns out to be false somewhere, and the failures are
A structure that turns a key into an array index by computing a number from it, so finding an item takes roughly the same time whether the table holds ten entries or ten million. The mechanism. A
By determining which objects are still reachable from your running program and reclaiming everything else. The key insight is that it does not detect garbage — it detects live data, and treats the
Both split a large dataset into pieces. Partitioning divides a table within one database; sharding distributes data across separate database instances. The distinction matters because one is an
Normalisation organises data so that each fact is stored exactly once, eliminating redundancy and the update anomalies that come with it. Denormalisation deliberately reintroduces redundancy to make
Because OFFSET tells the database to fetch and discard rows — so it gets slower the deeper you go — and because the underlying data changes between requests, which makes results skip and duplicate
A protocol providing a persistent, bidirectional connection between client and server over a single TCP connection — so the server can send data without being asked, which ordinary HTTP