misswaterfairy
- The ability and want to learn. I offer the following advice to every firefighter I teach: the day you think or believe you know everything, is the day you quit. (I'm a software dev. by trade with fifteen-odd years experience as an operational firefighter (and still am to this day)).

- 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...

talkingtab
Your question is wrong. Your goal should not to be employable, 'get gigs'. We live in a time where the job market is shrinking, jobs are fewer, more applicants, lower wages, etc.

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.

Msurrow
Wow, so many comments just do not get the point of your question, even when you asked to be concrete. “Start your side gig”, “know how to work well across teams”, “specialise in a domain”.. amazing.

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?

[1] https://pauljerimy.com/security-certification-roadmap/

runjake
Soft skills and deep knowledge of the fundamentals.

Also, this gets asked all the time, so be sure to use HN search.

https://hn.algolia.com/?dateRange=pastYear&page=0&prefix=tru...

Dutchie987
To ensure employment either be a specialist (so you can do something others can't), or choose an older technology that used to be popular but isn't now. Most developers will have moved on, and now you can do the thing others don't want to learn anymore.

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!

jms703
The ability to collaborate across teams and orgs is critical to success. Gone are the days of holing up in your silo. Leadership teams want to see more collaboration from senior devs.
HarHarVeryFunny
I've been a developer for 40+ years, and the trend (other than off-shoring and loss of jobs) seems to be towards systems integration rather than from-scratch development. The other modern trend is of course the rise of AI/ML, a lot of which is also going to be used just as a component.

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.

sgarland
Databases. SQL isn’t going anywhere, and neither is Postgres. Plus the various NoSQL offerings.

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.).

cjwoodall
Find something you can bring a unique level of energy too, and bring it. One person’s generalist is another’s expert, thinking in those terms just isn’t that useful. The ability to take on hard problems and get something done and unwedge a team will always be useful.

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.

ilikecakeandpie
General

- 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

LarsDu88
There's a current AI bubble centered around LLMs. Eventually it will probably crater out, but the next wave will probably be built from derivative technologies (multi-modal transformers or their successor, whatever that might be)

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 :)

kube-system
If you want a specific answer you're going to need to refine your question to be more specific.

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.

beryilma
> Yes, I know it’s good to be a generalist, and I am, but employers seem to prefer to hire “experts” in particular domains.

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.

usgroup
I'm not sure knowledge of technologies is ever more than a temporary distinguishing factor. I think engineers are distinguished more substantially by a depth of understand of the fundamentals. By definition, fundamentals do not change as much and are less subject to styles and fashions.

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.

UncleOxidant
Math. Specifically calculus, statistics/probability and linear algebra. You can never know too much math and it's a skill that will set you apart from others and give you an edge especially in the ML/AI era.
yaj54
whatever you choose, ai systems will be better at it than you in 5-10 years. so plan for that, or at the very least hedge against it (i'm investing in tech).

but until then: full stack ML for business intelligence.

disambiguation
In addition to employable skills, also improve your personal finance skills.

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.

giantg2
"Yes, I know it’s good to be a generalist, and I am, but employers seem to prefer to hire “experts” in particular domains."

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.

adamredwoods
Security, sec ops.
thepasswordis
Don’t learn frameworks, learn languages.

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.

bdcravens
Any modern web stack will keep you employed for that timeframe. Even the ChatGPT website is written in NextJS (with the magic happening elsewhere). The greater majority of stacks out there hasn't changed dramatically since 2014 - they've just expanded or evolved a bit.
Balgair
Get good at people skills and management as you age.

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.

danielmarkbruce
Pytorch. If you understand a lot about pytorch, you will be forced to understand a lot of basic machine learning and math for free, and it will feel less magical.
moomoo11
Creativity and problem solving. I think those get someone really far (and way further than others), no matter what stack or other "specific" skills.
r2_pilot
Switch careers and take a job with outdoors recreation stuff. It'll last you at least 5 years and is at least partially resistant to AI and robots.
J_Shelby_J
Based on how poorly gpt-4 understands rust borrowing rules, I’d say Rust.

(This is a joke)

Kd199432
Which domain will be in demand for next 10 years?
hmapple
The replies to this make it pretty clear that no “single” hard skill or really even set of hard skills will remain defensible indefinitely

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)

tensility
Employment law? ;-p
brudgers
People skills are the simplest thing that might work. They also have application outside tech and beyond employment in general. A professional network is the most reliable stack. Good luck.
onetimeuse92304
There is no single solution this problem.

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.

sophiadancini
[dead]
aristofun
Useless question. Has been asked in various forms here and answered many times.

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)

mariogintili
Sadly I don't think software engineering is one of the skillsets that will keep you employable, I think it's gone forever