Fundamentals of Software Usability


Diagram showing software usability fundamentals, including learnability, efficiency, memorability, error prevention, and satisfaction, interconnected in a workflow.

Understand why software usability matters: how learnability, efficiency, memorability, error prevention, and satisfaction create software that users can actually use effectively.

Fundamentals of Software Debugging


Abstract illustration of software debugging workflow: define failure, reduce surface area, form hypotheses, collect evidence, confirm root cause, and prevent recurrence.

Software debugging fundamentals for developers: mental models, evidence-driven workflows, observability signals, and practical techniques for finding root causes fast.

Fundamentals of Agile Software Development


Diagram showing availability workflow from redundancy through health checks to graceful degradation

Agile software development fundamentals: iterative development, collaboration, and responding to change. Build software that delivers value continuously.

Fundamentals of Capacity Planning


Cover image for capacity planning fundamentals and scalable system reliability.

Learn capacity planning fundamentals: how to predict resource needs, avoid over-provisioning, and scale systems efficiently. Essential guide for engineers and operations teams.

Fundamentals of Software Scalability


Cover image showing scalability concepts: horizontal and vertical scaling patterns for distributed systems.

Software scalability fundamentals: how systems handle increased load, why scalability matters, and when to scale horizontally vs vertically.

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.

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


Master core software development fundamentals: decision-making, problem-solving, and building systems that work. Essential guide for better developers.

How Do I Define Software Capabilities? A Complete Guide


Learn how to define and document software capabilities effectively. Master the art of specifying system abilities that enable use cases and features. Includes templates and real-world examples.

How Do I Identify Software Use Cases? A Practical Guide


Learn how to identify and document software use cases effectively. A comprehensive guide for product managers, software architects, engineers, and designers working together to build better software.

How Do I Specify Software Features? A Complete Guide


Master the art of specifying software features that deliver real value. Learn proven techniques for documenting features with templates and real-world examples from project management.

What Is The Difference Between Software Capabilities, Use Cases, and Features?


Master the key concepts of software development. Learn the crucial differences between capabilities, use cases, and features with real-world examples from project management.

What Is Software Delivery?


Understanding software delivery, its key aspects, and why it matters in the modern tech landscape.

Learn GitHub


Learn GitHub to supercharge your development process. GitHub is the premier code management tool, and it keeps getting better.

Learning Elixir


Learning Elixir is fun! Let's learn Elixir to decide if it's worth your time investment.

How to Open Files with Default Applications in Visual Studio Code (Mac & Windows)


Learn how to configure Visual Studio Code to open files with their default applications using custom tasks. Works on both macOS and Windows.