Home/Knowledge
KNOWLEDGE BASE

Every course.
One place.

235 courses · 2,477 curated resources across languages, principles, patterns, tools, AI, and more. Pick a category — or just see everything.

Browse by topic

Categories

235 courses

Courses & hubs

Languages

53 courses · 795 resources

Ada

Ada is a high-integrity, statically-typed programming language designed for safety-critical and real-time systems. It is used extensively in aerospace, defense, railway, and medical systems where reliability is paramount.

21 lessons14 resources

Assembly

Assembly language provides direct control over CPU instructions, memory, and registers. Essential for understanding computer architecture, reverse engineering, embedded systems, and performance-critical code optimization.

21 lessons16 resources

AutoHotkey

AutoHotkey is a free, open-source scripting language for Windows desktop automation. It enables creating hotkeys, macros, form fillers, and custom UI tools to automate repetitive tasks.

21 lessons11 resources
B

Bash

GNU replacement for the Bourne shell

21 lessons0 resources

C

C is the foundational systems programming language that powers operating systems, embedded devices, databases, and virtually every major software infrastructure. These are the definitive free resources — vetted, current, and complete.

21 lessons14 resources

Clojure

Clojure is a modern, functional Lisp dialect on the JVM. It emphasizes immutability, persistent data structures, and concurrency, with powerful macro capabilities for metaprogramming.

21 lessons16 resources
C

COBOL

COBOL (Common Business-Oriented Language) powers the worlds business infrastructure — banking systems, insurance claims, government systems, and enterprise transaction processing. Billions of lines of COBOL still run in production today.

21 lessons14 resources

Common Lisp

Common Lisp is a multi-paradigm programming language known for its powerful macro system, dynamic typing, and interactive development cycle. It excels at AI, symbolic computing, and meta-programming.

21 lessons14 resources

C++

C++ is a systems programming language that gives you complete control over memory and hardware. It powers game engines, browsers (Chrome), operating systems, embedded devices, and high-frequency trading. These are the definitive free resources — vetted, current, and complete.

21 lessons18 resources

Crystal

Crystal is a statically typed, compiled language with Ruby-like syntax but blazing performance via LLVM. It excels at web applications, backend services, and systems programming with type inference and nil safety.

21 lessons11 resources

C#

C# is Microsofts flagship language for the .NET ecosystem. It powers Windows applications, game development (Unity), cloud services on Azure, and cross-platform apps. These are the definitive free resources — vetted, current, and complete.

21 lessons19 resources

D

D is a systems programming language combining C-level performance with modern convenience. It offers garbage collection, manual memory management, compile-time function execution, and a powerful template system.

21 lessons15 resources

Dart

Dart is the language behind Flutter, Googles cross-platform UI framework. It is optimized for building fast mobile, web, and desktop apps with a single codebase. These are the definitive free resources — vetted, current, and complete.

21 lessons18 resources

Elixir

Elixir is a functional, concurrent language built on the Erlang VM (BEAM). It excels at building fault-tolerant, distributed systems with the Phoenix web framework and LiveView for real-time apps. These are the definitive free resources — vetted, current, and complete.

21 lessons18 resources

Elm

Elm is a delightful functional language for building reliable web applications. It offers zero runtime exceptions, an advanced type system, and a practical approach to frontend development with its signature architecture.

21 lessons14 resources

Erlang

Erlang is a functional, concurrent language designed for building massively scalable, fault-tolerant systems with soft real-time properties. It powers telecommunications, messaging platforms (WhatsApp), and distributed databases.

21 lessons16 resources

Fortran

Fortran is the original high-performance computing language, still dominant in scientific computing, weather simulation, computational physics, and numerical weather prediction. Modern Fortran (2008/2018) brings coarrays and OOP.

21 lessons15 resources

F#

F# is a functional-first, cross-platform .NET language. It excels at data science, financial modeling, and concurrent systems with type providers, computation expressions, and seamless .NET interop.

21 lessons10 resources

GDScript

GDScript is the primary scripting language for the Godot Engine. It has a Python-like syntax but is optimized for game development with built-in types like vectors, colors, and nodes.

21 lessons14 resources

Gleam

Gleam is a friendly, statically-typed functional language that compiles to Erlang (BEAM). It offers a modern Rust-inspired type system, actor-based concurrency, and seamless interop with the BEAM ecosystem.

21 lessons12 resources

Go

Go is a statically typed, compiled language designed at Google for building simple, reliable, and efficient software at scale. It excels at backend services, microservices, APIs, and concurrent systems.

