Concepts

Plain-language explanations of the ideas behind software - compilers, garbage collection, objects, types.

673 entries, all primary-sourced
concept

Edge Computing

Processing data near where it is generated, on devices and gateways close to the source, rather than shipping everything to a distant cloud, to cut latency, bandwidth, and privacy exposure.

concept

Effect System

A type-system extension that tracks the side effects a piece of code may perform, making effects part of a function's type.

concept

Elasticity

The cloud's ability to automatically scale resources up and down to match demand so you pay only for what you use - one of the five essential characteristics in the NIST definition of cloud computing.

concept

Electronic Design Automation (EDA)

The software used to design modern chips: synthesis, simulation, place-and-route, and verification tools that turn a hardware description into a manufacturable layout.

concept

Embedded C

The dialect of practice by which C is used on microcontrollers: volatile-qualified memory-mapped registers, fixed-width integer types, avoidance of dynamic allocation, and coding standards like MISRA C that constrain the language for safety-critical systems.

concept

Embedded Debugging

The practice and tools for finding bugs in software running on-target, where limited resources, no console, and timing sensitivity make ordinary debugging hard.

concept

Embedded Scripting

Bundling a small interpreter such as Lua or Tcl inside a larger application so the program can be configured, extended, and modded in a high-level language without recompiling.

concept

End-to-End Encryption

Encryption where only the communicating endpoints can read the messages, so the servers and providers relaying them in between cannot.

concept

Endianness

The order in which the bytes of a multi-byte value are stored or transmitted; big-endian puts the most significant byte first, little-endian puts the least significant byte first, a choice immortalized by Danny Cohen's 1980 essay.

concept

Entropy (Information)

Shannon entropy measures the average information, or uncertainty, in a source in bits, and sets the theoretical limit on how far data can be compressed without loss.

concept

Environment Variables

Named string values that a process inherits from its parent, such as PATH and HOME, forming a shared, inheritable configuration block carried through exec.

concept

ETL (Extract, Transform, Load)

The pipeline that pulls data from source systems, cleans and reshapes it, and loads it into a warehouse; modern ELT loads the raw data first and transforms it inside the warehouse.

concept

Event Sourcing

Persisting application state as an append-only sequence of events, so that current state can be rebuilt at any time by replaying the log from the beginning.

concept

Event Streaming

Treating data as an unbounded, ordered stream of events on an append-only log that many systems can publish to and replay from - the model behind Kafka and modern real-time architectures.

concept

Event-Driven Architecture

A style in which components communicate by emitting and reacting to events rather than calling each other directly, yielding loose coupling between producers and consumers.

concept

Eventual Consistency

A consistency model in which, if no new updates are made, all replicas eventually converge to the same value, trading immediate consistency for availability.

concept

Exit Status

The small integer a process returns when it finishes, where 0 means success and any non-zero value means failure, exposed in the shell as $? and the basis for error handling.

concept

Experiment Tracking

The practice of logging the parameters, code version, data, metrics, and artifacts of every machine learning run so that results can be reproduced, compared, and audited.

concept

Extreme Programming

An agile software development methodology, created by Kent Beck in the late 1990s, that pushes good engineering practices to the extreme and relies on tight, continuous feedback from the customer.

concept

Failure Detector

A component that suspects which nodes in a distributed system have crashed, usually via heartbeats and timeouts, and is inherently imperfect because a slow node cannot be told apart from a dead one.

concept

Fault Tolerance

A system's ability to keep operating correctly even when some of its components fail, achieved through redundancy, replication, and failover.

concept

Feature Store

A system for defining, storing, and serving machine learning features consistently between model training and online inference, pioneered by Uber's Michelangelo and popularized by open-source projects such as Feast.

concept

Finite-State Machine

The simplest model of computation: a machine with a fixed, finite set of states that moves from one to the next as it reads input, and the exact device that recognizes regular languages.

concept

Firmware

The low-level software stored in a device's non-volatile memory that runs its hardware directly, spanning the spectrum from tiny microcode through bootloaders to full embedded operating systems, and increasingly delivered as updatable images.

concept

First-Class Function

