Hacker Newsnew | past | comments | ask | show | jobs | submit | shridharxp's commentslogin

As a junior dev there is this pressure to produce code, add features, and investigate bugs within unprecedented time period. I know whole code base is fking up but i will still add that feature or do a sloppy bug fix without digging deeper.


In my experience, AI really lowered the bar for bad code in the name of delivering faster.

I have seen people write highly complex code where all the complexity was not necessary. Think: deep unnecessary branching, pointless error handling and retries which make no sense in our context, hand-coded parsing using regexps, haphazard data flow, functions which seem purely computational but slyly make API calls, pointlessly nullable model fields, verbose doc comments which describe the implementation instead of the contract. I could go on.

The worst part is, even when "prompted" by bad coders, it works in the end. Even has tests (ostensibly mock-ridden, a pet peeve of mine which always falls on deaf ears). So I cannot reject the PR without being an asshole.

I am no luddite. I make heavy use of AI, with all the skills / AGENTS.md / style guides and clear specs, then review every line of code, prefer testing with minimal mocking. I'd even say with right prompting, it can write better low level code than me (eg: anticipating common error conditions).

But my biggest fear about AI is how it enables normies with little to no understanding of CS principles to produce code faster which looks correct but slowly poisons the codebase.


I have a friend, smart guy, who is writing web services and “connecting them together” for a large firm; he has absolutely no programming experience.

Talking to him, he told me he couldn’t even reverse a string. He is at once many times more valuable than ever before to his company, but also far more dangerous than ever before.


This is what fascinates me. I have a friend, also a smart guy, who has made it to the point he’s at by being a kind of solutions expert. He’s an IT guy, basically. He’s very technical but has never claimed to be a software engineer. He’s writing software with Claude now. The other day he sent me a screenshot of some other team at his work asking him to shut off something he made that was brutalizing an API of theirs. I asked him if he had ever heard of a 429 or exponential back offs. He said no. How do you meta-prompt for that without knowledge?


You can create an agent in Claude with the role of Technical Lead / Architect and have it review your code. That depends on your agent specification. Just have ChatGPT generate that first.

If you get the logs you can feed them in and ask for improvements, that sometimes helps.


But even then, you have to know to do that. It feels like a bit of a turtles all the way down situation, no?


He's "smart" but he chooses to be in a business where he's presumptively willfully ignorant of the fundamentals (since he surely should be able to learn to reverse a string if he wanted to learn)? He doesn't have a more lucrative opportunity available? Or does he somehow have a skillset that makes him able to "connect web services together" by prompting AIs in ways that other people (including ones who can reverse strings, etc.) couldn't?

This form of being "smart" is a bit difficult for me to comprehend, I must admit.


> This form of being "smart" is a bit difficult for me to comprehend, I must admit.

I strongly agree with this. Suddenly with the mass adoption of LLMs there are so many smart, yet naive people out there willing to toe the line. Why these smart people couldn't bring value in a million different other ways is, of course, left unsaid.

They're not even trying to dress up these bullshit stories anymore. In truth it doesn't matter if you believe it. So much buzz is people just talking to themselves out loud.


Well that’s not his primary job. It’s an extra task he’s doing at his job. At a non-tech company with small/horrific engineering components, someone in the business who can do any programming (or vibeing) is indistinguishable from magic.


So many fallbacks. So many function_exists. So much pointless type casting. I swear it’s like the system prompt is designed to waste as many tokens as possible.


Ironic: my value as a programmer now comes not from my ability to write code, but my ability to delete the useless fluff that AI wrote.


I agree 100%. At work I'm teaching software engineering principles to system administrators and they, too, often use AI without thinking. Then it's on me to provide feedback on the PRs they barely read themselves. Not a lot of fun but slowly but surely they're learning.

> The worst part is, even when "prompted" by bad coders, it works in the end. Even has tests (ostensibly mock-ridden, a pet peeve of mine which always falls on deaf ears). So I cannot reject the PR without being an asshole.

Yes, you absolutely can. And you should. Try to teach them lessons and what patterns to watch out for, then tell them to put those insights in their CLAUDE.md, so that their agent becomes better, too. You can also tell them to just copy your own CLAUDE.md, like I did: https://github.com/codethief/ENGINEERING_PRINCIPLES.md

Stay strong!


> it works in the end. Even has tests (ostensibly mock-ridden, a pet peeve of mine which always falls on deaf ears). So I cannot reject the PR without being an asshole.

This is a social problem that I had thought the industry had solved a long time ago.


When I read the discussions about AI making code worse I keep bringing the same argument: people made bad code even before AI. Average coder is barely functioning and that's a fact.


And we were safe from them because they couldn’t produce a mountain of code every day. But soon many places will be buried under a planet of unmaintainable code. It’s adding friction and operational cost and often not adding value.


