Skip to content

Software Resilience and Reliability

Why This Book was Written

Technology is the primary engine for value creation, innovation, and organizational performance. Unlike physical assets, software is not static. Its power lies in its ability to incorporate user feedback and evolve to meet changing needs. Consequently, one of the most critical indicators of a software application’s health is how easily, safely, and quickly it can be modified.

-- DORA / Google Cloud, 2026

This book is for developers who know how to write code but may not have experience maintaining, extending, and refactoring large and complex software applications.

Professional software development introduces a set of challenges that extend far beyond coding the implementation for algorithms and business logic. Developers must read and understand codebases that they didn't write, navigate shifting requirements, communicate with teammates and stakeholders, and build on to systems that must keep running smoothly while they are being changed. The transition from programmer to developer is rarely seamless, regardless of how well-prepared anyone is coming in.

This book is intended to cover knowledge and practices that offer practical value when working on software projects, but are more often learned "on the job" through painful trial and error rather than taught explicitly.

Justification for Technology Choices

This book uses .NET and the C# programming language to illustrate concepts. These were chosen because:

  • The .NET runtime is cross-platform.
  • The language and platform afford the ability to demonstrate the concepts for this book.
  • The .NET ecosystem tends toward a "one right way to do it" philosophy than other more divergent technologies.

It is not expected that the reader have any C# experience. With the volume of high-quality, low-cost, accessible resources available at our disposible, it has never been easier to learn new programming languages and technologies.

This book uses application software as opposed to system software do demonstrate concepts. Application software is typically more accessible for new learners, and examples are easier to understand.

All of the topics in this book may be applied to software generally, regardless of which technology a solution is implemented in.

Format of the Book

This book is a mix of original content and curated external resources, depending on which approach best serves the topic.

Although readers are free to skip sections, each chapter assumes that the reader understands content from previous chapters.