Recently, I have become obsessed by chatGPT and GPT-4, in an unhealthy way. Seeing it's coding and problem solving abilities triggers a visceral response of dread and despair in me. I am afraid that after all the work I put in, the skills I acquired over the past years will become increasingly commoditise and meaninglessd. Even if not, I think there's a good chance that the added productivity will significantly affect the supply/demand calculus behind this career (and thereby, drive down compensation), which leaves me bitter and unmotivated.
Do you feel similarly? How are you handling these emotions?
-
Do you really believe that the only purpose of a SWE is code? You didn’t need a masters for that, or even a bachelors, so I suspect that’s not the case.
Would you trust the likely correct bullshit of a LLM? How about the likely correct bullshit of an LLM that a SME reviewed and iterated on?
Start thinking about the aspects of your job that can’t be solved by ChatGPT. Some can’t be solved now. Some may not be able to be solved ever. Some could be, but really shouldn’t be, at least any time soon.
Some will be focusing on how to reduce their time spent on writing code, without filling the extra space with something else. More lines. Less thinking. Dead end. Don’t give your job away to the tool, use the tool to make your job easier.
If you still feel disillusioned, try picking up some skills that involve using your hands. Not necessarily as a hedge, but if you’re missing or dreading the loss of the raw act of creation in software development, you may want to seek that feeling elsewhere.
If you can’t get the rush with code, maybe with corn. Or a coping saw. Or cheese making.
You do not want to be coder. They will get wiped, I recon, at least in 10-20 year span. (I remember some dude on twitter was flexing a week ago, he got a quote from dev for 5k and he did "the app" in 3 evenings using chatgpt. That is all great, but it's also why we work on contracts. We mostly expand and maintain what is already there. Building new things for every new caveat is not a way to tackle serious complexity. I have seen companies that are writing an aws lambda for every small subproblem, they do it mostly cause they lack decent engineers to tackle domain complexity)
You want to be engineer working on a product, that means engaging in understanding customers, engaging in understand product/business etc. I think this is safe space to be for a long time.
Now, for a quite some time a path to this led through coding. You would join a product as junior/mid developer and senior devs will throw at you stuff that they don't want to be bothered with. You would gradually gain more knowledge and insight and eventually become one.
Near future. I think the first thing that might come up is a flow(github terms used) like this one: write an issue > click the pull request that pops up after 5 minutes (ai generated) > write a review of possible mistakes > another commit pops up (ai generated) > do the last fix manually (just some renaming etc) > approve pull request.
The above is my best effort speculation, seeing capabilities of ai things nowadays. Will this contract or expand the pool of jobs is hard to say - safer to bet on neither.
Some anxiety about this is good, but also I think that people anxious often are the first to adapt properly. Problems will hurt more oblivious people who often hand wave stuff till dawn.
(1) In my software career, there has been nonstop innovation in developer efficiency: version control, languages, frameworks, debuggers, IDEs... There has also been an explosion in the number of people entering the profession. However, the supply/demand balance never inverted. This is because new software produces its own demand! As we wrap the world in digital layers, there is both more maintenance and more opportunity for new interfaces.
Perhaps there is a future where the world has been saturated with software that can be adjusted by a small pyramid of developers. But I expect it will remain central to the most competitive enterprises of the world, and competition is another driver of unlimited demand.
(2) If you feel commoditized by this activity, perhaps you are viewing - or allowing others to view - your job too narrowly. I've seen a tendency in some dev subcultures to narrow the job in search of productivity and objective measurement. Symptoms include avoiding participation in product and design conversations, user research and business-facong activities that give context to coding tasks.
As your career advances, what makes you unique (or not!) is the context you can bring to engineering provlems. If you define your role as translating others' context into code, then you are indeed sitting in the same niche as our LLM. Bottom line, engage with adjacent roles to keep a meaningful structural position.
(3) Regardless of the above, there is obviously an existential mandate to learn to use LLMs effectively and safely in engineering. Your career stage is perfect for leading that charge, in fact we are all counting on you. If you can innovate in how to bring these tools into practice, you will not only stay competitive, you may be surprised at the impact you have and the credibility you receive.
Who do you think can potentially benefit most from a conversation with a sage? An educated and thoughtful person who has some shared grounding in knowledge with the sage, or, some random person.
I think you’ve been reading many hot takes that swing either way, sky is falling or nothingburger. No one knows at this point. You’ll probably be in your mid 30’s by the time the impact is clear one way or another.
My best advice is to earn the money you can in the field now. Enjoy the above average salary. Work hard, save ferociously, put some money in index funds and remember to enjoy your life today. No one knows what tomorrow brings and it is promised to no one.