I had this conversation with my girlfriend who is currently teaching herself web development without a formal programming background. She used ChatGPT to help her understand compiler errors or write small code snippets or react components and was terrified that it would write better code than her and seemingly understood things much better than she did.

But here I sit, reflecting on my day-to-day:
After the daily standup my PO calls me to ask if there is a chance that our external A/B testing tool can be coerced into tracking some arcane user flow in a slightly different way then the rest. After fiddling around with it for 30 minutes I conclude it can't but I have another idea on how they might get some of the data they want which I promptly put into words forwarding to the relevant people. I then get on to select a ticket from the backlog. Upon reading I notice the ticket is missing some info and the linked figma design is incomplete so I call someone from the design team to get some info and while we are at it we notice that the proposed solution is overly complicated and we settle on changing it - something that did not occur to anyone during refinement.
Before I get to start coding the next teams meeting starts, this time to give us a brief of the strategy for the next quarter, and back to back the next refinement meeting starts. Half of the tickets have holes and missing edge cases in them and about 10% of them need to be outright discarded due to fundamental problems with our setup or architecture. We have lenghty discussions about minutiae of the user stories until finally the call comes to a close and I get some time to code. So back to my ticket. I open VSCode and I am greeted by our nextjs project: 850 components, 150 pages and 2200 unit tests and integrations with at least 12 different services in it - encoding the needs and wants of my corporate overlords and the history of it all.
I get to identify where in our architecture the wanted feature fits best and think for a while of the exact composition of the components to fit our code style, best practices, testability requirements. I start scaffolding the first component when I see another call plop up. Someone from the testing team is confused why suddenly their locally initiated E2E tests against the dev stage fail. After 5 minutes of perusing logs it turns they didn't pull from main this morning and after doing that all was well. Back to coding. After scaffolding three more components I get to write a little more boilerplate and writing two or three utility functions to juggle around some data I proudly look at my code. Finishing touches and manual testing reveals that all is well. I write a storybook story for two of the components and think about which props should actually be controllable and mock out some of the involved api, write three little unit tests and one integration test to finally push my change to a newly minted feature branch. While the azure build and test pipeline slowly crawls towards completion I open our board, move the ticket to the code-review lane, put a small reminder into our dev teams channel and log my time in the time tracker. One hour of coding effort for ticket #31221. Good! While implementing my feature I noticed that a library we were using is out of date. A cursory search through the changelogs reveals that some of the breaking changes introduced in newer versions would break our app so I go on to write a technical ticket about that and put it in the backlog. Quick note to the PO that I got something for the next refinement and off I go to the next ...call. A bug in prod. Turns out one of our docker pods kicked the bucket. A quick restart and everything is fine again but we get into a lengthy discussion on whether we could finally migrate to some serverless architecture. I look at the clock. One more hour to go. Not really enough time to start a new ticket but looking at the board I find three tickets ready for code-review so that's what I do. One of them is from a less experienced dev so I try to be as thorough as I can and find a few things here and there which I promptly add as suggestions to the pull request. 10 minutes left. I sign off teams, close VSCode and close all tabs except for the time tracking one. I put in the last few entries and I am done for the day.

I am not scared of AI taking my job just yet. Not as long as I have to defend technical choices in front of business people, implement the most outlandish user flows with obscure edge cases, have back and forth discussions with the design team on the difficulty or feasability of their longings, help QA people with their setups, debug devops problems, show off progress, write changelogs, estimate PDs for different stories and epics on different levels of granularity, onboard new developers, off board other developers, dance around in retrospectives, conjure up ideas and solutions for architectural re-orientations and so on. Actually writing some code is only <25% of my job anyway. And I am no staff level engineer or tech lead. Just a frontend engineer with some side knowledge. All the frontend devs on my team are like that. But maybe I am just working on weird projects. Who knows. Maybe one day I'll just orchestrate AI or have to re-orient but for now I am fine.