The first time I cared deeply about infrastructure as code, the argument was not really about Chef.
Chef was the tool in front of us. It gave us cookbooks, recipes, resources, and a DSL for describing how machines should be configured. But the deeper argument was that operational knowledge should not live only in tickets, shell history, wiki pages, and the heads of a few senior engineers.
If a server needed a package, file, daemon, permission, or dependency, that intent belonged in code. If a change could break production, it deserved version control, review, testing, and a release path. If an operator repeated the same judgment, the system should eventually learn it as an artifact.
The more I use coding agents and LLMs for real work, the less I think of prompts as throwaway text.
A useful prompt is not just a question. It is a small interface. It carries assumptions, constraints, examples, preferences, and failure modes. A project instruction file is even more explicit: it tells an agent how to navigate a codebase, what quality bar to hold, which tools to prefer, and which boundaries not to cross. A context pack does the same thing for a domain. It packages durable facts, active goals, source notes, open questions, stale claims, and sensitive exclusions so an agent can reason from the right starting point.
Reliability engineering often starts with tooling, but the durable work starts earlier: naming what actually fails.
My public talks on resiliency and incident management span from DevopsDays India in 2013 to Uber-focused talks in 2020. The shape changed over time. The early framing was culture, tools, and practices. The later framing was incident taxonomy, data, and large-scale operational learning. The through-line is the same: resilient systems are built deliberately, not wished into existence.
reef-pi started as an open source Raspberry Pi reef tank controller. The public record now shows something larger: a hobby controller that grew into a small ecosystem of software, documentation, community support, and compatible hardware.
That arc is interesting to me because reef-pi is not only about aquarium automation. It is a compact example of how public engineering systems mature when they need to survive real users, real hardware, and long-lived maintenance.
Looking back across my public talks and writing, the same idea keeps returning in different forms: operational work should become software.
In the early 2010s, that meant Chef, infrastructure as code, and testing cookbooks. At PagerDuty, it meant CI/CD for infrastructure, TDD in operations, and service discovery with Consul. At Uber scale, it meant production engineering, capacity management, incident taxonomy, and ML-assisted operational decisions.