Vibecoding has seriously eroding the trust we have in public software. Hopefully there's some of badge projects can use to clarify how much Ai was in charge of it.
This made me remember a very old book posing that if alien intelligence is out there in the Universe, artificial intelligence should outnumber biological intelligence, as biological civilizations would tend to be short-lived.
Imagine if our benevolent AGI made Earth an utopia where everyone can achieve their full potential if they wish, then having first contact with another AGI. The alien AGI would ask if our AGI keeps these dumb humans as mementos, not realizing those humans as smart as they can possibly be.
No need, I still have vibe coded stuff from the times before monthly plans for Claude and Codex over a year ago. I can jump into most of them and just start adding stuff without any major issues - they have better test coverage and CI than many projects at my day job :)
It's surprisingly easy to do that shit properly when budgets and time aren't an issue.
I am one of those weirdos that found joy in business software. The clear specifications, reasonable timelines, and enough technical freedom, let you focus on clean, secure, resilient architectures.
I find that I struggle more with personal projects, as I tend to take things where I'm not even in the skirts of the learning curve, and consequently redo my work a few times.
> The clear specifications, reasonable timelines, and enough technical freedom, let you focus on clean, secure, resilient architectures.
I have no idea where you work but 90% of companies are not like that. In fact, it's the opposite: filled with awful management, terrible timelines and legacy code.
Engineering had always been a nuisance to them and getting basic approval for maintenance regarding technical debt has been an uphill battle.
Wow. That was hardly ever the case in my experience in ~30 years in the industry. I enjoy(ed) what you’re describing too but… how common was this for you?
Different person but I’ve been a SWE about ten years now - my favorite work has been improving the CRUD stuff people have left behind. Like the time I took a proprietary document they were using to document their REST apis and wrote a converter to turn those into OpenAI spec compliant yaml files, taking a single tenant application and making it a secure multienant application so instead of 80 different app services we had two, coalescing all their data sources into one normalized DB. There’s a lot of work I’ve done I’m really proud of. I’ve always found myself being the “in the muck” guy fixing up and bettering legacy code, I’ve always felt that was really rewarding and interesting.
Thats badass! I like doing that kind of work, but I got very jaded about it over the years, because management generally acted as if the engineers took a shit on the conference table in the middle of a Zoom call with their most important customer whenever anybody attempted to address technical debt, as opposed to delivering more more more features. Unless it was billable agency work, in which case they’d hate it even more.
With massive amounts of effort and strong communication it was usually possible to get some tech debt time, but management acted like they were doing YOU a huge favor. It was kind of a career killer, generally.
Alternatively it was possible to get this kind of work done on my own time… but that’s a marriage killer instead of a career killer.
The fun thing is: I don't think this will change that much with AI in the mix ;)
Shitty devs without AI are slowly building BS that wants to be cleaned up.
Shitty devs with AI are much more fasterly building BS that wants to be cleaned up.
I have a similar experience as yours, just add another 10-ish years to the timeline. Literally my first job out of uni, I got to work on a legacy code base that was another 15 years older than that which had a ton of reports all built differently over time with slight variations in both code and end user output that really all wanted to be "the same" both on the code and end user side. So I slowly but surely, one user/PM requested change at a time would build out a common layer of abstractions and shared code that both made the code shared and easier to maintain (great for me!) and consistent for users (great for the PM/users).
Heck, I built a rudimentary TransactSQL parser that'd output stored procedure call graphs to graphviz and then I printed it and hung it on the wall to get through all this and having an LLM to just make a mermaid out of this in 5-ish minutes would definitively have been faster than I was ;)
With an LLM all of that would just have been faster to do but still worthwhile and useful on both levels. I.e. both code abstraction/reuse and PM/user level. Similarly there was a report that one of the devs had to actually run manually and it took him a full week, so users that wanted the report would only request it once a year-ish. When I was asked to learn how to run it from him I was appalled and just took that week to put it into a script that we ran and emailed the report out once a month automatically. They ran that report manually like that for like 10 years prior to that :mindblown:
None of this is an "AI thing". It's a good dev vs. not so good dev thing. And none of it really has to do with coding as in "writing source code" as much as "solving problems for humans" somehow and the "language" you do that in changes over time. If you're the guy that's tied up with the particular language: yeah LLMs are gonna eat your lunch. If you're the problem solver type that uses whatever tools they have available, you're still in demand.
Sure. If you get pleasure in fixing really badly broken shite, there’s tons of opportunity for that, but no money in it. Only money in new features, which is why the codebase is what it is. I have, on rare occasion, been the fixit guy called in temporarily to fix another teams work or get it out the door: that was fun. Short lived , but fun.
It's a shame, because there is money in it. It's just (like most sensible preventative maintenance) that the financial benefits are typically delayed. And when it comes to software, they're notoriously impossible to quantify.
Generally the only way to get it done in a corpo environment (and receive any kind of thanks or glory, as opposed to just torpedoing your own career) is to let things get so bad that production stability suffers and/or the team's ability to ship features is severely impacted.
...I realize I'm basically just echoing what you said, except more verbose. I'm venting!
About 80% of the time. It wasn't all about setting a new foundation, even making the existing one solid enough so you can have time to refactor the cruft was enjoyable. I had more trouble in my youth, as I didn't understand why the business didn't change to accommodate my 'masterpieces', and I'd like to think I started enjoying it more as I became wiser.
Disclaimer: I had to take an opportunity at management in cybersecurity, and haven't coded in about five years. It helps a lot when talking to developers about risk mitigation, though.
One of the fun things to do would be to use the 8 hrs of work to spend about 4-5 hrs working on deliverables, which was usually sufficient to exceed expectations, using 2-3 of the remaining hours (I’d keep 1-2 hrs for myself), to make significant architectural improvements.
I’d bring in an improvement every 6 months or so and suddenly the app would get significantly better and I’d get credit for it.
> The clear specifications, reasonable timelines, and enough technical freedom, let you focus on clean, secure, resilient architectures.
The nicest thing was when you nailed down the architecture and then you are mostly twiddling your thumbs while waiting for the PM guys to have the next feature idea. Maintenance and bug fixing is a breeze.
Sorry for the delay. Mostly midrange (AS/400) consulting at manufacturing plants, then full time jobs at a heavy machine dealership, and a bank. Changed to PC development after about 15 years of that, then management, and it hasn't been the same after that, ha ha.
I think the technical freedom plays a big part, not because you're chasing the shiniest, but because you're choosing the tools that will hopefully outlast you. One of my former employers was 'modernizing' their IBM i (former AS/400) systems by porting them to Java and Windows Servers, and they were having all kinds of problems. Couldn't even get the EBCDIC to Unicode conversion quite right. I was lucky not to be there anymore.
I smile whenever I see EBCDIC, probably because I never had to deal with it.
But I'm sorta old and some of my school's texts were outdated so they had programming examples and explanatory text that treated EBCDIC on equal footing with ASCII.
So unlike anybody who dealt with EBCDIC conversions in the wild, seeing that acronym actually takes me back to happier days!
Local legislation can make a huge difference. In my country, you can install solar panels without storage, pump the electricity directly to the company, consume theirs, and pay the difference. Our house produces more than we consume, so charging an EV would still be mostly free for us.
If the energy company didn't buy our electricity, we would be forced to use batteries to store the surplus to charge the EV batteries.
The only disadvantage is that during a blackout, we still produce energy but can't use it. Fortunately blackouts are very rare in my region.
Same here, but the initial cost is gigantic. And after a lot of Poles made the leap of faith and went all in on renewables, the gov changed the rules of buying/selling so now if you don't have a storage, there's a very small chance this investment will ever pay off. And if you want to have a storage, then you basically need a small bunker, a separate structure, to stay compliant, which requires from you to be even more wealthy.
Our government almost went the same route, but settled with a small nominal fee even if your consumption was negative. During those uncertain times I even considered a Tesla Battery, which had just entered the market here. Fortunately, there was a change of presidency, and sanity prevailed... for now.
reply