Treating functions as ordinary values that can be named, passed as arguments, returned from functions, and stored in data structures.

concept

Flashing Firmware

Programming a compiled binary into a device's non-volatile flash memory, whether through a hardware debugger over JTAG or SWD, an in-system programmer, or a resident bootloader, using tools such as avrdude and OpenOCD.

concept

FLP Impossibility Result

A fundamental limit proving that in an asynchronous system where even one process may crash, no deterministic algorithm can guarantee it will always reach consensus.

concept

Fly-by-Wire

A flight-control method that replaces mechanical and hydraulic linkages between the pilot's controls and the aircraft's surfaces with computers and electrical signals, enabling envelope protection and redundancy but making flight software safety-critical.

concept

Foo, Bar, and Foobar

The canonical metasyntactic variables of programming, the placeholder names used in code examples to stand for anything; their etymology runs through WWII Army slang FUBAR, the Jargon File, and the deliberately whimsical RFC 3092.

concept

Foreign Key

A column that references a primary key in another table, enforcing referential integrity so a row cannot point at data that does not exist.

concept

Fork

Copying a project's full codebase to develop it independently, ranging from a permanent split off a project to the routine copy that precedes a pull request.

concept

Formal Grammar

A precise set of production rules that generate exactly the strings of a language, used to define the syntax of programming languages so that compilers can parse them mechanically.

concept

FOSDEM

The Free and Open Source Software Developers' European Meeting, a large free-admission gathering held in Brussels each year since 2001, organized by and for the open-source community.

concept

Free Software

Software that respects users' four essential freedoms to run, study, share, and modify it; defined by the Free Software Foundation as a matter of liberty, not price.

concept

Frontend State Management

The problem of keeping shared, synchronized UI state predictable as applications grow, and the libraries (Flux, Redux, MobX, Zustand, signals) built to address it.

concept

Full-Text Search

Searching the actual text content of documents using an inverted index, with tokenization, stemming, and relevance ranking.

concept

Function Composition

Combining functions so the output of one becomes the input of the next, written (f . g)(x) = f(g(x)); a core way functional programs are built from small pieces.

concept

Function-as-a-Service (FaaS)

The compute model behind serverless: developers deploy individual functions that the platform runs on demand and scales independently, as with AWS Lambda, Azure Functions, Google Cloud Functions, and Cloudflare Workers.

concept

Functional Programming

A programming paradigm that builds programs by composing functions and avoiding shared mutable state and side effects.

concept

Functor

In functional programming, a type you can map a function over, such as a list or an optional value, transforming its contents while preserving its structure.

concept

Garbage Collection

Automatic reclaiming of memory a program no longer needs, first put into practice for LISP around 1959 and 1960.

concept

Glue Language

A high-level scripting language used to wire existing programs and components together rather than build systems from scratch, the central idea of Ousterhout's scripting thesis.

concept

Godel's Incompleteness Theorems

Godel's two 1931 theorems: any consistent formal system rich enough for arithmetic contains true statements it cannot prove, and cannot prove its own consistency.

concept

Good First Issue

A labeling convention, with the related help wanted label, that flags repository tasks as approachable for newcomers so that first-time contributors can find somewhere to start; on GitHub the good first issue label feeds discovery features that surface beginner-friendly work.

concept

Gossip Protocol

An epidemic communication style where each node periodically exchanges state with a few random peers, so information spreads exponentially across a large cluster without central coordination.

concept

GPGPU (General-Purpose Computing on GPUs)

The practice of repurposing a GPU's massively parallel shader hardware for non-graphics computation. GPGPU began as shader hacks that disguised math as rendering and matured into dedicated platforms such as CUDA and OpenCL.

concept

GPIO (General-Purpose Input/Output)

GPIO pins are the configurable digital connections on a microcontroller or single-board computer that software can set as inputs to read a voltage or as outputs to drive one. They are the lowest layer beneath calls like digitalWrite, exposed as register bits and as the physical header on boards such as the Raspberry Pi and Arduino.

concept

Graph (Data Structure)

A set of nodes connected by edges, used to model networks, dependencies, maps, and relationships, and the substrate for a large family of algorithms.