21 lessons20 resources

Groovy

Apache Groovy is a powerful, optionally typed, dynamic language for the JVM. It integrates seamlessly with Java and powers Gradle builds, Jenkins pipelines, and modern DSLs with concise syntax and metaprogramming capabilities.

21 lessons15 resources

Haskell

Haskell is a purely functional programming language with strong static typing and lazy evaluation. It provides an unparalleled foundation for writing correct, composable, and concurrent software. These are the definitive free resources — vetted, current, and complete.

21 lessons18 resources

Haxe

Haxe is a cross-platform language and toolkit that compiles to JavaScript, C++, Python, Lua, PHP, Java, and more. It is ideal for building applications that need to run on multiple platforms from a single codebase.

21 lessons12 resources

Java

Java is the bedrock of enterprise software. It powers Android apps, backend systems, big data pipelines (Apache Hadoop, Spark), and financial infrastructure worldwide. These are the definitive free resources — vetted, current, and complete.

21 lessons19 resources

JavaScript

The language of the web. JavaScript powers browsers, servers (Node.js), desktop apps (Electron), and increasingly the edge. These are the definitive free resources — vetted, current, and complete.

21 lessons21 resources

Julia

Julia is a high-performance, dynamically typed language designed for scientific computing, numerical analysis, and machine learning. It combines the speed of C with the ease of Python.

21 lessons15 resources

Kotlin

Kotlin is the modern JVM language that is now the primary language for Android development. It is concise, expressive, and fully interoperable with Java. These are the definitive free resources — vetted, current, and complete.

21 lessons20 resources

LabVIEW

LabVIEW (Laboratory Virtual Instrument Engineering Workbench) is a graphical programming platform from NI used extensively in test, measurement, and control applications across engineering and science.

21 lessons11 resources

Lua

Lua is a lightweight, embeddable scripting language prized for its speed, simplicity, and tiny footprint. It powers game engines (Roblox, Love2D), embedded systems, and configuration in Neovim and Redis. These are the definitive free resources — vetted, current, and complete.

21 lessons17 resources
M

MATLAB

MATLAB is the premier platform for numerical computing, data analysis, and algorithm development. It is widely used in engineering, science, and research for matrix operations, signal processing, and control systems.

21 lessons15 resources

Nim

Nim is an efficient, statically typed systems programming language with Python-like syntax. It compiles to C via its compiler, offering C-level performance with high-level expressiveness and metaprogramming.

21 lessons12 resources

OCaml

OCaml is a functional, imperative, and object-oriented language from the ML family. It excels at type-safe systems programming, formal verification, and high-assurance software with a powerful module system and type inference.

21 lessons11 resources

Perl

Perl is a highly capable, feature-rich programming language known for its text processing power, CPAN module ecosystem, and versatility in system administration, web development, and bioinformatics.

21 lessons16 resources

PHP

PHP powers over 75% of all websites, including WordPress, Laravel applications, and massive platforms like Facebook. It is the most accessible backend language with an unmatched ecosystem. These are the definitive free resources — vetted, current, and complete.

21 lessons19 resources
?

Prolog

Prolog is a logic programming language associated with artificial intelligence, computational linguistics, and symbolic reasoning. It uses declarative programming where you describe problem constraints and let the engine find solutions.

21 lessons13 resources

PureScript

PureScript is a strongly-typed, purely functional programming language that compiles to JavaScript. It features algebraic data types, type classes, and a sophisticated type system inspired by Haskell, making it ideal for building reliable web applications.

21 lessons12 resources

Python

The most versatile language in the ecosystem. Python powers data science, machine learning, backend systems, automation, and scripting. These are the definitive free resources — vetted, current, and complete.

21 lessons20 resources

R

R is the definitive language for statistical computing, data analysis, and visualization. It powers academic research, data science, and machine learning workflows worldwide. These are the definitive free resources — vetted, current, and complete.

21 lessons18 resources

Racket

Racket is a modern functional and general-purpose programming language in the Lisp/Scheme family. It excels at language-oriented programming, creating domain-specific languages, and teaching computer science fundamentals.

21 lessons11 resources

Ruby

Ruby is a language of simplicity and productivity, famous for the Rails web framework. It prioritizes developer happiness and elegant code with a philosophy of convention over configuration. These are the definitive free resources — vetted, current, and complete.

21 lessons20 resources

Rust

Rust is a systems programming language focused on safety, speed, and concurrency without a garbage collector. It powers everything from embedded devices to cloud infrastructure.

