I spent 5 years in school, got several degrees including an MSc in Computer Science. And I have been working professionally as a developer / "software engineer" (big air-quotes) for the past 5 years.
I'm in my (very) late 20s and I can't imagine doing this for the rest of my life. But the only other path seems to be management right now. And that sounds even worse.
I feel like I'm stuck on this path, and stepping out would mean financial ruin. I'm based in Europe, so my salary has been pretty modest.
Is this a regular 30s-life-crises? Did you have similar doubts at this point of your career/life? What did you do?
The good thing is software development is now a skill underpinning many other fields. There are deeper tech specializations beyond just “software development”
Around my 30s I knew I wanted to stay technical and not go into management. I ended up specializing in search engines (like site search using Elasticsearch). I intentionally pushed hard into a personal brand and skills around the niche. It’s a very in demand space. It’s very hard. I still write lots of code. But it’s combinddd with domain knowledge, data science, nlp, and lots of other cool fields.
I have other friends that have specialized based on other opportunities their careers have presented them, including:
- legacy software refactoring and management
- native C development
- wireless protocols
- operating system internals and drivers
- A/B testing
- MySQL performance
- JavaScript front end performance
- Various scientific fields where coding is useful
There’s so many niches in demand that it’s really hard to think of software development as “one thing”. It really behooves you if you want to stay technical to build a brand around a consistent focus area that interests you. You’ll have more fun AND make more money.
I did have a lot of doubts about whether I was good enough at it to make it as a career. And that continues, basically every time I'm faced with a hard problem, even though I'm now a mid-level Area TL at Google responsible for software that hundreds of millions of people use. That's the nature of software (and innovation in general): before you've done something, other than the most trivial problems, you wonder whether you can do it, and then once you've done it, it's done and you move on to bigger challenges.
I would basically stop thinking in "rest of your life" terms and start thinking 2-3 years down the road. Are you happy doing what you're doing? Is there something else you'd rather be doing? Are there any particular developments that make you excited? Answer those questions first and that'll give guidance to shape the rest of your life.
I have no idea what the world will look like at the end of my life in hopefully ~40-50 years (who knows, I could get COVID and die next month). I suspect that demand for software engineers will be a lot less than it is now. But there's also a whole bunch of tail risks we're certainly underestimating - the U.S. might break up into lots of tiny little states, Russia could roll through all of Europe, we might all be underwater from rising sea levels, whatever. It's not worth worrying too much about them. Worry about the risks you're going to face in the next couple of years and trust in your ability to adapt beyond that.
I ended up transitioning into a DBA/sysadmin and eventually into a solution architect and service owner role. I learned that I like solving problems, and really enjoyed programming as a means to that end vs what it had become to me.
Don’t lose hope — everything you do prepares you for what’s ahead.
Toughest part is the salary/time demand ratio is pretty great, I doubt there's many normal jobs that come close. Maybe sales, once you get the ball rolling.
I think the key is to compartmentalize it as a source of income (my coworker says "whelp, back to the salt mines"), find a niche that people want you for, and get other things you're interested in.
I assume this job will be valuable for at least 10 more years.
there are a bunch of topics that are not software development for the sake of software development. there are a bunch of topics that aren't browsers speed optimization and advertising. you won't make a bunch of money if you leave to these other topics, and often you will not be treated like the most valuable person in the room, but there's a lot of value in adopting these other roles