Striking A Balance
Writing software is hard. Packaging software is harder. Running said software is hardest.
We spend quite a bit of time developing software to run software.
It is is not to say we can't run software proficiently. There's a reason why a trillion dollar company like Alphabet spent time writing container orchestration tools like Borg and Kubernetes. But the level of complexity that we adhere to make an abstraction for something we want repeatable and automated, can get ridiculous.
I spend my days writing code to run code. The effort is non-trivial and at times can feel quite daunting. You spend hours or even days optimizing a set of abstractions just to keep things just slightly more sane than the last set of changes. However the practice can also be grandly satisfying. When you do get those optimizations in place, your software tends to become more performant and more stable. Meaning you get to sleep more and enjoy life a little bit more. Always looking for ways to lessen the workload by decreasing complexity, but also increasing abstractions.
I think a strong a balance on what need to run for your software and tooling you write to run that software. With that said, will write a small series focusing mostly on software development builds and their runtime.