21 lessons22 resources

Scala

Scala combines object-oriented and functional programming on the JVM. It powers high-performance data pipelines (Apache Spark), distributed systems (Akka), and type-safe web applications. These are the definitive free resources — vetted, current, and complete.

21 lessons18 resources
λ

Scheme

Scheme is a minimalist, elegant dialect of Lisp renowned for its simplicity and use in computer science education. It features lexical scoping, first-class procedures, and a unified syntax that makes it ideal for teaching programming fundamentals.

21 lessons12 resources

Scratch

Scratch is the worlds largest coding community for children and the best way to start programming. It teaches computational thinking through a visual block-based interface used by millions worldwide.

21 lessons10 resources

Shell

Shell scripting (Bash) is the universal glue of software engineering. It automates deployments, manages infrastructure, processes data pipelines, and controls the entire development toolchain. These are the definitive free resources — vetted, current, and complete.

21 lessons18 resources

Solidity

Solidity is the primary programming language for writing smart contracts on Ethereum and EVM-compatible blockchains. It enables decentralized applications, DeFi protocols, and NFTs — the backbone of Web3.

21 lessons13 resources

Swift

Swift is the modern language for Apple platforms — iOS, macOS, watchOS, and tvOS. It is fast, safe, and expressive, powering everything from the iPhone apps you love to server-side systems. These are the definitive free resources — vetted, current, and complete.

21 lessons20 resources

TypeScript

TypeScript is JavaScript with static types. It catches errors at compile time, enables fearless refactoring, and powers the largest codebases in the world. These are the definitive free resources — vetted, current, and complete.

21 lessons20 resources

V

V is a simple, fast, safe, compiled language for developing maintainable software. It offers C interop, a built-in GUI library, cross-platform compilation, and a focus on simplicity with a small language specification.

21 lessons11 resources

WebAssembly

WebAssembly (Wasm) is a low-level binary instruction format that runs at near-native speed in browsers and beyond. It enables compiling C/C++, Rust, Go, and other languages to run on the web and in edge runtimes.

21 lessons11 resources

Wolfram Language

Wolfram Language is a multi-paradigm computational language developed by Wolfram Research. It powers Mathematica and excels at symbolic mathematics, data science, machine learning, and knowledge-based computing.

21 lessons11 resources

Zig

Zig is a modern systems programming language focused on robustness, optimality, and maintainability. It offers manual memory management, compile-time computation, seamless C interop, and a first-class cross-compilation toolchain.

21 lessons15 resources

Courses & hubs

System Design

4 courses · 0 resources

Courses & hubs

Case Studies

8 courses · 40 resources

Courses & hubs

AI

12 courses · 72 resources
A

AI Agents

Design agents that reason, use tools and act: agent loops, tool use, memory, planning, multi-agent systems and agent frameworks.

21 lessons6 resources
A

AI Safety

Understand the risks of AI systems and the practices that keep them aligned, robust and fair — from evals to governance.

21 lessons6 resources
C

Computer Vision

From pixels to perception: image processing, CNNs, detection, segmentation, pose, tracking, OCR and vision transformers.

21 lessons6 resources
D

Data Science

From statistics and pandas to end-to-end projects — the complete foundation for turning raw data into decisions.

21 lessons6 resources
D

Deep Learning

Neural networks end to end: backprop, PyTorch, CNNs, RNNs, LSTMs and transformers — from perceptron to attention.

21 lessons6 resources
G

Generative AI

Generative AI end to end: LLMs, prompting, fine-tuning, RAG, agents, diffusion, VLMs and running GenAI in production.

21 lessons6 resources
L

LLM Engineering

Build with large language models: tokenization, embeddings, RAG, fine-tuning, evals, agents and production LLM systems.

21 lessons6 resources
M

Machine Learning

Supervised and unsupervised learning with scikit-learn: regression, trees, ensembles, SVMs, clustering and the math underneath.

21 lessons6 resources
M

MLOps

Operationalize machine learning: lifecycle, versioning, pipelines, experiment tracking, serving, Kubernetes and drift monitoring.

21 lessons6 resources
N

NLP

Natural language processing: tokenization, embeddings, classification, NER, sequence models, BERT and transformers.

21 lessons6 resources
P

Prompt Engineering

Get the best out of language models: system prompts, few-shot, chain-of-thought, structured outputs, and evaluation.

21 lessons6 resources
R

Reinforcement Learning

From MDPs and dynamic programming to DQN, PPO and multi-agent systems — the complete guide to agents that learn from outcomes.

