Comment by zaptheimpaler

5 years ago

Very well put. This was sort of my attitude to programming years ago - to try to get really good at the craft. But the question is, is that going to be rewarded or recognized at all? Who makes more, the programmer dedicated to their craft and domain getting better every day, or the leetcode expert who jumps from one FAANG to another getting 30% raises each time? 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?

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.

I think you're kind of mythologizing both FAANGs and Leetcode here. Leetcode won't get you further than doing amazing work and making your co-workers and colleagues happy. The OP is about how to get serious upgrades in the work you do. Leetcode is a thing that gets you in the door.

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.

  • Principal engineer can be an astonishingly lucrative role.

    Nearly as lucrative as mid-level manager.

You should not expect a better payment from your company because you are a better programmer. Payment is according to demand and offer. Your company will mostly demand what you say: OK engineering, management skills, good communication skills, getting well along with your colleagues.

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.

If your motivation is to be able to work "at a FAANG or any of these beautiful environments with amazing people dedicated to the craft of engineering", then maybe it's more useful to think of the advice in terms of, making it easy to get a job "where your job really is just engineering and good engineering is recognized and rewarded". Or is this not actually your motivation and it's more to lightly mock people who grinded to get such jobs? If you've never worked at a company that has amazing people, that was a beautiful environment, that had dedication to craft, then it might be difficult to believe that such companies do exist. But once you enjoy it and recognize it, then that just becomes your standard for companies, so you'll only interview at companies that you think might meet that standard, you carefully evaluate them during the process, and you switch if you find that not to be the case.

> What is the track for promotion at most companies

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.