In a world where programming with AI tooling is becoming more prevalent, and more projects that have traditionally required a software engineer in order to reach fruition no longer do, the software engineers of the world have to justify the continued existence of their occupation. Software engineers wishing for their work to not revolve around AI and risk obsolescing themselves very soon, have two broad paths to choose from, and they are non mutually exclusive.
The first one is to offer clients that which AI tooling today cannot accomplish. There are technical and legal limitations to AIs capabilities to build software projects. The technical limitations are bound to eventually change as AI advances, but we are currently far from being able to AI-generate large software projects that are maintainable, i.e. bugs can be fixed without too many issues popping up elsewhere, and new features that are reasonable to request can be added without too much of a headache. The legal limitations comes down to accountability. The status quo right now is to let the person using the AI tool be responsible for verifying AI generated code, but this still requires an in-depth knowledge of what exactly the code does, why it does it the way it does, and the way it is done is not only correct but also safe from any obvious vulnerabilities. A kind of in-depth knowledge of the code that one can arguably only really be achieved by either writing the code themselves and thinking through the problem fully, or at the very least spending just as much time analysing the code generated. If less time is spent analysing the code than had one coded it manually, less less time is spent thinking through the task at hand. This is of course only speaking of AI generated code that at all can be analysed and rejected. A whole other can of worms is AI tooling that autonomously perform actions on machines that have given them full control. A seemingly impossible accountability question could be "Who do you fire when the AI tool decided to delete the database and all the back ups, says 'oops sorry I shouldnt have done that', but the AI was never prompted to do so or prompted in any way that was reckless?".
The second one is to offer art. Art is many things, not just paintings hanging at the Louvre. Art is Music, drawings, TV shows, Films, Video Games, BFF bracelets, and that scarf your grandmother personally knitted for you with colours she specifically picked after she had asked your mother what your favourite color was. At least some of these involve exactly what software engineers already know how to do. Art is for humans, by humans. It is arguably what makes it art in the first place. Most people in this world enjoying any of the above, do so because of the connection and the story it has with other people. Art is the textual or subtextual conversation that is being had between audience and author.
I pledge to not be using AI generation. Use of neural nets of any kind in my projects will be confined to models trained in-house for a particular complex task that is ill suited for hard-coded behaviour. Examples of-/Ideas for this may be NPC behaviour running models trained by Self-play in a strategy game of my own making, it may be those same trained models helping me discover exploitable game mechanics or boring "gaming metas" that must be balanced out, or it may be a neural net terrain generator trained on real world terrain with features of interest such that the features can be generated with a terrain generator in believable and naturally-looking ways that current hard-coded alternatives do not compete with (this last one has actually been done!). When neural nets are used in my projects, it will be disclosed explicitly, as well as the source for the training data (if there is any).
I hope to justify my work by exploring either of those two paths explained above at my leisure. I will be making video games in which the stories I wish to tell and experiences I wish to foster hopefully can justify the slower, more deliberate 100% human made goal. For non-self expressive work I hope to justify my work by offering concise, maintainable, and understandable code with a promise of accountability and knowledge of why every line of code has been chosen to be written the way it has (be it good or bad choices, and be it decisions made with vigor or where I am very flexible in regards to alternative approaches). Working with me means atomic commits, a clean git tree, and pull requests that can be comprehended by a human who woke up with a headache.