21 lessons6 resources

Courses & hubs

Principles

34 courses · 510 resources
A

ACID

A set of database transaction properties: Atomicity, Consistency, Isolation, Durability. Guarantees reliable processing of database transactions.

4 lessons15 resources
B

Backpressure

A mechanism that allows a consumer to signal to a producer that it cannot keep up. Prevents systems from being overwhelmed by controlling data flow.

4 lessons15 resources
B

BASE

A consistency model used in distributed systems: Basically Available, Soft State, Eventual Consistency. Contrasts with ACID for highly available, partition-tolerant systems.

4 lessons15 resources
B

Bulkhead

Isolate components into separate pools so that a failure in one does not cascade to others. Prevents resource exhaustion from affecting the entire system.

4 lessons15 resources
C

Caching

Store frequently accessed data in a high-speed storage layer to reduce latency and load on backend systems. A fundamental performance optimization pattern.

4 lessons15 resources
C

CAP Theorem

In a distributed system, you can only guarantee two out of three: Consistency, Availability, and Partition Tolerance. A fundamental trade-off in distributed data stores.

4 lessons15 resources
C

Circuit Breaker

Prevents repeated attempts to call a failing service by opening the circuit and failing fast. Allows the system to recover by periodically testing the service.

4 lessons15 resources
C

Consistency Patterns

Strategies for managing data consistency in distributed systems: strong consistency, eventual consistency, and causal consistency. Each offers different trade-offs.

4 lessons15 resources
C

Convention over Configuration

Reduce the number of decisions developers need to make by providing sensible defaults. Frameworks like Rails and Spring use this to simplify setup.

4 lessons15 resources
C

Command-Query Separation

Every method should be either a command that performs an action or a query that returns data, but not both. Improves clarity and predictability of code.

4 lessons15 resources
D

Defensive Programming

Design code to handle unexpected inputs and states gracefully. Assume inputs will be invalid and protect against potential errors preemptively.

4 lessons15 resources
D

Dependency Inversion

Depend upon abstractions, not concretions. High-level modules should not depend on low-level modules; both should depend on abstractions.

4 lessons15 resources
D