People could, however, learn to not make bad code. LLMs are incapable of that feat because they do not have any understanding or ability to reason. They are strictly worse than a human.


> people made bad code even before AI.

As others have elaborated, the problem is empowering them to ship mountains of bad code;

And yeah, many semi-technical M2s or even M1s can't distinguish bad code from good code, or worse bad architecture from good; this is golden time for those who are willing to sacrifice the future for present. Just burnnn'em tokenzzz.


> In my experience, AI really lowered the bar for bad code in the name of delivering faster.

I would've believed that 6 months ago, but not now.

If you have a good codebase with proper rails, hygiene and architecture, AI will produce better code than most engineers out there.

People forget that 90% of the field has always been charlatans barely able to implement a fizz buzz or go much beyond trial and error googling.

I'll say even more. I'm in the 10%, and it's increasingly clear to me that AI writes in minutes code that's better than mine.

Even stellar and respected OSS engineers are nowadays leveraging AI and guiding it less and less everyday beyond giving indications of what kind of data structure they may want for a complex problem or the kind of architecture they are looking for.

In any case, I don't like this field anymore, I have no joy from it, way too much work, way too many changes a human can cope with both on product and technological level (not even counting AI and its tooling itself). The interesting parts of thinking an entire afternoon or week experimenting to get that design right disassembling the pros and cons are gone.

Even if you want to do that, it's just faster to launch 6/7 worktrees with the different ideas and judge the results. But you don't get as intimate with the problem and the amount of information is way more than you can process.


I'm hand rolling a project right now because even frontier models I use bloat things beyond comprehension. Because I'm intimately familiar with the domain, I know the shape of things, how the data should flow, and so on, and if l even if I spec it clearly AI will write 2x to 5x the amount of code necessary to make something work.


"beyond comprehension" is a good way of putting it. I've been genuinely baffled by some of these AI designs - why any intelligent thing would write >10 lines of bloat for what should be a one-liner.


> "beyond comprehension" is a good way of putting it. I've been genuinely baffled by some of these AI designs - why any intelligent thing would write >10 lines of bloat for what should be a one-liner.

As Anthropic's drones say: treat Claude as your genius coworker. Don't think yourself, don't judge, the machine must know better than you. It is the genius, after all, not you.


Forgive my ignorance, but if the corpus of coding data was always 90% bad, isn't that the same data being used for training LLMs? How are they magically any better than that average?


Programmer: "What is this slop that I found in your code?"

AI: "I LEARNED IT FROM YOU, DAD!"


They aren't. The guy you're replying to is just hyping them up based on nothing.


Because LLMs are not stochastic parrots.


Proper rails, hygiene and architecture need to be actively maintained, they don’t just continue to exist in a developing codebase. Historically, a small proportion (the 10% as you say) had a disproportionate amount of influence on coding standards. When they can no longer keep up with that ongoing maintenance, which we’re seeing with the increased pressure to ship code, the hygiene will regress. We’re riding the tail of all the engineering practices we’ve developed as an industry.

This is what I’m seeing, anyways. Junior engineers are being rewarded for shipping so much code, it’s impossible to evaluate it all, and subtle changes in existing patterns are slipping through. Eventually all those subtle changes transform the rails.


> Even if you want to do that, it's just faster to launch 6/7 worktrees with the different ideas and judge the results.

This means you take less time reviewing code than it took for the machine to churn it out. All that code must be a ticking time bomb.


90% of software engineers are not charlatans, and it's convenient that you at confidently place yourself in the "10%"


>If you have a good codebase with proper rails, hygiene and architecture

Okay, so Ai is completely useless in my industry. Got it.


There are concerns that AI might/will make mistakes. Instead of optimizing for producing perfect code, they think that AI can fix bugs as fast as it produces code and are optimizing for MTTR. Sounds like decision made by people who don't write code regularly, as there is this Architectural drift that happens where you are no longer aware of what's happening in your codebase. As a junior guy I so want this to happen.


Few months ago, the founder was talking about "AGI" and ridiculous universal basic compute. At this point, I don't even know whom to believe. My first hand experience tells ChatGPT and even ClaudeCode are no where near the expertise they are touted to be. Yet, the marketing by these companies is so immense that you get washed away, you don't know who are agents and who are putting their true opinions.


> My first hand experience tells ChatGPT and even ClaudeCode are no where near the expertise they are touted to be

Not doubting you, but where specifically have the latest models fallen short for you?


ClaudeCode:

- Making functions async without need; it doesn't know the difference between the two or in which scenarios to use them.

- Consistently fails to make changes to the frontend if a project grows above 5000 LOC or a file goes near 1000 LOC.

- The worst part is it lies after making changes.

ChatGPT:

