Likewise, FAANGs are not in every case "beautiful environments with amazing people dedicated to the craft of engineering." The most toxic person I ever met in my life spent years at Google, and he was not an impressive engineer by any stretch of the imagination. Amazon, Microsoft, and to a lesser extent Netflix are all notorious for having Squid Game cultures where everybody knows somebody will get fired soon and they're working hard to make sure it's not them.
Also, this is just false:
Pure programmers are just low value cogs in an assembly line, and being a great programmer only makes you a slightly better low value cog because it won’t be recognized.
I'm not saying it isn't true at any company. But as a statement about the overall industry, it's false. Great architectural decisions can add substantial amounts to a company's bottom line.
Likewise, this feels very naive to me personally:
What is the track for promotion at most companies - being a better programmer or learning project management and becoming a manager/lead who only spends 10% of their day coding?
Principal engineer can be an astonishingly lucrative role.
Nearly as lucrative as mid-level manager.
But from being a better programmer you can still derive better monetary gains. Instead of striving to become a lead or manager or product owner, you can either become an entrepreneur or search for a company where being a better programmer is a highly desired skill.
A point he hammers home in the article is that he likes to be more productive so that he can go home earlier and do what he loves.
> Pure programmers are just low value cogs
The idea of improving productivity here is not only applicable to programming. One example he mentions is improving meetings. If you're a business person, you could improve at spreadsheet jockeying.
I could try to get really good at programming. I could try to really learn something like databases or systems programming extremely well. But is a recruiter looking at my resume going to see that? Is a management chain that doesn’t really understand software going to reward that? Does the 100th startup building your average webapp need that skillset at all? Does your manager even look at a pull request and have any idea of the quality of your code, or do they simply evaluate # tickets / day?
I have never worked at a FAANG or any of these beautiful environments with amazing people dedicated to the craft of engineering. I have worked in places where great engineering is not recognized, or (more often) just not as important as okay engineering + project management + communication + being friends with the right people. The job of a modern software developer in most places is only partly about programming. Pure programmers are just low value cogs in an assembly line, and being a great programmer only makes you a slightly better low value cog because it won’t be recognized. Your average manager sees you do the task in X days and assumes it was about X days worth of work - they have 0 idea if it would’ve taken someone else 5X the time. Its a luxury to work somewhere where your job really is just engineering and good engineering is recognized and rewarded. When your chances of working somewhere like that are low and you have limited time, maybe its not worth investing time and energy into leveling up as an engineer.