Gosh, when I first started thinking about writing this article, I was going to title it “Will Co-Pilot Steal My Software Engineering Job”. Then I started writing, “Will ChatGPT Steal My Software Engineering Job”. Then GPT-4 came out. Let’s just call it “Will AI Eat My Software Engineering Job?”.
A year ago, I was merrily coding away (well, merrily in lots of meetings and occasionally writing code), thinking that I was the boss of the world as a software engineer, and I could demand anything from my employer and get it. I didn’t, bar a pay rise, as I’m not an arsehole. But I definitely had a bit of arrogance creeping in – a feeling of power.
So the arrival of Co-Pilot and ChatGPT is at least a way of curbing my arrogance. And probably a way for employers to curb employment costs, along with remote working, should they choose.
But is it a fundamental threat to my existence as a software engineer? I’m 43 years old, so almost certainly I will need to work for another 25 years.
TL:DR I don’t know for sure what the future will bring. Shock. But we can look into the past and maybe project a little – I remember when I was learning how to write code, I was expecting to write small websites for plumbers, yet now they use Squarespace and now I have a far more interesting and in-depth engineering role than I expected.
Also I like making predictions about the future.
New languages, frameworks, build tools. As we add complexity to the ecosystem, new frameworks, build tools, ci/cd processes and perhaps even new coding languages will be required. Given that generative AI is relying on what humans have already written and being able to predict from that – this newness that we’ll need as the engineering arms race becomes more complex and we continue to try to shave milliseconds off experiences, will require actual humans for the new things. At least until GPT-6, perhaps. Or in other words, at least until I finish writing this post.
Even More Full-Stack? I can imagine that going forwards, being a front-end engineer will not only mean being a front-end engineer, system architect and Dev Ops engineer – but we’ll be expected to be able to pick up any language that is in our company tech stack – be it TypeScript, Python or Java. After all, we have AI to help us on the way – we’ll have less need to remember everything about a language.
I can see the conversation now, “James, can you pick up this Python ticket, please.”. “But I’ve never written a line of Python in my life”. “ChatGPT can help you, can’t it?”.
Those who don’t embrace it will be left behind. Engineers (and people in the wider world, especially in knowledge-based jobs) who decide against using ChatGPT and the likes, will be left behind. They will be less productive, and more likely overlooked for promotions and pay rises.
Mediocre engineers will lose their jobs. Despite corporate glue trying to slow engineering down, we will become more productive. At least, those of us who know why we are querying ChatGPT will be, and those of us who learn to use it as a tool – much like we’d use Postman or Prettier. Those who really are stealing a living will be even less productive.
Except those good at self-marketing. Those who have the gift of the gab, which I certainly don’t (pretty decent at writing though), will still be able to talk their way into jobs they are not qualified for, as happens now, and will actually be able to get through it using ChatGPT. The rise of the blagger coder? Eventually their fellow employees will see through them, but they’ll probably be able to pass off their continual 6 month roles as “contracting”.
Humans will be preferred. Humans like humans. Humans want to buy from humans. Do you want to see a robot DJing or a human? Do you want to see robot acting or humans? Johnny 5 being the exception, of course. This is me pretty much saying that communication skills for engineers with business stakeholders will be even more important. And it might take a while for stakeholders to trust ChatGPT’s code over their employee’s code.
Stop stealing a living. If you know you are stealing a living as an engineer now, unless maybe you are a really excellent blagger, find something else you are good at. Stop wasting your time – you’ll have other skills. Things are only going to get harder for you. However, do not confuse the idea of stealing a living, with being junior – they are very different concepts.
Keep following your passion. Software engineering is actually really hard – so if you are junior and struggling but are determined to make it, do not give up. You can find your place still. Embrace AI, let it help you master topics. Be aware of the concept of Imposter Syndrome – many of us have it. I still do, a bit, especially when with more experienced colleagues.
Learn the whole system. Those engineers who can talk fluently about topics from system design, accessibility, performance – those that fully understand the whole system, from how users behave through to how operating systems work, or at least as much as they can, will likely be most employable.
Stop forgetting accessibility. I read the other day that only 30% of accessibility can be automated. The rest is manual, at least at the moment. Maybe this is your moment to become your organisation’s accessibility expert?
Think about what AI cannot do (yet). If you are really worried (I’m not) but still want to stay in technology in general, maybe think about how you could transfer your skills to something more protected from AI, perhaps robotics or the internet of things (if that is still a thing). Perhaps cyber-security is slightly more insulated from AI? Maybe look into applying software engineering to real-world products?
Have a plan. Always, always have a plan, ideally a 5-year plan – I’ve mapped out my plan to get to Staff Engineer level, and will share with you at some point. What do you need to learn? What do you need to improve?
Have a back-up plan. OK, so AI does eat all of our software engineering jobs. What are you going to do? Have some savings and investments, but also have some other skills. If you are quick, maybe you could even write a novel about how AI ate your job. I’m guessing that I’ll probably open a gravy-dipping bar in Shoreditch.
I’m not particularly worried. As I mentioned earlier, I worried when I was learning how to code that Wix and Squarespace would eat my future job. They didn’t. I worried that all the new frameworks would mean that I’d never learn enough to get a job. That didn’t happen either.
That said, I’m no longer in a state of blissful arrogance. I admit to a little nervousness – yet my suspicion is that in 10 years time there will be more software engineering jobs than there are now. Software will eat the world, and AI will help this along – and help us be more productive.
There’s certainly work to do – I’m now focusing more on learning the whole system – I’m trying to learn system design (it isn’t really going in yet), I’m also concentrating on learning Github Actions, Kubernetes and Playwright (things I know to an extent but not enough) – and trying to find ways to expand my role outside of what is a very front-end front-end role. But I’m also focusing a bit on soft skills, like presenting, building a software engineering community at M&S and mentoring.
The question I keep asking is how can I make myself even more useful than just writing code? Which as a tech lead and senior engineer, is at most 40% of my time in a good week, anyway. Some weeks I write zero code, until I finish work for the day.
I think you can add comments now…at least if ChatGPT wrote my GraphQL integration with the WordPress API correctly. OK, I just tested it and there is a bug…oops…but posting the comment still works…just the processing after I didn’t quite get right. Something for the weekend…perhaps.