I’m a senior dev and can still get gigs, but nowhere nearly as easily as I could 5 years ago, despite having 5 more years of experience.
I’m wondering if there are a few particular tech stacks/technologies that would be worth focusing on and becoming an expert in to stay employable over the next 5-10 years.
Yes, I know it’s good to be a generalist, and I am, but employers seem to prefer to hire “experts” in particular domains.
Specific answers would be appreciated. “Focus on AI” and the like aren’t particularly helpful, though of course I appreciate the input!
- Find a domain or two you have an interest (better yet, a passion) in, that isn't IT, and pair your IT skills to it. My day job is (more generally) emergency management, so I pair my geospatial analysis and programming skills to solve problems within the emergency management domain.
I don't think AI will completely take over, simply because of [1], though it will somewhat remove or reduce the need for 'generalists', where much of the workload is handled by AI, at the prompting of a software developer or engineer, much like how many farm hands were replaced by farming machines when they became a thing. That said, I think we're still half a century off AI truly replacing most software developers.
Humans will still be required to 'know what 'good' looks like' and ensure that whatever slop AI spits out actually fixes the problem. This is where domain-specific knowledge is incredibly valuable. See how you can apply your skills to make your interest or passion field better, using AI to your advantage, by exploiting your technical skills with domain-specific knowledge.
Most people think of firefighters as just that - putting out fires. That's only partly true though. We use a shiny, and fast, red toolbox on wheels to solve the problems of others, whether that be (actual) firefighting, rescue, first aid, replacing smoke alarm batteries, engaging with the community, even fixing things. Firefighters now days are closer to problem-solvers than they are firefighters. We just happen to respond to emergency calls too.
Be the problem solver in your domain. AI, in my opinion, won't be able to truly problem solve, or think outside the box, for many decades to come.
[1] https://www.commitstrip.com/en/2016/08/25/a-very-comprehensi...
I often joke that if a UFO landed in the middle of I-40 outside of Raleigh, the first agency dispatched would be the Fire Department. We're[1] sort of the fallback "do it all" agency that goes to the crazy shit nobody else knows how to handle.
Grass fire? Send the fire department. Car crashed into a building? Send the fire department? Person locked in the police station / courthouse after hours? Send the fire department (taken from an actual incident I overheard last night while monitoring Fire/EMS dispatch in my area). Cow trapped in a ravine? Send the fire department. Apartment flooding? Send the fire department. Mysterious smell in the area? Send the fire department. UFOs? Send the fire department. And so on and on and on...
"All hazards" really is the name of the game these days.
[1]: I say "we" out of habit, even though I'm not on an active roster anywhere at the moment. I mostly gave up firefighting due to the demands of my day job, but I still consider myself a firefighter at heart and may well join up with a volunteer department again some day.
Absolutely! One of the more recent calls I attended was a 'residential [smoke] alarm sounding', with no further details. Call turned out to be a woman desperate to turn off the water to the house, after a hot water pipe had burst in the kitchen with no other way to turn it off. Not sure how dispatch got 'smoke alarm' from 'hot water pipe', though panicked people tend to do and say bizarre things under obtuse acute stress.
Some digging (the mains tap was burried under a decade's worth of pine needles) and one multi-tool later, we had the water turned off.
> I mostly gave up firefighting due to the demands of my day job, but I still consider myself a firefighter at heart and may well join up with a volunteer department again some day.
The 'job' is very much Hotel California.
Whilst I'm 'career' in my day job (which only turns operational in an incident management sense during the 'on' season), I still regularly volunteer with my local brigade when I can, which isn't much these days unfortunately. We've always said family and work come first, though even an hour or two here and there definitely help, even if its only with odd jobs around the station. It also helps keep one's skills sharp, as monotonous as maintaining BA sets can be, it helps keep the muscle memory exercised.
If you can, and you're willing and able, consider volunteering for your local volunteer department if there's one near by.
You don't need to be the fittest or the strongest (though some fitness is essential), it's much more important these days for a fire service be reflective of the community it serves[1] (NSFW minor adult themes, headphones recommended).
That means more women firefighters, firefighters of colour, short firefighters, tall firefighters, tiny firefighters, stocky firefighters, LGBTQ+ firefighters, religious firefighters, English-second-language firefighters, even techy firefighters, help reflect the community in which they serve.
(And I include our paramedic/EMT brothers and sisters in the word 'firefighter' here, who are just as vital as us).
All of those skills and life experiences are valuable in the fire service today.
[1] https://www.ted.com/talks/bronnie_mackintosh_how_diversity_i...
https://sfdlive.com/If you rely on employers for your livelihood you are buying a lottery ticket where the payout is smaller and less frequent. If you are a "follower" you have no choice. But if you can think your way out of a paper bag use that skill and start doing it.
Companies are in no-risk mode to a very large extent. They are very safety oriented. Perhaps Dinosaur Mode is the correct term. They hire followers, they are run by followers. So start finding obvious stupidities and fix them. We are so used to doing things the normal way that we no longer even pay attention to what we are doing.
I'm not saying quit your day job (if you have one) I am saying start a side gig. Start your side gig. And a hint if you need one - There are two very very big things missing from the internet. One is trust. The other is the ability for common people to form communities. Not follow people, but collectively think and work together. Read all the comment about why we don't and can't have these. Then go the other direction. :-)
So specific advice. Focus on you ability to be effective at accomplishing things. Any technology that lets you build your side gig. And if you can't find the technology to do that, then maybe that is your side gig.
What's the failure rate of startups - 90%? This is less risky than a slightly crowded job market where there's still millions of jobs?
https://github.com/JonLatane/jonline
Personal/Demo server (links to/includes data from the other two servers automatically): https://jonline.io
Servers for Durham, NC and Raleigh, NC (link to each other only): https://bullcity.social and https://oakcity.social
But um… how make money with it? I’m paying $60/mo for these 3 servers (and can bring it down to $40), and really stuck on how to monetize and get people using it.
My advice is work for a big company and put in your 40 and no more if possible. Ride that to retirement.
Or grind your ass off for a decade with minimal returns and possible ruin.
Yes, those are the ONLY two possible outcomes.
Fallacy of the Excluded Middle much?
Anyway. My current contracts are set to end dec 2024, so to start warming up I had a talk with a recruiter just yesterday, and basically asked the same as you “what is in high demand currently? Are there some specific skills that everybody is asking for?”
She said:
- Always a need for architects, esp with integrations focus. Public sector clients ask for TOGAF sigh
- Data infrastructure people is apparently in high demand. Not my thing so didn’t probe further into that
- Infosec and cybersec, clients take all they can find. For infosec she mentioned ISO27001 and NIS2 is highly requested. For cybersec “practical experience” was primarily requested, but I know the respected certs like OSCP sells.
I’m in EU which is probably some of the reason for the demand for *sec people atm. Infosec due to new regulations like NIS2 etc, and cybersec due to Ukraine war and elevated threat level from Russia (but also generally elevated activity).
What she said fits pretty well into what I hear from other contacts as well. She also confirmed what you are saying that many clients are reluctant to hire at the moment, and when they do it’s specialists not generalists.
So for 5-10 years I’d say architecture (more to the technical side, not the EA side). And security. I don’t think security is going away any time soon. Edit: to be more specific on security - it’s a very big field and my understanding is that most subfields are in high demand and will continue to be. This site [1] has a very good overview and shows what’s in the different subfields. Too much to write about here but it should enable you to find more specifics.
Where are you based just out of curiosity?
Also, this gets asked all the time, so be sure to use HN search.
https://hn.algolia.com/?dateRange=pastYear&page=0&prefix=tru...
> such as rolling an orange on a keyboard in a cubicle
What's the reference here?Is it glamorous? Does it pay top dollar? No and no, but it is a very secure income.
I'm not suggesting you start doing COBOL. Think more along the line of Java, which has an enormous installed base and nobody wants to have anything to do with it if they can help it. That's an opportunity for you to step in.
Same thing for Perl, there's a lot of existing code that needs maintenance. I'm sure you can think of a few other languages and technologies that fit this category.
Best of luck!
The Western world should have no shortage of Java experts for the foreseeable future.
I think with generative AI things will continue to move in this direction. Hands on code time will continue to shrink, time talking to people will continue to increase.
Personally I love to code, I love quiet time, I love getting into a flow. I'm 30 years into my career and I learned to program 10 years before that. I absolutely remember when things were very different than they are now, and I'm sure there are some places where they're still different. But I think the direction is clear, technical skills are constantly giving way to soft skills.
I'd guess that the bulk of software jobs going forwards are going to be of this nature, including "full-stack" type jobs where an employer wants someone with a current skill set who can rapidly assemble a solution out of various off-the-shelf technologies, with AL/ML increasingly part of the mix. This is also what employers want to see on resumes - an emphasis on having delivered useful solutions rather than just a laundry list of tech skills.
If you're a gig worker rather than looking for full-time jobs, then that may change things a bit - more towards the hired gun coming in with a specialized skill to do a specific job as opposed to an employee with a full stack of skills of general relevance to the type of work a given team is doing.
5-10 years is a relatively long time. I'm not sure how long any specific recommendations of what's in hot demand right now will last, but being able to automate things using off-the-shelf & fine-tuned LLMs/AI is presumably going to be an area that will continue to grow in demand over that time frame.
DBA has been reinvented as DBRE. It’s essentially still the same job, except you also have to know how to wrestle YAML, HA/DR, and create meaningful SLIs / SLOs. But if you like getting your hands dirty with the internals of DBs, hoo boy are there jobs. My last interview run, I had a 50% callback rate (n=10), plus some extras where the recruiter hit me up on LinkedIn.
The job can and should entail Linux ops knowledge, so if you aren’t great at that, learn it to a great detail. Somewhat obscure things like filesystem and kernel tuning are helpful.
I say can and should because yes, if all you deal with are managed DBs, you can pretend Linux doesn’t exist – but it does, and it’s enormously helpful to have a good handle on concepts like IOPS (including how latency affects it, and how ops requests can be batched by the kernel [and EBS FWIW], etc.).
My pet theory for the explosion of jobs in this space is that during ZIRP, tons of companies underwent huge growth (generally without a DB team, as you said), and managed by just upsizing instance classes. Eventually, you can’t solve your problem by throwing money at a vendor.
Meet people in your org and others and make friends, develop some soft skills. I think these things really are career differentiator.
Idk I think just get passionate about things, learn about them, and be curious. Maybe you’ll find something you can specialize in, maybe you’ll find a unique constellation of skills and interests. Do some side projects here and there, it’s a way to take charge of your own skill development… yeah it’s sad that work can’t always provide this; but that’s how it goes…
Oh and to your best ability don’t let what everyone else is saying get you down, there is a lot of cynicism going around here , people are feeling pain… don’t let that pain become yours.
- Communication and being able to work across teams. Communicating well and effectively while keeping your audience in mind is a superpower - Build your network
Specific
- Security is huge and will continue to grow
I think its a precarious time to be in tech. Generally in the labor market, you want to become as much of a specialist as humanly possible. But inevitably, most software jobs will be outsourced or replaced by AI over time.
I think the ideal is to be a specialist in some intersection of technology that requires human oversight.
Like front-end engineer with experience with FDA regulated x,y,z. UI/UX engineer for automotive interfaces.
If you want to jump on the next "AI" wave, I personally would love to jump onto robotics, but there are way more qualified folks in that domain :)
If you just want a technology for which there will be a job for the next 5-10 years, you can pick literally anything out of a hat. e.g. COBOL still has plenty of jobs, and 10 years from now, there will still be COBOL jobs.
Do you want a job in a particular area? Do you want a particular type of employment arrangement? Do you want a large number of options? What salary range are you aiming for? What are your professional strengths? If you want a good job, you need to find something that matches your inherent desires and strengths... because if you don't, you'll be competing against people who are better match for the role than you are.
Who says so? Being a generalist is the worst thing to do. The world is full generalist software engineers who are ready to take your job. Being a framework monkey doesn't work either in the long term; it is so exhausting.
Being just a software engineer is not sufficient. I think without having a unique specialty, which is hard to replace, you would be just another cog in the machine.
Understanding a domain (finance, healthcare, embedded devices, etc.) in addition to being a developer is one way to make yourself indispensable, which is something a lot of developers lack.
The same thing happened to "data scientists", but faster. Throwing a data scientist to a big data problem without them knowing nothing about the field resulted in bunch of stupid "solutions". The focus on AI is an outcome of that, because very few people actually understand their domain, so we throw AI to everything in the hope that something will work. This might work for employment opportunities in the short term until something shinier comes along.
Perhaps you're asking "where will the low hanging fruit be in 5 years time"? I think that's always difficult to answer because software tech can go from obscurity to ubiquity and back again in a short cycle. I think it is roughly like picking winners on the stock market.
but until then: full stack ML for business intelligence.
Balance your budget, have a healthy safety net of savings, investments, develop good spending habits, no high interest debt, live frugally, etc.
Nothing is certain, you might find yourself out of work at anytime for an unknown period of time. It's hard to anticipate the market, but you can always re-skill to adapt to the changing market. That's easier to do if you have a stable and secure financial foundation.
I don't think generalist is good from an employability standpoint. I've heard that I might get a PIP and there's really no options for me to move into. If I do get PIP'd then I'm thinking I'll try to find something like garbage collection to move into.
Being a specialist is best for maximizing salary and job security on a job.
If you are a good C, python, or JavaScript[1] developer you will have work for the rest of time.
[1]: it is hazardously easy to end up as a framework programmer in JavaScript. If you are working in JavaScript I would strongly encourage you to learn one of the other two if you want to stay relevant for more than a few years.
languages are an implementation detail. What's really important is critical thinking, problem solving, and knowing how computers work.
Who needs to grind LeetCode or understand algorithms when you have 100k followers? Companies will throw money at you just to look cool by association.
Of course, this strategy may only work until the VC funding runs out and they realize you can't actually code your way out of a paper bag... But hey, by then you'll have cashed out and moved on to your next "passion project"!
A good manager is worth a lot to a company. It's a subtle art, and one that doesn't really scale all that well. But it's a very valuable one.
General people skills and emotion management are also very valuable and not easy to deal with.
Every single hacker is a creative problem solver.
OP: I don't know what specific skillset/stack will pay $$$ in 10 years.
But it wouldn't hurt to be good at:
1) Gluing together admin dashboards / SaaS
2) Getting very good sales/marketing
3) developing an audience
4) UX- the kind where customers don't take one look and run away
If you can do all those things, then whatever stack people are using at the time, or whatever entrepreneurs are selling at the time, you'll have the skills to add value and make money.
If I was still in my 30s or younger I'd probably look into becoming an electrician or a plumber - the pay is good, lots of demand as older generation is retiring now, and it's going to be difficult to automate those jobs at least for the next ~20 years especially for older construction where things are often not very standard. That would get you into your late 50s at least.
(This is a joke)
Adding my own anecdote as an employer, I mainly hire engineers based on their demonstrated ability to efficiently identify practical solutions to problems, and to self manage the translation of those solutions into maintainable, production systems (tldr, ship shit that works and that others can work on with you, all in a reasonable timeframe)
That being said, I can tell you it is extremely hard to find an experienced cryptographer, and I expect that need to grow over the next several years (though it’s very niche and your options will certainly be limited, if lucrative)
Look at the changes that happened in the past and ask yourself:
* which people have been successful regardless of changes that happened?
I think almost independently of whatever you do in life, if you are absolutely best at what you do, you are probably going to be fine. Even if what you do is house cleaning, if you are best at houscleaning you are going to be fine. There is always going to be a millionaire or a billionaire who will prefer to have a human sweep the floor rather than a roomba. Or maybe a lab will prefer to have humans to do the work just to not invite potentially dangerous electronics on the site.
There is always demand for top level talent in any area. There will always be demand for human reporters, human drivers, human writers, human programmers, human graphics designers, human managers, regardless of the changes that will happen.
But it is possible that the demand will only be for top of the top of the top of people in each those areas and 99.9% or even more will be replaced and automated.
Another thing that can help is rare specialisation that is not worth automating.
One of the easier ways to find those rare specialisation is at a cross of two largely orthogonal areas of study. I like to think a lot of useful things happen through people who connect different, sometimes distant areas of knowledge / ability.
Another thing that helps people survive change is being a free agent. Don't be an employee -- be an enterpreneur with a mindset to learn and ability to pivot on a moment to moment basis. Learn a lot about life and universe, economics, trends, etc. Learn basis of how enterpreneurship works, how to find new areas that can provide value to people.
---
So if you are a developer, you have some choices:
* become best damn developer while you still can. Spend considerable time honestly learning your craft. Just completing projects is no longer enough to be safe, but outstanding developers who can complete projects will always be needed.
* learn deeply something else that can be connected with development. I know finances and it seems there will always be a need for people who know well development as well as finances.
* you could learn management/leadership skills. The trouble is, there is plenty of technical managers/leaders, just becoming one will not guarantee job safety. You will have to work hard to keep being strong technically while you are also trying to become very competent manager/leader.
* build on your development skills to become an enterpreneur. This is probably the hardest / riskiest path.
Other choices? Please, let me know... I am myself interested in this whole topic.
TL;DR
A. nobody knows
B. nobody cares
(i.e. about what current new shiny thing is, only about your actual _engineering_ skill which is not easily broken down to a list of specific topics to learn per se)
There's always a kernel of truth to things -- if you are counting on some bare minimum tech skill like knowing enough HTML to make a small biz web site, or coding carefully specified mocks into JavaScript, you're going to be vulnerable to these kinds of disruptions. But real software engineering is a lot more than that -- you need to be the bridge between people and problems and the technology that can solve them. When AI can do that on its own, we'll be out of a job but so will everyone else.