DRY (Don't Repeat Yourself)

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system. Eliminates duplication to reduce maintenance costs.

4 lessons15 resources
E

Eventual Consistency

A consistency model where updates propagate to all nodes eventually, but not immediately. Provides high availability at the cost of temporary inconsistency.

4 lessons15 resources
F

Fail-Fast

Report errors immediately and halt execution when an unexpected condition occurs. Prevents cascading failures and makes bugs easier to detect.

4 lessons15 resources
G

Graceful Degradation

When part of a system fails, the system continues to operate at a reduced capacity rather than failing completely. Essential for resilient distributed systems.

4 lessons15 resources
I

Idempotency

An operation that can be applied multiple times without changing the result beyond the first application. Critical for safe retries in distributed systems.

4 lessons15 resources
I

Information Hiding

Hide internal implementation details of a module from its consumers. Expose only what is necessary through a well-defined interface.

4 lessons15 resources
I

Interface Segregation

No client should be forced to depend on methods it does not use. Prefer small, focused interfaces over large, general-purpose ones.

4 lessons15 resources
K

KISS (Keep It Simple, Stupid)

Systems work best when they are kept simple rather than made complex. Avoid unnecessary complexity in design and implementation.

4 lessons15 resources
L

Leader Election

A distributed algorithm for selecting a single node as the coordinator among a group of nodes. Essential for consensus and coordination in distributed systems.

4 lessons15 resources
L

Liskov Substitution

Objects of a superclass should be replaceable with objects of its subclasses without breaking the system. Subtypes must be substitutable for their base types.

4 lessons15 resources
L

Load Shedding

Drops lower-priority requests when the system is under heavy load to ensure critical requests are processed. A key resilience pattern for high-traffic services.

4 lessons15 resources
O

Open-Closed Principle

Software entities should be open for extension but closed for modification. Design modules that can be extended without modifying their source code.

4 lessons15 resources
O

Optimistic Locking

Assumes multiple transactions can complete without conflict and only checks for conflicts at commit time. Uses version numbers to detect stale updates.

4 lessons15 resources
P

Pessimistic Locking

Assumes conflicts will occur and locks data at the start of a transaction to prevent concurrent modifications. Ensures data integrity at the cost of throughput.

4 lessons15 resources
P

Principle of Least Privilege

Every program and user should operate with the minimum set of permissions necessary to complete their task. Reduces the attack surface and blast radius.

4 lessons15 resources
Q

Quorum

A consensus mechanism requiring a minimum number of nodes to agree on a decision. Used in distributed systems for reads/writes and leader election.

4 lessons15 resources
R

Rate Limiting

Controls the rate of requests a service can process within a time window. Prevents resource exhaustion and ensures fair usage across clients.

4 lessons15 resources
S

Separation of Concerns

Divide a system into distinct sections where each section addresses a separate concern. Reduces complexity by modularizing functionality.

4 lessons15 resources
S

Single Responsibility

A class should have only one reason to change, meaning it should have only one job or responsibility. Promotes high cohesion and reduces coupling between components.

4 lessons15 resources
S

SOLID Principles

Five object-oriented design principles: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion. The foundation of maintainable OOP.

4 lessons15 resources
T

Throttling

Slows down the processing of requests to prevent system overload. Often used with rate limiting to gracefully handle traffic spikes.

4 lessons15 resources
Y

YAGNI (You Ain't Gonna Need It)

Always implement things when you actually need them, never when you merely foresee that you might need them. Prevents over-engineering and code bloat.

4 lessons15 resources

Courses & hubs

Patterns

52 courses · 884 resources
A

Abstract Factory

Provides an interface for creating families of related or dependent objects without specifying their concrete classes. Used when a system needs to be independent of how its objects are created.

4 lessons17 resources
A

Adapter

Allows objects with incompatible interfaces to collaborate. Acts as a wrapper between two interfaces, converting the interface of a class into another interface clients expect.

4 lessons17 resources
A

Ambassador

Creates a helper service that handles cross-cutting concerns like retries, circuit breaking, and authentication on behalf of a client service.

4 lessons17 resources
B

B-Tree

A self-balancing tree data structure that maintains sorted data and enables efficient insertion, deletion, and search operations. The standard index structure in relational databases.

4 lessons17 resources
B

Bloom Filter

A space-efficient probabilistic data structure for testing whether an element is a member of a set. Can return false positives but never false negatives. Used in caching and spell checkers.

4 lessons17 resources
B

Bridge

Decouples an abstraction from its implementation so that the two can vary independently. Used when both the abstraction and implementation may have multiple variations.

4 lessons17 resources
B

Builder

Separates the construction of a complex object from its representation, allowing the same construction process to create different representations. Ideal for objects with many optional parameters.

4 lessons17 resources
C

Chain of Responsibility

Passes a request along a chain of handlers. Each handler decides either to process the request or pass it to the next handler in the chain.

4 lessons17 resources
C

Circuit Breaker

Prevents an application from repeatedly trying to execute an operation that is likely to fail. Opens the circuit to fail fast and allows recovery time for the downstream service.

4 lessons17 resources
C

Command

Encapsulates a request as an object, allowing parameterization of clients with queues, requests, and operations. Supports undoable operations and logging.

4 lessons17 resources
C

Composite

Composes objects into tree structures to represent part-whole hierarchies. Lets clients treat individual objects and compositions uniformly.

4 lessons17 resources
C

Consistent Hashing

A distributed hashing scheme that minimizes key redistribution when the number of nodes changes. Used by DynamoDB, Cassandra, and CDNs for data partitioning.

4 lessons17 resources
C

CQRS

Separates read and write operations into different models. Commands handle writes, queries handle reads — often with different data stores optimized for each purpose.

4 lessons17 resources
D

Decorator

Attaches additional responsibilities to an object dynamically. Provides a flexible alternative to subclassing for extending functionality.

4 lessons17 resources
E

Event Sourcing

Stores the state of a system as a sequence of events rather than the current state. Enables full auditability, time travel, and complex event processing.

4 lessons17 resources
F

Facade

Provides a unified interface to a set of interfaces in a subsystem. Defines a higher-level interface that makes the subsystem easier to use.

4 lessons17 resources
F

Factory Method

Defines an interface for creating an object, but lets subclasses decide which class to instantiate. Promotes loose coupling by deferring object creation to subclasses.

4 lessons17 resources
F

Fanout

Distributes incoming messages or tasks to multiple workers or queues for parallel processing. Widely used in data pipelines and event-driven architectures.

4 lessons17 resources
F

Flyweight

Uses sharing to support large numbers of fine-grained objects efficiently. Reduces memory usage by sharing common parts of state between multiple objects.

4 lessons17 resources
G

Gossip Protocol

A peer-to-peer communication protocol where nodes periodically exchange state information with random peers. Used for failure detection in distributed systems like Cassandra and Consul.

4 lessons17 resources
H

Hash Index

An index structure that uses a hash function to map keys to bucket locations. Provides O(1) lookup for equality queries but does not support range queries.

4 lessons17 resources
I

Interpreter

Given a language, defines a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.

4 lessons17 resources
I

Iterator

Provides a way to access the elements of an aggregate object sequentially without exposing its underlying representation. Supports multiple traversals.

4 lessons17 resources
L

Leader-Follower

A thread coordination pattern where one thread (leader) waits for events while others (followers) process them. The leader promotes a follower upon receiving an event.

4 lessons17 resources
L

LRU Cache

Evicts the least recently used items when the cache reaches capacity. Combines a hash map for O(1) lookups with a doubly-linked list for efficient eviction tracking.

4 lessons17 resources
L

LSM Tree

A data structure optimized for write-heavy workloads. Maintains data in a series of immutable sorted files merged in the background. Used by LevelDB, RocksDB, and Cassandra.

4 lessons17 resources
M

MapReduce

A programming model for processing large datasets in parallel across distributed clusters. Consists of a Map step (filter/sort) and a Reduce step (summarize/aggregate).

4 lessons17 resources
M

Mediator

Defines an object that encapsulates how a set of objects interact. Promotes loose coupling by preventing objects from referring to each other explicitly.

4 lessons17 resources
M

Memento

Captures and externalizes an object's internal state so that the object can be restored to this state later. Supports undo and rollback operations.

4 lessons17 resources
M

Multi-Leader Replication

A database replication strategy where multiple nodes accept writes and replicate changes to each other. Useful for multi-datacenter deployments and offline-first applications.

4 lessons17 resources
M

MVC

Separates an application into three interconnected components: Model (data), View (UI), and Controller (business logic). The dominant pattern for web frameworks.

4 lessons17 resources
M

MVCC

Multi-Version Concurrency Control allows concurrent access to a database by keeping multiple versions of each data item. Readers see a consistent snapshot without blocking writers.

4 lessons17 resources
M

MVVM

Extends MVC by separating the View from its backing data using a ViewModel that exposes data and commands. Popular in modern UI frameworks like Angular, Vue, and WPF.

4 lessons17 resources
O

Observer

Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.

4 lessons17 resources
P

Paxos

A consensus algorithm that enables a distributed system to agree on a single value despite failures. Foundational to distributed consensus and leader election.

4 lessons17 resources
P

Prototype

Creates new objects by copying an existing object, known as the prototype. Useful when object creation is expensive and you want to avoid subclasses.

4 lessons17 resources
P

Proxy

Provides a surrogate or placeholder for another object to control access to it. Useful for lazy loading, access control, logging, and caching.

4 lessons17 resources
P

Publish-Subscribe

A messaging pattern where senders (publishers) send messages without knowing the receivers (subscribers). Decouples components through a message broker.

4 lessons17 resources
R

Raft

A consensus algorithm designed to be more understandable than Paxos. Uses leader election and log replication to achieve consensus in distributed systems. Powers etcd and Consul.

4 lessons17 resources
R

Replication

The process of maintaining copies of data across multiple nodes. Provides fault tolerance, high availability, and improved read performance in distributed systems.

4 lessons17 resources
R

Repository

Mediates between the domain and data mapping layers, acting like an in-memory domain object collection. Centralizes data access logic and improves testability.

4 lessons17 resources
R

Retry Pattern

Enables an application to retry a failed operation in anticipation of transient failures. Often combined with exponential backoff and jitter to avoid overwhelming the downstream service.

4 lessons17 resources
S

Saga

Manages distributed transactions by breaking them into a sequence of local transactions with compensating actions for rollback. Essential for microservices.

4 lessons17 resources
S

Sharding

Partitions a large database into smaller, faster, more manageable parts called shards. Each shard holds a subset of data and can be managed independently.

4 lessons17 resources
S

Sidecar

Deploys auxiliary components (logging, monitoring, networking) as a separate container alongside the main application container. Common in service mesh architectures.

4 lessons17 resources
S

Singleton

Ensures a class has only one instance and provides a global point of access to it. Commonly used for logging, driver objects, caching, and thread pools.

4 lessons17 resources
S

State

Allows an object to alter its behavior when its internal state changes. The object will appear to change its class at runtime.

4 lessons17 resources
S

Strangler Fig

Incrementally replaces a legacy system by building a new system alongside it and gradually routing functionality from the old to the new, eventually decommissioning the old.

4 lessons17 resources
S

Strategy

Defines a family of algorithms, encapsulates each one, and makes them interchangeable. Lets the algorithm vary independently from clients that use it.

4 lessons17 resources
T

Template Method

Defines the skeleton of an algorithm in a method, deferring some steps to subclasses. Lets subclasses redefine certain steps without changing the algorithm's structure.

4 lessons17 resources
T

Two-Phase Commit

A distributed transaction protocol that ensures all participating nodes either commit or abort a transaction. Provides atomicity across multiple databases or services.

4 lessons17 resources
V

Visitor

Represents an operation to be performed on elements of an object structure. Lets you define a new operation without changing the classes of the elements.

4 lessons17 resources

Courses & hubs

Tools

72 courses · 176 resources
A

Apache Airflow

Apache Airflow is the leading platform for programmatically authoring, scheduling, and monitoring workflows. It lets you build data pipelines as directed acyclic graphs (DAGs) with Python.

2 lessons11 resources
A

Angular

TypeScript-based web application framework by Google

2 lessons0 resources
A

Ansible

Automation tool for configuration management, application deployment, and task automation

2 lessons0 resources
A

Apache Flink

Stream processing framework for real-time data applications

2 lessons0 resources
A

Apache Spark

Unified analytics engine for large-scale data processing

2 lessons0 resources
A

AWS

Comprehensive cloud computing platform by Amazon

2 lessons0 resources
B

Babel

JavaScript compiler for transforming modern code into compatible versions

2 lessons0 resources
C

Content Delivery Network

Geographically distributed network of proxy servers and data centers

2 lessons0 resources
C

Chart.js

Chart.js is the most popular open-source JavaScript charting library. It provides beautiful, responsive, and interactive charts with a simple API for building data visualizations for the web.

2 lessons11 resources
C

Cloudflare

American technology company

2 lessons0 resources
C

Cypress

Cypress is a next-generation frontend testing framework built for the modern web. It enables fast, reliable end-to-end, component, and integration testing with real-time reloads and time-travel debugging.

2 lessons11 resources
D

Database

Organized collection of structured data with efficient retrieval and storage

2 lessons0 resources
D

Deno

Secure runtime for JavaScript and TypeScript by the creator of Node.js

2 lessons0 resources
D

Django

High-level Python web framework encouraging rapid development

2 lessons0 resources
D

Docker

Platform for developing, shipping, and running applications in containers

2 lessons0 resources
E

Elasticsearch

Distributed search and analytics engine built on Apache Lucene

2 lessons0 resources
E

Electron

Electron is a framework for building cross-platform desktop applications using JavaScript, HTML, and CSS. It combines Chromium and Node.js to enable web developers to create native desktop apps for Windows, macOS, and Linux.

2 lessons11 resources
E

Envoy

High-performance proxy designed for service mesh architectures

2 lessons0 resources
E

ESLint

ESLint is the most widely used JavaScript linting tool for identifying and fixing code quality issues. It provides a pluggable architecture with hundreds of rules for enforcing coding standards and catching bugs.

2 lessons11 resources
E

Expo

Expo is an open-source platform for building universal native apps with React. It provides a managed workflow, comprehensive SDK, and development tools for creating iOS, Android, and web applications from a single codebase.

2 lessons11 resources
E

Express.js

Minimal and flexible Node.js web application framework

2 lessons0 resources
G

Git

Distributed version control system for tracking source code changes

2 lessons0 resources
G

GitHub Actions

CI/CD platform for automating software workflows directly in GitHub repositories

2 lessons0 resources
G

GitLab

GitLab is a complete DevOps platform delivered as a single application. It provides Git repository management, CI/CD, security scanning, and monitoring throughout the entire development lifecycle.

2 lessons11 resources
G

Grafana

Observability and data visualization platform for metrics, logs, and traces

2 lessons0 resources
g

gRPC

High-performance remote procedure call framework by Google

2 lessons0 resources
I

Istio

Service mesh layer for managing microservice communication

2 lessons0 resources
J

Jenkins

Open-source automation server for continuous integration and delivery

2 lessons0 resources
J

Jest

Jest is the most popular JavaScript testing framework. Created by Meta, it provides a zero-config setup, built-in mocking, snapshot testing, and code coverage for projects of any size.

2 lessons11 resources
J

JWT

Proposed web cryptography standard

2 lessons0 resources
A

Apache Kafka

Distributed event streaming platform for high-throughput data pipelines

2 lessons0 resources
K

Kubernetes

Container orchestration platform for automating deployment, scaling, and management

2 lessons0 resources
L

Linux

Family of Unix-like operating systems that use the Linux kernel

2 lessons0 resources
L

LLVM

Compiler backend for multiple programming languages

2 lessons0 resources
M

MongoDB

Cross-platform document-oriented database

2 lessons0 resources
M

MySQL

Popular open-source relational database management system

2 lessons0 resources
N

Neovim

Neovim is a hyper-extensible, modern refactor of Vim. It features asynchronous architecture, built-in LSP client, Tree-sitter syntax engine, and first-class Lua support for creating powerful editor configurations.

2 lessons12 resources
N

Next.js

React framework for production-grade full-stack web applications

2 lessons0 resources
N

NGINX

Open source web server and a reverse proxy server

2 lessons0 resources
N

Node.js

JavaScript runtime environment

2 lessons0 resources
N

NoSQL

Non-relational database systems designed for scale and flexibility

2 lessons0 resources
O

OAuth

Open standard for token-based authentication and authorization

2 lessons0 resources
O

OpenTelemetry

Linux Foundation project

2 lessons0 resources
P

PostgreSQL

Advanced open-source relational database with strong ACID compliance

2 lessons0 resources
P

Prettier

Prettier is an opinionated code formatter that supports many languages. It enforces consistent style by parsing code and reprinting it with its own rules, eliminating debates about code formatting.

2 lessons11 resources
P

Processing

Processing is a flexible software sketchbook and language for learning how to code within the context of the visual arts. It is the premier tool for creative coding, generative art, and data visualization.

2 lessons10 resources
P

Prometheus

Monitoring and alerting toolkit for cloud-native environments

2 lessons0 resources
P

Protocol Buffers

Google's language-neutral serialization format for structured data

2 lessons0 resources
R

RabbitMQ

Open-source message broker implementing AMQP protocol

2 lessons0 resources
R

Ruby on Rails

Server-side web application framework written in Ruby

2 lessons0 resources
R

React

JavaScript library for building user interfaces

2 lessons0 resources
R

Redis

In-memory data structure store used as cache, database, and message broker

2 lessons0 resources
R

Redis Cache

In-memory caching layer commonly built on Redis for high-speed data access

2 lessons0 resources
R

Relational Database

Database organized according to the relational model of data

2 lessons0 resources
R

REST

Architectural style for designing networked applications

2 lessons0 resources
S

Selenium

Selenium is the most widely used browser automation framework. It supports multiple browsers and programming languages for web application testing, scraping, and automation at scale.

2 lessons11 resources
S

Socket.IO

Socket.IO is a real-time bidirectional event-based communication library. It enables real-time, bidirectional communication between web clients and servers using WebSocket with fallback options.

2 lessons11 resources
S

Spring Framework

Application framework and inversion of control container for Java

2 lessons0 resources
S

SQLite

Embedded SQL database engine known for simplicity and reliability

2 lessons0 resources
S

Svelte

Compiler-driven framework for building fast web applications

2 lessons0 resources
T

Terraform

Infrastructure as Code tool for defining and provisioning cloud resources

2 lessons0 resources
T

Three.js

Three.js is the most popular 3D JavaScript library for creating interactive 3D graphics in the browser using WebGL and WebGPU. It provides a comprehensive API for scenes, cameras, lights, materials, and animations.

2 lessons11 resources
T

TLS

Cryptographic protocol for secure communication over a network

2 lessons0 resources
T

TypeScript Compiler

Compiles TypeScript to JavaScript, performing type checking and transpilation

2 lessons0 resources
V

Varnish Cache

HTTP accelerator and reverse proxy for caching web content

2 lessons0 resources
V

Vercel

American cloud application company

2 lessons0 resources
V

Vite

Vite is a modern build tool that provides an extremely fast development server with native ES module imports and optimized production builds using Rollup. It is the default build tool for Vue, React, Svelte, and many other frameworks.

2 lessons11 resources
V

Vitest

Vitest is a blazing-fast unit test framework powered by Vite. It offers Jest-compatible API with native ESM support, TypeScript integration, and instant hot-module reloading for an exceptional testing experience.

2 lessons11 resources
V

Vue.js

Progressive JavaScript framework for building user interfaces

2 lessons0 resources
W

WebAssembly Runtime

Runtime engine for executing WebAssembly modules outside the browser

2 lessons0 resources
W

Webpack

Module bundler for JavaScript applications

2 lessons0 resources
W

WebSocket

Computer network protocol

2 lessons0 resources