Graph Database
A NoSQL model that stores entities as nodes and their connections as first-class edges, making relationship-heavy queries fast and natural without costly joins.
Plain-language explanations of the ideas behind software - compilers, garbage collection, objects, types.
A NoSQL model that stores entities as nodes and their connections as first-class edges, making relationship-heavy queries fast and natural without costly joins.
An algorithm that builds a solution step by step, always taking the choice that looks best at the moment in the hope that these local choices add up to a globally optimal answer.
Philip Greenspun's quip that any sufficiently complicated C or Fortran program contains an ad-hoc, bug-ridden, slow reimplementation of half of Common Lisp.
The playful, exploratory, meritocratic culture of programmers in which a hacker is a clever and enthusiastic builder, not a criminal; a tradition running from the MIT and Stanford AI labs through Unix, the Homebrew clubs, and the free software movement.
An annual month-long event run by DigitalOcean since 2014 that encourages people to contribute to open source by rewarding a small number of accepted pull requests; in 2020 it triggered a flood of spam pull requests that forced the organizers to rewrite the rules around maintainer opt-in and quality.
Leslie Lamport's partial ordering of events in a distributed system: A happens before B if A could causally influence B; otherwise the two events are concurrent.
The distinction between deadlines whose violation is a system failure and deadlines whose violation merely degrades quality of service.
Documented defects in shipped CPUs and chips, collected in vendor errata sheets and specification updates, and worked around in microcode, firmware, or operating-system software rather than by replacing the silicon.
Processor extensions, introduced by Intel and AMD around 2005-2006, that let a hypervisor run unmodified guest operating systems efficiently and safely in hardware.
When two different keys produce the same hash value; unavoidable by the pigeonhole principle and handled by chaining or open addressing.
A function that maps data of arbitrary size to a fixed-size value, used for hash tables, checksums, and cryptographic security.
A data structure that maps keys to values through a hash function and an array of buckets, giving average O(1) lookup, insert, and delete.
A tree-based structure, usually an array-backed binary heap, that keeps the smallest or largest element at the root for fast access.
A comparison sort that builds a binary heap from the data and repeatedly extracts the maximum, giving guaranteed O(n log n) time in place.
The traditional first program a learner writes in a new language, printing the words hello world; born in Kernighan's 1972 B tutorial and canonized by K&R in 1978 as the universal smoke test.
A shell redirection that feeds an inline block of multi-line text to a command as its standard input, written between <<EOF and a matching closing word.
Designing a system to minimize downtime, often measured in 'nines' of uptime, by eliminating single points of failure through redundancy and fast failover.
A function that takes other functions as arguments or returns a function, enabling general patterns like map, filter, and reduce.
A type system and inference algorithm that deduces the most general type of a program with let-polymorphism, without type annotations; it underlies ML, Haskell, and much of modern typed functional programming.
Douglas Hofstadter's self-referential rule from Godel, Escher, Bach that a task always takes longer than you expect, even when you account for Hofstadter's Law.
The property that a language's code is represented using its own ordinary data structures, so programs can easily generate and transform code.
The single centralized host table that mapped names to addresses on the early ARPANET, maintained by hand at SRI-NIC and distributed to every host. Its inability to scale is what motivated the invention of DNS.
The process of attaching client-side JavaScript interactivity to server-rendered HTML, turning a static HTML snapshot into a fully interactive application in the browser.
Text linked to other text by clickable references, a term coined by Ted Nelson in 1965 and realized at global scale by the World Wide Web.
The software layer, also called a virtual machine monitor, that creates and runs virtual machines by sharing one computer's physical hardware among them.
The three classic cloud service models defined by NIST - Infrastructure as a Service (rent raw VMs and storage), Platform as a Service (deploy code without managing servers), and Software as a Service (use finished applications).
A property of an operation that produces the same result no matter how many times it is applied, which lets clients safely retry requests in a distributed system.
The property that a value cannot be changed after it is created; instead of mutating data, you build new values from old ones.
The practice of never modifying running servers in place; instead you build a new image and replace the old one wholesale, eliminating configuration drift.
A database that keeps its working data in RAM rather than on disk for very low latency, trading durability and cost for speed.
An algorithm that transforms its input using only a small, constant amount of extra memory, modifying the data directly instead of copying it elsewhere.
Rebuilding only the parts of a project whose inputs changed, instead of rebuilding everything - the trick that keeps large builds fast.
Claude Shannon's mathematical theory of communication, which shows how to quantify information and sets the limits of data compression and reliable transmission over noisy channels.
Overlapping the fetch, decode, and execute stages of successive instructions like an assembly line, so a new instruction starts before the previous one finishes; managing the hazards and stalls this creates.
The contract between hardware and software: the instructions, registers, and memory model a processor exposes, and the boundary that lets the same binary run on many different chip implementations.
When an arithmetic result exceeds the range of its integer type and wraps around to a wrong, often small or negative, value; a subtle bug that can cause buffer overflows, security holes, and famous failures.
The chip that places many electronic components on a single piece of semiconductor, conceived by Jack Kilby at Texas Instruments in 1958 and made practical by Robert Noyce's planar silicon process at Fairchild.
Networking everyday physical objects with sensors, processors, and connectivity so that computers can gather and act on data about the physical world without human input.
A frontend pattern named by Jason Miller in 2020 (crediting Katie Sylor-Miller): render pages as static server HTML and hydrate only small, independent interactive 'islands', leaving the rest as inert markup.
The SQL-standard levels - read uncommitted, read committed, repeatable read, serializable - that trade transaction isolation against concurrency by choosing which anomalies they permit.
A system for recording, prioritizing, and tracking bugs and feature requests through their lifecycle - the shared to-do list and memory of a software project.
A web architecture (JavaScript, APIs, Markup) coined by Netlify's Mathias Biilmann around 2015: pre-rendered static markup served from a CDN, made dynamic with client-side JavaScript and reusable APIs.
Tracing Python array code and compiling it just in time into fused, optimized GPU/TPU kernels - the technique (XLA, torch.compile, Numba) that closes the speed gap between high-level Python and hand-written C.
An XML-like syntax extension to ECMAScript, popularized by React, that lets developers write HTML-like markup directly inside JavaScript to describe user interfaces.
The IEEE 1149.1 standard hardware interface, with its boundary-scan architecture and the related SWD protocol, for testing, debugging, and flashing chips at the pin level.
A lean, flow-based method that visualizes work and limits work-in-progress to expose bottlenecks, adapted to software from Toyota's manufacturing system.
The principle, stated by Auguste Kerckhoffs in 1883, that a cryptosystem should remain secure even if everything about it except the key is public knowledge.
The innermost part of an operating system, running in a privileged mode with full control of the hardware; designs range from large monolithic kernels to small microkernels.