There is no end to the people who think they are going to fake it until they make it to the point they can hire people beneath them that actually know what they are doing. Because of how group dynamics and social calculus works, they are able to ride a business all the way down to bankruptcy and then do the same thing somewhere else. Why the hell does anyone want to be a software engineer in an environment like that.
What's worse is these people think that software engineers must work for them because engineers are desperate, stupid, and inferior while they themselves are smart and superior for their proclivity to exploit people and organize.
What part of that doesn't sound like labor exploitation to you? (Yeah, it's not as bad as it gets in some other situations. It's still very much exploitation of those who do the actual work.)
No product managers, no product owners, no product marketing, no business developer, no corrupted tech-site that shoves their own vested interests down our throats.
Today we need a 16 layer deep toolchain to create a HTML page because everything is javascript and dynamic and slower than generating server-side HTML, but it's The True Way Forward (ignoring the last 8 True Ways Forward we've had since 2002).
When you're competing against 22 year olds for job roles that didn't exist 6 months ago, the 22 year old has just has much experience in the new framework or toolchain or platform as you do at 35. They probably have even more experience because they have less to "unlearn" and more free time to understand all the quirks. They are more excited about learning it for the first time than you are about re-learning it for the 8th time.
Now we're using Go? Except it's no better than what we were using 10 years ago? But everybody else likes it, so we have to like it to? Great, let's kill my productivity for 8 months while I re-write all our systems and have them become less maintainable than they currently are.
I hear gardening is relaxing.
You can move towards a more teaching/"team lead"/"architect" role to get away from a lot of the day-to-day cycles.
You can move to a company where people actually sick around for 10+ years (Google, etc) and get very specific domain expertise, but maybe only in one company's systems.
You can try to start your own projects/companies/platforms, but that is much more hit-or-miss than lower risk employment. An easy place to start is just walk around a town, find inefficient processes (lots of manual interventions or paperwork) and try to help them with computers.
HN has a pretty distorted view of an overall life trajectory anyway. HN expects you to be come a millionaire by 22-25 and a billionaire by 28-30 or you're marked a failure. Most people in the real world can't imagine such a life and really don't care about "success" that much. But, with HN being so SF-focused, you need to be a millionaire to afford a stable place to live—and trying to "save up" doesn't work when you're competing against 1,000 new startup millionaires every year for the same limited housing supply.
For the price of a studio condo in SF, you could buy a mansion in another city and probably reduce stress a lot by not needing to keep up with the social media jonses.
So while I'll (hopefully) always be coding for at least some portion of the day, for nearly as long as I breathe -- at a certain point I realized there was both a creative and professional -- not to mention financial -- imperative to hybridize. (Which can mean different things for different people -- but basically boils down to adopting some kind of a secondary discipline, either in terms of domain knowledge; or, yes, managing people; or delving directly into the business side of things).
The bigger point is that I never recommend this to people who aren't sure. It's really sad when people spend 3 years and accrue a ton of debt and then realize they hate the job. So I always recommend getting a job in the industry first and trying it out. I did that, working as a paralegal for a couple years first. It was time well spent.
I was a developer and eventually software engineer / architect for 6 years. It was nice, but did not pay enough to support a family with kids + home. Sure, I could buy a home in TX or FL or somewhere inexpensive, but then there were not as many software engineering / architect roles. This was all well in my early 20s but did not cut it when I got married, had kids, etc.
Wall Street paid commensurate wages for living in job-rich areas. Unfortunately there have been a flood (literally, tens of thousands) of PhDs, mostly from China, who flooded the field and drove wages down. Average wages are now about half of what they were 8 years ago, though you will always hear of outliers.
So I switched, AGAIN after being a quant for 7 years. I'm back to being a software-engineer outside Wall St, except as an owner. So I call the shots now, but i'm also exposed to the whims of sales, revenues, profits, and potential bankruptcy.
Some of the challenges may be addressable with software (or hardware), and my past experience as an engineer has helped me conceptualize what a potential solution could look like.
More often than not, I've found that software is only a small part of the solution. Being in a large organization, I've come to realize how much additional stuff is needed to sell a piece of software.
The reason for moving away from software was that it's vanishingly rare to do important work without expertise away from your laptop. As much as startups like to say they're "changing the world", I felt that most meaningful changes are simply leagues beyond the kind of complexity you can solve with coding.
Pro:
* Learning about genomics, immunology & cancer
* Working on clinical trials (i.e. might help a real person)
* Seeing how science works as an institution (interesting peek inside the sausage factory)
Con:
* Doctors (& some biologists) tend to be more hierarchical than I'm used to from CS. You sometimes need to flash credentials to be treated respectfully (I have a PhD in CS, so that helps).
* Hospitals and their bureaucracies are insane. So, if you want to actually have patient impact you'll have to deal with some really byzantine processes (and the madmen who create them).
* Bioinformatics tools are crappy and their authors have few incentives to learn software carpentry. Related: file formats are designed to solve a specific problem and then get sloppily extended by everyone else.
* Biology accumulates a lot of historical baggage in its naming conventions (i.e. weird names are often explained by "SoAndSo thought it interacted with SomeOtherProtein in 1953"). This makes learning a lot harder than it could be.
I worked as a front-end developer and the people who told me what I had to do, didn't know much. So I started to get UX-skills. After they hired a dedicated UX person (a position I wanted to have) who started to tell me what to do, I quit.
I switched the focus in my post grad studies from software engineering to usability engineering and started to look for UX jobs.
I had an interview at a company and the hiring manager said, she would take me as a trainee.
But after I found out that I had to be on-site at big corps (much traveling) and write specifications all day long (no more coding), I didn't take the job.
I went back to be a front-end dev at a start-up. The pay is good, I can work from home and they let me do software and usability engineering.
I'm from Germany, where switching jobs is easier if you simply get a degree in the field. Also the degrees aren't that expensive here.