Ask HN: Worth leaving position over push to adopt vibe coding?
My company is increasingly pushing prompt engineering as the single way we "should" be coding. The CEO & CTO are both obsessed with it and promote things like "delete entire unit test file & have claude generate a new one" rather than manually address test failures.
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.
61 comments
[ 3.4 ms ] story [ 83.5 ms ] thread> 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.
Good luck.
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.
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.
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.
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.
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.
It's wild to me that somehow we're wrong for not wanting to have to do this every day to get by...
Does the person lying to me know they're lying? Surely they know that I know, right?
I'm also terrified that I'm lying to myself. Am I just in denial? Is some level of wishful thinking necessary? What are my blind spots?
I'm no smarter about any of this stuff (The Human Condition) than anyone else.
ICYMI, I enjoyed the book Everybody Lies by Seth Stephens-Davidowitz:
https://www.goodreads.com/book/show/28512671-everybody-lies
Please share any books, links, observations you have. TIA.
How can you trust your economic welfare to be in the hands of people that believe in magic?
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.
There's no going back to pre-LLM days. Just like we're not going to stop using machines to weave textiles.
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 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.
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
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.