Computers Can Be Understood
blog.nelhage.com
blog.nelhage.com
That said I can't help but feel that the problem is a missing abstraction. As computers and the internet grew we did a lot of experimentation, learned from it, and came up with abstractions to help us conquer higher-order complexity through chunking.
But for cloud-based software today, creating a "simple" (in terms of business logic) backend API requires an insane amount of moving parts and complexity to have it up and running, but there is no underlying abstraction that offloads this complexity from the engineer writing the business logic. It's as if the people writing business logic were hand-crafting IP packets, but instead of juggling bits we're juggling build pipeline definitions and Kubernetes yaml files.
We need higher-order primitives for writing software.