With a 3% workforce cut, Microsoft shows nobody is safe
Microsoft's cuts included high-performing engineers across the company. I go over the management dynamics that lead to great engineers being terminated.
Microsoft announced that it is laying off about 3% of its workforce. This is about 7,000 people.
Some outlets reported that the layoffs hit developers hard. But if you chase down the numbers this doesn’t seem right; Bloomberg is reporting that 40% of the workers laid off were software engineers. Yet in 2021 — the most recent year I could find accurate data about Microsoft’s software engineer employment counts — Microsoft said that they had over 100,000 developers and their 2021 10-K lists them as having 181,000 employees. So estimating that the company is about 55% developers, that suggests that developers were spared relative to other departments. If you have more accurate numbers, HMU!
But it’s still astonishing to see the list of developers that were laid off.
The “faster CPython” project was all laid off including 3 core Python developers.
A director of AI was let go.
I previously wrote about Microsoft speeding up Typescript compilation by 10x; at least one of the people responsible was laid off.
If you look on forums, it’s easy to find (unsubstantiated) posts stating that the people laid off were not low performers.
Microsoft themselves said that they made cuts without regard to performance.
The situation is unbelievable from the bottom-up approach. You just look at the list and you think, “my god, they laid off the guy that improved Typescript compilation speed by 10x. He made a substantial improvement that could end up helping millions of developers. I work in this menial area of the codebase. My contributions could never hope to match his. How did this happen? Why am I still here and they are gone?”
We’re previously written about the disconnect between executives and leaf-node employees and how they view layoffs. This is because you are trying to apply top-down logic from your bottom-up perspective. In the bottom-up perspective, you are using all of the facts on the ground to make your decisions. You are actually looking at the person, their history with the company, the weight of their contributions, etc.
But let’s flip this around to the top-down view again. This is going to be an oversimplified view of organizational staffing, but it will suffice for the discussion. Companies look at roles in terms of having a seniority component (entry-level, junior, senior, staff, etc) and a role (backend, iOS, Android, ML, etc). Sometimes a large company will further specialize on domain, so you might have a Senior Backend Engineer in Payments or a Junior iOS Engineer in Adtech.
So periodically the executives need to plan for the future. They go through a bunch of planning exercises to figure out “given where we want to be in N years, what organization do we need? What engineering roles are needed to support those goals? What seniority do each of those roles require?”
So from the top down, “we’re not doing enough on AI” could translate into many shifts. Sometimes if you are misaligned with your future goals, you can fix it through attrition and headcount allocation. But if you need to change quicker, you likely need to conduct a layoff. Sometimes the management layer will do a nod towards the bottom-up view1 , but they’ve already made peace with the idea that talented people will be let go. These decisions are mostly “Ah, I see that you are a ::checks notes:: staff compiler engineer on ::checks notes:: the Typescript compiler. It turns out that we have 1 more of these than we need and it seems that you are pretty expensive, so you will now be routed into the severance pipeline.”
And that’s where the disconnect happens! From the top-down perspective it’s largely just a numbers exercise, but from the bottom down perspective everyone is just shouting “you let go of THIS PERSON? And you kept THIS PERSON, whom everyone knows is terrible? Make it make sense.”
If you’re worried about this happening to you, then what should you do? You should try to find a way to work on your company’s top priorities. And then you should do good work2. Personally, I’ve asked myself what I want to accomplish with my work. I personally want to be proud of the impact of my work. So my current philosophy is, “I want to work for a business model that I feel good about, and I want to be on a team that directly impacts it.” I know that I would have been reasonably happy on something like productivity software, but I’m much happier in my current role at a dating app. But these don’t have to be your values. You should think really hard about what you what out of this life, and what would make you proud looking back. And then you should try to find a company that does that as their business model.
They might, for example, ask lower-level managers for a safe employee that should be spared.
For someone who has written about gaming promotion criteria this may seem like lame advice, but you always have to start with the fundamentals.