I find that if I leave an instruction in AGENTS.md to "do not do X", there's a good chance the agent will forget it.
But if I add a separate post-implementation pass to "find and fix X" by the agent, it'll usually find and fix the issues.
So I've started doing it for everything from naming conventions to duplicate code to other problems. It does cost more tokens, but now I get less frustrated at having to fix basic issues in the PRs.
It's hard to suggest something without knowing what you already do or what you like. But here are a couple thoughts for you:
* I'd guess that for the next ~5 years at least, the world will still need software engineers. AI may be good at coding, but it's still not great at software engineering or managing software delivery.
* Most non-technical people would still likely prefer that someone experienced packages a system for them. They don't have time, energy, or knowledge to babysit an agent. They may not even know what or how to ask.
* It's easier to write software than ever. This competes with coders (possibly putting jobs at risk), but complements those who create useful things. So focus on being the person who solves problems and not one who just builds code.
It's interesting how there's an increasing split of software engineers into those who're very happy with AI and leaning more into it, and those who're increasingly skeptical or dejected.
I don't know how this will play out, but I haven't seen anything like this before.
I have leaned heavily into it… and became good at “agentic thinking”, but now I’m going to reverse. I have become dumber, sloppier, lazier, more distracted. I’m less happy than before. It’s hard to escape the productivity addiction and expectations though.
I've seen this happen to multiple co-workers, in the span of months. Two were laid off so I don't know how it's going with them, and another has backed off but not fully abandoned AI code. I'm resisting it entirely because of these problems.
I find AI autocomplete and chat (asking specific questions, getting general code I can adapt, etc.) to be useful. I'm not sold on agents and agentic workflow.
When I tried using agents for something as a test it immediately started doing things instead of being part of a conversation. I want to be actively involved in the process, not sit back and let AI agents write/generate stuff that I'd have to/end up rewriting/modifying anyway when it goes against the design I have in mind.
The other thing I don't like about agents is their ability to run any command [1]. That seems like a nightmare w.r.t. the potential for leaking secrets (signing/access keys, etc.) or doing damage (deleting files, database tables, etc.).
[1] You can set the option to review every command it runs, but you're then just hand-holding the agent.
I'm in a similar position. I can easily imagine the kinds of tasks where "agentic workflow" seems useful. I just don't have any of them personally right at the moment, and think the world of software has more of them than the needs of software actually justify (due to previous bad engineering and planning).
> The other thing I don't like about agents is their ability to run any command. You can set the option to review every command it runs, but you're then just hand-holding the agent.
The thing about this is that you're treating "agent" as if it refers exclusively to the products offered for that purpose by the major LLM companies. Nothing stops you from designing and implementing your own, with a security model that you think is more sensible. The models won't have been trained against your specific tools, but you can still give them descriptions of what those tools do and then prompt them to make appropriate use of them. All that's really happening is that the LLM outputs some JSON, and your client detects that the output was a tool call (instead of a direct response), parses JSON, invokes whatever other code with whatever parameters and perhaps writes back a response.
This is kinda where I’ve landed as well. I find the chat super helpful as a solo dev almost just as a sounding board for ideas and it is good at pointing out things I’m missing or not thinking through completely. I write almost all the code myself, I like the actual physical activity of writing code and find it keeps me engaged mentally for longer stretches.
I’ve also tried the agentic thing, but I find it so draining laying out in such explicit detail exactly what I want and then cleaning up what it’s messed up, like it’s easier to clean it up than just keep prompting and pulling the magic “Do This” lever.
I probably will never code without AI again. I’ve been doing this for 30 years since I was a teenager, was very fortunate in my career and don’t have to work anymore, but I still code and build because I love it, maybe even more so now with AI, but I would absolute hate my life if I was forced to just run agents all day long and never actually write or be the primary thinking driver for code.
For my social circle, the distinction falls almost perfectly along the line of people who see software engineering as a craft / passion, versus those who see it as something that needs to be done to get paid.
The first group is generally disillusioned, for two reasons. First, it's an attack on their hobby. Second, they sort of can't let go: they want to own the product, they want to understand if the code is good or bad, and they spend a lot of time cleaning up after LLMs. Which, frankly, is not fun. You're no longer doing anything clever, you're just a janitor.
The second group is over the moon about it because they feel it gives them the elite powers previously only reserved for greybeards.
I don't think this is unique to coding. It's the same thing with writing. If you like writing, you probably hate LLMs. If you see writing as a boring chore that needs to be done, you are delighted to have a button you can press. Haha, take that all the influential bloggers, tech writers, etc. I can now do your job at 10x the speed.
Not my experience at all. I’ve coded for fun for 40+ years and professionally for 30, and I absolutely love Claude Code. I write far more high-quality, high-performance code, and I learn much faster. I no longer have to agonize over which fun project to pick. I can do them all.
There is a trick, though: using these models well is a skill. It’s a tool, and you won’t get good results without experimenting, learning from others, and settling on a workflow that fits what you care about.
The one thing that poisons the entire online discourse regarding LLMs to me is just simply not knowing who you're dealing with and what their problems are. This, like all things, is complex and nuanced.
For all my efforts to get LLMs to work for me, they've failed. I figure it is because the tech space I work in (Industrial Automation) simply doesn't have the training data that someone building webapps does. The few times I've put LLM to the test its failed horribly, and since my job has me existing in safety critical scenarios I don't humor what AI gives me at all.
So when I bitch about LLMs and their useless nature, its because of how I've experienced them in my craft. They get 95% of the information right, but that 5% it gets wrong can have very serious repercussions.
But when I'm talking with individuals online who see them as revolutionary? I don't know if their job is editing templates or formatting data or any other host of problems that AI can be revolutionary for. I don't know if they're full of themselves, having drank the AI koolaid. I don't know if they're just really deep into the LLM world and figured out things I have yet to learn (or am unwilling to pay for). But from a HN or Reddit discussion, they're all one in the same and without trying to figure out who they are, their opinions all carry the same weight.
> For all my efforts to get LLMs to work for me, they've failed. I figure it is because the tech space I work in (Industrial Automation) simply doesn't have the training data that someone building webapps does.
Putting safety critical aside (given that is a giant aside) for the moment, I'm a little surprised at this.
One of the most useful things I've found for AI Agent stuff is having an agent live on my home network and finally get the hundred or so random sensors and other IoT devices finally configured and talking together.
It's definitely not perfect though, and not anything I would trust my life to. This year however, I was able to set up enough sensors in my garden to have by far the largest hot pepper harvest I've ever had by min/maxing watering and fertilizing via way too many sensors and data fusing. This was mostly describing the sensors involved, the outcome and dashboarding desired, and pointing it to the various vendor API docs.
I could have done all that stuff manually, but never would have gotten around to it since it was just a tedious boring task. But with AI help I now can tell you precisely the soil moisture level, EC reading, ambient temp, etc. for each of my planters. And with some combining of my rain gauge data and sunlight sensing, tie that into automated irrigation runs. Then the bot just pings me when it thinks the next fertilizing cycle is due.
I don't know if that's revolutionary, but it took a project that would take me weeks to accomplish myself due to around a hundred sensors to configure/setup/etc. to a couple nights of messing around learning what all this talk was over these AI agent things.
I think there are plenty of use-cases where if AI gets things wrong 5% of the time it really doesn't matter a whole lot. I have plenty of these areas at my job.
The biggest part of that is how there's a lot more community involvement for IoT and things like Home Assistant than there are for the proprietary PLC systems.
In the PLC/SCADA space a lot of the development and resources are closed source. There's been a big push in the last few years for Open standards but that's slow to adopt and I'm sure in time we'll see the Controls space catch up (it is notoriously dated compared to the rest of the software world).
But in the meantime its like the perfect storm of terrible-ness for AI. The vast majority of my SCADA work is in AVEVA products, mainly Wonderware and Edge. Wonderware's scripting language is something called QuickScript.NET which is like 80% of VB.NET. The issue with AI is that being a statistical engine it very quickly starts on the right path, then veers into what is very obvious VB.NET training data and starts doing things that are impossible in Wonderware. Edge uses VBScript, but a limited subset of it. So querying AI for help mostly just spits out useless code in the same way; confidently declaring what it gave is possible when it only results in runtime exceptions.
In the PLC space you can get AI to do pretty mundane things with ease. Writing ladder logic or structured text is pretty okay, but like most things that was never the bottleneck in project development: you're not saving a lot of time for the cost of an AI subscription license. As mentioned, Open standards are starting to be adopted pretty quickly and a lot of PLC systems allow import/export of the proprietary formats into XML now which is going to be beneficial in the long run, but we're not quite there yet.
The problem is always that time it messes up, and it can be very subtle. Off by one errors which would be perfect fine in one environment can be catastrophic totally depending on how your I/O Comms were configured. I was trying to interface with some hardware that I asked AI to see if I could solve the pain points of remote enable/disable via network comms. It very eagerly told me I could use OPC-UA Methods to achieve what I'm after, but I was working a platform that didn't support Methods. It even fabricated a path to fake call a method which obviously did not work when applied to a real world scenario. So I asked it how to use Modbus which requires use of FC16 to act on the hardware. Again AI very eager to tell me how to do that, but hallucinated what could be done. Lastly I went for the TCP route which again had AI giving incorrect information - it was far closer this time, having instructed me to send a command in a format which doesn't work out of box, but could be manually configured in the hardware to work. Fortunately I was testing to see if it could save me time, not trying to see if it could do something I was unable to do, but I try to imagine what would happen if I allowed it to do that type of work on a VFD, or PID loop. That tiny little bit of misunderstanding by the agent could be catastrophic.
Each time I share this type of experience (and I have others) with the AI community I'm told I'm doing it wrong. That if I was using better models or different configurations that wouldn't be an issue. Telling me that I need to pay for models - as though I want to fork over cash when their demos are wildly underwhelming. It gives me a lot of overall distrust in the AI community because of this. It feels a lot like interacting with Linux fanatics who are unable to accept that it has faults that aren't tolerable by the layperson. That these people cannot see the faults because it works great in their narrow needs.
But at the same time, using AI to give little tips. How can I speed up this SQL Stored Proc? Why is my DataBinding failing to update? What is causing this OS upgrade to fail? Its done pretty good work. I see it as a tool that works along with me and an IDE, not as a human replacement like so many feel it is ready to be.
I'm surprised to hear that. LLMs make it practical to prove safety-critical C code correct without the cost that has traditionally made formal verification prohibitive. If you haven't explored that area, it's worth a look.
My experience with C and C++ has also been excellent. I work on very large, high-performance C++ systems used to run airlines and airports, and LLMs have dramatically improved both the quality and the performance of our code.
That said, LLMs are tools, and like any tool they take skill to use well. It took me months of experimenting and learning from others to get where I am now.
I made mention on a reply to the other commentator but I feel the issue is due to lack of training data in the PLC/SCADA space. If an AI engine with the appropriate amount of training data was available to me I'm sure it could do the work just fine, but at the current state we have partial knowledge which is too similar to other languages. The result is agents which quickly hallucinate capabilities of the SCADA or PLC hardware and write out code that fundamentally won't work. The result of this is that I distrust AI to get it right enough that I won't kill an operator or blow up a production line. The automation world is too closed source and until the push for open standards that have begun to gain traction really takes off we're sort of stuck.
But then at the same time the code of an industrial system typically isn't the bottleneck in development. Selecting the hardware and waiting for the physical installation is a far bigger bottleneck on a project than what I do. As a result, in the end it isn't the "Correctness" of code in the sense of it is doing what it was instructed to do properly, but the correctness of matching software to hardware and that's where I've seen several failures in AI. If I tell it I have a Schneider Altavar VFD and I get code to interface with an Allen Bradley PowerFlex that's one issue. But if I get code to interface with a Altavar that expects specific parameter adjustments on the drive that haven't been set that's a separate issue and more typical for the faults I've seen within AI. If 99% of drives are configured to operate pumps and that's what AI learns for training, the moment I need it for a mill, aeration fan, or conveyor belt (which have distinct physical requirements) then we have the issues I've been seeing and it takes a trained eye to spot those deficiencies in my experience.
I haven't really seen this, personally. Basically everyone I know is both at once. We acknowledge that it's really good at what it does and use it, but it's not enjoyable to use, and we end up dejected about the future of our craft and our jobs.
Right now I'm leaning towards using it at work because I'm being paid to ship stuff, but it really forces me to NOT use it after work in order just to keep my personal skills sharp. That last step used to be optional, now it's not imo.
I think it's a useful tool, but peak workflow is basically the rough existing development paradigm, if that can be defined, but let AI do the grunt work (typing, some researching) and help you understand things in your own brain, from which you make well thought out decisions and are able to validate output, later define feature requirements, debug, etc....a maintained understanding of a complex system.
The approach currently being foisted upon me is to offload almost everything to LLMs (have it write a complex tech spec -> one shot into tickets -> one shot implementation of said tickets), with humans reviewing throughout, and repeating this iteration until it 'looks good'...throwing sh*t at the wall until something sticks, basically. However, we're being expected to review at a far faster pace than one reasonably can while maintaining an understanding of the system.
Meaning, with this paradigm, humans will largely be rubber stampers and will atrophy their abilities as a result, which will seemingly result in compounding adverse effects.
TLDR in my experience the AI can help with some 'busy work' eg translating a well defined solution in my head into code. The time it takes to understand an implementation and ensure correctness will not change. LLMs cannot reliably do this. This traditionally has occurred during implementation by the implementer, and during code review by code reviewers. I don't think simply shifting the implementer's comprehension 'duties' to code reviewers provides any benefit.
To me, doesn't feel much different than when infra-as-code became popular in the 2010s
It was a huge shift in the world of system administration, gave birth to devops, and, along with the rise of containers & cloud computing, it radically altered how companies ran their infrastructure
Some people leaned into it, others didn't and a huge rift opened up between them
I used to say "automate all the things" - I still do, but I used to too
AI tools are just an acceleration of that mindset and in my world of cloud/devops/sre I'm heavily leaning into AI-driven development and daily workflow
I'm very happy with the performance and ability of AI. I think the best software ever will come out of this. It's very clear to me that AI empowers one to make "just ok" software effortlessly, and "incredibly excellent" software with the same level of effort we previously used to make "just ok" software. So there will be a lot of slop, but there will also be some real diamonds created by those who put the extra work in. The extra work might not involve manually writing or even reading much code, but it is work nonetheless.
I still count myself as "dejected" overall. I'm dejected by the economic shape of AI which seems destined to keep concentrating outsized rewards to the top few who own it or have enough capital to shackle it to their will. I'm fearful that intelligence, once it becomes a commodity you can rent any time you may need it, will be socially devalued in our already anti-intellectual society. I worry that in a couple decades we may resemble the world of "The Machine Stops" (1909), where nobody really knows how things work.
Of course we already live in such a complex world, no one person has complete knowledge of the "stack" they rely on. I can write software in C or assembler but I can't design a CPU and don't really understand how one is manufactured. (I may someday study that field, but I haven't yet!) But I take solace in the fact that somebody out there, has put the time in to study each of those things and is an expert in them. At every layer and in every niche of our engineering world there are masters of their craft, and there are students learning the fundamentals to keep that knowledge alive and growing. What if in 30 or 40 years that is not the case, and there are whole corners of knowledge the modern world depends on where everybody is reduced to "I dunno how it works, but Claude said..."?
Anecdotally, I know several companies that have given the directive of "Use more AI instead of hiring more people". I wonder whether this is part of the story here too?
For anyone confused what "RAG" is: it stands for "Retrieval Augmented Generation", which is where the LLM model is paired with some sort of "database" (often a vector database) where LLM looks up additional data when performing the task.
Use the 'continue from this clip' feature. Next, merge the newly generated segment with the existing one using the 'get whole song' feature.
Or just get creative, use the vocal remover to extend the background sound, cut and paste different parts of it using the good old DAW. By using this method, i managed to make several "full" songs :
Our models support full 2+ mins of coherent generation but generating a couple of verses at a time through continue gives good results you can keep picking the continuations that sound best!
Bit late to the party, but this person is very much correct. I also do BMI work and optics is undoubtedly the future for neuroscience. The optics book you want to get is Hecht:
It's much more than the optics chapter you'll get in a physics textbook. It goes over the classical ray optics in good detail, does a great job with traditional matrices and that formulation of optics (the one that the design programs like Zemax use), goes well into the real meat-n-potatoes of wave optics (including birefringence, a huge part of biological optics), gives you a good accounting of how lenses and other optical devices are actually Fourier transformers, and also dives into the more esoteric optical devices (a must for practical neuro-optics).
It's an upper-division/graduate level book, fyi. So I'd back-load it in your study course. Though in terms of neuro-optics it's more of a keyhole book.
If you are particularly interested and really want to know what's actually going on with EM, then you need to go through Jackson:
This is the book on EM, but is very much physics graduate student level. And honestly, I don't think you's need it for BMI stuff. But if you don't go through it, you'll just be trusting other people when they say your ideas won't work and they can't really explain it to you. Just going through Jackson is a bit of a hazing experience and will earn respect.
But if I add a separate post-implementation pass to "find and fix X" by the agent, it'll usually find and fix the issues.
So I've started doing it for everything from naming conventions to duplicate code to other problems. It does cost more tokens, but now I get less frustrated at having to fix basic issues in the PRs.
reply