101 Software Engineering Terms Every Web Developer Should Master

Embracing the world of coding often means delving into a sea of software engineering terms.

Why do developers love this language? Maybe it’s the joy of confounding folks in management or Product, but let’s not dwell on the why for now.

Just know, developer jargon is all around us. Those well-versed in it, like tech leads and senior developers, don’t even realize how ingrained it is anymore.

If you’re starting out as a junior developer or planning to soon, you might be concerned about one thing – what do you do when you’re lost in the jargon?

I’ve been in your shoes, and despite scouring the web for help, I couldn’t always find the answers I needed.

This guide won’t cover every term, but it’ll equip you with enough common language to navigate as a junior dev. Who knows, dropping terms like “containerization” or “feature creep” in a dev meeting might even earn you a nod of approval from your tech lead.

A-F

1- A/B Testing

A user experience research technique where two variants of a feature (A and B) are randomly assigned to a population of users as a way to collect consumer data.

2- Agile Development

Agile is an iterative software development methodology that focuses on creating small, functional bits of code and deploying them as regularly as possible. The goal is to build software in a modular and repeatable fashion to keep the development process as inline with consumer requirements as possible.

3- AJAX

AJAX is a commonly-used web technology that allows for data to be sent and received between web applications and interfaces. It’s common in Progressive Web Applications.

4- Antipattern

Common techniques or design patterns in software that are known to lead to issues or buggy code. Common antipatterns include God classes, repetitive code, lengthy methods, and so on.

5- Apache

Apache is a company that creates and maintains a number of programs developers use to build software, namely Apache’s open-source HTTP server.

6- API

API, or application program interface, defines a protocol by which a programmer can connect one software program to another. This is how software programs that aren’t inherently linked can communicate with one another.

7- Atlassian

Atlassian is a company that creates a number of productivity and development-related software products that many development teams use, notably Jira, Confluence, and BitBucket.

8- AWS

Amazon Web Services (AWS) is an umbrella company for Amazon’s various cloud-computing services. These are common in the web development industry because of Amazon’s pay-as-you-go model, making it easy to deploy a small application without too much cost.

9- Azure

Azure is similar to AWS but is Microsoft’s cloud-computing service. It’s common in enterprise applications and is well-known for its robustness and various features.

10- Bootstrap

Bootstrap is a modern CSS framework that’s commonly used in web development to simplify the process of responsive web design.

11- Best Practice

A software best practice is widely-accepted technique that is known to be successful and effective. An example of this would be DRY code, the idea of keeping your code as readable and maintainable as possible.

12- Bug

A bug is piece of a program that doesn’t function as expected – the term was originally coined in the 20th century when it was observed that actual insects would get sometimes stuck in the inner workings of a computer’s hardware, leading programs to malfunction.

13- Build Tool

A build tool is a software services that automates the process of compiling and linking programs together. Popular options include Gradle, Maven, and Ant.

Gradle’s build automation process in a nutshell (from Gradle.org)

14- Bytecode

Bytecode is a program’s source code that has been compiled into low-level code that computers understand. From there, bytecode can be further processed into machine code, the lowest-level form of code a computer can interpret.

15- Continuous Integration

Continuous integration is the practice of merging work from many developers (across multiple teams or platforms) into the working, production pipeline for a software.

16- Cloud Computing

Cloud computing is the process by which programmatic logic can be executed using on-demand resources from a cloud-based computing system.

17- Confluence

Confluence is an Atlassian productivity software that aims to help developers collaborate as seamlessly as possible.

18- CORS

CORS stands for cross-origin resource sharing and describes a HTTP protocol by which a server can specify where resources can be loaded from (i.e. the origins it will permit resources to be loaded from).

19- Cron Job

Cron jobs are time-scheduled software-related tasks that are often too tedious to perform manually (daily server updates could be set up with cron, for example).

20- REST Controller

A REST controller is component in a RESTful web service architecture that maps specific endpoint requests to programmatic logic. This is why different URL structures of a RESTful API would most likely return unique data – a REST controller handles this functionality.

21- Daemon

A daemon is a generalized software program that runs as a background process. It usually performs low-level tasks and can even coordinate cron jobs, as well.

22- Data Architecture

A data architecture is a set of rules, policies, and models that describes how a software system collects and manages its data.

23- Data Modeling

Data modeling is the process of describing (in detail) the data collection and management procedure outlined in a software’s data architecture.

24- DDoS

Distributed Denial of Service is a type of cybersecurity event where hackers attempt to overload a web service with malicious requests.

A common set-up for DDoS attacks – the attacker controls a number of computers or private servers that spam a customer’s endpoint, either crashing the service completely or severely limiting performance/traffic

25- Deprecated

Deprecated is a common programmatic annotation that is used to label programs or methods that are no longer in use.

26- DevOps

DevOps is a set of software development and IT practices meant to facilitate seamless software development and continuous integration with as little errors as possible.

27- Design Pattern

A design pattern is a generalized solution to a common problem in software development. These are widely used in both backend and frontend development because they provide a useful framework for approaching common software design issues.

28- Diff

Diffing is the process of identifying how two source files are different. It’s a fundamental algorithm, most notably used by Git as a way to identify changes in source code over time.

An example of diffing in action on one of Wikipedia’s articles – color-coded highlighting indicates which areas were edited, removed, or added

29- DNS

Domain Name System (DNS) is the decentralized architecture that defines how information is attributed to a domain name. In software, DNS resolution is the process by which a domain name (example.com) is converted into a computer-readable MAC address.

30- Docker

Docker is a commonly-used containerization service – it provides a useful interface for packaging and deploying software in a microservice architecture and is very common in large-scale enterprise web applications.

Containerized applications are known for their performance benefits and improved simplicity over virtual machines – as you can see from the diagram, each VM contains its own operating system, which can lead to inconsistency and bugs when deploying a complex software application

31- Epic

An Epic is a term commonly used in agile software development to describe a large body of work. Each Epic is typically composed of multiple Stories, which are then further broken down into tickets. This clearly-defined hierarchy makes diagnosing and solving complex software issues more streamlined.

32- Endpoint

An endpoint defines one end of a communication channel of an API. When a programmer makes a call to an API (a.k.a requesting data from another piece of software), this is typically done by invoking a particular endpoint (i.e. GET or POST requests) and passing certain parameters that specify what data should be returned.

33- Favicon

A favicon is a small icon that usually appears as a shortcut preview in browsers and may also appear when a website is linked in an external resource.

34- Feature Creep

Feature creep is the excessive addition of features to a software product that weren’t initially defined in the scope of development. This can (and usually does) lead to unforeseen delays in the software development life cycle.

35- Flat File

A flat file is a commonly used type of database that stores data in a plain-text format. These are common when data doesn’t need to have any indexing or complicated associations, and can offer significant performance benefits over more structurally-complex relational databases.

36- Frontend Framework

Frontend frameworks are packages of pre-defined code that define the syntax and structure of how a web application should be built. While there is a considerable learning curve to mastering frontend frameworks, they’re extremely common in software development. Some examples include React, Angular, and Vue.js.

An example of how React works – using their syntax, developers can create reusable, highly modular components that can accept, modify, or delete user data reactively. To replicate something as functional as this with pure HTML and CSS, it would be infinitely more complicated and messy, hence why frameworks are so popular

G-O

37- Gantt Chart

Gantt charts show the various tasks involved in a project as the overlap in time. They’re a common way to visualize the progression of software development tasks and are typically bundled into productivity services like Confluence or Monday.com.

38- Garbage Collection

Garbage collection is an automated process Java performs to manage application memory. Garbage collectors within Java’s virtual machine find unused objects and delete them from memory.

39- Git

Git is a software service that tracks changes in source code files and is most often used by software development teams to coordinate changes to a program’s source code.

40- Github

GitHub is a cloud-based service that employs Git to facilitate software version control for developers. It provides a clean and intuitive interface for using git’s basic actions and is a commonly-used tool in many development teams.

An overview of Github’s key features (from Github.com )

41- GNU

GNU, pronounced guh-new, stands for “GNU’s Not Unix” and is a collection of open-source software often used as a fully-fledged operating system, similar to UNIX.

42- GUI

GUI stands for graphical user interface and describes the set of components or source code files that dictate how a software application looks on the frontend.

43- Heroku

Heroku is a Platform as a Service (PaaS) company that developers and freelancers use to deploy, scale, and manage cloud-based applications (similar to AWS and Azure).

44- Hot Fix

A hot fix is developer slang for when a bug is patched in production code – this means the code is fixed live, as the application is still running (and presumably, being used by real end-users).

45- IaaS

Infrastructure as a Service (IaaS) is a type of cloud-computing-based service through which companies can rent out compute and storage capabilities. This is a common service that software companies use to keep costs low – instead of provisioning their own cloud services, they might decide to rent out a certain amount of cloud-based resources from IaaS providers.

46- IDE

An IDE, short for Integrated Development Environment, is the software most developers use to write code in. Some popular choices include Vs Code, IntelliJ IDEA, and Eclipse.

VS Code is one of the most popular and feature-rich IDEs out there

47- Issues

Issues are Jira’s main building blocks for creating Stories and Epics – they can be used to represent a feature idea, a bug that needs to be fixed, or any other kind of software-related task.

48- Internet Of Things (IoT)

Internet of Things describes any type of physical object than can be used to interface with the internet. This can be anything from a Wifi modem to a smart home appliance.

Visual representation of the Internet of Things (printers, digital scales, TVs, Bluetooth camera, wireless headphones are all examples of IoT objects)

49- JDBC

JDBC (Java Database Connection) is an API for Java that allows a program to interface with a database and perform basic CRUD operations (Create, Read, Update, and Delete)

50- Jira

Jira is the go-to bug-tracking software service most development teams use – Confluence, also created by Atlassian, is typically used in tandem with Jira to coordinate agile development.

51- JSON

JSON is short for Javascript Object Notation and describes a standard practice for encoding data that’s transferred between APIs. It’s easy to write and read, making it popular among developers.

Typical structure of JSON data – hierarchical, easy to read, and clear

52- KISS Principle

KISS stands for Keep It Simple, Stupid and is a commonly-used (albeit blunt) mindset for maintaining readable, functional code. The primary philosophy of KISS is that most software problems, no matter how complex they may initially seem, often have simple solutions.

53- LAMP Stack

LAMP is a web server stack that uses Linux, Apache, MySQL database, and PHP. It’s common in web development because all of the technologies it employs are open-source and rigorously maintained.

54- Legacy Code

Legacy code refers to parts of a code base that were developed in the past, or currently use outdated logic, technologies, or libraries. Often times junior developers are (unfairly) tasked with refactoring legacy code and making it more modern and performant.

55- Localhost

Localhost refers to the computer that’s running a program or webserver. In modern software development, code will often be deployed and tested on localhost before deploying to production (which is typically hosted on a domain, i.e. my-web-app.com).

56- Lua

Lua is a high-level, object-oriented programming language often used by developers to write lightweight scripts and automation modules.

57- MEAN Stack

MEAN stack (MongoDB, Express, Angular, Node.js) is a collection of web technologies commonly used together to develop modern software applications.

58- Merge

Merge is a Git-specific action that allows a programmer to push their code changes (usually created in a local branch) and combine it with a code base’s main branch.

59- MERN Stack

MERN stack (MongoDB, Express, React, Node.js) is a collection of web technologies commonly used together to develop modern software applications. It’s similar to MEAN, but employs React as its frontend framework instead of Angular.

60- Microservice Architecture

Microservice architecture is a method of developing applications where each concern (or functionality) the application supports is bundled into its own service. Each of these services are coupled together to create a cohesive software experience. Microservices have become increasingly popular in recent years because of their resilience and scalability.

Microservices are commonly deployed in the cloud – Azure, Microsoft’s cloud server provider, is a prime of example of where a company might host their microservices

61- Monolithic Architecture

In direct contrast to the microservices architecture, monolithic architectures use very few classes or programs, each of which contain programmatic logic that governs a number of features. This was known to cause numerous problems in the past – in particular, if one part of a monolithic program fails, all of its connected features will also fail, too (this isn’t the case with isolated microservices which each govern one specific feature or functionality).

62- MVC

MVC stands for model-view-controller and describes a common template for designing web applications. Programmatic logic is split into one of the three components of MVC, depending on what function it performs – model components interact with data, view components govern how the data is displayed on the front end, and controller components mediate interactions between the model and view layers.

63- OAuth

OAuth defines a standard protocol for access delegation – it allows one application to grant access to another application without exchanging passwords, but by instead relying on authorization tokens.

Many modern services allow you to create accounts and sign in with 3rd party apps like Facebook or Google – these connections rely on OAuth

P-Z

64- Patch

A patch is a general term for an improvement or bug fix.

65- Postman

Postman is a popular software service for testing, developing and collaborating on API development. It provides a sandbox environment for creating and saving HTTP requests (which would eventually hit your API’s endpoints) as well as verifying the data responses you get from each request.

From Postman’s website

66- PR

PR stands for pull request, a Github-related action where a programmer requests a review on whatever changes they’ve made to a branch of code. Once those changes are approved (typically by a manager or tech lead), the code is integrated into its parent branch.

67- Progressive Web Application (PWA)

A Progressive web application is a type of software that’s delivered through the web, built on modern web technologies including frontend frameworks and server-side JavaScript libraries like Node.js or TypeScript.

68- Proxy Server

A proxy server is an intermediary server that mediates request between a client and the main application server. It’s often used in modern applications as a security measure or to load balance a high volume of requests.

69- Pseudocode

Pseudocode is informal code that doesn’t need to follow strict syntax – it’s primarily used by developers to quickly brainstorm solutions to problems, or develop algorithms conceptually.

An example of pseudocode – this is not a real program and wouldn’t run in any IDE, but it describes a set of rules and conditions that outline the basic structure of an algorithm

70- Quality Assurance (QA)

Quality assurance developers are engineers that monitor a codebase for defects and bugs. They typically work inline with devops and continuous integration engineers to ensure that any code hitting production is clean and fully functional.

71- Relational Database Management System (RDBMS)

RDBMS is a type of database that stores data in a structured format, namely with tables, columns, and rows. The most common example of an RDBMS in software development is MySQL.

72- Redis

Redis is a highly-performant key-value-based database system, primarily used for data that needs to be accessed quickly. In modern software systems, Redis is often deploying as a caching layer because of how quickly it can access and modify data.

73- Regression Testing

Regression testing is the practice of re-running a code base’s testing suite to ensure that previously-developed code still functions after new changes are made.

74- Responsive Design

Responsive design is a practice in modern web development to ensure that an application’s user interface functions properly on both desktop and mobile screens sizes.

75- RESTful Service

RESTful services are lightweight, functional web apps that use the REST architecture (REpresentational State Transfer). RESTful services are typically used to design APIs and any other type of software that clients interface with through the internet.

76- ROI

ROI stands for return on investment – it’s used as a way to numerically measure progress or performance in a software development team. You’ll hear this term thrown around in meetings with managers or C-level employees when they discuss the relative pros or cons of developing a particular feature or subset of a software.

77- SaaS

Software as a service (SaaS) companies provide their software product to clients and make profit by charge access or subscription fees. Spotify is an example of software as a service – you pay a monthly fee, and in exchange, Spotify keeps track of your favorite songs, stores your playlists and radio stations, and recommends new content based on your preferences.

78- Schema

Schema is a general term for an outline, diagram or model. Schemas are often used in data modeling to outline the specific details of how a software will manage data.

Schemas can quickly become large and complex – in many use cases, modern software development is turning to NoSQL (non-relational) databases because they don’t require schemas

79- Scrum

Scrum is a form of agile software development that hinges on three main principles: transparency, inspection, and adaptation. It’s common in the software world because it makes creating functional code an iterative, effective, and repeatable process.

80- SDK

A standard development kit (SDK) is a collection of software tools that facilitate the creation of a software application. For example, if you want to create a Java app, you’d need to install the Java SDK. This will provide you with the compiler, debugger, and any other software packages needed to run Java code.

81- SDLC

The software development lifecycle is the standardized process for developing, testing, and deploying software applications.

82- Serverless Functions

Serverless functions are discrete units of programmatic logic that are hosted on cloud-based servers. These serverless functions don’t normally depend on other components to be fully functional and can be invoked on-demand.

SharePoint is a Microsoft collaboration platform common in software engineering circles. Its direct integration with the rest of the Microsoft Office suite makes it a prime choice for most dev teams.

From Microsoft.com

84- Spaghetti Code

Spaghetti code is an informal way to describe unclean, messy, or unnecessarily convoluted code.

85- Sprint

Sprints are the building blocks of Stories (agile development). Each Sprint has a specific time limit (usually around 1-2 weeks) during which a dev team sets out to complete a clearly-defined amount of work.

86- Spring Framework

Spring is a Java-centric development framework that facilitates inversion of control. It’s commonly used to develop enterprise-level applications, often in conjunction with object-relational mapping frameworks like Hibernate.

