Ask HN: In 2024, is SWE a sustainable career?
The software engineering landscape is changing due to large language models, making job interviews more challenging and raising concerns about task relevance, supply-demand imbalance, and career sustainability for professionals.
The landscape of software engineering (SWE) is evolving due to the influence of large language models (LLMs) and agents, which are not automating the profession but are significantly altering its dynamics. Interviews for SWE positions have become increasingly challenging, even in non-technical companies, leading to a more arduous job-switching process. Many tasks within SWE are perceived as unnecessary, with numerous startups focusing on projects that may not contribute positively to society. Additionally, there is a notable imbalance between the supply and demand for software engineers, raising questions about the sustainability of SWE as a career. For mid-career professionals contemplating a switch, considerations about future opportunities and potential career paths are becoming more critical.
- LLMs and agents are changing the software engineering landscape, not automating it.
- Job interviews for software engineering roles are becoming more difficult and time-consuming.
- Many software engineering tasks are viewed as unnecessary or unproductive.
- There is a significant imbalance between the supply of and demand for software engineers.
- The sustainability of a career in software engineering is being questioned.
Related
Hot Take: Low Code/No Code platforms die as LLMs get better
The advancement of large language models reduces the necessity for low-code and no-code platforms, complicating their training and pushing developers to focus on technologies with abundant online training data.
"SRE" doesn't seem to mean anything useful any more
The article highlights the changing perception of Site Reliability Engineers, noting a shift towards operational tasks over programming skills, leading to a disconnect in the job market regarding SRE expectations.
The future of software? Imagine a bot, stamping on a human face – forever
The software industry is undergoing commoditization, reducing choices in hardware and software, increasing automation, and threatening skilled jobs as companies prioritize cost-cutting over workforce development.
What has surprised me about the near-apocalyptic enthusiasm for LLMs among some software engineers is that there appear to be a great many people who joined the industry expecting to do repetitive grunt-work, as a matter of course, apparently believing that typing out code is the point of it all and not just a means of expression. I can understand why they might be worried about the future, but perhaps they can relieve their anxiety by developing a deeper understanding of the art.
I see a lot of the same thinking in the wild today. We're adding powerful new abstractions, but a) that doesn't mean we don't need at least some people who can see through those, and b) greater abstraction means we can take on bigger challenges, and there's no shortage of those.
Some of the best advice I've ever received from senior engineers was to live below your means and to have a high savings rate. You don't have to go to the FIRE extreme and definitely shouldn't make yourself miserable.
What would I do about LLMs? I'd live like this could end up as the last high-paying job of my career. Aside from that, I wouldn't worry about it.
How did you decide on that?
> A lot of startups are building fluff or things that are net negative to society.
But a few startups aren't fluff or negative to society and those will be the ones which succeed. That's how startups work. This isn't a good reason to decide against an SWE career. It might be a reason not to work at a startup.
> Interviews have become nightmares, even at 'non-tech' companies, making switching very time consuming and difficult.
Job switching is almost always difficult. Easy switching is an artifact of boom times and frequently a bad sign (standards tend to drop). I don't think this is a reason to decide against an SWE career.
> Beyond this, the supply for SWEs vs the demand is clearly imbalanced on the supply side.
Demand is below the recent peak, but whether the supply of really good SWEs ever rose to meet demand is questionable.
> LLMs and Agents are not automating SWE, but they are changing it.
When things are changing that's usually a great time to make a career.
My opinion is that skilled engineers won't be replaced for a long, long time, if ever. While AI codegen will keep getting better and better, getting the best result out of it fundamentally requires knowing what to ask for—and beyond that, understanding exactly what is generated. This is because, depending on a particular prompt, there are hundreds/thousands/millions/billions of viable paths for fulfilling it. There are no "correct answers" in a large software project. Rather there is an endlessly branching web of micro-decisions with associated tradeoffs.
I think the job of engineers will gradually shift from writing code directly to navigating this web of tradeoffs.
> LLMs and Agents are not automating SWE, but they are changing it.
LLMs are maybe a slightly larger threat to SWE careers than the ability to copy/paste code from stack overflow.
> Interviews have become nightmares
Interviews if anything have gotten slightly better. Companies stopped asking riddles like, “how many windows are in Seattle”.
> A lot of SWE work is objectively make-work, and a lot of startups are building fluff or things that are net negative to society.
This has been the case for a long long time.
> Beyond this, the supply for SWEs vs the demand is clearly imbalanced on the supply side.
Tech salaries say otherwise. They don’t pay 3-4x the average household income out of kindness.
> Is SWE a sustainable career anymore?
Definitely, though it depends on your definition of sustainable.
If you want a remote position, 30 hour work week, and a $200k+ salary maybe not.
But lots of people will continue to earn a good amount in an overall cushy job as SWEs for the foreseeable future.
I use AI with my agent system to help me write code for projects and my agent system. The leading edge models are incredible, but still somewhat brittle. They can make some weird mistakes. And I definitely have to go back over things.
But actually given all of the necessary context they can already complete a surprising number of programming tasks with good supervision.
It is night and day beyond the capabilities that it had a couple of years ago when I built my first agentic coding tests.
The thing that people strangely still seem to not get is that these systems will continue to improve rapidly. We continue to break through barrier after barrier with new paradigms. Now we are on the inference time ramp which is going to lead to large gains in intelligence.
There are more significant gains to be had also with things like multimodality and just plain efficiency increases from ASICs.
Beyond that, new machine learning approaches such a JEPA, new hardware paradigms built on memristors, etc.
Robotics and integration of new general purpose machine learning into robots continues to improve.
In less than five years, human software engineers will not be able to compete with AI in most contexts. Not only that, they generally will hold projects back if they are involved.
Before we get to the fully general purpose AI software engineers, platform specific tools with integrated agents can already with current models be very competitive in producing customized software for specific domains.
But it's not just software engineering. It's literally every single job. Including plumbers and all of the physical labor which currently is safe but improved robotics are just a few years away.
It seems obvious to me that normal careers are just not a good plan.
Instead, think of AI and robotics as incredibly cheap labor that will be available to just about everyone. So you become an entrepreneur, or the manager of a sophisticated network of teams of robots/AI running on a blockchain. Think about how to leverage these systems to provide goods and services.
Until an LLM can translate opaque product requirements into a working feature, including covering the nuances and edge cases of the product, I am not worried. I have written software professionally for 12 years and am convinced people skills are what make or break a successful developer. Kindness, empathy and generally being an easy person to work with are far more important skills (IMO) than knowing how to write software.
I consider myself midcareer and do not plan on making a change anytime soon if ever. I believe as long as I need a career (probably much longer) there will be a need for people who can write software.
Have you used enough time some LLMs in IDE/editors? At first it seems magical, but the moment you're working on a big project, with multiple libraries, dependencies, and interfaces outside your project files, they are prone to either hallucinate or just use incorrectly existing function or other code parts.
They will help us to do slightly repetitive tasks, like writing unit tests or writing some boilerplate, but I don't expect it to solve big problems specific to your task.
- About people:
I don't know in your country, but in Spain, lots of people outside tech backgrounds/spaces are pivoting to CS, SWE, and similar degrees because during/after the COVID they felt tech people had a lot easier, as because they could WFH, they didn't lose their job, they were well paid, and they could find a new one fast, even if this isn't true now.
This both makes the junior engineer market worse, due to having too much people, and also makes the HR work harder as they have to sieve between more people, but on the other hand, I think this will make HR more concerned about enthusiastic people who learnt by pure interest really useful skills aside formal education, like learning other languages, to use and configure UNIX systems, to use proficiently the terminal, or having done some side projects.
I really don't understand how anyone gets the idea that it's not or isn't.
There will always be a need to support, create, understand, and otherwise manipulate the software that make machines and devices work and do what we want them to do.
LLMs are great at producing single functions, maybe even a whole class. But they really are terrible architects and can't produce something that requires multiple systems to interact. Their simple method of "predict the next token" is bad at planning and is mainly incapable of producing complex systems.
Until AI gets to a point where you can just say "Create an MMORPG with these features [....]", there will be a need for SWEs. Until then, it's just "Create a function that adds all the stat bonuses from the player's gear" and hope that it can understand your other code that defines the player's gear.
Even if you do manage to make it as an IC all the way into your forties, you're going to run into the pervasive age discrimination, which is only getting worse. And that is before AI factors and general capitalist job-destruction effects are even considered.
However if you enter the field and treat it as a money pump for a decade or two that will inevitably fizzle out, and you have a plan B career, it may not be a bad way to start. Just have that plan B ready (I did not).
What makes a career sustainable?
Interviews are irrelevant if you publish enough good things that companies reach out to you and offer to skip them. Write. Learn. Publish. Thrive.
Building fluff is indeed a serious issue, but there are plenty of places that are doing useful things, eg: Medical. Aerospace.
Demand is weak for javascript monkeys. It is plenty strong in the same places it always has been: solving complex problems in complex systems. Go work there.
1. Nobody knows how to evaluate for competence, so technical interviews always start with basic literacy and are generally (not always) extremely subjective. This holds true even for senior developer positions. It's the equivalent of a journalist interviewing for a job and being asked to demonstrate writing words or a lawyer demonstrating they can read.
2. There are some extremely talented brilliant people in this line of work, but you will likely never know if you encounter them. Few people in this line of work have any incentives to do more than put text on screen using a framework. That means most of the brilliant stuff happens only in never disclosed personal projects far outside of work or at the largest software companies with budgets dedicated for exploratory open source projects not directly associated with the employer's primary business interest.
3. Low confidence and emotional insecurity are out of control in this line of work. There is little incentive to become an excellent craftsman in this line of work, because its rarely rewarded but frequently discouraged. The primary business interest with regards to this silo of software is hiring. Way back in the day when I first started writing this sort of code it was all about talent discovery, which was very expensive with poor results. So, instead its long become about finding for the lowest common denominator because they are cheap to replace. Many of the developers doing this work are fully aware of this and are utterly reliant upon a single tool or set of conventions to qualify their employment, which is extremely fragile. Worse, most of these people are entirely replaceable by ChatGPT and there are YCombinator start ups already building those products.
4. I have encountered so very many people in this line of work that cannot measure things and cannot write. I am not talking about writing books, but writing quick emails or simple dirty documentation so that you are not repeating the same failures over and over. Based on that, in past years, I would suggest to people offline in the real world that everybody should become a software engineer. If you can pass a 30 minute interview and write your name then you too could have a 6 figure income with low stress sitting at a desk all day. You didn't even need any kind of education.
In summary none of that is sustainable. Years ago I remember people on here scoffing, laughing, and becoming angry at the idea of professional licenses for software developers to identify the capable adults apart from the children in the room. The entitlement was pretty brazen. Then suddenly most of these people then found themselves out of work. Now when I bring up stuff like licenses or certifications the reaction is completely different.
Because all the clueless people in the room see it as doom to software engineers, because they have no real skills, and can’t think for themselves - and because of this they don’t understand the pros/cons/trade-offs of the tool that is an LLM. And so, they give up on their career or study something else, and no longer crowd the market. Win for me.
These are the same people that would have feared: the mouse when it was released, GUIs when they became the norm, the internet, low-code, no-code, WYSIWYG editors, and crypto.
LLMs are massively overhyped, someone who knows their stuff that has used them daily would know that. And they would understand how to wield them.
I’m not worried about my career at all. In fact, I’m doubling down hard on software. Tripling down even.
I’m learning as broad as I can, and as deep as I can where I care to.
If you know computer science fundamentals, computer architecture, and system design you are untouchable.
Go touch grass!
Related
Hot Take: Low Code/No Code platforms die as LLMs get better
The advancement of large language models reduces the necessity for low-code and no-code platforms, complicating their training and pushing developers to focus on technologies with abundant online training data.
"SRE" doesn't seem to mean anything useful any more
The article highlights the changing perception of Site Reliability Engineers, noting a shift towards operational tasks over programming skills, leading to a disconnect in the job market regarding SRE expectations.
The future of software? Imagine a bot, stamping on a human face – forever
The software industry is undergoing commoditization, reducing choices in hardware and software, increasing automation, and threatening skilled jobs as companies prioritize cost-cutting over workforce development.