Apologies if this is redundant, as I'm sure there's a significant number of posts, articles, and other things near exactly like portions of this, but none seem to be an all-encompassing "walkthrough" of sorts about this as of yet, so I was curious to run it by everyone and gather opinions. Additional apologies for what I can only assume with result in being an essay-long post as I write this lol. After writing this all, I figure I'll attempt to break it into sections for those who don't want to read everything (although now it, ironically given the topic, borderline look AI generated... oh well)
Essentially, as the title implies, I'm curious to try to sort of simultaneously summate opinions, gather advice towards future steps (either specialization or pivoting away from the field), verify info I've gathered, and additionally vent a little bit/voice my experience in the software field thus far. While some of these topics sort of brush against slightly political or charged topics, I hoping not to devolve the discussion into just those topics or to spark anything heated
My Background/Partial Vent
Mostly for context, but also to lead into the next portions, my background is about 6 years of software engineering at this point, with an additional partly completed masters degree. It's been a very rocky journey though (although I very much know this is not unique to me). Covid delayed me getting my first career job by almost a full year, and I had to accept the first one I was offered, which required moving to a very expensive location with very, very low pay. The company was great, despite this, but I eventually had to leave due to costs rising beyond what I could afford in that location. On top of applying to other jobs throughout the duration of the aforementioned one, it required almost a full additional year outside of it to land my next job. This required probably 4000+ applications in total due to a lack of experience at the time, most jobs shifting away from the experience I had gained, and the simultaneous extreme push to outsource employees at the time. This next job I landed at is, just like the first, an amazing company, but it offers no benefits, the pay is (in my opinion) a little low relative to the amount of experience I have. The pay, while objectively not bad, is also a lower number than I was hoping to make by this point in time when I started my career, and that was prior to the sharp inflation we've experienced since. There's also no real way to move up the company, and raises do not match the standard 3% increase schedule (made worse by individual health insurance costs skyrocketing on top of inflation)
My experience started primarily with web development, but then shifted at first partly and then fully into desktop apps across two companies. By sheer chance, my "specialty" ended up becoming adapting very legacy code into either completely new project rebuilds or significant overhauls to allow for new software packages. Somehow, these also have always been in live environments, so changes matter, and testing is very limited. The code is so legacy that no documentation exists at all for the old software packages, which seems to render AI completely unable to make the necessary revisions even close to correctly (I'm assuming due to lack of training data?), and the live environment's requirements for precision make widespread changes by something like AI tricky. This has, ironically, completely removed me from the more "traditional" development spaces that seem to be seeing all the changes due to AI, especially as I have always somehow been put in charge of heading these rebuilds solely by myself. Even my current employer, as a company, has fully embraced AI as a tool, but I have managed to never use it to any significant degree, and thus I'm not personally sure about how it's impacting things beyond what I read
The Current State of Software
As mentioned previously, I'm a little more divorced from the overall current state of things than the average software developer, both due to the specific work I've been doing and the small companies I've exclusively worked with thus far. This makes it very, very hard for me to get a proper read on the trajectory of things, especially when it comes to this whole AI advancement thing that's been happening. One day I wake up and there's some new thing that ChatGPT is being famed for doing, only for it to turn out to be far less impressive than advertised the day after. The next day an AI coding agent destroys a company by screwing up its code. The day after, another new thing happened. Etc. I've seen mixes of posts on here saying that, while AI hasn't replaced their jobs, their jobs have devolved solely into writing prompts, hitting the submit button, and praying that the slot machine pays out properly this time around, as they aren't even allowed to manually modify the code anymore. Others say that their company has rejected AI entirely beyond basic revisions. Then I switch over to this sub and see studies pointing out that AI implementations, surprisingly, don't increase the overall throughput of companies due to many factors. Then in the replies of that and in other posts, people say that their companies have essentially swapped to being run fully by AI, and they're just sort of... there (which unfortunately seems to be the direction my company is heading). Then you have the Bureau of Labor Statistics still projecting an increase in job growth for software despite everything (although idk how accurate these projections have been, historically)
Ramblings aside, I guess I'm just overall curious if there's a pulse on how future proof software development as a whole is, regardless of the form it takes. That is, while I'm not certain how long the big AI companies will stick around due to a significant number of factors, I have a striking feeling that, at minimum, local AI usage will remain as a consistent tool used in writing software pretty much indefinitely. Is this something that you all feel will remain a rather consistent gig, but now you just are expected to use AI tools, no different than moving from a low-level to high-level language as took place many years ago? Do you feel like this is something that, given time and ironing out of the issues, could potentially significantly threaten the career field? Do you think it'll just die out entirely for any reason, and it's just the temporary "new, current thing"?
I guess my overall hesitancy is that, as I've seen many others voice, it seems like the current state of software engineering is no longer... engineering. I'm not at all opposed to learning new tools, but it seems like it's become, literally, just software development. As in, you no longer solve problems, engineer solutions, or try to optimize code (which I find myself doing any time I have AI output code; it's often horrendously optimized). You just sort of output it, which is not what I enjoy in the field. You almost act more as a manager of someone else creating the code, as a head software developer would manage an intern, but without writing the code yourself. Is this accurate as a whole?
Moving into the Future
In addition to the above, I guess I was also just curious what the future plans of everyone are. Are a significant number of you planning to jump ship, or do you plan to double down and see this through? Quite frankly, I've become significantly burned out on the insane back-and-forths of the career area since I've joined, where it seems like every company's #1 priority is the complete replacement of their software engineers for some reason, so I'm heavily debating what to do next. When I first started studying for this back in high school, this was supposed to be a very steady field, but the reality since has been very different, and the compensation, in my experience, has lagged significantly even without the constant threat of replacement and difficulty finding the jobs being a factor. That being said, I do believe I can have a steady future at my current company. That is, with them being a small company, they prefer to work with their employees and train them up rather than replace them. However, as mentioned prior, inflation is essentially guaranteed to outpace the pay over time (which I know doesn't make me unique in this instance, as everyone's suffering the same, but mine will be faster lol)
An additional concern is that, if I were to swap career areas, I would be starting from scratch in a very unforgiving time frame. If I recall correctly, the average salary in every state in the US is below the average cost of living, and I'd be well below the average just starting out again. Even living in a cheap state and a small town, where expenses are lesser, I don't think any jobs I could get in the surrounding 30 mile radius could match the cost of even my basic expenses. That being said, are there any related career areas that might be more future proof that could be considerable to pivot to? That is, ones where you wouldn't necessarily be starting out from scratch, and while the pay might take a dip, it wouldn't plummet to starting-over-levels? Is it worth it to pursue education in something like cybersecurity or network infrastructure, which might outlast software? Would it be best that I just stay in my position, which again is by no means bad, and just accept that that's how it is and switching would just make things worse/more unstable?
If there are no other real options to pivot to, what are some other things you're considering switching entirely to? Is the current state of software such that considering all of this isn't even worth it at this time?
Thank you all for your time in reading this far, and for the advice!