- Fails to implement mid-complex functionality such as scrolling to the bottom when new logs are coming in and not scrolling when the user is checking historical logs.

These models are good at mainstream tasks, the snippets of which you find a lot in repositories. Try to do something off-beat such as algorithmic trading; they fail spectacularly.


I'm unsure how someone could use LLMs regularly and not encounter significant mistakes. I use them a lot less than some devs and still run into basic errors pretty often, to the point that I rarely bother using them for niche or complicated problems even though they are pretty helpful in other cases. Just in the past few days I've had Claude trip all over itself on multiple basic tasks.

One case was asking how to do a straightforward thing with a popular open source JavaScript library, right in the sweet spot of what models should excel at. Claude's whole approach was completely broken because it relied on a hallucinated library parameter that didn't exist and didn't have an equivalent. It invented a keyword that doesn't appear in the entire open source library repo, to control functionality the library doesn't have.


Care to share a chat link?


There is no moat in selling/renting AI models. They are a commoditized product now. I can't imagine with what thought process did investors poured in such money on OpenAI.


Tulip mania is a mania because it short circuits thought.


It's okay to bring some "natural" language in technical communication. It feels more humane. All the whitewashed corporate language, riddled marketing bullshit feels so soul dead.


You can express dissatisfaction and anger „naturally“ without calling people losers and monkeys.


> You can express dissatisfaction and anger „naturally“ without calling people losers and monkeys.

I can't speak for others. But if I am screwing up as badly as GitHub is, I'd rather someone calls me a loser and monkey for it. It's like someone splashing ice cold water on my face and showing me the reality. It's going to be very uncomfortable, yes. But I'll learn from it and try not to screw up so badly again. I find this kind of natural outburst refreshing really.


Imo there is a big difference between insulting a person's work and insulting a person themself. People can and do mess up colossally without being losers or monkeys.


That’s a theoretically admirable attitude if true (I don’t doubt you believe it, and maybe even do it successfully, but often how we react differs from how we think or say we’d react) but definitely not universal. A more common and probable outcome is people clamming up and becoming defensive, actively rejecting the criticism because of how it was delivered.

Though best case scenario, the people working on these features agree and can point their managers to the post as an example of growing discontent. I doubt it’ll have an effect, though. GitHub is now under the AI division at Microsoft.


I think it's a breath of fresh air. Don't want to be called out like this then stop fucking up.


I could try to explain that most jobs are way more nuanced than just 'failing and deserving to be called a monkey' or 'not failing.' Or, I could just call you names for not seeing that, you could call me names back, and we can keep doing this forever.


Your argument is lacking nuance, declaring that the criticism being levied here must be a simple binary.

The specific error they are criticizing is extremely egregious, akin to builder declaring a house without a roof complete. “failing and deserving to be called a monkey” is a criticism being levied against a 0/100 level mistake, not a mere minor mistake as you are claiming.

While it might be desirable to use less colorful language, it is frankly challenging to express the sheer level of grossly incompetent organizational ineptitude on display here in a reviewed and delivered product actively causing negative customer impact for literal years which is trivially fixed and yet has been ignored.

Customers of Github should be infuriated that Github gleefully foists such utterly defective software upon them. It is hard to get that across in dispassionate writing.


Thanks for the thoughtful response.

> Your argument is lacking nuance, declaring that the criticism being levied here must be a simple binary.

That isn't my argument. I am arguing against the idea that there is an "objective" threshold of failure where, once crossed, it becomes acceptable to call people names.

> Customers of Github should be infuriated that Github gleefully foists such utterly defective software upon them. It is hard to get that across in dispassionate writing.

See, while it has its bugs, I don't see a major problem with GitHub as a software product (setting aside the monopoly concerns). I encourage passionate discussion, but calling people names doesn't communicate passion; it communicates impatience. It suggests you don't have the patience to actually make a case for something you're supposedly passionate about, so you're choosing a shorter, more aggressive form instead.


I'm sure getting called a monkey will stop them from ever making a mistake again.


If this was true, teachers and trainers would have the easiest job in the world: just insulting their pupils would stop them from failing an exam, race or whatever again.


The comment is clearly sarcasm.


Not everyone is that robust. People get hurt over things like that. Not everyone is a wizard who does not give a fuck and does not need to care.

These are people for God's sake. Empathy!


Treating grown up people like little kids is a major problem. If that was a stressor which requires defensive actions such as this one, what are you good for in life?


    > These are people for God's sake. Empathy!

One man's empathy is another man's hatred.

From my perspective your take and actions in this thread is itself completely devoid of empathy.

The reason for colorful language breaking through professionalism is because there is real human emotion behind those words. Real pain and suffering, lost time in the life that will never be regained, an ever widening bald spot from the stress. That type of thing yearns to be expressed in a way that generic corpo speak is by design unable to communicate.

