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.
> 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.
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.
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.
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?
I would like to call out deleting the unit tests as a very funny way to deal with code generators breaking the product.
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...
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.)
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.
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.
How can you trust your economic welfare to be in the hands of people that believe in magic?
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.
From my experience, if you're burnt out or starting to burn out then leave, otherwise I recommend staying not leaving 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.
There's no going back to pre-LLM days. Just like we're not going to stop using machines to weave textiles.
So what are the tests actually for then?
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.
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.
Why not just add new tests or refactor the existing ones? Seems kind of silly.
Aside from that:
- if you don't like AI tools and can afford to do so, then look for a place that matches how you want to work
- if you do like AI tools, or are open to learning them, then there isn't an issue (aside from maybe how they're used)
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)
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.
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.
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.
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.