My work today consists of wrapping prior standalone server environments into reusable docker containers managed with kubernetes. It's a lot of work to package the containers in a reusable form and make them capable of being tailored to the needs of the end user community. I miss the joy of writing ultra compact DSP code to run in a tiny processor. A developer on my current team needs a minimum quad core I7 and 64 GB RAM and 2 TB disk to run the VMs and kubernetes clusters.
The days of the typical coders understanding the hardware (other than very specific niches) are long gone.
Virtualization is great, as someone who used to have to deal with base iron and all the problems that it could introduce, modern frameworks and tooling etc are all great as well.... but I’ll be honest, I got more reward a few years back porting a telnet program to my Commodore 128, than I’ve gotten building anything commercially in a long time.
Such HorseshIt. Make the simple complicated and call it better.