Software Engineering
Everything on SkillVeris tagged Software Engineering — collected across the glossary, study notes, blog, and cheat sheets.
314 resources across 3 libraries
Glossary Terms(99)
Algorithms
An algorithm is a finite, well-defined sequence of steps used to solve a problem or perform a computation, forming the logical foundation of all software.
Data Structures
Data structures are specific ways of organizing, storing, and accessing data in memory — such as arrays, linked lists, trees, and hash tables — chosen to optim…
Operating System
An operating system (OS) is the foundational software layer that manages a computer's hardware resources and provides common services to application programs,…
DBMS
A Database Management System (DBMS) is software that provides an interface for creating, storing, querying, and managing data in databases, handling concerns l…
Computer Networks
Computer networks are interconnected systems of devices that communicate by exchanging data over shared communication links, using standardized protocols to ad…
Compiler
A compiler is a program that translates source code written in a high-level programming language into a lower-level form, such as machine code or bytecode, tha…
Tree
A tree is a hierarchical, non-linear data structure consisting of nodes connected by edges, with one node designated as the root and every other node having ex…
Graph
A graph is a data structure consisting of a set of nodes (vertices) connected by edges, which may be directed or undirected and weighted or unweighted, used to…
Heap
A heap is a specialized tree-based data structure that satisfies the heap property: in a min-heap, every parent node is less than or equal to its children; in…
Queue
A queue is a linear data structure that follows First-In-First-Out (FIFO) ordering: elements are added at the rear (enqueue) and removed from the front (dequeu…
Stack
A stack is a linear data structure that follows Last-In-First-Out (LIFO) ordering: elements are added and removed from the same end, called the top, so the mos…
Arduino
Arduino is an open-source hardware and software platform combining simple microcontroller boards with an easy-to-use IDE, letting hobbyists, students, and engi…
Kernel
The kernel is the core component of an Operating System that has direct control over hardware resources — CPU, memory, and devices — and mediates access to the…
Process Scheduling
Process scheduling is the operating system mechanism that decides which of the many runnable processes or threads gets access to the CPU at any given moment, a…
Virtual Memory
Virtual memory is an operating system technique that gives each process the illusion of a large, contiguous, private address space, while the Kernel transparen…
File System
A file system is the method and data structure an Operating System uses to organize, name, store, and retrieve data on persistent storage devices such as hard…
TCP/IP
TCP/IP is the foundational suite of networking protocols that governs how data is addressed, transmitted, routed, and reliably delivered across the internet an…
UDP
UDP (User Datagram Protocol) is a lightweight, connectionless transport-layer protocol that sends data packets, called datagrams, without establishing a connec…
DNS Resolution
DNS resolution is the process of translating a human-readable domain name, like example.com, into the numerical IP address that computers use to locate and con…
Subnetting
Subnetting is the practice of dividing a larger IP network into smaller, logically separate sub-networks (subnets) to improve address allocation efficiency, ro…
IPv6
IPv6 (Internet Protocol version 6) is the most recent version of the Internet Protocol, designed to replace IPv4 by providing a vastly larger address space and…
Network Topology
Network topology refers to the arrangement and interconnection pattern of devices, links, and nodes in a computer network, describing both the physical layout…
Client-Server Architecture
Client-server architecture is a computing model in which client programs request services or resources, and server programs listen for those requests and respo…
Peer-to-Peer Network
A peer-to-peer (P2P) network is a decentralized architecture in which participating nodes, called peers, act as both clients and servers, sharing resources and…
Showing 24 of 99.
Study Notes(210)
API Gateway Pattern
Learn how an API Gateway acts as the single entry point for microservices, handling routing, authentication, rate limiting, and aggregation.
Bulkhead Pattern
A resilience pattern that isolates resources per dependency or workload so that failure or saturation in one area can't sink the entire service.
Circuit Breaker Pattern
A fault-tolerance pattern that stops a service from repeatedly calling a failing dependency, giving it time to recover and preventing cascading failures.
Containerizing Microservices
Learn how to package microservices into efficient, portable container images using Dockerfiles, multi-stage builds, and layer caching.
CQRS Explained
Command Query Responsibility Segregation splits the write model and the read model of a service into separate paths, letting each be optimized, scaled, and evo…
Database-per-Service Pattern
Each microservice owns and exclusively accesses its own database, preventing hidden coupling through shared schemas and letting teams evolve their data models…
Distributed Tracing Explained
How spans, trace context propagation, and tools like Jaeger or OpenTelemetry let you follow a single request as it crosses dozens of microservices.
Domain-Driven Design Basics
An introduction to Domain-Driven Design concepts, bounded contexts, ubiquitous language, and aggregates, and how they inform microservice boundaries.
Event-Driven Communication
Understand how publishing and subscribing to events decouples microservices in both time and knowledge, and the trade-offs between choreography and orchestrati…
Eventual Consistency Explained
Eventual consistency guarantees that, absent new updates, all replicas or downstream views of data will converge to the same state — but not instantly, which s…
Graceful Degradation
The design discipline of keeping a system partially functional and useful when some of its dependencies fail, instead of failing entirely.
gRPC for Microservices
Explore how gRPC uses Protocol Buffers and HTTP/2 to deliver fast, strongly typed, streaming-capable communication between internal microservices.
Message Brokers in Microservices
Learn how message brokers like RabbitMQ and Kafka durably deliver messages between services, the difference between queues and topics, and delivery guarantees.
Microservices Design Principles
Core design principles for building maintainable microservices: single responsibility, loose coupling, API contracts, and failure isolation.
Microservices Interview Questions
The core system-design and conceptual questions interviewers use to probe real microservices experience, with the reasoning behind strong answers.
Microservices Quick Reference
A condensed cheat sheet of the core microservices patterns, communication styles, and resilience mechanisms for fast review before a design discussion or inter…
Monolith vs Microservices
A practical comparison of monolithic and microservices architectures across deployment, scaling, data management, and team structure.
Observability in Microservices
How to understand the internal state of a distributed system from the logs, metrics, and traces it produces, so you can debug failures you never anticipated.
Orchestrating Microservices with Kubernetes
Learn how Kubernetes deploys, scales, heals, and load-balances containerized microservices using Deployments, Services, and self-healing controllers.
Rate Limiting in Microservices
Techniques for controlling how many requests a client, service, or tenant can make in a given time window to protect capacity and ensure fair usage.
REST Between Services
Learn how RESTful HTTP APIs model resources, relationships, and versioning to provide a predictable, language-agnostic contract for synchronous microservice co…
Retries and Timeouts
Two foundational resilience techniques for handling transient failures and slow responses when services call each other over the network.
Service Discovery Explained
Understand how microservices find and communicate with each other dynamically, using service registries, health checks, and DNS-based discovery.
Service Mesh Explained
Explore how a service mesh uses sidecar proxies to manage traffic, security, and observability between microservices without changing application code.
Showing 24 of 210.
Interview Questions(5)
What is Method Overriding in OOP?
Method overriding is when a subclass provides its own implementation of a method already defined in its superclass, using the same name and signature.
What is Name Mangling?
Name mangling is the compiler technique of encoding a function’s or method’s parameter types, class scope, and namespace into a unique internal symbol name, so…
What is Design by Contract?
Design by Contract is a software design approach, introduced by Bertrand Meyer for the Eiffel language, in which a method’s obligations are formalized as an ex…
What is an Invariant in OOP?
A class invariant is a condition about an object’s state that must hold true at every point the object is observable from outside — after construction complete…
What are Preconditions and Postconditions?
A precondition is a condition that must be true before a method is called for that method to behave correctly, and a postcondition is a condition the method gu…