Given that he articulated well the awfulness of the tech industry, I find it odd that he loves the job. Programming itself is fun and I understand why people miss it after being out of the game, but the software industry itself is thoroughly unloveable.
For the exercise, I’ve boiled down each of his complaint lists to the core ones.
Software Engineer: “No autonomy”. All of the listed complaints come from the low status of programmers. We get constantly interrupted because, unlike researchers in think tanks, we lack status and no one considers us smart enough to tackle problems that require “flow” anyway. We have to work on shitty codebases because no one actually believes us when we say that the legacy code is bad; our bosses won’t admit it to our faces, but they just attribute our reactions to bad code to our own incompetence. A big part of the problem is that there’s no professional structure or barrier to entry; we have to compete with unskilled, unqualified, but cheap 21-year-olds. It’s a loser’s game… but almost no one in this industry respects experience or technical competence.
Tech lead: “I don’t have the ability or authority [to effect change]”. The “tech lead” designation sucks, to be honest. It’s a pseudo-management role given out because it convinces people to take on significantly more responsibility, but without a pay bump or a title bump that would mean anything except to other low-status nerds. You’re held responsible for a team, but you have no power, because you’re not a real boss and everyone knows it. That job has all the negatives of being a manager, but none of the positives. It’s also problematic, because it often involves being evaluated as an IC in addition to as a tech lead, which means you have to take some of the coding work… but then you’re likely to have people suggest that you’re abusing your powers as work allocator either to give yourself the fun stuff or to make people support your career goals rather than what’s best for the company. Even if it’s not remotely true, and even if you take on the worst work to protect the team, people can accuse you of this. Being a “tech lead” truly sucks.
Manager: for this one, there are two high-impact points, “It feels like everyone is always complaining to me all day long” and “It’s unclear what the CTO/VP of engineering does; they don’t seem to add any value; they ask ignorant questions and are generally disrespectful”. The first is what Robert Baratheon referred to as “counting coppers”; the part of his job, as king, that he hated. Even though managing is the less awful of two alternatives in a manage-or-be-managed world, it’s still not fun. The second comes from the realization people have that, even when they’ve been promoted to Director or VP, they still have to deal with people above them… and the likelihood that those people are of any quality is pretty damn low (not because “managers are idiots”, as engineers tend to complain, but just because most people, including many programmers, are idiots).
Unfortunately, I feel like there’s no obvious antidote barring a radical restructuring of the industry (e.g. professionalization similar to the actuarial profession’s exam system, and structures that give engineers more leverage against careerist, harmful managers). I’ve seen the worst people drive out the best people for 10 years and maybe it’s just time to accept that the U.S. software (or “tech”) industry deserves to die.
[Comment removed by author]
Low status in companies especially where the software project isn’t generating direct revenue (e.g. managed service providers). Having to justify hiring another developer to distribute the workload is met on deaf ears. In many instances seen as just a cost center role (find a developer, and dump the project on them). This is especially prevalent in low-status software development jobs used to build experience and “level-up”. It feels like being trapped in a crappy-IT job maze for the first three to five years.
I hate to be the one to tell you this, but for most people it doesn’t get better. The jobs get somewhat better, and you’re quicker at completing the work, but there are also fewer jobs. Spending 5 years on low-status IT jobs isn’t going to get you hired on the core AI team at Facebook or Google. It might get you the ability to manage low-status IT jobs, which is an improvement, if not what we got into technology for.
Also, for what I’ve seen over the past 10 years… our salaries have gone up, becoming closer to what we’re actually worth. However, the status of engineers has only gotten worse, which means that as soon as this bloated, frothy tech economy softens a little bit, salaries will tank. We’ve done a terrible job of managing our own social status and it shows. I worked at a company where an early-20s PM was running around bugging people because his job was to provide, for a C-level, individual-level visibility into what people were doing, on a weekly basis. Only programmers (who’ve accepted their lot as a low status, shit-upon tribe) would tolerate that sort of micromanagement; professionals with any self-respect would have told that C-level to go fuck himself.