Your response to these emotions is to simply stick your head in the sand(aka refuse to read the blog post)? Worse yet, even without that context, you are here trying to convince those around you to also stick their heads in the sand?

To dream up scenarios where theoretical someones in a giant faceless corp might maybe possibly be offended? Instead of trying to listen and understand the person already in front of you who has actually been offended?

Again everything is a matter of perspective, but from mine your comments severely lack the empathy you supposedly call for.


Feeling empathy for their pathetic fragile existence doesn't mean you sympathise with said fragility.


Not being able to control your anger issues and name calling ppl as a public face of your org sounds pretty fragile to me.


I think this is called projection. Not everyone is angry when name calling someone.


Yeah the tone matters.


If people get hurt over that they need to take some courses on building confidence...


Right, those black people who get offended by being called that just need confidence, right? Those LGBT are so sensitive and can’t handle the colorful names we call them! Imagine that. This kind of comment shows how HN commenters can be so incredibly hateful while thinking they are righteous, which is the worst kind of people, it’s the atitude that leads to the most terrible policies and behavior ever seen on this planet.


Or you grow up and see these kinda things within the right context and brush off whats easy to brush off. Obvious racial slurs or discriminating insults towards a whole community is obviously something different. But you sound like the type of person to cancel a comedian over a joke.


People indeed need a thicker skin


Yeah, its rude to actual monkeys - they did nothing wrong!


If he had gone on a rant purely about the product - eg “GitHub actions is a garbage product that never works”, I think that wouldn’t have left such a bad taste in my mouth. Calling the developers all “losers” crosses a line.


Sure. If you feel the need to write "this is shitty code", fair enough, I'm fine with making allowances for that kind of language. But please leave it at that, instead of also insulting the people who wrote it. There are, unfortunately, plenty of ways for bad incentives to result in competent people creating bad products.


that's all well and good but not when it is peddled by you simultaneously in other facets: https://news.ycombinator.com/item?id=46065778


But not when it's against coc


As a corporate drone it's refreshing. Already planning to dedicate some of the holiday season to learning Zig and this latest move only makes it more enticing.


And if he cleaned it up, an even larger number of people would be calling it written with AI.

Shrug.

If he were berating a specific person, I might flag it. Berating Github and Microsoft as an organization? Nah.

Given that CEOs seem to now live in a Post Shame Reality(tm), I'll allow bringing some shame to the situation.


That means you would need to expose your proprietary code and you will be left with no moat.


All of the code seems to be MIT and AGPLv3. Where is this moat?


For any given good solution, there will be a core 20% of prospects with more money than patience and/or capacity who would rather you just do it for them. Their propensity to trust you to do so goes up if they understand how you're going about it.


It's interesting to see hacker news response time reaching almost 2 seconds for this post.


>The longer someone lives, the more potential value they can contribute to a society.

This is questionable. Highly populous countries have worse living conditions than moderately populous ones, currently.


> Highly populous countries have worse living conditions than moderately populous ones, currently.

https://ourworldindata.org/grapher/population-density-vs-pro...

There does not look to be a strong correlation between population density and income, at least on a log-log scale across countries. But I would guess that these numbers hide a trend for cities to be richer than rural areas (subsistence farming etc).


Highly populous countries were colonized and robbed off their resources until recently.


Better living conditions cost more money per family, which leads to less children.


Isn't it Output Power / Input Power which results Q > 1?


Injecting JS into the page or controlling it using extension APIs is not a secure way to control the browser.


I never mentioned injecting JS into the page, and besides injecting LLM generated code or generally remote code won't be approved by the Chrome Store https://developer.chrome.com/docs/extensions/develop/migrate....

Your claim is analogous to saying that Apple's app store is not secure. We had to go through stringent vetting and testing by Google to list in the Chrome Store. Any basis or reasoning you can provide for your claim?

Regardless, its a wild leap to claim a Chrome Store Chrome Extension is more insecure than this arbitrary binary?


Yeah, sorta feels like docker on a new instance is safer than connecting to actual browsers and injecting js code there… would love to skip cdp protocol though, it’s quite restrictive


Are you making a straw man argument? I am not injecting js code, we solved this problem in a secure way with minimal permissions taken by our Chrome Extension, which runs in safe and secure sandbox within the browser.

Perhaps we are talking past each other, your literally giving instructions to your users to connect to their actual browsers: https://docs.browser-use.com/customize/real-browser Where under the hood your launching Chrome with debugging mode but with the user's credentials and passwords. This browser is then controlled via CDP by a highly insecure browser-use binary running in a container. Your users are bound to get pwned with this setup! https://github.com/browser-use/browser-use/blob/70ae758a3bfa...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: