Back to Fact Wall
Software Topics (189)
Cloud-Native Development Software
0

Cloud-native development often utilizes microservices, meaning a single application might be composed of hundreds or even thousands of tiny, independent services. elaborate

Event-Driven Architecture Software
1

Event-driven architectures often use a publish-subscribe model, meaning components don't need to know each other directly; they just communicate through events, fostering loose coupling and improved system resilience. elaborate

Reactive Programming Software
2

Reactive programming's core concept, the propagation of change, is inspired by the way spreadsheets recalculate when a cell's value changes. elaborate

Dynamic Code Analysis Software
3

Dynamic code analysis can detect memory leaks that wouldn't be found by static analysis because they only occur during runtime. elaborate

Version Control (Git) Software
4

Git's name is not an acronym; it's a play on words by its creator, Linus Torvalds, referring to his own name. elaborate

Functional Programming Software
5

Functional programming languages often encourage immutability, meaning data structures can't be changed after creation, leading to simpler debugging and easier concurrency. elaborate

Domain-Driven Design (DDD) Software
6

A core principle of Domain-Driven Design is to treat the ubiquitous language—the shared vocabulary between developers and domain experts—as a first-class citizen in the software design process. elaborate

Software Architecture Patterns Software
7

Privacy-preserving computing techniques like homomorphic encryption allow computations on encrypted data without ever decrypting it, meaning the data remains confidential even during processing. elaborate

Software Testing Automation Software
8

Selenium, a popular tool for automating web browser testing, is named after a web browser testing tool used in an internal project at ThoughtWorks. It wasn't originally intended to become the industry-standard it is today. elaborate

Test-Driven Development (TDD) Software
9

TDD, while seemingly adding extra work upfront, often reduces debugging time later, resulting in faster overall development in many cases. elaborate

Continuous Integration/Continuous Delivery (CI/CD) Software
10

The term "Continuous Integration" was coined by Grady Booch in his 1991 book, *Object-Oriented Design with Applications*. elaborate

Embedded Systems Programming Software
11

Embedded systems often rely on techniques like bit manipulation and direct memory access (DMA) to achieve high performance because they can't afford the overhead of more general-purpose programming methods. elaborate

Serverless Architectures Software
12

Serverless architectures can significantly reduce operational overhead because the cloud provider manages the servers, freeing developers to focus on code. elaborate

Software Security Practices Software
13

A significant portion of software vulnerabilities stem from insecure coding practices, not necessarily complex exploits. Simple mistakes like buffer overflows and SQL injection remain surprisingly common. elaborate

Concurrency & Parallelism Software

Concurrency is about *managing* multiple tasks seemingly at the same time, while parallelism is about *executing* multiple tasks simultaneously. A single-core CPU can achieve concurrency, but not true parallelism. elaborate

Edge Computing Software Software
15

Edge computing software often relies on containerization technologies like Docker to deploy and manage applications efficiently at the edge. elaborate

API Design & Development Software

A well-designed API should prioritize versioning not just for future changes, but also to allow parallel support for different client applications with varying needs. elaborate

Agile Methodologies Software
17

The Agile Manifesto, which laid the foundation for Agile methodologies, was written in just two days. elaborate

Behavior-Driven Development (BDD) Software
18

BDD's emphasis on collaboration often leads to the creation of a shared, living documentation that serves as both a specification and a test suite. elaborate

GraphQL Software
19

GraphQL was originally developed internally at Facebook before being open-sourced. elaborate

Real-Time Operating Systems (RTOS) Software
20

Many RTOSes are designed to be deterministic, meaning that the time it takes to execute a task is predictable and consistent, crucial for applications like flight control systems. elaborate

Static Code Analysis Software
21

Static code analysis can detect potential security vulnerabilities like SQL injection flaws even before a program is run. elaborate

CI/CD Pipelines Software
22

The term "CI/CD" is often used interchangeably, but CI (Continuous Integration) is actually a subset of the broader CD (Continuous Delivery/Deployment) process. elaborate

Container Orchestration (Kubernetes) Software
23

Kubernetes was initially developed at Google, drawing heavily from Google's internal container management system, Borg. elaborate

WebAssembly (WASM) Software
24

WebAssembly modules can be loaded and run alongside JavaScript in a web page, allowing them to share memory and other resources. elaborate

No more topics to list!