I'm a 'senior engineer' with ~5 years of industry experience and am considering moving on from this company because I don't want
1. Be pushed into a workflow that will cause my technical growth to stall or degrade 2. Be overseeing a bunch of AI-generated spaghetti 2-3 years from now
Feel free to address my specific situation but I'm interested in more general opinions.
You should stay there, learn the new tech, and see what happens.
If it works better than you expected, then your mind will be changed and you’ll be well positioned for the new economy.
If it turns out how you expect, now you have experience working with this tooling to inform your positions at your next company.
Either way, a few months in that environment will help your career.
Learn the strengths and weaknesses of the new technology and add it to your resume.
Become the AI advisor who can help an organization adopt the tech where appropriate and avoid the traps associated with top-down hype- and fomo-driven adoption.
Also who knows where the AI cycle will be in 2-3 years. My sense is by then we will see the cost of tech debt caused by LLM generated code, the cost of the ignorance and naïveté of vibe coding and the cost of VC money wanting its ROI on a subsidized tech.
Start looking for a new role that is better aligned with your expectations. You may find it harder than you expect. In which case, you might be glad you didn't burn your bridges in a pique over AI mandates by the CEO & CTO.
As others have said, use this opportunity to learn about what works w/ AI based on all the crap that doesn’t. Your C-level execs have given you carte blanche to fuck around, without worrying too much about the immediate-term consequences. If they literally said to delete existing test files & generate new ones using AI, do it! And when shit inevitably goes sideways, you’ll be able to spend more of your salaried time rewriting those tests to probably look & work more like the original tests that you deleted.
And while you’re learning to use AI, you’ll be burning the company’s funny-money on AI usage fees. At some point, they’re gonna realize they don’t have a lot to show for all the money that was thrown away in service of doing what they told employees to do. At which point, they’ll take a more measured & pragmatic approach towards using AI. Do everyone a favor & help them get to that point sooner than later.
As for the long term consequences.. I suggest "in front of your nose" by Orwell.
What I'd suggest is adapt to it, find ways to push back. Obviously things like "delete entire unit test file & have claude generate a new one" is a bad idea. I've seen claude "monkey patching" a system so that it returns true to the tests.
This issue is going to pop up in the future. Experiment with it on the company's dime even if you've checked out emotionally. You are still doing your job - improving code quality and making sure things run.
The new approach seems to be doing TDD. One, as an engineer, you'll know when AI is bullshitting you with mocks. Even when mocks are BS, you can still test the thing they're meant to represent. 2) AI spits more code than anyone can review. The red, green, refactor approach is one way to keep them on the rails.
I’ve watched Github Copilot do the same thing. I’ve also seen it doubling down on ridiculous things and just spewing crash-laden messes. There seems to be a low upper ceiling on how “competent” it is, which makes sense.
My opinion is that we're going to have about 5 years of this. Managers and C-suite folks are going to do their absolute darnedest to replace and supplement people with AI tools before they figure out it's not going to work. While I appreciate the differences, I remember seeing this ~6-7 years ago with blockchain at my last role. It'll work itself out. In the mean time, you get to contribute to the situation, instead of simply not being present. It's not going to be fun of course.
I don't think we're ever going back from this. There's an entire generation of new coders, and new managers who are growing up with this stuff. It's part of their experience, and suggesting they not use it is going to be akin to asking if you can use a typewriter instead of a computer with a word processor. Some companies will take longer to adopt, but it's coming...
I feel like I'd never use Claude seriously unless someone demanded I used it from day one on a greenfield project. And so while I get to keep evolving my coding skills, I'm a little worried that my "AI skills" will lag behind.
FWIW, in a work environment (and I have not been given the go-ahead to start this at my work) I would start by supplementing my codebase. Add a new feature via AI coding, or maybe reworking some existing function. Start small.
You can use LLMs without letting them run wild on the entire codebase. You have git, so you can see every minute change it makes. You can limit what files it’s allowed to change and how much context you give it.
You don’t have to give it root on your machine to make it useful. You don’t have to “Jesus, Take the Wheel”. It is possible to try it out at a smaller scale, even on critical code.
Is it worth looking? Absolutely! It will be much easier to make a decision when you're comparing your current position to a job offer, rather than comparing your current position to an unknown. I would also add, no matter what you feel about your current job, it's always a good idea to keep feelers out there for new positions. The fastest way up the rank and salary ladders is moving to new positions. It will always outpace internal promotions.
They explicitly asked for general opinions, and provided almost no context which would let me be more specific.
"Is it worth leaving position over push to adopt X" is not exclusive to AI, nor is it a new question, so I addressed the general case.
But it's actually been fantastic. It's challenging in a new way: splitting things down into small enough descriptions that the LLM don't go down a rabbit hole it can't get out of. While also giving high-level guidance to plan for the whole project.
I like UI design, but implementing it is tedious and slow. With Claude I can get a dashboard page done in less than 1 min, from a spec, that I can iterate on. Instead I can focus on the parts I care about, like backend. I need to nudge it to always care about security and storage concerns. I've seen O(n²) loops where O(n) would be sufficient. It keeps making enough mistakes that I'm not exactly out of a job.
The best way to use Claude Code is to write those descriptions and use examples of what you want the output to look like, so take it in small steps and do manual corrections.
However, you need to have seen some good code before using it to make something good. It's just a tool, like compilers and IDEs. I'm pretty happy I don't have to input programs using eight data switches and a latch switch on an Altair 80. And I'm now pretty happy I don't have to care so much about internal API boundaries, because doing a refactoring is one sentence away.
However, I do keep running out of quota after 2-2.5h out of 5h. If I had a company sponsoring this, it would be a no-brainer to use it more.
It's faster for me to do it manually (and I still learn) than having to find hard to spot bugs from the AI output (as it always outputs some weird stuff).
From my experience, if you're burnt out or starting to burn out then leave, otherwise I recommend staying until you secure another job.
Regarding the situation, they want to delete the tests? Fine, you have git right? Replace it, and let everything set on fire, quietly enjoy the chaos and at some point revert the changes. Or don't, you're leaving anyway.
If you do get another offer remember that there's always a risk when you change jobs. I.E. how stable is that companies funding? Will they want to do layoffs, too? Are their investors pressuring them to make cuts? Because if you're a new hire you can say good bye to that job. We don't have formal tenure in tech but there's still a human cost to firing people who have been long-time with a company. The decision makers have less attachment to a new hire so its easier to fire them in that respect (and how many decisions with fires are just arbitrary, number-based, bad luck.)
If that can’t be done where you are, or isn’t valued, you’re in the wrong place.
I’ve been through this with (including but not limited to) PCs, OOP, client-server, SOA, XML, NoSQL, blockchain, “big data”, and indeed, multiple definitions of “AI”. Turns out all but one of those were actually somewhat useful in the end, when applied properly, but they didn’t eliminate the industry. Just roll with it.
History doesn’t repeat, but it rhymes
No, really. This time is different.
My non-technical boss was excited about some silver-bullet tech and I had to walk him through how these things play out.
I talked through most of the industry's overhyped "trends" since the 70's and describe the promise and the reality (very similar to your list).
I did mention that there were 2 trends that had more lasting general application (compared to things that were just another tool in the toolbox used for some situations):
1-Relational databases
2-Internet
While this has some truth, the size of the current "revolution" makes all the others look tiny, especially in terms of how it affects a programmer's day job. Nor did most of those "revolutions" affect every field of programming at once, like this one does. The percent of programmers actually impacted by blockchain is probably in the low single-digits. The percent of programmers using some version of AI tooling 3 years into this is probably >50%, and the more impactful tools will be used more very soon is my gues.
In my list I didn’t even mention the internet, the web, smartphones, and the cloud, all of which had a very broad effect on programming and programmers, and had similar top-down edicts from the C-suite, e.g., declaring you must be “all-in on cloud”. Turns out those things were indeed quite transformative, but now that the hype has dissipated somewhat, we’ve absorbed them into the toolkit and just proceed with the engineering.
That said, the rise of OOP is probably measured in a decade or two. It eventually "spawned" whole new programming languages, that eventually got a lot of popularity. But this is over a much longer time-frame than how quickly we went from no such thing as AI coding, to (now) coding agents. It also didn't affect the entire industry in the same way - hell, some people were still writing assembly in the 80s as the OOP craze was winding up. I don't have actual stats, but I imagine coding agents are far more ubiquitious across far more industries/languages/stacks, for more quickly.
> In my list I didn’t even mention the internet, the web, smartphones, and the cloud, all of which had a very broad effect on programming and programmers,
The internet (or maybe the web) I'd say was probably the more transformative thing. Cloud affected a lot of things too but not quite as much and didn't make quite as big a difference to the day-to-day work. I deployed things pre-cloud and post-cloud (though honestly mostly during the early-stage cloud), and there wasn't such a big difference.
Look, at the end of the day you can't just compare AI to other technologies blindly and say "well they were big hypes, this is the same". By actually looking at what it's doing and how it's affecting things, it's fairly clear it has a much bigger impact on the day-to-day work of programming, as opposed to anything else you mentioned.
I'm not saying this is the end of development, for all I know this will mean more developers! But I think software development will look fundamentally different in 5 years in a way that is far more widespread than in any other of these changes.
I use LLMs every day in my work (both to help write code and as a component of the thing I’m coding). They’re pretty cool. But as an engineer you need to make decisions based on what they actually do, in your empirical observation, not what people tell you they will do, eventually, in their fantasies. Speculating about that is just noise. The engineer’s job is to find the signal.
In my observation, I can trust an LLM to write code way more than last year, but I still have to keep it on a very short leash. Will it be better next year? I don’t know. Nobody does.
In the early 90's I was working for a large ERP company that went all in on OOP and distributed objects.
I was talking to one of the guys from the new team they created to re-write the entire system and had an entertaining conversation:
Tech guy that had drunk the kool-aid (TGTHDTKA): "...and the objects can just automatically interact with each other, like I can drop this person object on the phone object and it just automatically makes the phone call to that person"
Me: "Uh, but you still had to write specific code that causes that interaction to occur, you can't just do that with objects that haven't agreed on how to communicate"
TGTHDTKA: "No, it's all automatic because a person has a phone number and a phone uses a phone number to make calls, so you don't have to code anything special"
etc.
Every couple of years there's something that if you aren't using you're apparently doing it wrong.
I think maintaining this AI code is going to turn out to be a nightmare and everyone will tone down on it, not letting agents run off on their, but we'll see.
There's always pointless fads and food fights. Just tough it out. (Until a better gig comes along.)
I wish I could advise my young self "this too shall pass". The savvy play is to be a "team player". All those dumb hills I choose to die on... For dumb crap which eventually self-mooted all by themselves.
There was a comment (or a story?) some time back about how to survive as a software developer when projects are managed by Pointy Haired Bosses (PHBs). From memory:
Always be positive, optimistic.
Never say no or hedge or doubt.
Proactively manage upwards with enthusiastic status reports.
Instead of owning up to failures (due to fantasy estimates, ridiculous deadlines, scope creep, misc chaos, etc), list in detail all the great things and awesome progress you and your fantastic team have miraculously accomplished.
Like "reproducible builds which reduced failures by 1000% FTW, saving 30 hours per week" and "implemented boss' recommended pub/sub heptagonal meta architecture event sourced distributed pseudo sharded hybrid cloud something something, attaining sustained P95 latency of sub 3 picoseconds for 2 days"
Sadly, I was never able to keep up the act for more than 12 months. I'm just too contrarian, sarcastic, jaded. (I used to tell myself that I was "results oriented". I now see I was just an asshole. Everyone lies, needs to suspend disbelief, have a reason to crawl out of bed every morning. Who am I to piddle in their Cheerios?)
I'd like to think that if someone had clubbed young(est) me with the clue stick, I could have adapted.
YMMV. Happy Hunting.
For example, try deleting one failing unit test and re-generate it with Claude. Then if it turns out mostly worthless, scrap it and restore the original test. Maybe the entire test is correct (and easy to verify), maybe you can take pieces from it, maybe it’s unsalvageable; if it doesn’t save time, write tests manually from then on until the next major AI improvement.
Worst case, CEO fires you for not vibe-coding enough. Best case, you find a way for them to make your life easier. My prediction (based on some but not much experience) is that you spend only a small amount of time trying the AI tools, occasionally they impress you, usually they fail, but even then it’s interesting and fun to see what they do.
EDIT: as for dealing with the spaghetti when others use AI; wait for that to become a problem before quitting over it. And of course you can look for opportunities now.
So what are the tests actually for then?
How can you trust your economic welfare to be in the hands of people that believe in magic?
I would also add that it's probably pretty easy to fake it - in my experience management, especially executive level, have no idea how things actually get done.
If they aren't prescribing a very specific workflow, you can create you own/install whatever tooling you want.
It's also worth pointing out - if you really are sufficiently experienced, these tools could prove to be a force multiplier and may actually be worth an investigation. You still have to review code and provide clear specifications in discrete, easily palatable chunks.
First thought, "wat", what if the code is broken, not the tests...
Second thought, if the entire unit test file is getting generated by claude without significant oversight like this suggests... I suppose its probably the tests that are broken.
---
As for your own situation. Looking for a new job because you aren't happy with the process at your current job is completely reasonable.
I'm not sure that you're right that this workflow will cause your technical growth to stall though - the freedom to experiment with strange new (probably ineffective) workflows on someone else's dime might well be beneficial in many ways. But if you're not happy doing this, and you have the skills and network to find a new job, why wouldn't you?
There's no going back to pre-LLM days. Just like we're not going to stop using machines to weave textiles.
The vibe coding fad will pass, but building enterprise code and intelligently using AI for some tasks will make you better.
They’re going to pay you to learn to work with the thing you need to learn to work with anyway? Be smart. Take the deal.
That said, it’s a free country, you can quit any time for any reason.
If an AI helps you do that (all of it, including the "maintainability" part), then sure, use it. If not, don't (or only use it in limited places where it can help).
How do you know? You almost certainly have to experiment. So look at your company's push as a chance to experiment. But when you do, make sure you have your "software engineer" hat on, not your "code monkey who cranks through Jira tickets" hat.
CEO can afford being somewhat ignorant about the nature of engineering work or how llms work (still a red flag for a tech company).
But CTO being that stupid (if you don’t exaggerate) leaves little room for doubts.
I would like to call out deleting the unit tests as a very funny way to deal with code generators breaking the product.
> 1. Be pushed into a workflow that will cause my technical growth to stall or degrade
Whether your growth stalls or degrades is up to you, but in my country your employer's ability to tell how you how to produce/deliver the work (not just the outcome desired) is the difference between being an employee and contractor
You should remain open to new things in this industry. Hate it or not, AI is currently the new thing in our line of work.
> 2. Be overseeing a bunch of AI-generated spaghetti 2-3 years from now
How you implement code, including human review and understanding of code, is key. I have never copy and pasted code into development from an LLM/AI helper. I've certainly asked it questions about the code, tested the code output, had it add comments to help me understand the code it wrote and produce alternate methods that better fit my needs, etc.
"No spaghetti" in the codebase will prevent having to take care of it, but that doesn't mean small modular components, troubleshooting, general ideation of different approaches to see what can scale, etc. isn't going to be really helpful.
> I'm a 'senior engineer' with ~5 years of industry experience and am considering moving on from this company
5 years is not what I would consider a big bargaining chip in today's market full of seasoned developers, including those who started when they were in middle school and are applying for the same jobs as you would be.
Can you work with your employer to effectively introduce some AI tools and workflows to help ideas, changes, revisions, new features, or even documentation?
Don't jump until it is safe, and remember the next place is likely just slower or one leadership away from asking their employees the same thing your employer is.
I'm open to new things. I've seen demo's, attended presentations, and spent a long time toying around with it myself. I have not been convinced there is any meat there, not in it's current iteration. LLM's are designed to make things that "look" like human output and thus are very good at hiding bugs. It's ok at getting the first 20% of the project done, but that was never the hard part. It's always been the last 20%, and modern LLM's simply cannot do it. Not on large scale projects.
New things have come and gone. So far the only thing I'm convinced of is, it's easier to get funding when you can claim you use AI. That's it.
> I have never copy and pasted code into development from an LLM/AI helper
Well that's simply a different reality from what my employer is encouraging. So not relevant. They not only want us to copy-and-paste, they want us to delete otherwise functional code to make it easier to paste in AI generated stuff.
Asking questions is fine, that's much much closer to an augmented search engine than prompt engineering. You're describing something different from what this post is about.
>5 years is not what I would consider a big bargaining chip
I'm not bragging. I'm giving context. If I was 0 yoe or 20 yoe, those would be relevant too. And for what it's worth, I also started in middle school.
>one leadership away from asking their employees the same thing your employer is
Yeah that's probably true
I didn't think you were bragging, and I hope I didn't come across as trying to put you in your place.
I'm responding with market context. The market is upended right now with no end in sight. Also, most employers if not meaningfully all, will or are involving AI. Many, if not most, people applying for decent positions right now have 3x the experience and are very willing to do whatever.
Don't let your principles end you up sleeping in your car.
> LLM's are designed to make things that "look" like human output and thus are very good at hiding bugs.
This can be true, definitely was more often true in the past. But there is a time and a place for human expression, and probably isn't in code. Your human expression is likely helped by tools. I doubt you're writing in Notepad, but your IDE doesn't get thrown out the window because it can't fully replace you or write code for you.
IF you are being blindly told to copy/paste from an LLM, then use that as part of your ideation and work from there, using AI tools as much as you can in ways that work. Become a leader in this new frontier by delving in (just kidding, that's meta about another article trending on AI)
> They not only want us to copy-and-paste, they want us to delete otherwise functional code to make it easier to paste in AI generated stuff.
Your post needs more detail if you want people to reply to your exact situation, but I think you can make clear arguments against doing this, then do this for 3 weeks, followed by the obvious: backtracking.
Leaders are by nature often encouraged to try new things. Standing in their way won't help you, but you can warn them, do it, then help them get back on track. By being a team member in this way, you are not in charge, but you can build trust equity if these leaders stick around and have techy ideas in future. In my experience, I usually outlast bad leadership (and their associated ideas). You have to be correct and not act like you're the boss to survive it, though!
I am in a situation where ai was mandated, I was skeptical, but took it as a chance to try it out. I now can’t imagine going back.
Hiring people who haven’t used it will be a marketable skill too
Which companies can you point to with openings on their careers page that specifically mention "no AI" or don't mention AI as part of the toolchain/expectations?
Can you explain your thinking on this?
Obviously there will be jobs where AI isn't required, so omission of experience would be fine, but I can't think of any reason why it would be marketable to advertise "I've never worked with AI".
In fact, I don't think I've ever seen a resume that contains anything along the lines of "I haven't used X". You would just omit the lack of experience. Otherwise it risks signaling other negatives (not comfortable with change, etc.).
So it's like I've never used a gun. Which isn't really a strong point. At the very least, even if you don't plan to use guns, you'd know how guns work and where they don't.
No one is saying "I've never used a gun" or "I've never pirated a movie" on their resume to market their morals. Resumes are to market the skills you have that match the job you're applying for, not for marketing your moral stance.
But I doubt those people put "never used Flash" on their general resume (or literally any other resume except the one tailored to that position, if they even put it on the resume instead of their cover letter). I also doubt they thought of it as a "marketable skill" considering it was applicable to ~1 job.
In any case, this seems like an incredibly niche situation that probably has no business being extrapolated to all AI tools.
AI is being adopted mainly where it works, and where it works is where regurgitated code cobbed-together from what has been seen before is sufficient to get the job done.
Assume that your CEO and CTO are not complete idiots; that they have some rational argument for believing that the approach will work. It's also possible they are gambling on an experiment; if it fails, they will back off on it.
If you want to avoid being told to use AI, you have to work on legacy tech stacks that AI doesn't understand; algorithmically complex code; critical infrastructure code where one bad bit stops multiple machines and applications; safety-critical embedded where AI slop could maim and kill and so is out of the question, etc.
If it is CTO only and the engineers all disagree. Maybe worth thinking about how to get that voice heard without ruffling feathers.
Try an evaporating cloud! This is a bit heavy to read but is a good technique to think about. It is so good it might change YOUR mind too about this situation! It looks to get to the facts and once practices is a good tool to use.
https://en.m.wikipedia.org/wiki/Evaporating_cloud
Tldr is they want vibe coding because X and you want not vibe coding because of Y. The assumption is Y = !X but if it isn't there could be a good win win.
Why not just add new tests or refactor the existing ones? Seems kind of silly.
Aside from that:
There isn't much more to it: https://blog.kronis.dev/blog/ai-artisans-and-brainrot (bit of a rant of mine on the topic, the tl;dr would be that the cat is out of the bag in regards to these tools and there are both positives and negatives, but they lead to brainrot and degradation of skills the same way how IDEs and StackOverflow did, just a large leap further)So there are companies where forcing vibe coding/LLM stuff is not a thing at all. This is majority of companies by the way. You can easily find one of them.
Good luck.