My take on how a decade (or more) of using cloud services for everything has seemingly deskilled the workforce.
Just recently I found myself interviewing senior security engineers just to realize that in many cases they had absolutely no idea about how the stuff they supposedly worked with, actually worked.
This all made me wonder, is it possible that over-reliance on cloud services for everything has massively deskilled the engineering workforce? And if it is so, who is going to be the European clouds, so necessary for EU’s digital sovereignty?
I did not copy-paste the post in here because of the different writing style, but I get no benefit whatsoever from website visits.
I’m a very good engineer, but so much of my time is consumed fighting with Tekton pipelines and migrating testing frameworks and versions I barely have time to write code. But that’s because I can figure that stuff out when I have to. All the code is written by the people who can’t figure that stuff out.
Why this isn’t two separate jobs I can’t understand. Let me do some stuff I’m good at rather than constantly fighting with things I’m not?
I somewhat disagree here, but also somewhat agree.
In my org, we get a lot of requirements that require very different skillsets. For the first 2-3 years, our task list was mostly CRUD stuff with some domain specific logic, but otherwise a boring web app. In the last 1-2 years, we have:
If I hired only for the work I’d seen in the past, we’d be completely unfit to handle this workload since we’d mostly have people who are really good at building CRUD apps (so DB optimization and quick UX building).
On the flipside, we cut off huge swaths of work so people don’t need to wear too many hats. We have:
So our devs only need to worry about development, but they also need a broad skillset in that domain, from everything from local tooling to working in different domains. We hire a diverse set of candidates, some with a heavy math background, some with design experience, and some with low level programming experience, because we never know what projects we’ll get or who will suddenly leave the org.
If I understand the gist, I’ll just say I’d like my job to be some stuff I’m good and some stuff that challenges me. When I do nothing but challenge myself, imposter syndrome sets in. When I do nothing but the stuff that I’m good at, it gets really boring. I need to find a better mix than I have been.
This hits the nail right on the head. The point of cloud services is to take away all the overheads of building and delivering software solutions that have nothing to do with the actual business problem I’m trying to solve.
If I want to get a new product to market, I want to spend most of my time making my core product better, more marketable, more efficient. I don’t want to divert time and resources to just keep the lights on, like having to hire a whole bunch of people whose only jobs is to provision and manage servers and IT infrastructure (or nurse a Kubernetes cluster for that matter). Managing Kubernetes or physical tin servers is not what my business is about. All this tech infrastructure is a means to an end, not the end itself.
That’s why cloud services is such a cost efficient proposition for 98% businesses. Hell, if I could run everything using a serverless model (not always possible or cost effective) I’d do it gladly.
This is quite a trite argument from my point of view. Also, this is from the perspective of the business, which I don’t particularly care about, and I tend to look from the perspective of the worker.
Additionally, the cloud allows to scale quickly, but the fact that it allows to delegate everything is a myth. It’s so much a myth that you see companies running fully on cloud with an army on people in platform teams and additionally you get finops teams, entire teams whose job is optimizing the spend of cloud. Sure, when you start out it’s 100% reasonable to use cloud services, but in the medium-long term, it’s an incredibly poor investment, because you still need people to administer the cloud plus, you need to pay a huge premium for the services you buy, which your workforce now can’t manage or build anymore. This means you still pay people to do work which is not your core business, but now they babysit cloud services instead of the actual infra, and you are paying twice.
Cloud exploded during the times of easy money at no interest, where startups had to build some stuff, IPO and then explode without ever turning a single dollar of profit. It’s a model that fits perfect in that context.
At least where I work, our cloud team is ~35 people who manage the whole thing.
The datacenter team? In the hundreds.
Cloud is not the answer to every infra problem, but the flexibility, time to market, and lifecycle burden are easily beneficial weighed against finops. I’m an Azure engineer myself, it’s no comparison the benefits to a managed solution vs rolling your own DC for a lot of regular business workloads and solutions. Beyond that personally I’ve been able to skill up in areas I wouldn’t be able to otherwise if I was stuck troubleshooting bad cables, rebuilding a dead RAID array, or planning VMWare scaling nonsense.
But those are absolutely not the only 2 levels. Server rental can be managed easily by the same infra team who manages the cloud, for a fraction of cost.
I will say more, the same exact team that spends time managing EKS clusters could manage self-managed clusters and have money to spare for additional hires.
Your suggestions is a large expansion of skillset needed for your alternative to the cloud solution. Your own experience in attempting to hire workers should point to the reason thats a bad idea. You’re going to need even higher skilled people, and they are going to ask for significantly more money.
I wouldn’t say it’s a large expansion of skillset, meaning it’s not massive. But yes, indeed it is problematic to find people. It is because this is a vicious circle in which companies are digging their own graves by eliminating a market for those people, which in turn means that those who would want to hire some can’t find them easily, leading to outsourcing instead. Do this for 15 years across the whole industry and it stops being an option, which is pretty much where we are today. That said, training and upskilling is always a possibility for companies who invest on their own employees and are playing the long game…
I get you that it’s easy to over-provision in the cloud, but you can’t return an on-prem server. A cloud VM, just shut it down and you’re done.
AWS talks about minimizing undifferentiated heavy lifting as a reason to adopt managed services and I find that largely to be true. The majority of companies aren’t differentiating their services via some low-level technology advantage that allows them to cost less. It’s a different purchasing model, a smoother workflow, or a unique insight into data. The value an organization provides to customers should be the primary focus of the business, the rest is a means to sharpen that focus.
If this flexibility is needed, and it’s an “if”, a dedicated server does the same. But even a cloudVM is already lower level compared to other services (which are even more abstract) - like EKS, SQS, etc.
In my experience this often translates in values that flows to AWS, while the company giving value to customers is stuck with millions of cloud bills each month, and a large engineering footprint that eventually needs to cut, leaving fewer and fewer people working on the product.
That said, I acknowledge that cloud has business reasons to exist, I wrote an entire other post about my hate for it, but I still acknowledge that. However there are some myths that finally are getting dispelled (outsource infra and focus on your product).
I’d like to understand how self managing all the lower level components abstracted by the cloud is saving on headcount. Care to math that out for us?
It depends. An EKS cluster can cost easily 20x what an equivalent cluster costs with same resources. The amount of people necessary to manage it is very close compared to a bare cluster, which depending on the scale can save hundreds of thousands or millions per year, therefore allowing extra headcount.
For example, a company I worked for had a team of 6 managing all their kubernetes cluster on rented dediservers. The infra costed around 50k/year. The same clusters on EKS could be managed by 4 people (maybe?), but would have costed easily 5-600k, especially since they were beefy machines, possibly even more. That amount of money would pay for 7-8 additional headcount in local hires.
Considering that in those clusters there were 40-50 postgres clusters, if moving those to RDS they would have probably looked at millions in cloud bills per year, and the effort to run those dB’s once the manifests were developed was negligible (same team was managing them). This was a tiny startup, with limited resources for internal tools and automation development.
So it’s not like managing everything can save headcount, it’s that not outsourcing everything can save so much money that largely compensates for more headcount, plus you are giving money to real people, who spend local and pay taxes.