Software engineering with today’s tools is all about plugging systems together. You have to be skilled enough to know what tools to use to build your product. Call it cloud computing if you want, it’s just the way software is built today.
I come from the school where the software developer built everything. He wrote the code (usually from scratch), configured the server and all of the components in it, handled the database details (installation, securing, etc..), and maintained all of it. That is just how it was done.
Naturally, considering how I learned to build web apps, I pushed back against managed systems. I thought Heroku was cool, but why would I pay for something that a real software developer should be able to do. Things like MongoHQ are cool too, but seriously, pay for database hosting? That’s for amateurs!
I have finally realized that these pluggable components are popular for a reason. I spend about 70% of my time on the job working with server issues. Issues I shouldn’t have to deal with. This is time that should be spent building software. If I had that 70% back, I could have improved the software that I am supposed to maintain. I could have wrote new software for new business.
Maintaining servers is not worth the effort if you want to build stuff.