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.
Plain-language explanations of the ideas behind software - compilers, garbage collection, objects, types.
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.
A type-system extension that tracks the side effects a piece of code may perform, making effects part of a function's type.
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.
The software used to design modern chips: synthesis, simulation, place-and-route, and verification tools that turn a hardware description into a manufacturable layout.
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.
The practice and tools for finding bugs in software running on-target, where limited resources, no console, and timing sensitivity make ordinary debugging hard.
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.
Encryption where only the communicating endpoints can read the messages, so the servers and providers relaying them in between cannot.
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.
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.
Named string values that a process inherits from its parent, such as PATH and HOME, forming a shared, inheritable configuration block carried through exec.
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.
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.
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.
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.
A consistency model in which, if no new updates are made, all replicas eventually converge to the same value, trading immediate consistency for availability.
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.
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.
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.
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.
A system's ability to keep operating correctly even when some of its components fail, achieved through redundancy, replication, and failover.
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.
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.
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.
Treating functions as ordinary values that can be named, passed as arguments, returned from functions, and stored in data structures.
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.
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.
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.
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.
A column that references a primary key in another table, enforcing referential integrity so a row cannot point at data that does not exist.
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.
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.
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.
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.
The problem of keeping shared, synchronized UI state predictable as applications grow, and the libraries (Flux, Redux, MobX, Zustand, signals) built to address it.
Searching the actual text content of documents using an inverted index, with tokenization, stemming, and relevance ranking.
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.
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.
A programming paradigm that builds programs by composing functions and avoiding shared mutable state and side effects.
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.
Automatic reclaiming of memory a program no longer needs, first put into practice for LISP around 1959 and 1960.
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.
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.
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.
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.
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.
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.
A set of nodes connected by edges, used to model networks, dependencies, maps, and relationships, and the substrate for a large family of algorithms.