Comment by polalavik

2 days ago

Same boat, although the soul sucking, I find, comes from the fact that AI can iterate on ideas so much faster than I could even begin to pull out a pen and paper that I find myself in an existential crisis when I use it too often.

What is the point of my work, especially when I must ship for a paycheck, if I offload all my thinking and understanding to a machine. I can certainly dig deep and understand all the code the AI wrote, but when you didn’t create it, it feels so much less fulfilling. How does one find fulfillment in the AI engineering age? Isn’t solving problems and coming up with novel solutions part of why most of us got into it in the first place? When you strip that away, what is left? It’s code casino - I pull the lever, it spits out something that either feels like a dopamine hit (it works), or it spits out garbage and I prompt and pull the lever again hoping to strike the jackpot.

I find the most insufferable engineers those who use AI and think they are geniuses because they have access to this tool. Or say “AI told me …” They mistake the tools output for their own creative output or ingenuity.

Funny story to build on this. I spent a couple of days last week building a Powershell script for database refreshes (backups + restores). The process was iterative (typical), and AI helped me solve all the problems we've ran into historically here. It helped me write tests for all the gotchas I had stored in my head from watching various approaches fail over the last couple of years. I ended up with pre and post hooks on every side, and at a high level I'd vastly improved the time to delivery because (as I initially stated) I knew EXACTLY which problems I needed to solve there, and AI helped me get there in a fraction of the time. The end result was a common .psm1 file, 2 ps1 scripts (the orchestrator and executor script), and a total of about 2k lines of Powershell, which I hadn't combed through line-by-line because the tests were solid and I tested it in non-prod prior to releasing to production.

The first run in production ended up causing an unhealthy db in RECOVERING state because there was a tiny logic bug where the restored db wasn't verified as ONLINE before it set it MULTI-USER (which our db state monitors caught within the couple seconds of that being true).

I think AI has enabled us to solve problems much quicker without being intimate with every tiny detail of the code itself. The funny thing about the story is that this isn't a novel problem. Coming in behind a peer who wrote the thing, or even coming in to debug a script I'd written myself a year ago is the same. AI has just pushed up the time to lacking knowledge of precise details of logic, so you can ship something and be unaware of EXACTLY what it does the same day, instead of 6+ months later.

I'm not sure if this is right or wrong, but debugging it was 3 minutes of presenting the issue back to AI instead of 2 days of combing through 2k lines of Powershell that I may or may not have written.

IMO we have been conditioned to believe that everything is "all or nothing" which is a mistake. AI-assistance provides undeniable leverage IF, and only if, you know what you want. I think the market, in general, is still finding where things level out here. The problem, which I have been guilty of myself at times, is offloading key decisions. Humans absolutely have to retain those. AI can be used to present options, but the accountability always rests with the human (at least for now).

The code casino is real and I don't have an answer to it, only share the sentiment. It is frustrating and exhausting to go through those boom/bust cycles.

The workflow that works for me is: I do the thinking, the writing, then let the AI review it. I am still doing all of the creative work and thinking. The AI keeps me honest and its code reviews are very helpful. The loop becomes competitive and makes me pay more attention to detail; I try to nail things on the first attempt. This gives me a sense of accomplishment and improvement.

Whether this workflow has its days counted, I don't know. But I also don't care. If/when software development as we know it truly stops being a thing, then I'll sadly just have to move on and work in another field. I am not doing vibe coding or programming in natural language. Fuck that.

But I have also noticed that, as much as the AI can process things faster than I can (I also use it to help me navigate the existing code base, and that is also very helpful), it cannot answer the question of whether we should do something, or whether X is more desirable than Y, etc. Maybe for some people, thinking about those things and letting the AI do the rest is enough. For me, personally, I like to navigate all levels of the development.

"AI told me" -- yes, absolutely insufferable dudes. I just don't even bother stating a reply.

Wouldn’t you rather they say AI told them than claim it’s their own idea?

  • both are aggravating. i think you can use AI, say you use AI, and then demonstrate your understanding of what it created through documentation or other means. Hiding it or blatantly turning off your brain and saying "AI told me" are both bad practice.

    • Sometimes I say an LLM told me something for a hobby project where I'm using them as a means to extend my abilities into a realm I am ignorant of. But I think if a co-worker deferred to an LLM like that I'd be super disappointed.