Fundamentals of Software Performance


Diagram showing the performance loop: measure, explain, change one thing, verify.

End-to-end software performance fundamentals: latency, throughput, percentiles, bottlenecks, and measuring user-perceived speed without breaking reliability.

Fundamentals of Software Quality Assurance


Abstract illustration showing a feedback loop for software quality: prevention, detection, and learning.

Software quality assurance fundamentals, why QA exists, how it differs from testing, and how teams build quality into how they work.

What Is a Retry Storm?


Diagram showing a retry storm as a feedback loop of increasing load and tail latency.

Retry storm: when retries multiply load and turn partial failures into outages. Learn how they happen, how to detect them, and how to prevent them.

Fundamentals of Networking


Diagram showing the networking stack and how data flows through it.

Networking fundamentals for developers: packets, IP addressing, routing, TCP and UDP, DNS, TLS, and a practical troubleshooting mental model.

Why Should I Learn Software Fundamentals?


A diagram showing a software system with a foundation of fundamentals and a building on top of it. The building represents the software system and the foundation represents the fundamentals.

Why learn software fundamentals? They outlast frameworks and reduce pain. Build skills that pay off for your career and your users.

Fundamental Algorithmic Patterns


Algorithmic patterns reference: two pointers, sliding window, dynamic programming, and 30+ more. Learn to spot patterns and solve problems faster.

How Algorithmic Patterns Work


Flow showing how algorithmic patterns relate, combine, and guide practice.

Algorithmic patterns explained: why patterns work, how patterns combine, and how to practice recognition without memorizing solutions.

Fundamentals of Computer Processing


Conceptual diagram comparing CPUs, GPUs, TPUs, and specialized processors and how they map to different workloads.

CPU vs GPU vs TPU: learn how processing architectures differ, when to use each, and how latency, throughput, and data movement shape performance.

Fundamental Data Structures


Conceptual diagram showing arrays, hash maps, sets, trees, graphs, and how they organize data differently.

Data structures guide: arrays, hash maps, sets, stacks, queues, trees, graphs. Types, properties, when to use in Python, JavaScript, Java, C++, Go, Rust.

Fundamentals of Data Structures


Diagram of the core data structure families: arrays, hash maps, trees, and graphs.

Fundamentals of data structures: what arrays, hash maps, stacks, queues, trees, heaps, and graphs cost, and how each choice shapes performance and reliability.

Fundamentals of Algorithms


Master algorithm fundamentals: data structures, Big O notation, and runtime complexity. Learn how algorithmic thinking helps build fast, reliable software and prevent production incidents.

Fundamentals of Software Security


Diagram showing software security fundamentals including threats, vulnerabilities, authentication, authorization, encryption, and secure development practices.

Software security fundamentals: threats, vulnerabilities, and defenses. Build systems that protect data and users from attacks.

Fundamentals of Software Performance Testing


Diagram showing performance testing fundamentals including load testing, stress testing, performance metrics, and bottleneck identification.

Performance testing fundamentals: load testing, stress testing, and metrics. Build systems that handle real traffic and find bottlenecks before users.

Fundamentals of Software Product Development


Abstract illustration of product development workflow: user research, feature planning, development, testing, and iteration cycles.

Master software product development fundamentals: user research, MVP validation, feature development, iteration, and metrics. Build products that solve real problems.

What Is The Law Of Instrument?


Discover how the Law of Instrument explains why developers reach for familiar tools—especially GenAI—even when they're wrong for the job. Learn to recognize this cognitive bias and choose the right tool.

Fundamentals of Reliability Engineering


Diagram showing SLOs, error budgets, and reliability targets working together

Understand reliability engineering fundamentals: how to define SLOs and error budgets, design reliable systems, balance reliability with innovation, and make data-driven decisions about system reliability.

Fundamentals of Monitoring and Observability


Diagram showing metrics, logs, and traces working together for system observability.

Understand monitoring and observability fundamentals: how metrics, logs, and traces work together to help you understand system behavior, debug problems, and make better decisions.

Fundamentals of Metrics


Diagram showing North Star, supporting, and guardrail metrics connecting data to decisions

Understand software metrics fundamentals: why they matter, how to pick high-signal, actionable measures, and build lean systems that improve decisions.

Fundamentals of Software Design


Master the core principles that guide effective software design. Learn why design matters, how to recognize good design patterns, and strategies for making design decisions that create maintainable, scalable systems. Essential reading for developers and technical leaders.

Fundamentals of Fundamentals


Master the core concepts that underpin all technical knowledge. Learn why fundamentals matter, how to identify them, and strategies for building lasting expertise that transcends trends and tools. Essential reading for developers and technical leaders.

Fundamentals of Backend Engineering


Understanding backend engineering: what it is, why it matters, and how backend systems work. Essential explanations for developers who want to understand the server-side of software development.

Fundamental Software Concepts


Master the universal software concepts every developer needs to learn, from data structures to error handling. Discover the fundamentals that separate coders who build toy projects from those who create production-ready systems.

A List of Pragmatic Programmer Principles


Essential principles from The Pragmatic Programmer that every developer should know, organized for quick reference and daily practice.

Fundamentals of Software Development


Illustration of the building blocks of software development, from decisions and code to tests and architecture.

Software development fundamentals as a 16-step learning path: decision-making, version control, databases, design principles, testing, debugging, and architecture.