From Spring.io

87- Story

A Story is a key component of the agile development system and is used to describe an end-goal for a software system. Developers work to complete Stories through smaller bodies of work, usually Sprints.

88- Test-Driven Development

Test-driven development is a software development practice where developers first map out a software’s given features into test cases – once the tests are created, the features are built to complement them. This is common practice for software systems where fault tolerance is extremely low (think aviation industry or similar).

89- Ticket

A ticket is a discrete problem or bug corresponding to a software system. Developers are usually assigned tickets that come from customer reports – i.e. someone noticed this bug here, figure out where it came from in the software.

How tickets look in Jira

90- Unit Testing

Unit testing is a software development practice where specific sections of a code base are tested for functionality and robustness. Each section of the software being tested is its own unit – in ideal cases, if one unit fails its tests, other units might still be able to pass their own tests.

92- Usability Testing

This is a user-experience-related testing practice that aims to evaluate a product’s ease of use. Since it describes how real users interact with a software product, it’s often considered an essential best practice.

91- User Experience (UX)

User experience describes how a user interacts with a software product, including the user’s understanding of its features and how easy the software is to interact with.

93- User Interface (UI)

User interface describes the collection of components and visual elements that make up what a user sees when interacting with a software. UI design focuses on creating enjoyable, frictionless, and functional interfaces for software products.

94- Version Control

Version control is the software development practice of tracking changes to source code files over time. In modern software development, this is usually handled by version control software such as Github, Gitlab, Bitbucket, or similar services.

95- Virtual Machine

A virtual machine is the emulation of a computer system without necessarily being bound to the hardware of a computer system. One desktop, for example, could be running multiple virtual machines even though it only has the hardware capabilities for one physical machine.

96- Wiki

A wiki is a collaborative website or online platforms which allows for any qualified user to edit its content. This is usually the place where most engineers would publish how-to guides, critical documentation, or other important instructions on how to develop or interact with the code base. Since wikis often contain sensitive details about a software’s design, they’re typically only accessible to internal employees.

Azure, a popular cloud service provider, supports the creation of internal wikis to facilitate easier collaboration across development teams

97- Wireframe

Wireframing is the practice of creating a skeletonized draft or schema of a software product. It outlines critical details and structural information about how a software will look or function, but doesn’t describe the details of its implementation.

A typical wireframe for a website landing page – it maps out key sections of the website and describes their purpose, but doesn’t necessarily detail how each should look or function

98- Whiteboarding

Whiteboarding is the collaborative process of brainstorming ideas or early-stage concepts for a software’s design. It’s often used in Product and Engineering teams to map out key requirements and features that a software must have.

99- WYSIWYG

Pronounced “wizzy-wig”, WYSIWYG is an acronym for “what you see is what you get” and describes a type of text editor where you can modify text properties without knowing HTML. If you’ve ever edited text online and been able to bold or italicize words, you’ve used a WYSIWYG editor.

100- XML

Extensible Markup Language is a markup language used to encode a set of rules or requirements for a software application. It’s commonly adopted in configuration files (Spring uses it heavily, for example) because XML is both human and machine readable.

101- YAML

YAML (an acronym for YAML Ain’t Markup Language – yes, I’m not kidding) is a markup language used to encode data transferring between API endpoints or in configuration files for a software application. It’s similar to XML but is more commonly used in modern software services because of how human readable it is.

Embarking on the software development journey is akin to unraveling a captivating mystery, where every line of code serves as a crucial clue leading to a deeper understanding. It transcends conventional learning methods, urging enthusiasts to immerse themselves in the dynamic language shaped by each development team’s distinct practices and tools.

This integral aspect of the job is typically acquired through hands-on experience. Each development team boasts its unique practices, preferred tools, and a distinctive way of discussing code.

My initiation into the world of software happened without the cushion of internships or practical exposure, leading me to navigate the intricate maze of common software terms during those initial, bewildering weeks. Yet, from this chaos, a passion emerged for decoding the linguistic nuances of coding.

For fellow enthusiasts, I’ve compiled a curated list of common software terms – a valuable resource unlocking the distinct vocabulary that shapes our coding adventures. Whether you’re a junior developer or a seasoned pro, these terms serve as your key to effective communication and collaboration within any development team.

By Staff Author
By Staff Author