bash

  • A pipeline described in one file, after four years of five

    Five workflow files, two composite actions, and nobody able to say what runs when. A change that needed editing three files, one of them wrong.

  • The second host, and the failover we finally built

    Seven years on one host, and a business requirement that finally arrived. A recovery time that assumes the host comes back.

  • The shell script that is still a shell script

    A deploy script rewritten twice — into a compiled language and back — and stable for eighteen months at a hundred and eighty lines. Shell is the right…

  • A runbook command check that caught three

    A weekly check that every command named in a runbook still exists, which found three after a refactor. A runbook is documentation that must execute correctly under pressure,…

  • The backup that had to leave the building

    Every backup in one provider’s object storage, and a disaster recovery plan that assumes the disaster is local.

  • The incident that was a certificate, again

    The third certificate incident in six years, each with a different cause. An expired certificate on a service nobody remembered was serving TLS.

  • A pipeline that deploys on merge, and the four gates before it

    Eight deploys a week performed by a person, an hour after merge, by whoever was free. Continuous deployment needs confidence rather than automation.

  • The VPS that had been running since 2019

    A host provisioned in 2019, upgraded in place three times, and a provisioning script that has never been run against an empty machine.

  • The shell script that was rewritten and stayed shell

    A six-hundred-line deploy script rewritten in a compiled language in 2024, and a second rewrite back to shell. The rewrite was correct about the problem and wrong about…

  • An on-call rota of three

    A rota of two is not a rota. A third person joined in November, and the gap was everything learned in the shadowing month and never written down.