As a recently laid of senior engineer, to the extent that my job was replaced, it was replaced with offshore junior devs who'd already been working with the company for over year with a pretty rough level of productivity by man-hour, though maybe taking 3x the time to get things done is worth it if they're cheap enough. Which is to say I see my layoff as as cost cutting backed by a premise that there is no value in r…
In my experience, if you're working on a green-field project, you're working long hours, making very little visible progress, you have to write a lot of code, make important decisions. All the while management is breathing down your neck and asking 'why isn't it ready yet'. Once the thing is shipped, then all the important people come out of the woodwork, who were surely there all along, 'supporting' you from behind…
From my time at AWS, and in light of the recent DynamoDB dns race condition bug, this is a line of thinking that is problematic.
There is so much complexity in the inner workings of any one of those services. Many of those services are now composed of many teams, each having turned over completely multiples of times.
Yes there are runbooks and knowledge passed down from each generation, to some extent. But when you hit some critical outage, edge case, etc., those people running the systems have such a different relationship to the system having simply maintained it vs. built it.