To all novice software engineers, this glossary was made for you. Remember, it’s okay not to know everything– even the most experienced among us will constantly be exposed to new tools, topics, and terms– but what sets great engineers apart is stubborn curiosity and a willingness to acknowledge what they don't know. After all, learning how to find answers is just as important as knowing them.
abstraction | A core principle of object-oriented programming; the practice of hiding complex implementation details and exposing only essential functionalities to simplify code. |
agile | A methodology for iterative and incremental software development. |
ajax | Acronym for [Asyncronous JavaScript and Xml]; a client data fetching technique that makes asynchronous HTTP requests and updates the page without a refresh. |
algorithm | A program which attempts to resolve an operation with a given input and expected output, efficiently and elegantly. |
amazon web services | A collection of on-demand cloud computing platforms from amazon; see also: [cdk], [cognito], [lambda], and [s3]. |
angular | A modern framework and toolset for JavaScript development, similar to [react], based on [typescript]. |
api | Acronym; see [application programming interface]. |
application programming interface | A software intermediary which enables the ability for two layers or applications to communicate. |
asdf | An extendable, plugin-based software version manager for the CLI, similar to [nvm] and [rbenv]. |
async | Abbreviation for [asynchronous]; a paradigm that allows functions or tasks to run independently of the main execution thread, preventing blocking operations. |
atom | A desktop [ide] built on [electron], similar to [vscode] and [xcode]. |
attribute | A specification which defines a property of an element or object. |
aws | Acronym; see [amazon web services]. |
azure | A collection of on-demand cloud computing platforms from Microsoft, similar to [aws]. |
babel | A JavaScript compiler that allows you to use next-generation JavaScript syntax while maintaining compatibility with older browsers. |
backend | The server-side part of a software system that handles business logic, database interactions, and server configuration. |
bash | A Unix shell and command language commonly used in scripting and interacting with the operating system. |
binary | Data represented in a format using only two states, typically 0 and 1, often used in computing to encode information. |
bootstrap | A popular front-end framework for developing responsive and mobile-first websites. |
bot | An automated software application that performs repetitive tasks, often over the internet, such as chatbots. |
browser | A software application for accessing and displaying content on the web, such as Chrome, Firefox, or Safari. |
browser api | A set of interfaces provided by a browser to interact with its built-in functionality, such as DOM manipulation, storage, or networking. |
build pipeline | A sequence of steps to automate the building, testing, and deployment of code. |
c# | A modern, object-oriented programming language developed by Microsoft, widely used for building Windows applications. |
c++ | A high-performance, general-purpose programming language that extends C with object-oriented features. |
cache | A hardware or software layer used to store frequently accessed data to improve performance. |
cacheability | A core principle of RESTful APIs; resources should cacheable to improve performance and reduce redundant requests, and responses should explicitly define cacheing restrictions. |
cascading style sheets | A stylesheet language used to define the presentation and style of documents written in HTML or XML. |
cd | Acronym; see [continuous delivery]. |
cdk | Acronym for [Cloud Development Kit]; an AWS framework for defining cloud infrastructure as code using programming languages like TypeScript or Python. |
ci | Acronym; see [continuous integration]. |
class | A blueprint for creating objects in object-oriented programming, defining their properties and behavior. |
cli | Acronym; see [command line interface]. |
client-server separation | A core principle of RESTful APIs; the client and server should be separate entities, allowing independent evolution. |
code-on-demand | An optional, core principle of RESTful APIs; servers can send executable code to clients to extend client functionality. |
compiler | A program that translates high-level source code into machine code or bytecode executable by computers. |
command line interface | A text-based interface used to interact with software or the operating system through commands. |
component | A modular and reusable piece of a software application, often used in UI development frameworks like React or Angular. |
containerization | A lightweight form of virtualization for deploying applications in isolated environments. |
continuous delivery | A practice of automating the release of software to production. |
continuous integration | A practice of automating the testing and merging of software. |
css | Acronym; see [cascading style sheets]. |
dead-letter queues | A messaging queue used to store messages that cannot be processed or delivered by a target queue. |
dependency | A library, framework, or module that a project relies on for additional functionality. |
deployment | The process of delivering and making a software application available to users. |
django | A high-level Python web framework that encourages rapid development and clean, pragmatic design. |
docker | A platform for developing, shipping, and running applications in isolated containers. |
domain | A unique name used to identify a website or resource on the internet, such as "example.com". |
domain-driven design | A design approach that emphasizes understanding the business domain and aligning software development with it. |
dropwizard | A Java-based framework for building RESTful web services. |
dynamodb | A fully managed NoSQL database service provided by AWS, designed for high throughput and scalability. |
ecma | A standards organization responsible for defining specifications such as ECMAScript, the basis for JavaScript. |
electron | A framework for building cross-platform desktop applications using web technologies like HTML, CSS, and JavaScript. |
emulator | A software or hardware tool that replicates the behavior of another system, often used for testing applications on different platforms. |
encapsulation | A core principle of object-oriented programming; the practice of restricting access to certain object properties and methods, thereby controlling modification and data integrity. |
engine | The core part of a software system that performs its main operations, such as a rendering engine for browsers. |
enterprise service bus | A middleware architecture that facilitates communication and integration between distributed systems and services. |
environment | A set of software and hardware configurations where code is executed, such as development, staging, or production environments. |
eslint | A static code analysis tool for identifying and fixing problems in JavaScript code. |
event-driven architecture | A software design pattern where events trigger and communicate between decoupled services or components. |
event bridge | A service or platform that connects event producers and consumers, often facilitating cross-service communication. |
event stream | A continuous flow of event data transmitted in real-time for processing or analysis. |
express | A minimalist web framework for Node.js, often used to build APIs and web applications. |
fastapi | A modern Python web framework for building APIs with high performance and easy-to-use features. |
fetch | An API and method (Window.fetch() ) for fetching data from a server. |
flask | A lightweight Python web framework suitable for building small to medium-sized applications. |
framework | A collection of pre-written code that provides a structure and common functionality for building applications. |
front-end | The client-side part of a software application that interacts directly with the user, typically involving HTML, CSS, and JavaScript. |
function | A reusable block of code designed to perform a specific task when invoked. |
git | A version control system used to track changes in source code and facilitate collaboration. |
github | A platform for hosting and managing Git repositories, often used for version control and collaboration. |
gitlab | A web-based DevOps platform that provides Git repository management, CI/CD pipelines, and issue tracking. |
go | A statically typed, compiled programming language designed by Google for simplicity and efficiency. |
gradle | A build automation tool that uses a domain-specific language based on Groovy and Kotlin. |
graphql | A query language and runtime for APIs that enables clients to request specific data efficiently. |
gulp | A JavaScript task runner used to automate repetitive tasks in the development workflow. |
hash | A fixed-size numeric or alphanumeric string generated from input data, often used for validation or indexing. |
haskell | A functional programming language known for its strong static typing and emphasis on immutability. |
high-level | Refers to programming languages or abstractions closer to human language and further from machine code. |
homebrew | A package manager for macOS that simplifies the installation of software and libraries. |
html | Acronym for [HyperText Markup Language], the standard language for creating and structuring web content. |
http | Acronym for [HyperText Transfer Protocol], a protocol for transferring data over the web. |
husky | A tool for managing Git hooks to automate tasks like linting and running tests before committing code. |
ide | Acronym; see [integrated development environment]. |
idempotency | The property of an operation where performing it multiple times produces the same result as performing it once, often used in APIs to ensure reliability in requests. |
inheritance | A principle in object-oriented programming where a class (child) derives properties and behaviors from another class (parent), promoting code reuse. |
integrated development environment | A software application that provides tools like a code editor, debugger, and compiler for software development. |
java | A high-level, object-oriented programming language widely used for enterprise and Android development. |
javascript | A lightweight, interpreted programming language that enables dynamic content and interactivity on websites. |
jekyll | A static site generator often used with GitHub Pages to create blogs and websites. |
jest | A JavaScript testing framework designed to ensure code correctness through unit and integration tests. |
jquery | A JavaScript library that simplifies HTML document traversal, event handling, and animations. |
js | Acronym; see [JavaScript]. |
json | Acronym for [JavaScript Object Notation], a lightweight data-interchange format that is easy for humans to read and write. |
key-value | A data storage format where each item is represented by a key and an associated value. |
kotlin | A statically typed programming language interoperable with Java, commonly used for Android development. |
kubernetes | An open-source platform for automating deployment, scaling, and management of containerized applications. |
lambda | An AWS service that runs code in response to events, managing the infrastructure automatically. |
laravel | A PHP web framework with elegant syntax, focused on simplicity and ease of use. |
layered | A core principle of RESTful APIs; the architecture should allow for intermediary layers (i.e., cacheing, security, load-balancing) without affecting client-server communication. |
library | A collection of pre-written code or functions that developers can use to streamline their development processes. |
local storage | A web API that allows storing data in the browser persistently and synchronously. |
linux | An open-source operating system kernel that forms the basis of many distributions like Ubuntu and Fedora. |
machine learning | A subset of artificial intelligence focused on building systems that learn from data. |
mamp | A local server stack for macOS, including Apache, MySQL, and PHP. |
markdown | A lightweight markup language for creating formatted text using a plain-text editor. |
material design | A design language created by Google emphasizing grid-based layouts, responsive animations, and depth effects. |
maven | A build automation and dependency management tool primarily used in Java projects. |
mern | A stack of technologies (MongoDB, Express, React, and Node.js) for building web applications. |
method | A function associated with an object or class in object-oriented programming. |
micro-frontend | An architectural style where a frontend application is broken into smaller, independent pieces that can be developed and deployed separately. |
microservices | An architectural approach to building software as a collection of small, independently deployable services, each with a specific business functionality. |
mixpanel | An analytics tool that helps track user interactions and behavior within applications for data-driven decisions. |
ml | Acronym; see [machine learning]. |
mongodb | A NoSQL database that uses JSON-like documents to store data. |
mongoose | An object data modeling library for MongoDB in Node.js. |
mvc | A software design pattern that separates an application into Model, View, and Controller components. (related: [mvw], [mvvm]) |
mysql | A widely used open-source relational database management system. |
nativescript | A framework for building cross-platform mobile apps using JavaScript or TypeScript. |
natural language processing | A field of AI focused on enabling machines to understand and process human language. |
nextjs | A React framework for building fast, server-rendered web applications. |
nlp | Acronym; see [natural language processing]. |
node | Node.js, a runtime environment for executing JavaScript code outside the browser. |
nosql | A category of databases that store data in formats other than traditional relational tables. |
npm | Node Package Manager, a tool for managing JavaScript packages and dependencies. |
nvm | Node Version Manager, a tool for managing and switching between multiple Node.js versions. |
object data modeling | The process of defining/structuring data for an application by representing database documents or records as objects in code. |
object-oriented programming | A programming paradigm based on the concept of objects, which encapsulate data (attributes) and behavior (methods). (OOP languages include [Java], [JavaScript], [Python], and [C++].) |
objects | Data structures that encapsulate properties and behaviors in object-oriented programming. |
odm | Acronym; see [object data modeling]. |
oop | Acronym; see [object-oriented programming]. |
package | A bundle of code or libraries distributed for reuse in software development. |
package manager | A tool for installing, updating, and managing software packages, such as npm or pip. |
parser | A program or library that analyzes code or text to extract meaningful structure or data. |
postgresql | A powerful, open-source object-relational database system. |
poison events | Messages or events that repeatedly fail processing due to errors or incompatibilities in the system. |
polymorphism | A core principle of object-oriented programming; the practice of enabling different objects to respond uniquely to the same method or function call, allowing flexibility and code reuse. |
prettier | A code formatter that enforces a consistent style across a codebase. |
progressive web app | A type of web app that behaves like a native app on mobile devices. |
pub/sub | A messaging pattern where publishers send messages to subscribers via a central broker. |
pwa | Acronym; see [progressive web app]. |
pyenv | A Python version manager for installing and managing multiple Python versions. |
py | Abbreviation; see [python]. |
python (py) | A high-level programming language known for its simplicity and readability. |
rails | A web application framework written in Ruby that follows the MVC pattern. |
rbenv | A Ruby version manager for managing multiple Ruby versions. |
rdbms | Relational Database Management System, a database system based on a relational model. |
react | A JavaScript library for building user interfaces, developed by Facebook. |
react native | A framework for building native mobile apps using React. |
redux | A JavaScript library for managing application state, often used with React. |
repl | Read-Eval-Print Loop, an interactive shell for experimenting with programming languages. |
request stream map | A visualization or representation of how requests flow through a system, often used in debugging or performance analysis. |
resource-based | A core principle of RESTful APIs; everything is treated as a resource, identified by unique URIs. |
rest | Acronym for [Representational State Transfer], an architectural style for building APIs using stateless communication over HTTP. |
ruby | A dynamic, interpreted programming language often used in web development. |
runbook | A detailed guide or set of instructions used by engineers or operators to handle specific operational tasks or incidents. |
runtime | The environment in which a program is executed, including the software and hardware configurations. |
sass | A preprocessor scripting language that compiles to CSS. |
sast | Acronym; see [static application security testing]. |
search engine optimization | The practice of improving a website's visibility in search engine results. |
seo | Acronym; see [search engine optimization]. |
server | A computer or software that provides services or resources to other devices. |
serverless | A cloud computing model where developers write code without managing server infrastructure. |
shell | A command-line interface for interacting with the operating system. |
single page application | A web application that dynamically updates content without reloading the page. |
snowplow | A behavioral data platform that enables the collection and analysis of event-level data across platforms. |
spa | Acronym; see [single page application]. |
statelessness | A core principle of RESTful APIs; each request from a client to a server must contain all necessary information, such that the server does not store client state. |
static application security testing | A testing method for analyzing source code and identifying vulnerabilities without executing the application. |
swagger | An [API] documentation tool that helps design, build, and consume REST APIs. |
swift | A programming language developed by Apple for iOS, macOS, and related platforms. |
tdd | Acronym; see [test-driven development]. |
terraform | An infrastructure-as-code tool for defining and managing cloud resources. |
terminal | A command-line interface for interacting with the system. |
test-driven development | A software development process that involves writing tests before implementing functionality. |
tld | Acronym; see [top-level domain]. |
top-level domain | The highest level of a domain name, often representing a type of organization or country, such as ".com" or ".org". |
typescript | A superset of JavaScript with static typing, enabling better developer tooling. |
ui | Acronym; see [user interface]. |
uniformity | A core principle of RESTful APIs; a consistent way for implementing client-server communication using standard methods and predictable URIs. |
user experience | The overall experience of a user interacting with a system, focusing on usability and satisfaction. |
user interface | The visual and interactive elements of a system that users interact with. |
ux | Acronym; see [user experience]. |
vim | A highly configurable text editor popular among programmers. |
visual studio code | A lightweight and extensible code editor developed by Microsoft. |
vue.js | A progressive JavaScript framework for building user interfaces. |
webpack | A module bundler for JavaScript that packages files and dependencies for the browser. |
xcode | An [ide] for macOS used for building apps for Apple platforms. |
xd | Adobe XD, a vector-based UI/UX design tool for creating prototypes and wireframes. |
xml | Acronym for [Extensible Markup Language]; a flexible text format for structuring and storing data. |
yaml | Acronym for [Yet Another Markup Language]; a human-readable format for data serialization. |
zsh | Z shell, an extended Unix shell with additional features over bash. |