A glossary of fundamental software development terms.
Glossary
Agile Software Development
Agile Manifesto: A 2001 statement of values and principles guiding agile software development by developers.
Backlog: A prioritized list of work items, features, or user stories for the team to complete.
Burndown Chart: A graph tracking remaining work over time to monitor progress in an iteration or sprint.
Continuous Integration (CI): The practice of integrating code changes often, usually several times daily, with automated testing to identify issues early.
Daily Standup: A brief daily meeting where team members share their progress, plans, and blockers.
Increment: Working software produced in an iteration or sprint that adds to previous increments.
Iteration: A time-boxed period, usually one to four weeks, where a team plans, builds, tests, and delivers working software.
Kanban: An agile framework visualizing work flow to identify bottlenecks and boost throughput, with less structure than Scrum.
Product Owner: In Scrum, the role responsible for defining and prioritizing work, representing stakeholders, and ensuring the team builds the right things.
Retrospective: A meeting at each iteration's end where teams review successes, failures, and areas for improvement.
Scrum: The most widely used agile framework with roles, events, and artifacts for organizing work.
Scrum Master: In Scrum, the role responsible for facilitating the process, removing blockers, and coaching the team.
Sprint: In Scrum, a time-boxed iteration, usually two weeks, during which the team completes work.
Sprint Planning: A meeting at the start of a sprint where the team selects work from the backlog and plans how to complete it.
Sprint Review: A meeting at the end of a sprint where the team demonstrates working software to stakeholders and gathers feedback.
Story Points: A unit of measure for estimating work complexity, used to plan iterations and track velocity.
Test-Driven Development (TDD): A practice where developers write tests before writing code, ensuring code is testable and tests drive design.
User Story: A brief description of a feature from the user's perspective, typically written in the format: As a [type of user], I want [goal] so that [benefit].
Velocity: A measure of team work per iteration for planning future work.
Working Software: Software that's tested, functional, and usable by end users, not just code that compiles.
Algorithms
Algorithm: A finite sequence of well-defined steps that solves a class of problems or performs a computation.
Amortized analysis: A technique that averages the cost of operations over a sequence, showing that occasional expensive operations are offset by many cheap ones.
Big O notation: A mathematical notation describing an algorithm's worst-case growth rate as input size increases, ignoring constant factors.
Breadth-first search: A graph traversal that visits all neighbors at the current depth before moving deeper. Finds shortest paths in unweighted graphs.
Depth-first search: A graph traversal that explores as far as possible along each branch before backtracking. Used for connectivity, cycle detection, and topological sorting.
Divide and conquer: An algorithm strategy that splits a problem into independent subproblems, solves each recursively, and combines results.
Dynamic programming: An optimization technique that solves overlapping subproblems once, stores the results, and reuses them to avoid redundant computation.
Greedy algorithm: An algorithm that makes the locally optimal choice at each step. Efficient when the greedy-choice property holds.
Recursion: A technique where a function calls itself with a smaller input until reaching a base case. The foundation for divide-and-conquer and tree algorithms.
Space complexity: The amount of memory an algorithm uses as a function of input size, including auxiliary storage beyond the input itself.
Time complexity: The number of elementary operations an algorithm performs as a function of input size, expressed in Big O notation.
API Design and Contracts
Application Programming Interface (API): A defined way for software systems to communicate.
Backward compatibility: A change that keeps existing clients working without modification.
Contract testing: Tests that verify API behavior matches the published contract.
Hypertext Transfer Protocol (HTTP): The protocol used for most web APIs.
OpenAPI Specification (OAS): A standard format for describing HTTP APIs.
Backend Engineering
API gateway: A single entry point that routes requests to backend services, handling cross-cutting concerns like authentication and rate limiting.
Authentication: Verifying the identity of a user or service, typically through credentials, tokens, or certificates.
Authorization: Determining what actions an authenticated user or service is permitted to perform.
Caching: Storing frequently accessed data in fast storage to reduce load on slower backend systems and improve response times.
Load balancing: Distributing incoming requests across multiple server instances to prevent any single instance from becoming a bottleneck.
Middleware: Software that sits between the request and the handler, performing cross-cutting tasks like logging, authentication, or error handling.
Rate limiting: Restricting how many requests a client can make in a time window to protect services from overload or abuse.
REST: Representational State Transfer, an architectural style for APIs using HTTP methods and stateless interactions with resources identified by URLs.
Stateless service: A service that stores no client state between requests. Each request contains all the information needed to process it, simplifying horizontal scaling.
Capacity Planning
Capacity: The maximum amount of work a system can handle under given conditions.
Capacity planning: The process of determining what resources are needed to meet future demand while balancing performance, cost, and risk.
Bottleneck: The resource that limits system capacity. The slowest component determines overall capacity.
Headroom: Unused capacity reserved for growth, traffic spikes, and unexpected demand.
Utilization: The percentage of capacity currently in use.
Peak demand: The maximum load a system experiences.
Average demand: The typical load over time.
Vertical scaling (scale up): Adding more resources to existing systems (bigger servers, more CPU, more memory).
Horizontal scaling (scale out): Adding more systems (more servers, more instances, more nodes).
Elasticity: A system's ability to automatically add or remove resources based on demand.
Right-sizing: Adjusting resource provisioning to match actual needs, avoiding over- or under-provisioning.
Load testing: Measuring system capacity by simulating expected load.
Stress testing: Pushing systems beyond normal capacity to find breaking points.
Capacity modeling: Using mathematical models to predict capacity needs based on workload characteristics.
Centralized Software Systems
Centralized System: A software system where control, data storage, or processing occurs in a single location or via one coordinating component.
Monolithic Application: A single deployable unit with all functionality in one process.
Single Point of Control: One component that makes decisions or coordinates activities in a system.
Unified Data Storage: Data storage where all data is centralized or appears so from the application's view.
Coordinated Processing: Processing occurs in one location or is managed by a central component.
Client-Server Architecture: An architecture that centralizes processing on servers while clients handle presentation.
Hub-and-Spoke Integration: An integration pattern centralizing logic in a hub connecting multiple systems.
Vertical Scaling: Increasing a machine's capacity with bigger CPU, more memory, and storage.
Horizontal Scaling: Adding more machines to handle increased load.
Single Point of Failure: A component whose failure causes total system failure.
Ci Cd and Release Engineering
Artifact: A compiled, packaged output of a build process (e.g., a JAR file, Docker image, or binary).
Blue-green deployment: A deployment strategy using two identical production environments, deploying to the idle one and switching traffic.
Build: The process of compiling source code into runnable artifacts.
Canary deployment: A deployment strategy that releases code to a small percentage of users first, then gradually expands.
Continuous Deployment: Automating code deployment to production after passing tests.
Continuous Delivery: Automating code deployment with manual gates.
Continuous Integration: The practice of automatically building and testing code whenever it changes.
Deployment pipeline: The automated process that moves code from version control to production.
Feature flag: A switch that controls feature activation, allowing gradual rollouts and quick rollbacks.
Integration hell: Problems from infrequent code integration causing merge conflicts and failures.
Release engineering: The discipline of building systems that reliably package, test, and deploy software.
Rolling deployment: A deployment strategy that updates instances gradually, one at a time.
Staging environment: A production-like environment used for testing before production deployment.
Color and Contrast
Color contrast: The difference in brightness between text and its background, measured as a ratio.
Contrast ratio: A numerical value comparing the relative luminance of lighter and darker colors, ranging from 1:1 to 21:1.
Color blindness: A condition affecting color vision, where users have difficulty distinguishing certain colors.
Luminance: A measure of how bright a color appears to the human eye, accounting for how different colors affect perception.
WCAG: Web Content Accessibility Guidelines, international standards for web accessibility that include contrast requirements.
APCA: Advanced Perceptual Contrast Algorithm, a newer contrast model proposed for future versions of WCAG. APCA aims to better match human perception of contrast by considering factors like text size, weight, and background color.
Hue: The color itself, like red, blue, or green, independent of lightness or saturation.
Saturation: The intensity or purity of a color, ranging from vivid to muted.
Lightness: How light or dark a color appears, affecting contrast more than hue or saturation.
Computer Processing
ASIC: Application-Specific Integrated Circuit. A chip designed for a single task, offering maximum performance and efficiency for that workload.
Branch prediction: A CPU technique that guesses the outcome of conditional branches to keep the instruction pipeline full, avoiding stalls.
Cache hierarchy: Layers of progressively larger, slower memory (L1, L2, L3) between the CPU and main memory that reduce average access latency.
CPU: Central Processing Unit. The general-purpose processor that executes sequential instructions and coordinates system operations.
Data parallelism: Distributing the same operation across many data elements simultaneously, the core paradigm of GPU computing.
FPGA: Field-Programmable Gate Array. A chip whose logic can be reconfigured after manufacture, offering flexibility between general-purpose CPUs and fixed ASICs.
GPU: Graphics Processing Unit. A massively parallel processor with thousands of cores optimized for data-parallel workloads like rendering and machine learning.
Instruction pipeline: A CPU design that overlaps the stages of instruction execution (fetch, decode, execute) so multiple instructions are in flight simultaneously.
TPU: Tensor Processing Unit. A Google-designed accelerator optimized for matrix operations in machine learning, using a systolic array architecture.
Data Analysis
Anomaly detection: Identifying data points that deviate significantly from expected patterns, often indicating errors, fraud, or unusual events.
Causation: A relationship where one variable directly influences another. Requires controlled experiments or rigorous methods to establish, unlike correlation.
Confidence interval: A range of values that is likely to contain the true population parameter, with a specified probability (e.g., 95%).
Correlation: A statistical measure of how two variables move together. Ranges from −1 to +1 but does not imply causation.
Data quality: The degree to which data is complete, consistent, accurate, relevant, and timely enough for its intended analysis.
Descriptive analysis: Summarizing data to describe what happened, using measures like mean, median, counts, and distributions.
Exploratory data analysis: An open-ended investigation of data using visualization and summary statistics to discover patterns, outliers, and relationships before formal modeling.
Overfitting: Building a model that captures noise in the training data rather than the underlying pattern, resulting in poor performance on new data.
Predictive analysis: Using statistical models or machine learning to forecast future outcomes based on historical data patterns.
Sampling bias: A systematic error where the sample does not represent the population, leading to skewed or invalid conclusions.
Statistical significance: The probability that an observed result is not due to chance, typically assessed using a p-value threshold (e.g., p < 0.05).
Data Structures
Amortized analysis: Averaging the cost of operations over a sequence to show that occasional expensive operations (like resizing) are offset by many cheap ones.
Big O notation: A mathematical notation describing how an operation's cost grows with input size, ignoring constant factors and lower-order terms.
Cache efficiency: How well a data structure's memory layout exploits CPU cache lines. Contiguous structures like arrays are cache-friendly; pointer-heavy structures are not.
Data structure: A way of organizing data in memory that determines how efficiently it can be accessed, searched, inserted into, and deleted from.
Eviction policy: The rule a cache or bounded collection uses to decide which item to remove when full, such as least recently used (LRU) or least frequently used (LFU).
Hash collision: When two keys map to the same slot in a hash table, requiring resolution by chaining or probing.
Load factor: The ratio of stored entries to total slots in a hash table. High load factors increase collisions; most implementations resize when the factor exceeds a threshold.
Unbounded growth: A data structure that grows without limit because entries are added but never removed. A common source of memory leaks in long-running systems.
Databases
ACID properties: Atomicity, Consistency, Isolation, Durability. The guarantees a relational transaction provides to ensure data integrity.
Connection pooling: Reusing a set of pre-established database connections instead of opening a new one per request, reducing overhead.
Database index: A data structure that speeds up row retrieval by maintaining a sorted reference to column values, at the cost of additional storage and write overhead.
Foreign key: A column that references the primary key of another table, enforcing referential integrity between related records.
Normalization: Organizing database tables to reduce redundancy and dependency, typically through first, second, and third normal forms.
NoSQL: A category of databases that relax relational constraints for flexibility or scale, including document, key-value, column-family, and graph stores.
Primary key: A column or set of columns that uniquely identifies each row in a table. Must be unique and non-null.
Query optimization: The process by which a database engine chooses the most efficient execution plan for a query, using indexes, statistics, and cost estimates.
Sharding: Partitioning data across multiple database instances so each shard holds a subset, enabling horizontal scaling of writes and storage.
SQL: Structured Query Language. The standard language for querying and manipulating relational databases.
Transaction: A sequence of database operations treated as a single unit: all succeed (commit) or all are rolled back on failure.
Distributed Systems
CAP theorem: States that a distributed system can provide at most two of three guarantees simultaneously: Consistency, Availability, and Partition tolerance.
Consensus algorithm: A protocol that allows distributed nodes to agree on a value despite failures. Examples include Raft and Paxos.
Consistent hashing: A hashing scheme that minimizes key redistribution when nodes are added or removed, used in distributed caches and databases.
Distributed tracing: Following a single request through multiple services by propagating trace IDs, enabling diagnosis of latency and failures across service boundaries.
Eventual consistency: A consistency model where replicas may temporarily diverge but will converge to the same state given enough time without new writes.
Fault tolerance: A system's ability to continue operating correctly when some components fail, typically achieved through redundancy and replication.
Leader election: A consensus process where distributed nodes select one node to coordinate work, ensuring exactly one leader exists at a time.
Network partition: A failure where some nodes in a distributed system cannot communicate with others, forcing trade-offs between consistency and availability.
Partition tolerance: The ability of a distributed system to continue functioning when network partitions prevent some nodes from communicating.
Service discovery: The mechanism by which services locate each other's network addresses dynamically, rather than relying on hard-coded endpoints.
Fundamental Algorithmic Patterns
Backtracking: A recursive search strategy that builds candidates incrementally, abandoning (backtracking) a path as soon as it violates constraints. Used for N-Queens, sudoku, and subset generation.
Binary search: A search technique that halves the search space each step by comparing a target against the midpoint of a sorted range. Runs in O(log n) time.
Bit manipulation: Using bitwise operators (AND, OR, XOR, shift) to solve problems at the binary level. Common tricks include XOR for uniqueness, bitmasks for subsets, and n & (n − 1) for power-of-two checks.
Cyclic sort: An in-place sorting pattern for arrays whose values map directly to indices (e.g., 1 to n). Each element is swapped to its correct position in O(n) time and O(1) space.
Divide and conquer: A strategy that splits a problem into independent subproblems, solves each recursively, and combines results. Merge sort and quicksort are classic examples.
Dynamic programming: A technique for problems with overlapping subproblems and optimal substructure. Stores previously computed results (memoization or tabulation) to avoid redundant work.
Fast and slow pointers: A two-pointer technique where one pointer advances twice as fast as the other. Detects cycles (Floyd's algorithm) and finds midpoints in linked lists in O(n) time and O(1) space.
Frequency counting: Using a hashmap to tally occurrences of each element. Enables O(n) solutions for problems like finding duplicates, grouping anagrams, and identifying unique elements.
Greedy algorithm: An approach that makes the locally optimal choice at each step, without reconsidering. Correct only when the greedy-choice property holds; otherwise dynamic programming is needed.
Merge intervals: A pattern for combining overlapping ranges by sorting intervals by start time and merging consecutive pairs whose ranges overlap.
Minimum spanning tree: A subset of edges in a weighted graph that connects all vertices with minimum total weight and no cycles. Found with Kruskal's or Prim's algorithm.
Monotonic stack: A stack that maintains elements in increasing or decreasing order. Solves next-greater-element, histogram, and span problems in O(n) time.
Prefix sum: A precomputed array where each entry stores the cumulative sum from the start. Enables O(1) range-sum queries after O(n) preprocessing.
QuickSelect: A selection algorithm based on quicksort partitioning that finds the kth smallest element in average O(n) time without fully sorting the array.
Shortest path: The minimum-cost route between nodes in a graph. Algorithm choice depends on constraints: BFS for unweighted, Dijkstra for non-negative weights, Bellman-Ford for negative weights.
Sliding window: A technique that maintains a contiguous subarray or substring bounded by two indices, expanding and shrinking to satisfy constraints. Solves many subarray problems in O(n) time.
Sweep line: An event-based approach for interval problems. Converts intervals into start and end events, sorts them, and scans to count overlaps or detect conflicts.
Topological sort: A linear ordering of a directed acyclic graph's vertices such that every edge points forward. Used for dependency resolution, build order, and scheduling.
Trie: A tree structure where each node represents a character and paths from root to nodes spell prefixes. Supports O(L) insert and prefix lookup, where L is word length.
Two heaps: A pattern using a max-heap for the smaller half and a min-heap for the larger half of a dataset. Provides O(1) median access and O(log n) insertion for streaming data.
Two pointers: A technique using two indices that move through a sorted sequence to find pairs, remove duplicates, or validate conditions in O(n) time and O(1) space.
Union-Find: A data structure (also called disjoint set) that tracks connected components with near-constant-time union and find operations via path compression and union by rank.
Fundamental Data Structures
Array: A contiguous, indexed sequence of elements. Provides O(1) access by position but O(n) insertion or deletion in the middle.
Binary search tree: A tree where each node's left children are smaller and right children are larger. Supports O(log n) search, insert, and delete when balanced.
Deque: A double-ended queue that supports insertion and removal at both ends in O(1) time.
FIFO: First In, First Out. The access pattern of a queue: the earliest added element is removed first.
Graph: A structure of nodes (vertices) connected by edges. Models relationships like networks, dependencies, and routes.
Hash collision: When two distinct keys map to the same hash table slot. Resolved by chaining (linked lists) or open addressing (probing).
Hash map: A key-value store using a hash function for O(1) average lookup, insert, and delete. Also called dictionary, map, or associative array.
Hash set: An unordered collection of unique elements using hashing for O(1) average membership testing.
Heap: A tree-based structure that maintains the min or max element at the root. Used to implement priority queues with O(log n) insert and extract.
LIFO: Last In, First Out. The access pattern of a stack: the most recently added element is removed first.
Linked list: A sequence of nodes where each node points to the next. Supports O(1) insertion and deletion at known positions but O(n) access by index.
Queue: A FIFO structure supporting enqueue at the back and dequeue from the front, both in O(1) time.
Stack: A LIFO structure supporting push and pop at one end in O(1) time. Used for recursion, undo, and expression evaluation.
Tree traversal: Visiting every node in a tree in a defined order: preorder, inorder, postorder (depth-first), or level-order (breadth-first).
Fundamental Software Concepts
Assertion: A statement that checks whether a condition is true at a specific point in code. Fails fast to catch bugs close to their source.
Asynchronous programming: A concurrency model where operations yield control while waiting for I/O, allowing other work to proceed without threads blocking.
Circuit breaker: A resilience pattern that stops calling a failing dependency after a threshold, returning a fallback instead of waiting for timeouts.
Deadlock: A state where two or more threads each hold a resource the other needs, so none can proceed.
Defensive programming: Writing code that anticipates and handles unexpected inputs and states rather than assuming correct usage.
Exponential backoff: Increasing the wait time between retries (e.g., 1s, 2s, 4s) to reduce load on a failing system.
Garbage collection: Automatic memory management that reclaims objects no longer referenced by the program.
Immutable state: Data that cannot be changed after creation. Eliminates a class of concurrency bugs because shared data is read-only.
Memory leak: A condition where allocated memory is never freed because references to it are retained unintentionally, causing steady memory growth.
Race condition: A bug where program behavior depends on the unpredictable timing of concurrent operations accessing shared state.
State machine: A model with a finite set of states, transitions between them, and rules governing which transitions are valid.
Thread safety: The property of code that functions correctly when called from multiple threads simultaneously, without data corruption.
Fundamentals
Feynman technique: A learning method where you explain a concept in simple language, identify gaps in your understanding, then restudy and simplify again.
First principles: Reasoning from foundational truths rather than by analogy. Breaks problems into their most basic components and builds understanding from there.
Mental model: A simplified internal representation of how something works, used to reason about complex systems without needing full detail.
Pareto principle: The observation that roughly 80% of effects come from 20% of causes. In learning, a small set of fundamentals provides most of the practical value.
Spaced repetition: A study technique that reviews material at increasing intervals, exploiting the spacing effect to move knowledge into long-term memory.
Transferable knowledge: Understanding that applies across tools, languages, and frameworks. Fundamentals are transferable; implementation details are not.
Graph Databases
Node: An entity in a graph (e.g., a person, product, or concept). Has a label and optional properties.
Edge (Relationship): A connection between two nodes. Has a type, direction, and optional properties.
Property graph: A graph model where nodes and edges can have arbitrary key-value properties.
Traversal: Following edges from one node to others, possibly for multiple hops.
Cypher: A declarative query language for property graphs, used by Neo4j and others.
Gremlin: A traversal-oriented query language for property graphs, used by Apache TinkerPop-compatible databases.
RDF: Resource Description Framework. A triple-based model (subject-predicate-object) used for semantic data.
SPARQL: Query language for RDF data.
Logical Fallacies
Appeal to authority: Using an expert's opinion as proof without verifying their accuracy or relevance.
Confirmation bias: Seeking and interpreting information that confirms beliefs while ignoring evidence.
False dichotomy: Presenting two options as the only choices when others exist.
Logical fallacy: A flaw in reasoning that invalidates an argument, even if persuasive.
Planning fallacy: Underestimating how long tasks will take despite evidence of previous delays.
Post hoc ergo propter hoc: Assuming A caused B because B followed A; correlation doesn't mean causation.
Strawman fallacy: Misrepresenting someone's argument to make it easier to attack, then attacking the misrepresentation instead of the actual argument.
Sunk cost: A past, unrecoverable investment of time, money, or effort.
Sunk cost fallacy: Continuing to invest in something due to prior investment, even when stopping would be better.
Maintainability
Abstraction: Removing physical, spatial, or temporal detail to focus on essentials. In code, hiding implementation behind interfaces so callers depend on behavior, not structure.
Afferent coupling: The number of modules that depend on a given module. High afferent coupling means many callers; changes ripple widely.
Code smell: A surface indication that code may have a design or maintainability problem. Suggests refactoring rather than a bug per se.
Cohesion: How closely the responsibilities of a module hang together. High cohesion means one clear purpose; low cohesion (e.g. a "utility" doing unrelated things) hurts maintainability.
Coupling: The degree to which modules depend on each other. Low coupling keeps changes local; high coupling makes changes ripple and tests harder.
Cyclomatic complexity: The number of linearly independent paths through code. Calculated from branches, loops, and conditionals.
Efferent coupling: The number of modules a given module depends on. High efferent coupling means many dependencies; the module is rigid.
Feature envy: A code smell where a method uses another object's data more than its own. Suggests the logic may belong in the other object.
God class: A class with excessive size (500+ lines) and many responsibilities. Hard to understand and change.
Refactoring: Changing the internal structure of code without changing its external behavior. Improves design and maintainability while preserving semantics.
Shotgun surgery: A code smell where one change requires edits in many files. Indicates scattered related logic.
Software maintenance: Modification of a software product after delivery to correct faults, improve performance, or adapt to a changed environment.
Technical debt: Deferred work that makes future changes harder. The metaphor: quick-and-dirty code "borrows" time and "pays interest" on every change.
Naming
Abbreviation: A shortened form of a word or phrase. Abbreviations can improve brevity but may reduce clarity if not universally understood.
Clarity: Names that quickly convey intent without explanation.
Consistency: The quality of names that follow predictable patterns throughout a codebase.
Context: The scope and visibility that determine name specificity.
Convention: A standard teams agree to follow for naming.
Discoverability: The quality of names that make code easy to find through search and navigation.
Identifier: A name that identifies a variable, function, class, or other code element.
Naming pattern: A reusable structure for common naming problems.
Scope: The context in which a name is visible and can be used.
Terminology: The words and phrases describing concepts in a domain or codebase.
Visibility: Access level to a name, like public, private, or protected.
Networking
Application layer: The protocols an application speaks, such as Hypertext Transfer Protocol (HTTP) and Domain Name System (DNS).
Authoritative nameserver: A Domain Name System (DNS) server that serves as the source of truth for a domain's records.
Domain Name System (DNS): The naming system that maps hostnames to Internet Protocol (IP) addresses.
Frame: A link-level unit of data on a local network, for example, Ethernet.
Head-of-line blocking: A condition where delayed segments in transport cause later data to wait, increasing tail latency.
Internet Protocol (IP): The network layer protocol that routes packets across networks.
Latency: The time delay between sending data and receiving a response.
Network Address Translation (NAT): A technique that rewrites addresses, commonly used with IPv4.
Open Systems Interconnection (OSI) model: A layered conceptual model for networking, often used as a vocabulary for locating failures.
Packet: A network layer unit of data sent across networks.
Port: A number that identifies a specific application endpoint on a host.
Recursive resolver: A Domain Name System (DNS) component that queries other nameservers on behalf of a client and returns the final answer.
Transmission Control Protocol and Internet Protocol (TCP/IP) model: A commonly used layered model that groups networking into link, internet, transport, and application layers.
Transmission Control Protocol (TCP): A reliable, connection-oriented transport protocol.
Transport Layer Security (TLS): A protocol for encrypting and authenticating data in transit.
User Datagram Protocol (UDP): A minimal, connectionless transport protocol.
Open Source
Contributor: A person who submits changes (code, documentation, tests) to an open-source project, typically through pull requests.
Copyleft: A licensing approach (e.g., GPL) that requires derivative works to be distributed under the same license, ensuring the code remains open.
Dual licensing: Offering software under both an open-source license and a commercial license, allowing businesses to choose based on their needs.
Fork: A copy of a repository that diverges from the original, allowing independent development. Can be a personal workspace or a permanent divergence.
Open core: A business model that offers core functionality as open source while selling proprietary features, support, or hosted services.
Open source: Software whose source code is publicly available and licensed to allow use, modification, and redistribution by anyone.
Permissive license: An open-source license (e.g., MIT, Apache, BSD) that allows almost unrestricted use, including incorporation into proprietary software.
Privacy and Compliance
Audit trail: A chronological record of who accessed or modified data and when, used to demonstrate compliance and investigate incidents.
CCPA: California Consumer Privacy Act. Gives California residents rights over their personal data, including the right to know, delete, and opt out of sale.
Data inventory: A catalog of what personal data a system collects, where it is stored, how it flows, and who has access.
Data lifecycle: The stages personal data passes through: collection, storage, use, sharing, retention, and deletion.
Data minimization: Collecting and retaining only the personal data strictly necessary for the stated purpose, reducing risk and compliance scope.
GDPR: General Data Protection Regulation. The EU law governing personal data protection, requiring lawful basis, minimization, and individual rights.
Least-privilege access: Granting users and services the minimum permissions needed to perform their tasks, limiting the blast radius of breaches.
PCI DSS: Payment Card Industry Data Security Standard. Security requirements for organizations that handle credit card data.
Personal data: Any information that can identify a person directly (name, email) or indirectly (IP address, device ID, behavioral patterns).
Retention policy: Rules defining how long data is kept and when it must be deleted, balancing legal requirements with minimization principles.
SOC 2: Service Organization Control 2. An audit framework assessing security, availability, processing integrity, confidentiality, and privacy controls.
Program Management
Program: A group of related projects managed together to achieve strategic objectives that individual projects can't deliver alone.
Program management: Coordination of related projects to meet strategic goals, covering alignment, project management, dependencies, and governance.
Project: A temporary effort with scope, timeline, and deliverables.
Project management: Application of knowledge, skills, tools, and techniques to project activities to meet requirements.
Portfolio: A collection of programs, projects, and work managed to achieve strategic goals.
Portfolio management: Selection and management of programs and projects for strategic goals.
Strategic alignment: Ensuring programs support organizational goals and deliver valuable outcomes.
Project coordination: Ensuring related projects collaborate toward shared outcomes, not in isolation.
Dependency management: Managing project interdependencies to prevent delays.
Governance: Structures and processes for decision-making, escalation, and accountability at the program level.
Interdependency: A relationship where one project's output affects another's work.
Program manager: The person coordinating a program to ensure strategic value.
Stakeholder: A person or group affected by or interested in a program.
Program objective: A strategic outcome a program aims for, often unachievable by individual projects.
Python
Duck typing: A typing system that assesses an object's suitability based on methods and properties, not its class or inheritance.
Bytecode: An intermediate Python code representation the Python Virtual Machine executes.
LEGB rule: The order Python searches for variables: Local, Enclosing function, Global module, Built-in.
Closure: A function that remembers variables from its scope even after exit.
Mutable: Objects that can be modified after creation (lists, dictionaries, sets).
Immutable: Objects that cannot be modified after creation (strings, tuples, numbers).
Aliasing: When multiple variables reference the same object in memory.
First-class function: Functions that can be passed as arguments, returned from other functions, and assigned to variables.
Special methods: Methods with double underscores (dunder methods) that customize object behavior, like __init__ or __str__.
Context manager: An object that defines __enter__ and __exit__ methods for resource management, typically used with the with statement.
Generator: A function using yield to lazily produce values one at a time instead of computing all at once.
Iterable: Any object that can be looped over (lists, tuples, strings, dictionaries, generators).
Type hints: Optional annotations that specify expected types for variables, parameters, and return values (PEP 484).
REPL: Read-Eval-Print Loop, an interactive environment where you can type Python expressions and see results immediately.
Software Accessibility
Accessibility: The practice of building interfaces that everyone can use, regardless of ability.
ARIA: Accessible Rich Internet Applications attributes that enhance HTML when semantic elements aren't sufficient.
ARIA live regions: ARIA attributes (aria-live, aria-atomic, aria-relevant) that announce dynamic content changes to screen reader users without requiring them to navigate to that content.
Assistive technology: Software or hardware that helps users with disabilities interact with interfaces, such as screen readers or voice control.
Focus indicator: Visual indication of which element currently has keyboard focus.
Semantic HTML: HTML elements that convey meaning about content structure and purpose.
Screen reader: Software that reads content aloud to users who are blind or have low vision.
WCAG: Web Content Accessibility Guidelines, international standards for web accessibility.
Software Architecture
Event-driven architecture: A pattern where components communicate by producing and consuming events asynchronously, enabling loose coupling and independent scaling.
Graceful degradation: Designing a system to maintain core functionality when non-critical components fail, rather than failing entirely.
Layered architecture: A pattern organizing code into horizontal layers (presentation, business logic, data access) where each layer depends only on the layer below.
Loose coupling: A design where components depend on each other as little as possible, so changes in one component have minimal impact on others.
Microservices: An architectural style decomposing an application into small, independently deployable services, each owning its own data and logic.
Monolithic architecture: A single deployable unit containing all application functionality. Simple to develop and deploy initially but harder to scale and modify as it grows.
Non-functional requirements: Quality attributes like performance, security, availability, and maintainability that constrain how a system must behave, not what it does.
Software architecture: The high-level structure of a system: its components, their relationships, communication patterns, and the principles guiding their design.
System boundary: The dividing line between what is inside a system or component and what is outside, defining interfaces and responsibilities.
Tight coupling: A design where components depend heavily on each other's internals, so changes in one force changes in others.
Software Availability
Availability: The percentage of time a system is accessible and functional when users need it.
Nines: Shorthand for availability percentages. "Three nines" means 99.9%, "four nines" means 99.99%.
SLA (Service Level Agreement): External contract with customers specifying guaranteed availability and consequences for failing to meet it.
SLO (Service Level Objective): Internal target for availability that's typically higher than the SLA.
SLI (Service Level Indicator): Actual measured availability metric.
Error Budget: The allowed downtime based on your availability target. If you target 99.9%, your error budget is 0.1%.
Redundancy: Having backup components ready to take over when primaries fail.
Active-Active: Multiple components handling traffic simultaneously.
Active-Passive: One component handles traffic, while the others remain on standby.
Failover: The process of switching from a failed component to a backup.
Health Check: A periodic test to verify that a component is working correctly.
Load Balancer: Distributes requests across multiple servers.
Circuit Breaker: Stops calling a failing service to prevent cascading failures.
Graceful Degradation: Maintaining core functionality when non-critical components fail.
Replication: Maintaining copies of data across multiple database instances.
Replication Lag: The delay between writing to a primary and the change appearing in replicas.
Eventual Consistency: Data will eventually become consistent across replicas, but may be temporarily inconsistent.
Timeout: Maximum time to wait for an operation before considering it failed.
Retry: Attempting an operation again after failure.
Exponential Backoff: Increasing wait time between retries exponentially (1s, 2s, 4s, 8s).
Jitter: Random variation added to retry timing to prevent thundering herds.
Cascading Failure: One component's failure triggers failures in other components.
Split Brain: Multiple components think they're primary because they can't communicate with each other.
Thundering Herd: Many clients simultaneously retry when a shared resource recovers from failure.
Idempotency: An operation that produces the same result when repeated multiple times.
Software Business Management
Balance sheet: Financial statement showing assets, liabilities, and equity at a point in time.
Budget: Financial plan for a year's resource allocation.
Competitive advantage: What makes a software company stand out to customers.
Controlling: Management monitors performance and adjusts.
Differentiation: Competitive strategy of offering unique value customers pay for.
Financial management: Practice of managing financial resources.
Human resource management (HRM): Practice of recruiting, developing, and retaining employees.
Income statement: Financial statement showing revenue, expenses, and profit.
Leading: Management involves motivating and guiding people toward goals.
Operations management: Practice of designing, managing, and improving software processes.
Organizing: Management of resources and workflows.
Planning: Management involves setting objectives and determining how to achieve them.
Strategic management: The process of setting long-term direction and making decisions to achieve competitive advantage.
SWOT analysis: Framework analyzing Strengths, Weaknesses, Opportunities, Threats.
Software Caching
Cache hit: The requested value is found in the cache and served from it.
Cache miss: The requested value is either not in the cache or expired, so the system must fetch or recompute it.
Hit rate: The fraction of requests that are cache hits.
Time-to-live (TTL): A duration after which a cached value is considered expired.
Eviction: Removal of cached items to make room for others, usually based on a policy like least recently used.
Stampede (dogpile): Many concurrent requests miss at the same time and overload the backend.
Negative caching: Caching a "not found" result to avoid repeated lookups.
Source of truth: The system that owns the authoritative version of the data (often a database).
Software Debugging
Correlation ID: A unique identifier generated at the edge of a request and propagated through all services, enabling tracking of a single request across a distributed system.
Evidence ladder: An ordered sequence of checks from cheap to expensive, designed to test the highest-probability explanations first.
Hypothesis: A proposed explanation that makes testable predictions.
Invariant: A condition that must always be true for correctness.
Reduction: The process of making a failing case smaller by removing dependencies, shrinking inputs, or eliminating variables until the explanation becomes obvious.
Regression: A bug where something that used to work stops working after a change.
Root cause: The most actionable explanation that, when fixed, prevents recurrence.
Symptom: The observed effect of an underlying problem.
Software Design
Cohesion: How closely the responsibilities within a module relate to each other. High cohesion means a single, clear purpose.
Coupling: The degree to which modules depend on each other. Low coupling keeps changes local and makes testing easier.
Design pattern: A reusable solution to a commonly occurring design problem, such as Factory, Observer, or Strategy.
DRY: Don't Repeat Yourself. A principle that every piece of knowledge should have a single, authoritative representation in the system.
KISS: Keep It Simple, Stupid. A principle favoring the simplest solution that meets requirements over clever or complex alternatives.
Principle of least surprise: Design should behave the way users and developers expect, minimizing confusion and reducing bugs caused by unexpected behavior.
Single responsibility principle: A class or module should have one reason to change. Part of SOLID; keeps units focused and easier to test.
SOLID principles: Five design principles (Single responsibility, Open/closed, Liskov substitution, Interface segregation, Dependency inversion) for maintainable object-oriented code.
YAGNI: You Aren't Gonna Need It. A principle advising against building features or abstractions until they are actually required.
Software Development
Agile development: An iterative approach to software delivery that builds working software incrementally, adapting to feedback and changing requirements.
Code review: A practice where developers examine each other's code changes to catch bugs, share knowledge, and maintain quality standards.
Continuous integration: Automatically building and testing code on every commit so integration problems are detected within minutes, not days.
Debugging: The process of finding, understanding, and fixing defects in software by forming and testing hypotheses about the root cause.
Refactoring: Changing code's internal structure without altering its external behavior to improve readability, reduce complexity, or eliminate duplication.
Technical debt: Shortcuts or deferred work that make future changes harder. Accumulates interest in the form of slower development and more bugs.
Version control: A system (like Git) that tracks changes to files over time, enabling collaboration, history review, and safe experimentation via branches.
Software Development Operations
API (Application Programming Interface): How software systems communicate with one another. Well-designed APIs enable integration and coordination. Poor APIs require custom workarounds for every integration.
CI/CD (Continuous Integration/Continuous Deployment): A development practice where code changes are integrated frequently and automatically deployed to production after passing automated tests.
Circuit Breaker: A pattern that prevents cascading failures. When a dependency fails, the circuit breaker stops sending requests and returns fallback responses instead of waiting for timeouts.
Deployment Frequency: How often code changes reach production. High-performing organizations deploy multiple times per day. Low-performing organizations deploy monthly or quarterly.
Distributed Tracing: Following a single transaction through multiple services. Essential for diagnosing problems in systems that span many services.
Graceful Degradation: Maintaining partial functionality when components fail. Example: showing cached product information when the inventory service is down.
Incident: A production problem that affects business operations. Examples: outages, performance degradation, data corruption.
Infrastructure as Code: Defining servers, networks, and configuration in version-controlled files instead of manual configuration.
Mean Time to Detect (MTTD): How long it takes to notice a problem occurred. High-performing organizations measure this in minutes.
Mean Time to Recovery (MTTR): How long it takes to restore normal operations after a failure. High-performing organizations resolve incidents in under one hour.
Observability: The ability to understand system behavior from external outputs like metrics, logs, and traces.
Operational Visibility: Whether leaders can see what is happening in systems and processes in real time to make effective decisions.
Technical Debt: Shortcuts taken during development that create future costs. Must be managed deliberately, or it accumulates and slows development velocity.
System Reliability: Whether systems work when operations need them. Measured by availability, accuracy, performance under load, and recovery time.
Software Maintainability
Code quality: Characteristics that make code readable, simple, consistent, and correct.
Code smell: An indicator of potential maintainability issues, though not necessarily a bug.
Cyclomatic complexity: A metric measuring the number of independent code paths, indicating logic complexity.
Dependency: External code your system uses for functionality without implementation.
Legacy code: Code that's difficult to understand or modify due to missing tests, poor structure, or lost knowledge.
Maintainability: The ease of modifying, debugging, and extending code over time.
Refactoring: Improving code structure incrementally without changing behavior.
Technical debt: Shortcuts taken during development that make future changes harder, accumulating cost over time.
Test coverage: The percentage of code executed by tests, showing how much is verified by automation tests.
Software Marketing
Attribution: Crediting marketing touchpoints for customer actions and revenue.
Channel: Medium for marketing messages (e.g., website, email, social media).
Conversion: Customer action indicating purchase progress (e.g., trial signup, demo request, purchase).
Go-to-market strategy: A strategy to reach customers and bring products to market.
Marketing funnel: Customer journey model from awareness to action, highlighting stages and drop-offs.
Messaging: Communication translating product capabilities into customer language and benefits.
Positioning: How customers perceive your product compared to alternatives, defining category, target, and differentiation.
Product-led growth (PLG): Growth strategy using the product as the main marketing and acquisition channel.
Value proposition: Clear statement of the unique value your product provides.
Software Performance
Latency: Time between a request and its response.
Throughput: Work completed per unit time (for example, requests per second).
Percentile: A value below which a given percentage of observations fall (for example, p95).
Tail latency: The slow end of the latency distribution (often p95 and p99).
Saturation: A resource is at capacity, and work must wait (queues form).
Service level objective (SLO): A target for system behavior, like reliability or latency, used to make trade-offs.
Software Performance Testing
Bottleneck: A component or resource that limits system performance.
Endurance testing: Testing system behavior over time to detect memory leaks, resource exhaustion, and degradation.
Load testing: Testing system behavior under expected load to verify performance.
Performance requirements: Specific, measurable criteria that define "good performance" for a system.
Performance testing: Verifying systems meet performance under expected and peak conditions.
Response time: Time from request to response, usually in milliseconds.
Spike testing: Testing system response to sudden load spikes to verify capacity.
Stress testing: Testing system limits to find breaking points and max capacity.
Throughput: Requests processed per second.
Volume testing: Testing system behavior with large data to verify it can handle expected volumes.
Software Project Management
Buffer: Extra time added to estimates to account for uncertainty and risk.
Critical Path: The sequence of dependent tasks that defines the minimum project duration. Delays in these tasks delay the whole project.
Dependency: A relationship where one task depends on another's completion.
Estimate: A prediction of work duration or cost based on available information.
Milestone: A key point that marks the completion of a significant phase or deliverable.
Risk: An uncertain event that negatively impacts the project if it occurs.
Scope: What the project will deliver and exclude.
Scope Creep: Gradual expansion of project scope without adjusting time, cost, or resources.
Slack (or Float): Extra time for non-critical tasks before they impact the schedule.
Stakeholder: Anyone impacted by the project, including sponsors, users, team members, and external parties.
Triple Constraint: The relationship between scope, time, and cost that shapes software project trade-offs. Also called the project management triangle.
Work Breakdown Structure (WBS): Hierarchical decomposition of project scope into manageable pieces.
Software Quality Assurance
Quality assurance (QA): Practices that shape software production to prevent defects and reduce risk.
Quality control (QC): Practices that evaluate software for defects and gaps.
Continuous integration (CI): A practice of frequent code integration and automated validation.
Defect: A software problem that can cause incorrect behavior, user harm, or operational pain.
Regression: A defect where something that used to work stops working after a change.
Software Scalability
Scalability: A system's ability to handle increased load by adding resources.
Horizontal scaling (scale out): Adding more instances of a component to handle increased load.
Vertical scaling (scale up): Adding more resources to existing instances to handle increased load.
Elasticity: A system's ability to automatically add or remove capacity based on demand.
Bottleneck: The component that limits system capacity. The slowest component determines overall performance.
Stateless design: Application design that eliminates server-side state, making horizontal scaling easier.
Stateful design: Application design that maintains server-side state, creating scalability constraints.
Load balancing: Distributing requests across multiple instances to prevent any single instance from becoming overloaded.
Caching: Storing frequently accessed data in fast storage (memory) to reduce load on slower systems.
Read replicas: Database copies that handle read queries, distributing read load across multiple instances.
Sharding: Partitioning data across multiple databases, with each shard handling a subset of data.
Microservices: An architecture pattern that decomposes applications into small, independent services that can scale independently.
Message queue: An asynchronous messaging system that decouples components, enabling independent scaling of producers and consumers.
Scalability ceiling: The point where adding resources provides diminishing returns or no benefit due to coordination overhead or shared bottlenecks.
Coordination overhead: The cost of coordinating multiple components (consensus, locking, synchronization) that reduces efficiency as systems scale.
Software Security
Authentication: The process of verifying a user's identity.
Authorization: The process of determining user permissions.
Attack surface: All possible attacker entry points, including APIs, user interfaces, endpoints, and integrations.
Threat modeling: A structured method to identify what you're protecting, who you're protecting it from, potential attack vectors, and essential defenses.
Ciphertext: Encrypted data unreadable without the key.
Confidentiality: The security goal of keeping data private and accessible only to authorized users.
Defense in depth: Using multiple security layers so that if one fails, others protect.
Encryption: The process of transforming readable data into unreadable data using an algorithm and a key.
Integrity: The security goal of keeping data accurate and unmodified by unauthorized changes.
Multi-factor authentication (MFA): Authentication that requires two or more factors to verify identity.
Plaintext: Unencrypted data that is readable.
Principle of least privilege: The security principle that users should have the minimum permissions needed to perform their tasks.
Threat: A potential attack that could harm a system.
Vulnerability: A weakness in a system that attackers can exploit.
Software Testing
Assertion: A statement in a test that checks whether an actual result matches the expected result. The test fails if the assertion is false.
End-to-end test: A test that exercises the full system from user input to final output, verifying that integrated components work together correctly.
Flaky test: A test that passes or fails inconsistently without code changes, often due to timing, shared state, or external dependencies.
Integration test: A test that verifies interactions between components, such as a service calling a database or another service.
Mocking: Replacing a real dependency with a controlled substitute in tests to isolate the unit under test and control its environment.
Regression testing: Re-running tests after changes to verify that existing functionality still works and no new bugs were introduced.
Test coverage: The percentage of code exercised by tests. Useful as a trend indicator but not a guarantee of quality by itself.
Test-driven development: A practice of writing a failing test first, then writing the minimum code to pass it, then refactoring. Drives design through tests.
Unit test: A test that verifies a single function or method in isolation, running fast and without external dependencies.
Software Usability
Affordance: A visual or functional cue showing what users can do with an interface element.
Efficiency: Speed at which users complete tasks.
Error prevention: How interfaces prevent user errors and support recovery.
Learnability: How easily users perform basic tasks on first use.
Memorability: How easily users can remember how to use software after not using it for a while.
Progressive disclosure: Revealing complexity gradually with simple interfaces first and advanced features as needed.
Satisfaction: The software is pleasant and enjoyable to use.
Usability: How effectively users accomplish tasks with software, covering learnability, efficiency, memorability, error prevention, and satisfaction.
Usability testing: Evaluating user effectiveness through observation and measurement.
User-centered design: Design approach focusing on user needs and goals.
Software User Experience
Accessibility: Designing so people with disabilities can use the product effectively.
Cognitive load: The mental effort required to understand and use the interface.
Information architecture (IA): How content and navigation are organized.
Jank: Visible stutter or lag during interactions, usually caused by dropped frames or main-thread work.
Task success rate: The percentage of users who complete a task successfully.
Telemetry: The events, logs, metrics, and traces you collect to understand system behavior.
User experience (UX): The end-to-end experience of using a product to achieve goals.
User interface (UI): The screens and controls someone uses to interact with a product.
Statistics
Central limit theorem: The principle that the distribution of sample means approaches a normal distribution as sample size grows, regardless of the population's shape.
Confidence interval: A range of values constructed so that it contains the true population parameter with a specified probability (e.g., 95%).
Effect size: A measure of the magnitude of a result, independent of sample size. Tells you whether a statistically significant finding is practically meaningful.
Hypothesis testing: A procedure that uses sample data to evaluate a claim about a population, typically comparing a null hypothesis against an alternative.
Mean: The arithmetic average of a dataset, calculated by summing all values and dividing by the count.
Median: The middle value when data is sorted. More robust to outliers than the mean.
Normal distribution: A symmetric, bell-shaped probability distribution defined by its mean and standard deviation. Many natural phenomena approximate it.
Null hypothesis: The default assumption that there is no effect or no difference. Statistical tests evaluate evidence against this assumption.
P-value: The probability of observing results at least as extreme as the data, assuming the null hypothesis is true. Not the probability that the hypothesis is correct.
Standard deviation: A measure of how spread out values are from the mean. Low values indicate data clustered near the mean; high values indicate wide dispersion.
Statistical power: The probability that a test correctly rejects a false null hypothesis. Depends on sample size, effect size, and significance level.
Type I error: Rejecting a true null hypothesis (a false positive). The probability is controlled by the significance level (alpha).
Type II error: Failing to reject a false null hypothesis (a false negative). The probability decreases as sample size and effect size increase.
Technical Writing
Active voice: Sentence structure where the subject performs the action (e.g., "the server returns an error"), preferred in technical writing for clarity and directness.
Cognitive load: The mental effort required to process information. Good technical writing minimizes unnecessary cognitive load through clear structure and language.
Curse of knowledge: A cognitive bias where experts assume their audience knows what they know, leading to explanations that skip essential context.
Diátaxis framework: A documentation framework organizing content into four types by purpose: tutorials (learning), how-to guides (tasks), reference (information), and explanation (understanding).
Information architecture: The organization and structure of content, including navigation, hierarchy, and labeling, so readers can find what they need.
Progressive disclosure: Presenting essential information first and revealing complexity gradually, so readers are not overwhelmed by detail they do not yet need.
Scannable content: Content structured with headings, lists, and short paragraphs so readers can quickly locate relevant information without reading everything.
The Web
Browser: Software that requests and displays web pages (Chrome, Firefox, Safari, Edge).
CSS: Cascading Style Sheets, the language that styles HTML content.
DNS: Domain Name System, converts domain names like example.com to IP addresses.
DOM: Document Object Model, the browser's tree representation of HTML that JavaScript can manipulate.
HTTP: Hypertext Transfer Protocol, the protocol browsers use to request web content.
HTTPS: HTTP with TLS encryption.
HTML: Hypertext Markup Language, the language that structures web content.
JavaScript: The programming language that runs in browsers to add interactivity.
Rendering: The process of converting HTML, CSS, and JavaScript into pixels on screen.
Same-origin policy: Security policy preventing JavaScript from accessing data on different origins.
URL: Uniform Resource Locator, the address that identifies a web resource.
Web standards: Specifications that define how web technologies should work, ensuring browser compatibility.
Timeouts
Timeout: Maximum operation duration before failure.
Connection timeout: Maximum time to establish a connection (e.g., TCP/TLS handshake).
Read timeout: Maximum wait time for response data after connecting.
Write timeout: Maximum time to complete sending the request.
Idle timeout: Maximum time a connection can sit unused before closing.
Cascading failure: When failure or slowness in one component causes others to fail, like exhausted connections.
Tail latency: High latency percentiles (e.g., p99, p99.9) often dominate large-scale user experience.
Exponential backoff: Increasing delay between retries (e.g., 1s, 2s, 4s) reduces load on a failing dependency.
Jitter: Random variation added to retry delay to prevent many clients retrying simultaneously.
Circuit breaker: Pattern that halts calling a failing service after a threshold and permits retries after cooldown.
SLO (Service Level Objective): Internal target for meeting availability or latency goals.
SLA (Service Level Agreement): External customer contracts specifying guaranteed availability or latency and consequences for failure.
Typography
Ascender: The part of a lowercase letter that extends above the x-height (as in "b", "d", "h").
Baseline: The imaginary line on which most letters sit. Descenders extend below the baseline.
Descender: The part of a lowercase letter that extends below the baseline (as in "g", "p", "y").
Font: A digital file containing a typeface design. In traditional typography, a font was a specific size of a typeface.
Kerning: Adjusting spacing between specific character pairs to improve appearance.
Leading: Line spacing, the vertical space between lines of text. Named for the lead strips used in metal type.
Legibility: How easily individual characters can be distinguished from each other.
Ligature: Two or more characters combined into a single glyph (as in "fi" or "fl").
Measure: The width of a line of text, typically measured in characters.
Readability: How easily text can be read and understood as a whole.
Serif: Small strokes at the ends of letterforms in serif typefaces.
Tracking: Adjusting overall spacing between characters in a block of text.
Typeface: A design family of characters (like Helvetica or Times New Roman). Often used interchangeably with "font" in digital contexts.
Widow: A single word or short line at the top of a column or page, separated from the rest of its paragraph.
X-height: The height of lowercase letters (excluding ascenders and descenders), typically measured using the letter "x".

Comments #