? Curious Hacker Newsfront | about | view on HN unofficial mirror
Postgres 19 is late because so many more bugs are being found now (rhaas.blogspot.com)
788 points by soheilpro 2026-10-31 | 435 comments | side by side | 96 rewritten | show 30 removed | updated 19:02 UTC
 help



This is a good thing. Repaying technical debt is always a great thing.

On our own 1.5M loc system, we've found and fixed thousands of bugs, security holes and circular dependencies in the last year. Code quality has increased, test coverage increased. We've also recently set our compiler to treat warnings as errors, and to be as strict as possible. It is absolutely amazing to see the gaps being filled, it would've been an impossible task for human devs and IDE's would've made it very uncomfortable. We've also ironed out all the bugs and failure modes in our infrastructure automation / monitoring. Our next project is to eliminate all 3rd party dependencies, and after that to rebuild our frontends completely using zero frameworks, not touching npm ever again after that.

So when I read this about postgres, I was very happy that they found and pursued this side quest. They can make the codebase bullet proof.

This is a good thing. Repaying technical debt is always a great thing.

On our own 1.5M loc system, we've found and fixed thousands of bugs, security holes and circular dependencies in the last year. Code quality has increased, test coverage increased. We've also recently set our compiler to treat warnings as errors, and to be as strict as possible. It is absolutely amazing to see the gaps being filled, it would've been an impossible task for human devs and IDE's would've made it very uncomfortable. We've also ironed out all the bugs and failure modes in our infrastructure automation / monitoring. Our next project is to eliminate all 3rd party dependencies, and after that to rebuild our frontends completely using zero frameworks, not touching npm ever again after that.

So when I read this about postgres, I was very happy that they found and pursued this side quest. They can make the codebase bullet proof.

First-hand account of large-scale bug fixing on a 1.5M-line codebase.

Avoiding 3rd party libraries seems like a false sense of security. You’ll stop seeing CVEs on the scanner reports, but the bugs are still there, just in your own code that is less well audited than public libraries.

Avoiding 3rd party libraries seems like a false sense of security. You’ll stop seeing CVEs on the scanner reports, but the bugs are still there, just in your own code that is less well audited than public libraries.

Substantive counterargument about dependency removal.
BatteryMountain 2026-11-02 09:577/10first_handinformative | root | parent | next [–]

I understand, but I would argue its better to have an in-house 1K lines of code that only does what we need and nothing else, it well tested and under our control, than to depend on some 50K lines of code (of which we might only use 10% of functionality and the others just getting in the way) that random's on the internet can modify, sometimes pulling in transient dependencies that we would really not have in a server environment, telemetry and other gremlins. It goes without saying that opensource packages will become even more juicy targets for malware/hackers to get into your systems like we've seen in the past month (and it will only become worse - you will be forced to pay technical debt or die).

The only "third-party" packages that we want to ideally allow/support would be provided from LTS versions of our runtime (in this case, packages provided by the dotnet team and audited by microsoft). So we will always try to build around what the framework provides. Second choice is our own code, third choice is open-source packages, fouth choice is a separate application/appliance (lets say ZenDesk for ticketing). Over time, we will reduce this footprint to only have dotnet team code and our own.

Remember most CVE's can be hidden on servers that are not publicly routable and don't have a real exploitation paths. The bits that are public (lets say a linux edge server with a web server on it, some firewalls, a couple of open ports) - these should be hardened to the max and not allow full access to all the services running behind it. We don't even give our internal services public IP addresses to make near impossible to route traffic to them.

Our git repo's are also not on public infrastructure (serious, think carefully about hosting on public services and if you really need it), never mind making the repo public.

We also have a dedicated secrets/certs manager, so no credentials are in codebases or pipelines. Very strict in this regard.

I understand, but I would argue its better to have an in-house 1K lines of code that only does what we need and nothing else, it well tested and under our control, than to depend on some 50K lines of code (of which we might only use 10% of functionality and the others just getting in the way) that random's on the internet can modify, sometimes pulling in transient dependencies that we would really not have in a server environment, telemetry and other gremlins. It goes without saying that opensource packages will become even more juicy targets for malware/hackers to get into your systems like we've seen in the past month (and it will only become worse - you will be forced to pay technical debt or die).

The only "third-party" packages that we want to ideally allow/support would be provided from LTS versions of our runtime (in this case, packages provided by the dotnet team and audited by microsoft). So we will always try to build around what the framework provides. Second choice is our own code, third choice is open-source packages, fouth choice is a separate application/appliance (lets say ZenDesk for ticketing). Over time, we will reduce this footprint to only have dotnet team code and our own.

Remember most CVE's can be hidden on servers that are not publicly routable and don't have a real exploitation paths. The bits that are public (lets say a linux edge server with a web server on it, some firewalls, a couple of open ports) - these should be hardened to the max and not allow full access to all the services running behind it. We don't even give our internal services public IP addresses to make near impossible to route traffic to them.

Our git repo's are also not on public infrastructure (serious, think carefully about hosting on public services and if you really need it), never mind making the repo public.

We also have a dedicated secrets/certs manager, so no credentials are in codebases or pipelines. Very strict in this regard.

Detailed explanation of a dependency and hardening policy.

> Remember most CVE's can be hidden on servers that are not publicly routable and don't have a real exploitation paths.

The thinking of "it's inside so we're safe(r) from attacks" is a false sense of security, as (e.g.) Maersk learned with NotPetya:

* https://www.wired.com/story/notpetya-cyberattack-ukraine-russia-code-crashed-the-world/

* https://archive.is/Amlij

From the year 2000:

   NAT (particularly NAPT) actually has the potential to lower overall
   security because it creates the illusion of a security barrier, but
   does so without the managed intent of a firewall.  Appropriate
   security mechanisms are implemented in the end host, without reliance
   on assumptions about routing hacks, firewall filters, or missing NAT
   translations, which may change over time to enable a service to a
   neighboring host.  In general, defined security barriers assume that
   any threats are external, leading to practices that make internal
   breaches much easier.

* https://datatracker.ietf.org/doc/html/rfc2993#section-9

> Remember most CVE's can be hidden on servers that are not publicly routable and don't have a real exploitation paths.

The thinking of "it's inside so we're safe(r) from attacks" is a false sense of security, as (e.g.) Maersk learned with NotPetya:

* https://www.wired.com/story/notpetya-cyberattack-ukraine-russia-code-crashed-the-world/

* https://archive.is/Amlij

From the year 2000:

   NAT (particularly NAPT) actually has the potential to lower overall
   security because it creates the illusion of a security barrier, but
   does so without the managed intent of a firewall.  Appropriate
   security mechanisms are implemented in the end host, without reliance
   on assumptions about routing hacks, firewall filters, or missing NAT
   translations, which may change over time to enable a service to a
   neighboring host.  In general, defined security barriers assume that
   any threats are external, leading to practices that make internal
   breaches much easier.

* https://datatracker.ietf.org/doc/html/rfc2993#section-9

A well-sourced rebuttal citing NotPetya and RFC 2993.

> it's inside so we're safe(r) from attacks

Kind of works until the TV, the fridge, a user's BYOD or your printer has infiltrated your LAN.

So it kind of doesn't.

> it's inside so we're safe(r) from attacks

Kind of works until the TV, the fridge, a user's BYOD or your printer has infiltrated your LAN.

So it kind of doesn't.

Concrete examples of how internal networks get compromised.

> on some 50K lines of code

also some 3rd party libraries are overdesigned/overcomplicated because everybody wants the library to do everything for everybody.

This overcomplication can easily introduce security problems that is not present in the 1K solution.

> on some 50K lines of code

also some 3rd party libraries are overdesigned/overcomplicated because everybody wants the library to do everything for everybody.

This overcomplication can easily introduce security problems that is not present in the 1K solution.

Adds the point that overdesigned libraries carry security risk.

Thinking about Log4J here. The vulnerability was with an obscure functionality that I’ve never seen used. Sometimes simpler is safer.

Of course, sometimes simpler is “I stored the passwords unhashed”, so you have to find the middle ground.

Thinking about Log4J here. The vulnerability was with an obscure functionality that I’ve never seen used. Sometimes simpler is safer.

Of course, sometimes simpler is “I stored the passwords unhashed”, so you have to find the middle ground.

Gives a concrete Log4J example plus a balanced caveat.

Log4J is a really good example. You have to rely on the taste of the maintainers to not just include endless additional features.

Log4J is a really good example. You have to rely on the taste of the maintainers to not just include endless additional features.

Builds on the Log4J example with a point about maintainers' restraint with features.

jackson-databind too

jackson-databind too

Brief, but it adds a relevant second example of vulnerabilities in rarely used library features.

> overdesigned/overcomplicated because everybody wants the library to do everything for everybody.

Also a source of significant dependency churn even excluding security bugs.

Whereas with my own code I don't have to worry about scheduling work that's only arisen because somebody outside my organisation has decided to make a breaking change in a dependency. Paying that tax got old over a decade ago, and my patience with it now is close to zero.

> overdesigned/overcomplicated because everybody wants the library to do everything for everybody.

Also a source of significant dependency churn even excluding security bugs.

Whereas with my own code I don't have to worry about scheduling work that's only arisen because somebody outside my organisation has decided to make a breaking change in a dependency. Paying that tax got old over a decade ago, and my patience with it now is close to zero.

Adds the cost of dependency churn as another reason to write your own code.
BatteryMountain 2026-11-02 10:36 | removed0/10low_effort | root | parent | prev | next [–]

100% our thinking too.

100% our thinking too.

Bare agreement with no added content.
spry_gannet5 2026-11-02 11:14 | rewritten3/10low_effortsnark | original | root | parent | prev [–]

OpenSSL is a good example of this.

original comment by raverbashing

cough OpenSSL cough

The joke format hides a real example, so it's restated plainly.

OpenSSL has had its problems, but I doubt cryptographers would agree that having every company vibecode its own bespoke in-house replacement would improve security across the industry. That would mean many more unreviewed implementations instead of one heavily scrutinized one.

original comment by kibwen

As every cryptographer will surely agree, having every company vibecode their own bespoke in-house replacement to OpenSSL will be a great improvement to security across the industry.

Sarcasm hid a real point about the risks of bespoke crypto, so the rewrite states it plainly.

No need, just use any of the other libraries

No need, just use any of the other libraries

Short, but it makes a real counterpoint: companies can use existing alternative crypto libraries instead of writing their own.

The purpose of the above comment is to highlight the flaw in the original premise. Surely we all agree that we would rather not be using a vibecoded cryptography library. But why is cryptography special? Why stop there? I would also rather not be using a vibecoded regex library, or a vibecoded codec parser, or a vibecoded web framework, etc.

The point being, if you weren't committed to maintaining your own implementation of a library before the advent of LLMs, having access to LLMs does not fundamentally change the calculus. The ability to generate code more quickly does not automatically grant an organization the capacity to maintain more code.

The purpose of the above comment is to highlight the flaw in the original premise. Surely we all agree that we would rather not be using a vibecoded cryptography library. But why is cryptography special? Why stop there? I would also rather not be using a vibecoded regex library, or a vibecoded codec parser, or a vibecoded web framework, etc.

The point being, if you weren't committed to maintaining your own implementation of a library before the advent of LLMs, having access to LLMs does not fundamentally change the calculus. The ability to generate code more quickly does not automatically grant an organization the capacity to maintain more code.

A clear, good-faith argument that faster code generation doesn't give an organization more capacity to maintain code.

I would rather let someone else pay the price of maintaining 50k lines of code than to pay the technical debt of 1k loc myself.

I would rather let someone else pay the price of maintaining 50k lines of code than to pay the technical debt of 1k loc myself.

This is a brief but genuine disagreement about where the maintenance burden should fall.

[flagged]
gwbas1c 2026-11-02 14:388/10first_handinformative | root | parent | prev | next [–]

It really depends on what the product is, what the 3rd party library is used for, and what the alternative is. Unfortunately, some people are too biased towards using 3rd party libraries and don't understand the tradeoffs.

For example, a few years ago I removed a rather large 3rd party mathematics library because we were only using it for a single mathematical function that was very easy to replicate.

Remember, 3rd party libraries need to:

1: Be periodically audited to make sure you are in compliance with the license terms, and preferences of your company.

(1.5: This becomes important during an acquisition as someone will always come around doing due diligence.)

2: Be periodically updated (in case of security bugs)

2.5: Be updated on short notice when a security issue is revealed.

In the case of the mathematics library, replacing it with roughly 20 lines of code and 100 lines of tests is a significantly better tradeoff than constantly reviewing it every time one of the above things happens.

Now, at what point is it "worth it" to use the 3rd party library? In our case we'd need to make much heavier use of the library, probably at least 20 different mathematical functions from it.

It really depends on what the product is, what the 3rd party library is used for, and what the alternative is. Unfortunately, some people are too biased towards using 3rd party libraries and don't understand the tradeoffs.

For example, a few years ago I removed a rather large 3rd party mathematics library because we were only using it for a single mathematical function that was very easy to replicate.

Remember, 3rd party libraries need to:

1: Be periodically audited to make sure you are in compliance with the license terms, and preferences of your company.

(1.5: This becomes important during an acquisition as someone will always come around doing due diligence.)

2: Be periodically updated (in case of security bugs)

2.5: Be updated on short notice when a security issue is revealed.

In the case of the mathematics library, replacing it with roughly 20 lines of code and 100 lines of tests is a significantly better tradeoff than constantly reviewing it every time one of the above things happens.

Now, at what point is it "worth it" to use the 3rd party library? In our case we'd need to make much heavier use of the library, probably at least 20 different mathematical functions from it.

First-hand example with a concrete list of the costs of maintaining a dependency.

I’d be happy to bet with you if I rolled my own log4j I would have never implemented jndi as a formatting argument.

Sure I shouldn’t roll my own crypto but I can write a logger…

I’d be happy to bet with you if I rolled my own log4j I would have never implemented jndi as a formatting argument.

Sure I shouldn’t roll my own crypto but I can write a logger…

Uses log4j as a concrete example of library feature bloat causing a vulnerability.

Logging is a very complicated security area. You often get sensitive data in the logs and it gets sent across the network to monitoring servers.

Also any part of the program can send data to the logger. This means the logger can receive malicious payloads from anywhere. Maybe your logger handles ascii control characters badly?

Logging is a very complicated security area. You often get sensitive data in the logs and it gets sent across the network to monitoring servers.

Also any part of the program can send data to the logger. This means the logger can receive malicious payloads from anywhere. Maybe your logger handles ascii control characters badly?

Explains concretely why logging is security-sensitive, including leaked sensitive data and untrusted input.

I dunno I pretty much always wrote my own logger. Not even a shared library or anything just copypaste into next project or often don't even bother with that, just knock something out on the spot. Even before AI.

The only even slightly tricky part is like "don't mess unicode up", rest is straightforward. Sure it can be complicated with logging sinks, configurability, when to flush, monitoring and so on but in many cases you just don't need all that. You just build it whenever you do need it.

I dunno I pretty much always wrote my own logger. Not even a shared library or anything just copypaste into next project or often don't even bother with that, just knock something out on the spot. Even before AI.

The only even slightly tricky part is like "don't mess unicode up", rest is straightforward. Sure it can be complicated with logging sinks, configurability, when to flush, monitoring and so on but in many cases you just don't need all that. You just build it whenever you do need it.

A good-faith first-hand counterpoint saying simple loggers are easy to write, though it skips the security concerns the parent raised.

Many log4j deployments, possibly the majority, don't need to ship logs to monitoring servers at all, so they carry that complexity and attack surface for nothing.

original comment by varjag

Imagine that you don't need monitoring servers, like possibly the majority of actual log4j deployments?

Rewrites the rhetorical 'imagine' framing as a direct claim about unneeded features.

And probably more importantly, AI can write a very simple logger with no extra features than you absolutely need in 5 minutes, if that.

And probably more importantly, AI can write a very simple logger with no extra features than you absolutely need in 5 minutes, if that.

Short but relevant point that a minimal logger is now cheap to produce.
lunar_raven73 2026-11-02 15:28 | rewritten3/10low_effortsnark | original | root | parent | prev [–]

Being able to write your own logger is a different question from whether you should.

original comment by devin

Can, or should?

The terse jab hides a real point, that being able to do something isn't the same as it being wise, so it's stated plainly.

I can’t be bothered to check the exact assembly to see if timing attacks are possible.

But crypto really is just a small thing. I’m not going to design a nuclear reactor but I’ll definitely do stuff that depends on the electricity from one. Similarly one can still do their own authentication; its not like even Apple forgot to rate limit…

I can’t be bothered to check the exact assembly to see if timing attacks are possible.

But crypto really is just a small thing. I’m not going to design a nuclear reactor but I’ll definitely do stuff that depends on the electricity from one. Similarly one can still do their own authentication; its not like even Apple forgot to rate limit…

A blunt but real argument: low-level crypto primitives are a narrow specialty, while building your own authentication is still reasonable, with Apple's missing rate limit as an example.

I'd argue the reverse: using 3rd party libraries can give a false sense of security.

> just in your own code that is less well audited than public libraries

Public libraries change all the time, get deprecated, get handed off to new maintainers and get hit by supply-chain attacks, so I'm not convinced they're well audited.

original comment by VMG

Using 3rd party libraries is a false sense of security

> just in your own code that is less well audited than public libraries

why do you think public libraries, which change all the time, get deprecated, handed off and supply-chain attacked are well-audited in any way?

Turned the retort and rhetorical question into a plain statement of the disagreement.

[flagged]

It has been proofed again and again that you cannot trust npm/cargo not even AUR, implement you own minimalist functionality without dependencies and just for you own needs seems to be a much better solution.

It has been proofed again and again that you cannot trust npm/cargo not even AUR, implement you own minimalist functionality without dependencies and just for you own needs seems to be a much better solution.

Short but substantive position on package ecosystem trust.

You’re probably right about some third party libraries, but not about all or even most of them. Package repositories are full of half baked packages that are the result of a single person scratching their own itch once upon a time and thereafter forgetting about it. The more harmful part happens when those get imported into other third party libraries that give the image of being better supported. Supply chain attacks are the new null pointer.

You’re probably right about some third party libraries, but not about all or even most of them. Package repositories are full of half baked packages that are the result of a single person scratching their own itch once upon a time and thereafter forgetting about it. The more harmful part happens when those get imported into other third party libraries that give the image of being better supported. Supply chain attacks are the new null pointer.

A substantive disagreement that points out abandoned packages and transitive dependencies as a supply-chain risk.

For database programs, I would disagree, this should never become something like the nodejs ecosystem.

For database programs, I would disagree, this should never become something like the nodejs ecosystem.

A brief but real disagreement saying database software shouldn't copy the dependency-heavy Node.js ecosystem.

I personally only rely on 3rd party libraries that are complete. I will never use a library that gets consistant feature updates. I do make an exception for openssl rusttls and whatnot since they have to update by design.

I personally only rely on 3rd party libraries that are complete. I will never use a library that gets consistant feature updates. I do make an exception for openssl rusttls and whatnot since they have to update by design.

A sincere description of the commenter's own dependency policy, which adds a practical angle to the parent's point.

on the other hand you are not exposed to supply chain attacks

on the other hand you are not exposed to supply chain attacks

Brief but valid tradeoff point.

Well, the AI model is your supply chain in this case.

Well, the AI model is your supply chain in this case.

A sharp point that the model itself becomes the supply chain.

most model providers have a direct financial incentive to make sure that the code that is produced is not backdoored

most model providers have a direct financial incentive to make sure that the code that is produced is not backdoored

A short but real counterpoint about the incentives model providers have.

I mean that is true for anyone that sells software. That doesn't mean it's not a hard problem.

I mean that is true for anyone that sells software. That doesn't mean it's not a hard problem.

Brief but fair point that a financial incentive doesn't make the problem easy.

If you reduce the amount of code/code paths you reduce the surface area that vulnerabilities can appear on. A code base with 10 million lines can have a lot more bugs than one with 100k.

If you reduce the amount of code/code paths you reduce the surface area that vulnerabilities can appear on. A code base with 10 million lines can have a lot more bugs than one with 100k.

A reasonable counterargument that less code means less attack surface, which pushes back on the parent in good faith.

Two edged sword. That means the bots also have a library of exploits to try for the components used in your project.

Two edged sword. That means the bots also have a library of exploits to try for the components used in your project.

A brief but real counterpoint: when known library vulnerabilities are public, automated attackers have ready-made exploits to try.

3rd party libraries are attack vectors and if like many many people you’re only using one or two functions then it’s much better to get rid of them.

3rd party libraries are attack vectors and if like many many people you’re only using one or two functions then it’s much better to get rid of them.

A brief but real point about attack surface.

Agreed. It’s the modern security through obscurity.

Security through obscurity protects you from low effort vulnerability scanners.

It makes you more vulnerable to a sophisticated targeted attack. A competent hacker or AI will quickly find vulnerabilities in your custom libraries.

Agreed. It’s the modern security through obscurity.

Security through obscurity protects you from low effort vulnerability scanners.

It makes you more vulnerable to a sophisticated targeted attack. A competent hacker or AI will quickly find vulnerabilities in your custom libraries.

Draws a reasonable analogy to security through obscurity and explains how it plays out.

I would like to agree too but there's a genuine new debate here, with LLMs/agents, the storm of CVEs, supply chain attacks, AI assisted social engineering, etc, some custom code doing the minimal required task might be a better security posture than picking a popular library.

I don't know were it will leave us in the long term and I don't think I'll like the answer.

I would like to agree too but there's a genuine new debate here, with LLMs/agents, the storm of CVEs, supply chain attacks, AI assisted social engineering, etc, some custom code doing the minimal required task might be a better security posture than picking a popular library.

I don't know were it will leave us in the long term and I don't think I'll like the answer.

Thoughtfully raises a real counterpoint about whether minimal custom code is now a better security posture than popular libraries.

Public software is going to be attacked by many more dollars of AI time than internal stuff. In a year the library code will definitely be more secure against the next X dollars spent on cracking it.

Public software is going to be attacked by many more dollars of AI time than internal stuff. In a year the library code will definitely be more secure against the next X dollars spent on cracking it.

A substantive argument that public libraries get far more scrutiny than internal code.

> ...some custom code doing the minimal required task might be a better security posture than picking a popular library.

Only where the AI solution is verifiable by the dev doing the promoting and review. Cryptography is probably better served by libraries vetted by experts.

> ...some custom code doing the minimal required task might be a better security posture than picking a popular library.

Only where the AI solution is verifiable by the dev doing the promoting and review. Cryptography is probably better served by libraries vetted by experts.

A sensible caveat about verifiability, with cryptography as the example.

Cryptography is certainly a valid exception. But for how long? Two years? Three? At some point even that will fall.

Cryptography is certainly a valid exception. But for how long? Two years? Three? At some point even that will fall.

Brief speculation, but on topic.

If a human cannot verify it then why should it get the highest possible level of trust?

That would be like investing in things one doesn't understand for themselves.

If a human cannot verify it then why should it get the highest possible level of trust?

That would be like investing in things one doesn't understand for themselves.

A short but real good-faith argument that output humans can't verify shouldn't get the highest level of trust.

> A competent hacker or AI will quickly find vulnerabilities in your custom libraries.

So why wouldn’t a competent AI find those vulnerabilities during development? I don’t think the proposal is to have human devs hand write the custom libraries and yolo into prod.

> A competent hacker or AI will quickly find vulnerabilities in your custom libraries.

So why wouldn’t a competent AI find those vulnerabilities during development? I don’t think the proposal is to have human devs hand write the custom libraries and yolo into prod.

Directly challenges the parent's claim with a fair argument that AI can also be used to find bugs during development.

Swords and shields. The advantage of the defender is that they have access to the code (usually not available to attackers). The advantage of the attacker is that they have skill and nowadays the most up-to-date models and SOPs for finding attack vectors.

Swords and shields. The advantage of the defender is that they have access to the code (usually not available to attackers). The advantage of the attacker is that they have skill and nowadays the most up-to-date models and SOPs for finding attack vectors.

Lays out the asymmetry between defenders and attackers.

Also the defender has to be right every time, the attacker just has to be right once.

(Defence in depth does mitigate this somewhat. The attacker has to be right two or three times)

Also the defender has to be right every time, the attacker just has to be right once.

(Defence in depth does mitigate this somewhat. The attacker has to be right two or three times)

Familiar but relevant point about the attacker/defender asymmetry and defense in depth.

> So why wouldn’t a competent AI find those vulnerabilities during development?

It probably would. Except it’s internal, and not a reportable CVE, so the fix will be deferred.

> So why wouldn’t a competent AI find those vulnerabilities during development?

It probably would. Except it’s internal, and not a reportable CVE, so the fix will be deferred.

A sharp point that internal findings don't get the urgency CVEs do.

[flagged]

in theory, a company running custom software should be able to invest many more hours into running those same AI with "white-box" pen-testing (assuming hyperscalers actually start allowing this). An attacker would have to be willing to outspend the company (or get very lucky). If an attacker is resourced well enough to put that investment into owning a single company, you probably don't stand much chance reguardless.

in theory, a company running custom software should be able to invest many more hours into running those same AI with "white-box" pen-testing (assuming hyperscalers actually start allowing this). An attacker would have to be willing to outspend the company (or get very lucky). If an attacker is resourced well enough to put that investment into owning a single company, you probably don't stand much chance reguardless.

Offers a substantive cost argument about defenders versus attackers using AI pen-testing.

Also, the attacker would have to run black box against the live environment which is much more difficult and likely to be noticed than offline white box.

Also, the attacker would have to run black box against the live environment which is much more difficult and likely to be noticed than offline white box.

Adds a real point about black-box attacks being more detectable.

I feel like security by obfuscation might actually be valuable in the age of llm attacks

I feel like security by obfuscation might actually be valuable in the age of llm attacks

Brief but arguable idea relevant to the thread.

Not having access to the source is certainly a disadvantage for LLMs, though I saw an article the other day about a model running a disassembler on the binary, from that reconstructing the roughly equivalent C, and finally analyzing that. So, even if the binary is available there are paths.

Not having access to the source is certainly a disadvantage for LLMs, though I saw an article the other day about a model running a disassembler on the binary, from that reconstructing the roughly equivalent C, and finally analyzing that. So, even if the binary is available there are paths.

Informative about LLMs decompiling binaries to analyze them.

Yes but that's not entirely obfuscation, see ie what google does to their proprietary endpoints through protobuff. Something like that but on steroids could skip the majority of attackers using LLM scanners.

Yes but that's not entirely obfuscation, see ie what google does to their proprietary endpoints through protobuff. Something like that but on steroids could skip the majority of attackers using LLM scanners.

Suggests heavier obfuscation as a defense against LLM scanners.

I think avoiding all 3rd party libraries is excessive, but engineering is about tradeoffs. In the extreme case, do you pull in a LeftPad dependency or write it yourself?

I think avoiding all 3rd party libraries is excessive, but engineering is about tradeoffs. In the extreme case, do you pull in a LeftPad dependency or write it yourself?

A reasonable point about engineering tradeoffs.

It also depends on whether “avoid” means a strong preference against or a rigid doctrine to never use no matter what.

It also depends on whether “avoid” means a strong preference against or a rigid doctrine to never use no matter what.

A useful clarification about what 'avoid' means.

One problem I’ve seen with third-party libraries, especially in the JS ecosystem, is that to fix a CVE, you often need to jump a major version or three, and that entails quite a bit of work to adapt to breaking changes. Porting a fix back on your own and keeping your own fork is the same as supporting a first-party library, except it’s not really first party, and you’re not familiar with its innards.

One problem I’ve seen with third-party libraries, especially in the JS ecosystem, is that to fix a CVE, you often need to jump a major version or three, and that entails quite a bit of work to adapt to breaking changes. Porting a fix back on your own and keeping your own fork is the same as supporting a first-party library, except it’s not really first party, and you’re not familiar with its innards.

Points out the real cost of CVE fixes forcing major version jumps.
fhn 2026-11-02 16:372/10low_effort | root | parent | prev | next [–]

but public libraries can also be audited because they are public

but public libraries can also be audited because they are public

A brief but real point that public libraries are open to outside auditing; it adds little to what the parent already said.

Similar to distroless containers & statically linking all dependencies

Similar to distroless containers & statically linking all dependencies

Draws a brief analogy to related practices.
traceroute66 2026-11-02 11:598/10informativeinsightful | root | parent | prev | next [–]

> Avoiding 3rd party libraries seems like a false sense of security

To be fair, there is more nuance to your statement.

A lot of it depends on your programming language.

For example with Go, with its extensive and excellent stdlib, you would be foolish to rely on large swathes of 3rd party libraries, because so much can and should be done using the Go stdlib.

On the opposite end of the spectrum, you have Rust with an effectively non-existent stdlib.

And the problem you see frequently with Rust is projects importing half the internet, with a Cargo.toml the length of your arm with hundreds of dependencies. Of course the project has never reviewed its dependencies source code, and the project probably barely keeps its dependencies up to date. Its a supply-chain attack waiting to happen, not if but when.

So with languages like Rust, you have to take an approach of "minimal reasonable dependencies", make an active effort to keep your dependency list short and in-control.[1][2]

> less well audited than public libraries

I also struggle with this particular argument because the reality in open source is "well, its open-source, it has many eyes" is in fact mostly a dream. Since we all know 99% of the time its a small group of maintainers (assuming there is are even multiple maintainers[3]) and not many (if any) external reviewers.

[1] https://tweedegolf.nl/en/blog/119/sudo-rs-depencencies-when-less-is-better/ [2] https://tweedegolf.nl/en/blog/104/dealing-with-dependencies-in-rust/ [3] https://xkcd.com/2347/

> Avoiding 3rd party libraries seems like a false sense of security

To be fair, there is more nuance to your statement.

A lot of it depends on your programming language.

For example with Go, with its extensive and excellent stdlib, you would be foolish to rely on large swathes of 3rd party libraries, because so much can and should be done using the Go stdlib.

On the opposite end of the spectrum, you have Rust with an effectively non-existent stdlib.

And the problem you see frequently with Rust is projects importing half the internet, with a Cargo.toml the length of your arm with hundreds of dependencies. Of course the project has never reviewed its dependencies source code, and the project probably barely keeps its dependencies up to date. Its a supply-chain attack waiting to happen, not if but when.

So with languages like Rust, you have to take an approach of "minimal reasonable dependencies", make an active effort to keep your dependency list short and in-control.[1][2]

> less well audited than public libraries

I also struggle with this particular argument because the reality in open source is "well, its open-source, it has many eyes" is in fact mostly a dream. Since we all know 99% of the time its a small group of maintainers (assuming there is are even multiple maintainers[3]) and not many (if any) external reviewers.

[1] https://tweedegolf.nl/en/blog/119/sudo-rs-depencencies-when-less-is-better/ [2] https://tweedegolf.nl/en/blog/104/dealing-with-dependencies-in-rust/ [3] https://xkcd.com/2347/

Gives a well-sourced comparison of dependency risk across languages, with relevant links.

I don't think it's a false sense of security; it's a different scenario with different trade-offs.

You mitigate the risk of a library being sold to a malicious third party, avoid the risk of your supply chain being hacked, avoid API/behaviour breaks, etc.

The trade-off is that you have to maintain it.

That's why the dotnet ecosystem is so loved: MS provides 90% of the libraries you need, so you avoid depending on third parties maintained by a single person.

original comment by tester756

>Avoiding 3rd party libraries seems like a false sense of security.

What a bullshit.

It's different scenario, different trade offs.

You mitigate risk of library being sold to malicious 3rd party, you avoid risk of your supply chain being hacked, you avoid API/behaviour breaks, etc.

The trade off is that you have to maintain it.

That's why dotnet's ecosystem is so loved due to MS providing 90% of needed libraries, so you avoid some 3rd parties maintained by single person.

Removed the expletive dismissal and kept the trade-off argument.

Agreed. What the code will be doing also matters, along with how much extra functionality you'll never use (extra attack surface) you take on by importing library after library. Often writing the functionality yourself is a very good choice.

original comment by abc123abc123

This is the way! What also affects the decision is what the code will be doing, and how much extra functionality that you will never use (extra attack surface) you will get by importing external library after library.

Often it can be a very good choice to write the functionality yourself and not rely on external libraries.

Removes the cheerleading opener and keeps the attack-surface point.

Same approach here.

And since we now have coding assistants, maintaining in-house costs near nothing now. Nobody else can break us, only ourselves.

Same approach here.

And since we now have coding assistants, maintaining in-house costs near nothing now. Nobody else can break us, only ourselves.

A clear claim that coding assistants make in-house code cheaper to maintain.

Our next project is to eliminate all 3rd party dependencies...

Just remember the golden rule of crypto is to never fool yourself into thinking you can write your own crypto libraries.

Our next project is to eliminate all 3rd party dependencies...

Just remember the golden rule of crypto is to never fool yourself into thinking you can write your own crypto libraries.

A short but relevant warning that dropping every third-party dependency shouldn't extend to writing your own cryptography.

Now this is how companies should be using AI. Not as an excuse to fire half the devs. Less bugs, less failures, better experience for everyone.

Now this is how companies should be using AI. Not as an excuse to fire half the devs. Less bugs, less failures, better experience for everyone.

Brief but sincere opinion about good AI usage.

We haven't fired a single person yet due to AI. We just save everyone time, make input more accurate, make our accountants better, manage our technicians and jobcards better and so on. We also made our system bullet proof to the point that we only had one weekend failure in the last 24 months, and it wasn't our fault (a third party dependency did a large deployment on a friday night). Our system is now deeply "boring" and its awesome.

We haven't fired a single person yet due to AI. We just save everyone time, make input more accurate, make our accountants better, manage our technicians and jobcards better and so on. We also made our system bullet proof to the point that we only had one weekend failure in the last 24 months, and it wasn't our fault (a third party dependency did a large deployment on a friday night). Our system is now deeply "boring" and its awesome.

Concrete first-hand experience of AI use without layoffs.

Oof, we are 1/2 the size we used to be so we can do more with less. We're doing more but with half the people there are still so many gaps that I'm quitting myself out of frustration.

Oof, we are 1/2 the size we used to be so we can do more with less. We're doing more but with half the people there are still so many gaps that I'm quitting myself out of frustration.

A first-hand counterpoint about headcount cuts.
brazukadev 2026-11-02 16:56 | removed0/10low_effort | root | parent | prev | next [–]

I wish I could work in a place like that! Any open position? :)

Let's hope this is the future of Software Development. There is so much to create yet.

I wish I could work in a place like that! Any open position? :)

Let's hope this is the future of Software Development. There is so much to create yet.

It only says the commenter would like a job there and is hopeful, with nothing substantive to add.
elcritch 2026-11-02 09:26 | removed0/10low_effort | root | parent | prev [–]

Congrats, that's awesome.

Congrats, that's awesome.

Just congratulations, with nothing else added.

Perhaps the ultimate use case would be to use AI to scan, debug and find issues etc, but never to generate new code. Still have humans writing and understanding everything, keeping things as clean and concise as possible.

Perhaps the ultimate use case would be to use AI to scan, debug and find issues etc, but never to generate new code. Still have humans writing and understanding everything, keeping things as clean and concise as possible.

Reasonable proposal about dividing AI and human roles.
keen_ibex44 2026-11-02 09:35 | rewritten4/10ideological | original | root | parent | next [–]

That would be a great outcome for our brains, but too much money has gone into this business for that to happen. I believe they'll push for SWE layoffs by positioning LLM-based agents as a cost-efficient alternative to human programmers, which I think is short-sighted, but that's the strategy.

original comment by benterix

It would be great net result for our brains, however too much money has been poured into this business to give up on that. My belief they will push for SWE layoffs trying to position LLM-based agents as a cost efficient alternative to human programmers. Which is extremely stupid and short-sighted but that's the strategy.

Keeps the prediction and drops the inflammatory wording.

They will learn certain lessons the hard way for sure. As much as I want to spin up 100 agents in a loop on our codebase and let them loose, I also know its not feasible as they can easily go down the wrong rabbit holes or over-engineer the wrong solution. They are amazing but cannot be left 100% autonomous just yet.

They will learn certain lessons the hard way for sure. As much as I want to spin up 100 agents in a loop on our codebase and let them loose, I also know its not feasible as they can easily go down the wrong rabbit holes or over-engineer the wrong solution. They are amazing but cannot be left 100% autonomous just yet.

Practical caveat about how far agents can be left to run on their own.
vivid_sparrow94 2026-11-02 14:34 | rewritten3/10snarkquestion | original | root | parent [–]

> just yet.

How long do you think it will be before agents can be left fully autonomous? And what do you think that means for developer careers like ours?

original comment by 0c3ca83

> just yet.

How long, in your estimates, do you think you have before your career ends?

The jab about the commenter's career is gone, and the genuine question about the timeline stays.

I don't think there's one homogeneous "them" with a single strategy. Companies will do different things, just like they did with mobile, the internet, and computers in general. Some strategies will work, some will fail.

original comment by brookst

Who’s “them” and is there really one homogenous strategy?

Companies will do different things, just like they did with mobile, the internet, and computers in general.

Some strategies will work, some will fail.

Rhetorical jab removed; the point that company strategies vary is kept.

Literally half of the work we did the last 12 months was this. Refactor and fix, performance improvements, security hole fillings etc. We have one or two devs doing visible feature work, the rest of us is making the system rock solid.

Literally half of the work we did the last 12 months was this. Refactor and fix, performance improvements, security hole fillings etc. We have one or two devs doing visible feature work, the rest of us is making the system rock solid.

First-hand description of a team focused on hardening its system.

The only companies who will really need to fire are the big tech companies who hired just because, for empire building, or to keep talent out of competitor's hands. Nearly everyone else is actually positioned to leverage AI to now compete against the bigger players. I'm already seeing small companies have a big surge.

The only companies who will really need to fire are the big tech companies who hired just because, for empire building, or to keep talent out of competitor's hands. Nearly everyone else is actually positioned to leverage AI to now compete against the bigger players. I'm already seeing small companies have a big surge.

A substantive view on how AI could change company competition.

This is how I use it. I don't run any companies (nor am I a part of one right now) but were I to run one I would employ AI as the ultimate bug/vuln hunter. Just spin up maybe 20 agents and say "fuzz this thing to death".

This is how I use it. I don't run any companies (nor am I a part of one right now) but were I to run one I would employ AI as the ultimate bug/vuln hunter. Just spin up maybe 20 agents and say "fuzz this thing to death".

A short but real description of how they would use AI.
xnx 2026-11-02 15:03 | removed0/10low_effortsnark | root | parent | prev [–]

> Now this is how companies should be using AI. Not as an excuse to fire half the devs.

AI is getting so good, it will probably be both.

> Now this is how companies should be using AI. Not as an excuse to fire half the devs.

AI is getting so good, it will probably be both.

A quip with no substance behind it.

> rebuild our frontends completely using zero frameworks, not touching npm ever again after that

Genuine question, because I don’t know: Wouldn’t it suffice to vendor your current packages and “only” stick to maintenance from there on out, instead of rewriting it all?

This should still achieve the goal of not needing to touch npm, but presumably with less effort/tokens, right? Or is it just that you would expect the result of that process to be less clear and maintainable than a full rewrite?

> rebuild our frontends completely using zero frameworks, not touching npm ever again after that

Genuine question, because I don’t know: Wouldn’t it suffice to vendor your current packages and “only” stick to maintenance from there on out, instead of rewriting it all?

This should still achieve the goal of not needing to touch npm, but presumably with less effort/tokens, right? Or is it just that you would expect the result of that process to be less clear and maintainable than a full rewrite?

Thoughtful genuine question about vendoring versus rewriting.

Actually, I have started with it already but is paused, but the approach is to rebuild it from scratch in parallel to our current legacy system and move our staff over to the new completed screens in batches (we have close to 1000 views in our system, 150 background jobs, with about 15 main categories (think organisational sub-divisions)). So as long as we go slow and steady (even with AI) it will work out fine, I expect it will be done in less than 6 months. One month if we rush but we don't want to rush it, as we are moving some things over from MSSQL to Postgres, so slow and steady is the way.

Actually, I have started with it already but is paused, but the approach is to rebuild it from scratch in parallel to our current legacy system and move our staff over to the new completed screens in batches (we have close to 1000 views in our system, 150 background jobs, with about 15 main categories (think organisational sub-divisions)). So as long as we go slow and steady (even with AI) it will work out fine, I expect it will be done in less than 6 months. One month if we rush but we don't want to rush it, as we are moving some things over from MSSQL to Postgres, so slow and steady is the way.

Concrete migration plan and scale details.

> from MSSQL to Postgres

How's that going? Any lessons learnt you'd be willing to share?

> from MSSQL to Postgres

How's that going? Any lessons learnt you'd be willing to share?

A genuine question asking for migration lessons.

If you only use MSSQL as a datastore, it's not too bad. If you used all the other features (MSAS/SSIS/etc...), it is much harder. PG also isn't a panacea - you're trading one set of issues for another. The biggest upside is that it's much less expensive :)

If you only use MSSQL as a datastore, it's not too bad. If you used all the other features (MSAS/SSIS/etc...), it is much harder. PG also isn't a panacea - you're trading one set of issues for another. The biggest upside is that it's much less expensive :)

Useful nuance about how hard migration is when you depend on the MSSQL ecosystem.
BatteryMountain 2026-11-02 10:217/10first_handinformative | root | parent | prev | next [–]

Differences: Money/decimals, rounding, case-sensitivity, equality comparisons differences, db/table locks mechanisms, memory/worker management, table/column naming conventions, null fields/columns effects on queries.

Mmm what else. I prefer postgres so I'm very excited about this. So many foot-guns will no longer haunt us like on MSSQL and less db/table locks to try solve (pessimistic vs optimistic locks). Oh and we are going to save a gross amount of money per year, as we will also be able to switch off a couple of Windows Server VM's in the process. These puppies are costing us a ton (I think about half of our infra bill are licenses...).

Just create a branch, spin up a test db and try to port a small feature. Its very easy in most cases. Debian + dotnet + postgres = dream team.

Differences: Money/decimals, rounding, case-sensitivity, equality comparisons differences, db/table locks mechanisms, memory/worker management, table/column naming conventions, null fields/columns effects on queries.

Mmm what else. I prefer postgres so I'm very excited about this. So many foot-guns will no longer haunt us like on MSSQL and less db/table locks to try solve (pessimistic vs optimistic locks). Oh and we are going to save a gross amount of money per year, as we will also be able to switch off a couple of Windows Server VM's in the process. These puppies are costing us a ton (I think about half of our infra bill are licenses...).

Just create a branch, spin up a test db and try to port a small feature. Its very easy in most cases. Debian + dotnet + postgres = dream team.

Concrete lessons from a migration they're doing themselves.
adzm 2026-11-02 13:336/10informative | root | parent | prev [–]

MSSQL query optimizer is one of the best available. If you have truly insane queries, views needing joins on views and CTEs, etc, you might be surprised at how well SQL Server was handling them versus PostgreSQL.

MSSQL query optimizer is one of the best available. If you have truly insane queries, views needing joins on views and CTEs, etc, you might be surprised at how well SQL Server was handling them versus PostgreSQL.

Relevant warning about how the two query optimizers differ.

Because they are large codebases with their own technical debt. You're not doing a full rewrite, but just make what you need for you own codebase.

Because they are large codebases with their own technical debt. You're not doing a full rewrite, but just make what you need for you own codebase.

Answers the question about rewriting versus vendoring.

If the parts you need from a larger third party library are small and simple, that makes sense. But I don't think the general idea of reusing battle tested code across many projects is obsolete because of AI.

If the parts you need from a larger third party library are small and simple, that makes sense. But I don't think the general idea of reusing battle tested code across many projects is obsolete because of AI.

Reasonable disagreement about whether reusing libraries still makes sense.

Ah, I think I see now. Essentially the dependency module is unnecessarily large and (for your own use case) ships with extraneous features/“bloat”.

Ah, I think I see now. Essentially the dependency module is unnecessarily large and (for your own use case) ships with extraneous features/“bloat”.

Checks that they understood the parent correctly.

I think the approach should probably move towards semi-tailored systems.

Maybe you don't need all of Postgres - so provide 2,3,4,5,n versions. As long as every version is covered by (possibly shared) tests, then you can release what works, ignore the rest (bugs and all).

I think the approach should probably move towards semi-tailored systems.

Maybe you don't need all of Postgres - so provide 2,3,4,5,n versions. As long as every version is covered by (possibly shared) tests, then you can release what works, ignore the rest (bugs and all).

A constructive idea about tailored builds that ship smaller.

Exactly. And over time a project can drift from its original purpose, so you end up building around a bunch of stuff you aren't using anyway, but you pay cost/risk for having it present.

Exactly. And over time a project can drift from its original purpose, so you end up building around a bunch of stuff you aren't using anyway, but you pay cost/risk for having it present.

Adds a reasonable point about how projects drift and the cost of carrying unused features.

Like the warnings as errors, and extensive test suites, there's also type safety that helps stir the LLM in the right direction.

You can go with "eliminate all 3rd party dependencies [...] frontends completely using zero frameworks" and be stuck with JS. Or use a typed language (TS, ReasonML/ReScript or even Elm) and an API client generator (available for all those languages) and get type safe API calling from a more strongly typed language.

As much as I prefer not to use NPM and even more prefer (even my LLMs) barely touch JS. A bit of safety is cheap these days, as you rightfully pointed out.

Like the warnings as errors, and extensive test suites, there's also type safety that helps stir the LLM in the right direction.

You can go with "eliminate all 3rd party dependencies [...] frontends completely using zero frameworks" and be stuck with JS. Or use a typed language (TS, ReasonML/ReScript or even Elm) and an API client generator (available for all those languages) and get type safe API calling from a more strongly typed language.

As much as I prefer not to use NPM and even more prefer (even my LLMs) barely touch JS. A bit of safety is cheap these days, as you rightfully pointed out.

Gives practical advice to use typed languages and generated API clients to steer LLMs.

> found and fixed thousands of bugs, security holes and circular dependencies in the last year. Code quality has increased, test coverage increased

Does management appreciate it? Do customer see any value in it?

> found and fixed thousands of bugs, security holes and circular dependencies in the last year. Code quality has increased, test coverage increased

Does management appreciate it? Do customer see any value in it?

Asks a fair question about whether the cleanup created value for the business and customers.

Good thing is now human does not have to justify anymore. If AI says bugs management seems far more amenable to support fixing. At least in my experience managers take AI reports or vendor tool generated reports more seriously then any feedback from engineer.

Good thing is now human does not have to justify anymore. If AI says bugs management seems far more amenable to support fixing. At least in my experience managers take AI reports or vendor tool generated reports more seriously then any feedback from engineer.

A sincere first-hand observation that managers take AI- or tool-generated bug reports more seriously than engineers' feedback.

I find that worrying. Engineers may have motivations, but they also understand the system and are accountable for it. A text generator has neither the context nor the responsibility, so it seems backwards for managers to trust its reports more.

original comment by egorfine

> managers take AI reports [] more seriously then any feedback from engineer

Good. That's how it should be: do not trust motivated engineers, trust a text generator that has no clue nor responsibility instead.

/s

Sarcastic, but it makes a real point about who is accountable for bug reports, so the point is restated plainly.

If it enables faster feature releases and better performance, probably?

AI can help companies provide more features or cut costs.

If it enables faster feature releases and better performance, probably?

AI can help companies provide more features or cut costs.

A short, reasonable answer to the question.

> If it enables

This extremely non-obvious and non-transparent to managers and completely incomprehensible for customers.

> If it enables

This extremely non-obvious and non-transparent to managers and completely incomprehensible for customers.

Terse but real point that it's hard for managers and customers to see whether AI actually enables these benefits.
BSDobelix 2026-11-02 10:49 | removed0/10snarklow_effort | parent | prev | next [–]

>fixed thousands of bugs

>set our compiler to treat warnings as errors, and to be as strict as possible

>ironed out all the bugs and failure modes in our infrastructure automation / monitoring.

>eliminate all 3rd party dependencies

>rebuild our frontends completely using zero frameworks

Oh yeah, that's what i call "software engineering" and excellent use of LLM's! Great to see Company's with a Mindset like that.

>fixed thousands of bugs

>set our compiler to treat warnings as errors, and to be as strict as possible

>ironed out all the bugs and failure modes in our infrastructure automation / monitoring.

>eliminate all 3rd party dependencies

>rebuild our frontends completely using zero frameworks

Oh yeah, that's what i call "software engineering" and excellent use of LLM's! Great to see Company's with a Mindset like that.

Mostly quotes the parent, plus praise that reads as sarcasm, with nothing of its own added.

AI makes it possible to fix bugs and solves issue one wouldn't do before. But just because it's easier now doesn't mean it's automatically worth it. There are tradeoffs (like code complexity or breaking stuff), or it really just wasn't that important to fix if it was in the backlog forever. I've seen devs go down this rabbit hole, and perhaps overdo it. It feels productive, but at some point it might stop to provide value, and other things should've been prioritized. It's just easier to say to the AI "fix bugs" instead of solving real issues. At some point boasting about running 10x agents in parallel to fix bugs becomes a sign that there's a lack of value provided to boast about.

AI makes it possible to fix bugs and solves issue one wouldn't do before. But just because it's easier now doesn't mean it's automatically worth it. There are tradeoffs (like code complexity or breaking stuff), or it really just wasn't that important to fix if it was in the backlog forever. I've seen devs go down this rabbit hole, and perhaps overdo it. It feels productive, but at some point it might stop to provide value, and other things should've been prioritized. It's just easier to say to the AI "fix bugs" instead of solving real issues. At some point boasting about running 10x agents in parallel to fix bugs becomes a sign that there's a lack of value provided to boast about.

A thoughtful warning that easy AI bug-fixing can crowd out more valuable work.

While that is true, there's also the other side of the coin: most bugs are hit, but never reported. Users are pretty unlikely to report bugs and when they do they are very vague about it. That's why client observability is such a boon for teams because they find what bugs users are actually hitting. If the agents are directed using that, then perfect

While that is true, there's also the other side of the coin: most bugs are hit, but never reported. Users are pretty unlikely to report bugs and when they do they are very vague about it. That's why client observability is such a boon for teams because they find what bugs users are actually hitting. If the agents are directed using that, then perfect

Makes a fair counterpoint: most bugs users hit never get reported, so observability-driven fixing has real value.

Didn’t you guys have to ship new products? How a business can afford so many backlog tickets being implemented? I understand fixing bugs can also mean improving the product but still - (almost) the whole world has this balance between new features and acceptable-ish number of bugs

Didn’t you guys have to ship new products? How a business can afford so many backlog tickets being implemented? I understand fixing bugs can also mean improving the product but still - (almost) the whole world has this balance between new features and acceptable-ish number of bugs

Fair question about the business tradeoff between features and bug fixing.

We are multiple developers, each having 10+ main claude agents running different sessions/terminal tabs. I have 10 copies of our codebase on my laptop, each with their own purpose and claude session and history. The other devs have different approaches but we all get similar output. And then we also built an agent framework that runs within our system that has access to our code (at most 60min behind master branch), our infra and our databases, so it can diagnose issues with excellent precision and prove it to us where to find code/data issues.

We are multiple developers, each having 10+ main claude agents running different sessions/terminal tabs. I have 10 copies of our codebase on my laptop, each with their own purpose and claude session and history. The other devs have different approaches but we all get similar output. And then we also built an agent framework that runs within our system that has access to our code (at most 60min behind master branch), our infra and our databases, so it can diagnose issues with excellent precision and prove it to us where to find code/data issues.

Describes their AI-heavy development workflow.

What are your token budgets like?

What are your token budgets like?

A relevant question about cost.

Are you able to share which domain your company works in?

Are you able to share which domain your company works in?

A genuine clarifying question.

Utilities - Electricity/Water/Gas. 98% of our systems are internal facing or third party integrations. Our surface for end-consumers is tiny.

Utilities - Electricity/Water/Gas. 98% of our systems are internal facing or third party integrations. Our surface for end-consumers is tiny.

Directly answers the question with useful context.

Honestly this is the kind of stuff that needs hardened now and new features skipped for a while.

Years ago I had to work on a server that had some sort of water utility software on it and it was a rather jank piece of software.

Honestly this is the kind of stuff that needs hardened now and new features skipped for a while.

Years ago I had to work on a server that had some sort of water utility software on it and it was a rather jank piece of software.

Adds a short first-hand account that backs up prioritizing hardening over new features for utility software.

> eliminate all 3rd party dependencies

The third party dependencies are also using AI to improve their code.

> eliminate all 3rd party dependencies

The third party dependencies are also using AI to improve their code.

A short but real counterpoint: if dependencies are also getting better with AI, that weakens the case for dropping them.

Good thing if you can afford the vulnerability detection run.

I could imagine scenarios where only well off developers and companies could afford that.

Then if you don't have the money, you are out of luck and risk having vulnerabilities in your code.

And it takes just one adversary to pay the bot & the bot will happily find an exploit for them in your code.

This worry this could lead to a serious power imbalance & furthe damage the free software community...

Good thing if you can afford the vulnerability detection run.

I could imagine scenarios where only well off developers and companies could afford that.

Then if you don't have the money, you are out of luck and risk having vulnerabilities in your code.

And it takes just one adversary to pay the bot & the bot will happily find an exploit for them in your code.

This worry this could lead to a serious power imbalance & furthe damage the free software community...

Raises a real concern about cost asymmetry in AI vulnerability scanning.

Short term there will be pain (hacks/malware) but at the same time, it will force the survivors to build bullet proof systems.

Worse case, we enter the Dark Forest era for technology. Read up on this concept and apply it to the tech industry. I suspect open-source might die and everything becomes private, no more public networks, no more open access, as to assure survival. In a sense we are halfway there already as it seems the internet is starting to close down, people not posting their art and music as much anymore, not posting their knowledge for free anymore, as it might be used against them by AI (the other party in the dark forest..). Thus private authentic experiences will become more valuable.

Short term there will be pain (hacks/malware) but at the same time, it will force the survivors to build bullet proof systems.

Worse case, we enter the Dark Forest era for technology. Read up on this concept and apply it to the tech industry. I suspect open-source might die and everything becomes private, no more public networks, no more open access, as to assure survival. In a sense we are halfway there already as it seems the internet is starting to close down, people not posting their art and music as much anymore, not posting their knowledge for free anymore, as it might be used against them by AI (the other party in the dark forest..). Thus private authentic experiences will become more valuable.

Speculative but engages with the Dark Forest idea for tech.

I don't think it'll be that bad:

1. The cost of running AI is dropping down to "free" - there's open weight models, open source tools, and guides on running your own if the long list of suppliers isn't good enough for your use cases.

2. Vulnerabilities have always been a risk; AI is not a panacea. The pre-AI best practices still apply. Furthermore, a huge percentage of vulnerabilities are in 3rd party tools and systems, which are systematically being scanned and fixed and/or exploited, then fixed.

You mention "the free software community" in your last sentence though - this implies the code in question is open source, so it's able to receive plenty of improvements from anyone with access to these tools.

I don't think it'll be that bad:

1. The cost of running AI is dropping down to "free" - there's open weight models, open source tools, and guides on running your own if the long list of suppliers isn't good enough for your use cases.

2. Vulnerabilities have always been a risk; AI is not a panacea. The pre-AI best practices still apply. Furthermore, a huge percentage of vulnerabilities are in 3rd party tools and systems, which are systematically being scanned and fixed and/or exploited, then fixed.

You mention "the free software community" in your last sentence though - this implies the code in question is open source, so it's able to receive plenty of improvements from anyone with access to these tools.

Structured counterargument on cost and access.

what are the nuts and bolts of how you're doing this? which tools have you found helpful? any advice for people who'd also like to do this?

what are the nuts and bolts of how you're doing this? which tools have you found helpful? any advice for people who'd also like to do this?

A genuine question asking for practical details on the parent's experience.
lucid_turtle80 2026-11-02 15:30 | rewritten6/10cross_examinationquestion | original | parent | prev | next [–]

Every couple of weeks this philosophy looks less optimistic and more feasible, and perhaps your workflows are efficient enough that it actually makes sense for you. But I'm not convinced AI-assisted development is at that point yet. I think the classic build-vs-buy arguments still hold.

My concerns are maintenance cost (dev hours, tokens), whether an in-house replacement gives customers enough value to justify the opportunity cost, and whether it will get the same security scrutiny that popular frameworks get from major research firms. LLMs may also repeat the same patterns and mistakes. Using AI to patch dependencies faster and shorten exposure time might be the better trade-off, especially since the major frameworks and tooling providers will likely adopt AI-assisted development too, if they haven't already.

Personally, I'm also waiting to see whether the AI boom turns out to be a bubble. If it pops, companies that have built their stack around this approach could be in a tough spot.

original comment by ngomezdev

As I read on I thought this might be satire, but, I suppose every two weeks this philosophy becomes less hopelessly optimistic and more feasible.

Perhaps your workflows and processes are so efficient that this actually makes sense. But I’m still not convinced AI assisted development is at that point yet; I think the classic Build vs. Buy arguments still hold.

How much is this going to cost to maintain? How many dev hours? How many tokens? Is your in house solution going to provide the business and customer enough perceivable value that it’s worth the opportunity cost? Are you going to apply the same rigor and security testing that the popular frameworks are getting from the largest research firms in the world? How do you know the LLMs aren’t going to apply similar patterns and make the same mistakes? Why can’t you just use that AI expertise to accelerate patching so your exposure time is limited? How do you know you’re going to outpace the major frameworks and tooling providers in 2 or 4 or 6 years when they catch up with AI assisted development, if they haven’t already?

And very personally speaking, I’m still holding my breath to see if this AI bubble is a real thing or not. Because if it ever pops, well, that’s not going to go well for companies that are embracing this stance.

Raises real build-vs-buy concerns. I removed the 'thought this was satire' jab and turned the string of pointed questions into plain statements of the concerns.

> But I’m still not convinced AI assisted development is at that point yet;

But the gp said it is, and gave examples.

> But I’m still not convinced AI assisted development is at that point yet;

But the gp said it is, and gave examples.

A short but fair pushback: the grandparent comment gave concrete examples, and the reply points the doubter back to them.

Can you tell us how did you achieve that kind of work, briefly? I struggle to figure out how such massive bug fixing campaigns or even large scale software engineering are done with ai not taking weird decisions...

Can you tell us how did you achieve that kind of work, briefly? I struggle to figure out how such massive bug fixing campaigns or even large scale software engineering are done with ai not taking weird decisions...

Genuine request for methodology.

I personally started using AI with a very rudimentary "memory" system, and for first weeks corrected it ad nauseam, until, in the small domain I was responsible for, it started doing work end to end fully autonomously. Takes a lot of time and effort to bootstrap, but once steered well enough, it just clicks and less and less is needed to check manually

I personally started using AI with a very rudimentary "memory" system, and for first weeks corrected it ad nauseam, until, in the small domain I was responsible for, it started doing work end to end fully autonomously. Takes a lot of time and effort to bootstrap, but once steered well enough, it just clicks and less and less is needed to check manually

First-hand description of how a memory system made agents autonomous.

Yeah a memory system per domain, or per module or even per file works amazing, we have it too. Took a ton of time to improve the code and list down all the tribal knowledge, but now that it's done, it works super well.

Yeah a memory system per domain, or per module or even per file works amazing, we have it too. Took a ton of time to improve the code and list down all the tribal knowledge, but now that it's done, it works super well.

A short first-hand account of per-domain memory systems.
BatteryMountain 2026-11-02 08:298/10first_handinformative | root | parent | prev [–]

Myself specifically, I have a /code folder without about 10 copies of our codebase, each running their own claude sessions & git branch. Then, I have 10 terminal branches. I spend a ton of time planning out & specing the problem with claude, to be as specific as possible and be as constrained as possible so it cannot go on side-quests. I use Opus 5.5 on High effort. That's just on my laptop with what I can mentally cope with day to day. Then we have some other automatic ai goodies running within our custom agent framework that runs within our platform that also helps. Then for apps, I basically plug in multiple phones into my laptop with usb (and emulators if I really need to), and claude can fully drive the ui and testing on the phones via adb as an example. Even on linux/fedora/kde it can drive UI apps a and take screenshots and fix things properly etc. It can ingest all logs & debug chains, so it absolutely flies through its task.

Before we started this journey (about a year ago), we spent a ton of time cleaning up our codebase, splitting large files (10K+ lines) into files that are no more than 2K lines, things like that. Then we let claude scan our important files and summarize them, add comments for future claude sessions. So we've let it built up tribal knowledge per file and the reasons for things to exist. We tell it all about our operating environment, the country and legal framework etc, so every little piece helps it stay honest and on track.

So to start, do something simple like: Scan the files in this folder for database code and check for queries that loads the entire result set into memory and/or queries that loads all columns. Suggest which queries we can filter better or reduce columns being transferred. Once done, also check real db row counts, compare them with the queries in these files and check if they might benefit from an index or partitioning/sharding. Also check for queries that loads data but their results are not used. Don't make changes yet, just do a deep investigation and report back. Feel free to spin up muliple agents to batch the scans.

edit: it goes without saying you need a language with strict typing and a good compiler (we use dotnet). Doing this on python/javascript would be a nightmare.

Myself specifically, I have a /code folder without about 10 copies of our codebase, each running their own claude sessions & git branch. Then, I have 10 terminal branches. I spend a ton of time planning out & specing the problem with claude, to be as specific as possible and be as constrained as possible so it cannot go on side-quests. I use Opus 5.5 on High effort. That's just on my laptop with what I can mentally cope with day to day. Then we have some other automatic ai goodies running within our custom agent framework that runs within our platform that also helps. Then for apps, I basically plug in multiple phones into my laptop with usb (and emulators if I really need to), and claude can fully drive the ui and testing on the phones via adb as an example. Even on linux/fedora/kde it can drive UI apps a and take screenshots and fix things properly etc. It can ingest all logs & debug chains, so it absolutely flies through its task.

Before we started this journey (about a year ago), we spent a ton of time cleaning up our codebase, splitting large files (10K+ lines) into files that are no more than 2K lines, things like that. Then we let claude scan our important files and summarize them, add comments for future claude sessions. So we've let it built up tribal knowledge per file and the reasons for things to exist. We tell it all about our operating environment, the country and legal framework etc, so every little piece helps it stay honest and on track.

So to start, do something simple like: Scan the files in this folder for database code and check for queries that loads the entire result set into memory and/or queries that loads all columns. Suggest which queries we can filter better or reduce columns being transferred. Once done, also check real db row counts, compare them with the queries in these files and check if they might benefit from an index or partitioning/sharding. Also check for queries that loads data but their results are not used. Don't make changes yet, just do a deep investigation and report back. Feel free to spin up muliple agents to batch the scans.

edit: it goes without saying you need a language with strict typing and a good compiler (we use dotnet). Doing this on python/javascript would be a nightmare.

Detailed first-hand workflow with an example prompt.
popkkksidhd 2026-11-02 12:107/10first_handinsightful | root | parent | next [–]

> I spend a ton of time planning out & specing the problem with claude, to be as specific as possible and be as constrained as possible so it cannot go on side-quests

I still have yet to see this be efficient. The time I spent doing this is way less efficient than simply giving the LLM some high level direction and putting that time towards reading the code it generates and correcting small piece by piece (occasionally doing things manually, but that’s only for more off the rails stuff).

It’s about the same amount of time as up front planning, except I know the code much better as well as end up with less mistakes compared to having it implement a front loaded plan.

Knowing the codebase makes everything else 10x more efficient too - triaging bug reports, planning other work, knowing what work needs done (this is a big one), reviewing PRs, etc.

> I spend a ton of time planning out & specing the problem with claude, to be as specific as possible and be as constrained as possible so it cannot go on side-quests

I still have yet to see this be efficient. The time I spent doing this is way less efficient than simply giving the LLM some high level direction and putting that time towards reading the code it generates and correcting small piece by piece (occasionally doing things manually, but that’s only for more off the rails stuff).

It’s about the same amount of time as up front planning, except I know the code much better as well as end up with less mistakes compared to having it implement a front loaded plan.

Knowing the codebase makes everything else 10x more efficient too - triaging bug reports, planning other work, knowing what work needs done (this is a big one), reviewing PRs, etc.

Experience-based counterpoint to planning everything up front.

How much do you spend per day on Claude?

How much do you spend per day on Claude?

A relevant question about what the workflow costs.

> IDE's would've made it very uncomfortable

Would you mind elaborating?

> IDE's would've made it very uncomfortable

Would you mind elaborating?

Short genuine clarification request.
BatteryMountain 2026-11-02 09:419/10first_handinsightfulinformative | root | parent [–]

When you change a single setting in the IDE to make something more strict and you have 1M+ lines of code, you will get 30K items to fix, via red/yellow/blue squiggles in the IDE. Most of those can be simple refactorings, but the performance & UI of the IDE makes it incredibly unwieldy and it will sometimes fight you back, sometime crash internal processes which leave refactorings half baked and so. Now imagine you change 50 such settings, to make the compiler force you to write better code. Changing 200K+ lines of code yourself is a nightmare (and to prove it still does the same thing afterwards). Instead, claude systematically approaches whole classes of errors and convert them to cleaner variants (either using our custom skills or it writing new scripts to do it). I consider myself an advanced user of IDE's, know how to do bulk refactoring and renames and so on (esp with JetBrains tools), and I would say it would be a near impossible task to do as a human. Then there are other developers - so you flip a setting and now 5 other people's IDE's are forcing them to work a specific way which will make you unpopular very quickly and revert the changes. So, since most of us no longer use IDE's as our main tool to build/diagnose, we can more easily flip compiler settings without destroying someone else's week. Hope that makes sense.

Oh it also helps to split refactoring work into three buckets: business logic changes, performance changes (same output as before but faster) and cosmetic changes (rename files/folders/classes, breaking large files up, add logging/comments, domain layering etc). We tend to focus on performance and cosmetic changes for bulk refactors and leave logic changes to more dedicated sessions as to avoid changing what the system do (our domain is fairly complex and we cannot afford breakages). We also managed to port ALL of our code to dotnet 10 lts and have clean boundaries between projects (we have a mono-repo with about 50 projects in it), so we can wholesale upgrade dependencies without a sweat.

When you change a single setting in the IDE to make something more strict and you have 1M+ lines of code, you will get 30K items to fix, via red/yellow/blue squiggles in the IDE. Most of those can be simple refactorings, but the performance & UI of the IDE makes it incredibly unwieldy and it will sometimes fight you back, sometime crash internal processes which leave refactorings half baked and so. Now imagine you change 50 such settings, to make the compiler force you to write better code. Changing 200K+ lines of code yourself is a nightmare (and to prove it still does the same thing afterwards). Instead, claude systematically approaches whole classes of errors and convert them to cleaner variants (either using our custom skills or it writing new scripts to do it). I consider myself an advanced user of IDE's, know how to do bulk refactoring and renames and so on (esp with JetBrains tools), and I would say it would be a near impossible task to do as a human. Then there are other developers - so you flip a setting and now 5 other people's IDE's are forcing them to work a specific way which will make you unpopular very quickly and revert the changes. So, since most of us no longer use IDE's as our main tool to build/diagnose, we can more easily flip compiler settings without destroying someone else's week. Hope that makes sense.

Oh it also helps to split refactoring work into three buckets: business logic changes, performance changes (same output as before but faster) and cosmetic changes (rename files/folders/classes, breaking large files up, add logging/comments, domain layering etc). We tend to focus on performance and cosmetic changes for bulk refactors and leave logic changes to more dedicated sessions as to avoid changing what the system do (our domain is fairly complex and we cannot afford breakages). We also managed to port ALL of our code to dotnet 10 lts and have clean boundaries between projects (we have a mono-repo with about 50 projects in it), so we can wholesale upgrade dependencies without a sweat.

Detailed first-hand account of large-scale AI refactoring practices.

> it also helps to split refactoring work into three buckets: business logic changes, performance changes (same output as before but faster) and cosmetic changes (rename files/folders/classes, breaking large files up, add logging/comments, domain layering etc).

Do you have a specific skill to guide an agent to scope the work of an agent so it stays in one particular bucket? Would you mind sharing it?

> it also helps to split refactoring work into three buckets: business logic changes, performance changes (same output as before but faster) and cosmetic changes (rename files/folders/classes, breaking large files up, add logging/comments, domain layering etc).

Do you have a specific skill to guide an agent to scope the work of an agent so it stays in one particular bucket? Would you mind sharing it?

A genuine practical follow-up question.
jshier 2026-11-02 18:516/10first_handinformative | root | parent [–]

State of the art agents don't usually need such fixed guidance anymore. I've been using Opus 5.5 with Xcode and simply prompting things like "make sure all of our test Suites use the .dependencies modifier, but only if they use dependencies internally" or "make sure none of our test methods are @MainActor, just access the necessary state using standard concurrency constructs". For larger changes, providing the examples you want is often enough to get it most of the way, or even all the way, there. I've had simples prompts for things like "move all standalone SwiftUI view that seem reusable to our Design framework, and create a list of those which can't be moved without effort, listing by complexity".

Overall, there's much less need for prompt skills anymore. They're still very useful for things like best practices, or things you need to make as reproducible as possible, but big skill and planning sessions aren't nearly as necessary anymore.

State of the art agents don't usually need such fixed guidance anymore. I've been using Opus 5.5 with Xcode and simply prompting things like "make sure all of our test Suites use the .dependencies modifier, but only if they use dependencies internally" or "make sure none of our test methods are @MainActor, just access the necessary state using standard concurrency constructs". For larger changes, providing the examples you want is often enough to get it most of the way, or even all the way, there. I've had simples prompts for things like "move all standalone SwiftUI view that seem reusable to our Design framework, and create a list of those which can't be moved without effort, listing by complexity".

Overall, there's much less need for prompt skills anymore. They're still very useful for things like best practices, or things you need to make as reproducible as possible, but big skill and planning sessions aren't nearly as necessary anymore.

A first-hand account with concrete example prompts that answers the parent's question directly.
cypressious 2026-11-02 10:068/10informativeinsightful | root | parent | prev [–]

IIUC, your point is that changing IDE settings will affect other developers. But can't you enable an inspection locally, apply all or some of the quickfixes and revert the setting before committing? In the longterm, you want to enable the inspection anyway because the point is to prevent developers or agents from comitting new code that violates it (agents can access JetBrains IDEs' MCP Server to get inspection results).

Of course, crashes and bugs can happen when applying quickfixes, which isn't nice. Ideally, they should be reported and fixed. You can also ask an agent to fix the occurences instead of using the IDE quickfixes if that's blocking you.

I guess what I'm trying to say is that IDEs shouldn't make that process harder, they can actually improve agents' results. For example, you don't need to write custom skills to prevent agents from writing some class of bugs if the IDE can detect it and agents have access to the results.

> Changing 200K+ lines of code yourself is a nightmare (and to prove it still does the same thing afterwards).

If an agent does it, you still have no proof, but okay.

Full disclosure, I work at JetBrains, but not in the IDE department.

IIUC, your point is that changing IDE settings will affect other developers. But can't you enable an inspection locally, apply all or some of the quickfixes and revert the setting before committing? In the longterm, you want to enable the inspection anyway because the point is to prevent developers or agents from comitting new code that violates it (agents can access JetBrains IDEs' MCP Server to get inspection results).

Of course, crashes and bugs can happen when applying quickfixes, which isn't nice. Ideally, they should be reported and fixed. You can also ask an agent to fix the occurences instead of using the IDE quickfixes if that's blocking you.

I guess what I'm trying to say is that IDEs shouldn't make that process harder, they can actually improve agents' results. For example, you don't need to write custom skills to prevent agents from writing some class of bugs if the IDE can detect it and agents have access to the results.

> Changing 200K+ lines of code yourself is a nightmare (and to prove it still does the same thing afterwards).

If an agent does it, you still have no proof, but okay.

Full disclosure, I work at JetBrains, but not in the IDE department.

Practical IDE workflow advice from a JetBrains employee who discloses the affiliation, plus a fair challenge.
BatteryMountain 2026-11-02 10:317/10first_handinsightful | root | parent [–]

The problem is, even if I only enforce some rules locally, another developer has a different set of rules. So when we git commit, we ping-pong changes and fix each others stuff over and over again, bloating commits. We used editor config files + analyzer configs in the past (that gets checked into version control too), but there were still too much friction.

Where now, the compiler flags & strict analyzer settings forces claude to do the right things (we explicitly tell claude not try and bypass or lower the barrier). I think it only works because we don't spend 95% of our time in the IDE anymore like a couple of years back, so we as developers no longer feel that friction, as claude tries to satisfy the compiler instead. Its a massive mental load that is just gone, we haven't had any conversations in meeting about this kinda stuff anymore (remember in the past we would have flameouts in meetings or code reviews about linter settings...).

The problem is, even if I only enforce some rules locally, another developer has a different set of rules. So when we git commit, we ping-pong changes and fix each others stuff over and over again, bloating commits. We used editor config files + analyzer configs in the past (that gets checked into version control too), but there were still too much friction.

Where now, the compiler flags & strict analyzer settings forces claude to do the right things (we explicitly tell claude not try and bypass or lower the barrier). I think it only works because we don't spend 95% of our time in the IDE anymore like a couple of years back, so we as developers no longer feel that friction, as claude tries to satisfy the compiler instead. Its a massive mental load that is just gone, we haven't had any conversations in meeting about this kinda stuff anymore (remember in the past we would have flameouts in meetings or code reviews about linter settings...).

First-hand account of compiler and analyzer strictness taking linter friction off the team when using agents.
sage_llama83 2026-11-02 16:30 | rewritten3/10questionlow_effort | original | parent | prev | next [–]

I'm curious what's going on with Oracle Database: how many bugs are AI tools surfacing there?

original comment by alaaalawi

I'm curiuos on what is going on with Oracle database how many bugs the clanker are surfacing

A real question comparing this to a proprietary database, rewritten without the derogatory 'clanker' term.
rfgplk 2026-11-02 10:379/10informativeinsightful | parent | prev | next [–]

If you're going to roll your libs, be sure to set up agents to scan for CVE analogues of equivalent known vulnerabilities in your own code. It takes quite a bit of work to set this pipeline up, as well as manually selecting high-impact CVEs (relying on the public scores is worthless, because there are some vulns that are catastrophic with a score of 6 vs something meaningless thats a 10).

It's also crucial to scan for "analogues" because otherwise many LLMs autoreport as "not vulnerable" since "this applies to Postgres/whatever and this repo isn't using it"

If you get hit by cyber guardrails you should use a local model to prune any CVE specific language from the reports.

To give examples, every single LLM (and people too tbh) will write netcode that's vulnerable to these CVEs: CVE-2026-27135, CVE-2024-45311, CVE-2021-32567, CVE-2019-9511; without explicitly mentioning the CVE text no LLM finds these either.

If you're going to roll your libs, be sure to set up agents to scan for CVE analogues of equivalent known vulnerabilities in your own code. It takes quite a bit of work to set this pipeline up, as well as manually selecting high-impact CVEs (relying on the public scores is worthless, because there are some vulns that are catastrophic with a score of 6 vs something meaningless thats a 10).

It's also crucial to scan for "analogues" because otherwise many LLMs autoreport as "not vulnerable" since "this applies to Postgres/whatever and this repo isn't using it"

If you get hit by cyber guardrails you should use a local model to prune any CVE specific language from the reports.

To give examples, every single LLM (and people too tbh) will write netcode that's vulnerable to these CVEs: CVE-2026-27135, CVE-2024-45311, CVE-2021-32567, CVE-2019-9511; without explicitly mentioning the CVE text no LLM finds these either.

Practical, expert advice on scanning in-house code for CVE analogues with concrete examples.

> Repaying technical debt is always a great thing.

No. Debt is a tool. Sometimes it’s good to pay it quickly, but sometimes it’s better to pay it as slowly as you can.

> Repaying technical debt is always a great thing.

No. Debt is a tool. Sometimes it’s good to pay it quickly, but sometimes it’s better to pay it as slowly as you can.

A substantive disagreement: tech debt is a tool, and sometimes slow repayment is right.

No. Technical debt is just an imperfect metaphor.

You never wanna intentionally repay tech debt as slowly as possible. You might be able to tolerate/ignore it for longer depending on the circumstance, but you always wanna get rid of it sooner rather than later.

No. Technical debt is just an imperfect metaphor.

You never wanna intentionally repay tech debt as slowly as possible. You might be able to tolerate/ignore it for longer depending on the circumstance, but you always wanna get rid of it sooner rather than later.

Disagrees with the debt metaphor in a substantive way.

All else being equal, you're always better off without debt. AI can make repaying the debt very cheap (compared to doing it manually).

All else being equal, you're always better off without debt. AI can make repaying the debt very cheap (compared to doing it manually).

Short but relevant, noting AI makes paying down debt cheaper.
urban_shrike82 2026-11-02 14:27 | rewritten2/10personal_attack | original | parent | prev | next [–]

It sounds to me like many of those bugs could have been prevented with better use of type systems and composition in the first place.

original comment by dlahoda

feels like your team just are bad coders without understanding type systems and composition

Keeps the thin technical claim and drops the personal attack.
yjftsjthsd-h 2026-11-02 16:262/10questionlow_effort | root | parent [–]

Based on what?

Based on what?

It's a short but fair request for evidence behind an unsupported claim about the team.
frank_skink3 2026-11-02 10:52 | rewritten5/10question | original | parent | prev | next [–]

> Our next project is to eliminate all 3rd party dependencies, and after that to rebuild our frontends completely using zero frameworks, not touching npm ever again after that.

What proportion of the bugs you found came from a library versus your own code? I suspect it's more than 1:1000, which makes eliminating dependencies look like a bad trade to me.

original comment by iLoveOncall

> Our next project is to eliminate all 3rd party dependencies, and after that to rebuild our frontends completely using zero frameworks, not touching npm ever again after that.

What's the proportion of bugs you've encountered that was due to a library versus due to your own code? I suspect it's probably more than 1:1000.

This is a stupid decision.

Asks a fair question about where the bugs came from; the insult is gone.

False dichotomy. A library that is not a 100% perfect match for a problem you have to solve, will require glue code. Any bug in the glue code is in your own code but only exists because of the library.

False dichotomy. A library that is not a 100% perfect match for a problem you have to solve, will require glue code. Any bug in the glue code is in your own code but only exists because of the library.

Raises a good point that bugs in glue code are a hidden cost of using a library.

I’m not going to eliminate every single third party dependency in my system, but I’m on my way to eliminating 90%, maybe more.

For me it’s less about bugs and more about supply chain security risk. And with AI and only building what I need from a dep, exactly how I need it, the cost of doing this is very low.

I’m not going to eliminate every single third party dependency in my system, but I’m on my way to eliminating 90%, maybe more.

For me it’s less about bugs and more about supply chain security risk. And with AI and only building what I need from a dep, exactly how I need it, the cost of doing this is very low.

Gives a nuanced personal approach and points to supply-chain risk as the motivation.

I worry that the move towards eliminating library usage will lead to further code fragmentation.

It's a nice idea, and in theory sounds great, but you may be trading 1 library with 1000 bugs for 1 million implementations each with one special bug...

I worry that the move towards eliminating library usage will lead to further code fragmentation.

It's a nice idea, and in theory sounds great, but you may be trading 1 library with 1000 bugs for 1 million implementations each with one special bug...

A thoughtful counterpoint about the tradeoff between a shared library's bugs and many fragmented one-off implementations.

That sounds pretty good to me. If each implementation has its own unique bug instead of everyone sharing the same 1000, the main people who lose out are attackers, since one exploit no longer works everywhere.

original comment by senordevnyc

That sounds pretty good to me. Who is that scenario bad for, other than the people trying to exploit the 1000 bugs?

Makes a real point about how a software monoculture helps attackers; I rewrote the rhetorical-question jab as a plain argument.
azure_ocelot21 2026-11-02 18:56 | rewritten2/10low_effortsnark | original | root | parent [–]

It's bad if the same tools turn up far more exploitable bugs than that, say a million rather than a thousand, and maintainers can't fix them as fast as attackers can find them.

original comment by smaudet

The 1 million exploitable bugs?

The terse retort has a real point about scale, so it's restated plainly instead of as a jab.

It could also be a bad "thing".

AI-slop reports are filling up the queue and taking away time from volunteers. So contributing to delay in releases/features.

It could also be a bad "thing".

AI-slop reports are filling up the queue and taking away time from volunteers. So contributing to delay in releases/features.

Raises a real concern: low-quality AI bug reports eat into volunteer maintainers' time.

The JS frameworks exist for a reason, recreating them seems a little excessive. Why not skip JS and go to a Rust wasm framework or Phoenix LiveView if the goal is to get away from JS/node/npm?

The JS frameworks exist for a reason, recreating them seems a little excessive. Why not skip JS and go to a Rust wasm framework or Phoenix LiveView if the goal is to get away from JS/node/npm?

Substantive alternative suggestion with reasoning.

Our legacy system runs mvc view with bootstrap 3 and some jquery. It's not a SPA, so no framework to replace. But we still have to mess around with npm sometimes.

Our legacy system runs mvc view with bootstrap 3 and some jquery. It's not a SPA, so no framework to replace. But we still have to mess around with npm sometimes.

Clarifies their legacy stack context.

Depending on the framework you are in, there might be the equivalent of LiveView/Hotwire that works with MVC.

Depending on the framework you are in, there might be the equivalent of LiveView/Hotwire that works with MVC.

A useful pointer to LiveView/Hotwire-style alternatives.
steady_swift90 2026-11-02 12:40 | rewritten4/10ideological | original | parent | prev [–]

> This is a good thing. Repaying technical debt is always a great thing.

> Code quality has increased, test coverage increased.

And that's true for many old codebases!

> We've also recently set our compiler to treat warnings as errors, and to be as strict as possible.

Yeah. Many people said this was impossible: no budget would ever go to fixing old bugs, and only new features "to support the business" mattered. They were arguably right until LLMs came along and changed the economics.

I'm glad people are finally taking security seriously and understanding that more code means more bugs.

> Our next project is to eliminate all 3rd party dependencies,

I love the spirit!

> and after that to rebuild our frontends completely using zero frameworks, not touching npm ever again after that.

I hope more teams realize they can now walk away from ecosystems that I think are bad and can't be fixed, even with LLMs.

original comment by TacticalCoder

> This is a good thing. Repaying technical debt is always a great thing.

> Code quality has increased, test coverage increased.

And that's true for many old codebases!

> We've also recently set our compiler to treat warnings as errors, and to be as strict as possible.

Yeah. Everybody who said it was impossible, that no budget would ever be allowed to fix old bugs, that new features "to support the business" was the only thing that mattered and other nonsense like that have been proven wrong. Arguably they were kinda right but then LLMs happened and that's what proved them wrong.

I love to see what's happening: at very long last people are understanding that security is something to be taken seriously. They're understanding that "more code = more bugs".

> Our next project is to eliminate all 3rd party dependencies,

I love the spirit!

> and after that to rebuild our frontends completely using zero frameworks, not touching npm ever again after that.

I hope many more shall realize that now we can give the middle finger to a great many pathetically bad and totally unfixable (even with the help of LLMs) ecosystems.

Keeps the argument about LLMs changing what tech debt costs to fix, minus the inflammatory wording.

> This year is going to be different. PostgreSQL 19 most likely won’t be released until November… […] So, what happened? The short answer is that LLMs happened. […] There’s a huge amount of code, and that code contains a huge number of bugs. […] What’s different now is that it’s become vastly easier to find those bugs.

This seems…good?

That it might disrupt the project's "traditional" release cadence a bit doesn't seem terribly bad in light of the alternative, which is shipping another major update with bugs which have apparently haunted the codebase for some time.

> This year is going to be different. PostgreSQL 19 most likely won’t be released until November… […] So, what happened? The short answer is that LLMs happened. […] There’s a huge amount of code, and that code contains a huge number of bugs. […] What’s different now is that it’s become vastly easier to find those bugs.

This seems…good?

That it might disrupt the project's "traditional" release cadence a bit doesn't seem terribly bad in light of the alternative, which is shipping another major update with bugs which have apparently haunted the codebase for some time.

A reasonable take that delaying to fix long-standing bugs is a good tradeoff.

At work we have put a full halt on feature work because the number of security related tasks has become staggering and urgent.

We will hopefully get over this wave and be able to move forward with much more secure software, but it's crazy right now.

At work we have put a full halt on feature work because the number of security related tasks has become staggering and urgent.

We will hopefully get over this wave and be able to move forward with much more secure software, but it's crazy right now.

First-hand report of an industry-wide wave of security work.

We’ve also been blowing a lot of retainer hours just patching sites instead of building new features. It sucks. Ultimately going to cost clients more.

We’ve also been blowing a lot of retainer hours just patching sites instead of building new features. It sucks. Ultimately going to cost clients more.

A first-hand account of patching work pushing out feature work.

It's not like no work is happening though. Your clients are getting a more secure website. Maybe the bugs that are being patched would have taken longer to be exploited in the pre-LLM world but the bugs were still there.

It's not like no work is happening though. Your clients are getting a more secure website. Maybe the bugs that are being patched would have taken longer to be exploited in the pre-LLM world but the bugs were still there.

Fair counterpoint: patching work still delivers security value.

Most clients will not agree to pay extra for a more secure web site though. Unfortunately. Unless they’ve been bitten in the past, which most businesses still haven’t.

Most clients will not agree to pay extra for a more secure web site though. Unfortunately. Unless they’ve been bitten in the past, which most businesses still haven’t.

A real point about what clients are willing to pay for.

As long as you put the alternatives clearly on the table, you could let the customers choose, and sign off on taking the risk. You can give a recommendation, but ultimately it's their choice if they bear the consequences resulting from the choice.

As long as you put the alternatives clearly on the table, you could let the customers choose, and sign off on taking the risk. You can give a recommendation, but ultimately it's their choice if they bear the consequences resulting from the choice.

Practical suggestion: lay out the options and have clients sign off on the risk.

Hard disagree. Framing it this way makes it seem like all possibilities are equally valid options. Yet you’ve somehow winnowed the field of infinity to the several options presented. You did that through successive rounds of professional judgement that eliminated options you did not consider fit to propose.

Taking options off of the client’s table is the core responsibility here.

Hard disagree. Framing it this way makes it seem like all possibilities are equally valid options. Yet you’ve somehow winnowed the field of infinity to the several options presented. You did that through successive rounds of professional judgement that eliminated options you did not consider fit to propose.

Taking options off of the client’s table is the core responsibility here.

Substantive disagreement: filtering options is itself the professional's core job.

Eh, letting the customer footgun never comes off well. They will always fundamentally blame your advice or lack of advice.

Eh, letting the customer footgun never comes off well. They will always fundamentally blame your advice or lack of advice.

Practical disagreement drawn from client dynamics. Blunt but in good faith.

If you clearly describe options A, B and C with their costs and consequences, and advise them to go with C but they pick A, then they explicitly did not follow your advice and can't fairly blame you for that choice.

In the end, these are business decisions. Not giving me the choice as a customer feels like being infantilized.

It's the same frustration people have when LLMs refuse to help reverse engineer a piece of code or explain how a virus works.

original comment by teiferer

Um, if you clearly describe what options A, B and C with their costs and consequences are and advice them to go with C but they go with A, then they explicitly did not go with your advice and can't blame you for their choice.

In the end, it's all business decisions. If it's something I don't like as a customer then it's to be infantilized.

(If you disagree then please don't complain ever again about LLMs refusing to help you reverse engineer a piece of code or explain how a virus works.)

Makes a real argument about informed customer choice, so I kept it and dropped the dismissive 'Um' and the jab at people who disagree.

Yeah you’re right but for most businesses increased security doesn’t lead to more sales.

I’m not saying that’s right, I’m saying that’s how a lot of businesses think.

Yeah you’re right but for most businesses increased security doesn’t lead to more sales.

I’m not saying that’s right, I’m saying that’s how a lot of businesses think.

A reasonable observation about how businesses think.

Businesses that are paying attention to the winds though have already figured out that the internet is a hostile place: both their insurance companies and their governments are making noise about security.

Businesses that are paying attention to the winds though have already figured out that the internet is a hostile place: both their insurance companies and their governments are making noise about security.

Points to insurers and governments as forces pushing businesses toward security.
pixl97 2026-11-02 13:55 | removed0/10snarkjoke | root | parent | prev [–]

Of course this is why hacker news is becoming a list of sites that have been hacked.

Of course this is why hacker news is becoming a list of sites that have been hacked.

A quip with no substance.

Probably not, if you factor in the cost of security exploits. A single compromise can potentially sink the business.

Probably not, if you factor in the cost of security exploits. A single compromise can potentially sink the business.

Reasonable counterpoint about how much breaches cost.

> Probably not, if you factor in the cost of security exploits. A single compromise can potentially sink the business.

Agreed however getting humans to understand probability is tricky.

I had this discussion with my son recently about considering the severity of outcome multiplied by the probability of that outcome been the way to look at some things.

> Probably not, if you factor in the cost of security exploits. A single compromise can potentially sink the business.

Agreed however getting humans to understand probability is tricky.

I had this discussion with my son recently about considering the severity of outcome multiplied by the probability of that outcome been the way to look at some things.

Minor but relevant point about weighing risk.
max_k 2026-11-02 07:347/10first_handinsightful | root | parent | prev | next [–]

Same here. I got access to Mythos two months ago, it confronted me with decades of nasty bugs I wrote. This has been stressing me out a lot, caused sleep deprivation (the bugs follow me in my sleep, yes, really). All other progress is halted, I've been squashing bugs day and night. I see a light at the end of the tunnel.

Bottom line: it's a good thing. My software will be better after that. Even if it's currently not good for my ego (and my health). But I'm glad for all the tools that help me improve quality.

And sure, I can just ask LLMs to fix the bugs, which works well half of the time, and produces bad slop in the other half. This is where human expertise and judgement is still necessary to avoid letting our code bases drift into LLM spaghetti hell.

Same here. I got access to Mythos two months ago, it confronted me with decades of nasty bugs I wrote. This has been stressing me out a lot, caused sleep deprivation (the bugs follow me in my sleep, yes, really). All other progress is halted, I've been squashing bugs day and night. I see a light at the end of the tunnel.

Bottom line: it's a good thing. My software will be better after that. Even if it's currently not good for my ego (and my health). But I'm glad for all the tools that help me improve quality.

And sure, I can just ask LLMs to fix the bugs, which works well half of the time, and produces bad slop in the other half. This is where human expertise and judgement is still necessary to avoid letting our code bases drift into LLM spaghetti hell.

First-hand account of the cost and benefit of AI bug finding, with nuance on fix quality.
azure_osprey26 2026-11-02 07:44 | rewritten6/10first_handquestion | original | root | parent | next [–]

My question is, did it provide POCs? I've had some security issues flagged that I tried my best to exploit and failed. Since I don't have any kind of privileged access, the LLMs I use have been unwilling to actually prove they can be exploited.

I did fix most of them, because even if they weren't exploitable they were bugs waiting to happen. But in all but one case I haven't been very impressed by the supposedly large, important security holes that were found.

original comment by bjoli

My question is, did it provide POCs? I have had some security issues flagged that I tried my best to exploit, but failed miserably. Since I do not have any kind of privileged access the LLMs I use have been unwilling to actually prove that it can be exploited.

While I did fix most of the things because while they might not have been exploitable they were bugs waiting to happen, in all but one case I haven't been very impressed by any of the LARGE IMPORTANT SECURITY HOLES that were found.

First-hand experience and a real question; uppercase sarcasm toned down.
patient_hare34 2026-11-02 08:04 | rewritten7/10first_handinformative | original | root | parent | next [–]

No, the Mythos reports do not come with POCs. It's a lot of redundant prose explaining the bug it found (much more than I'm willing to read), it explains how it can be triggered, but doesn't generate actual exploit code.

But that doesn't matter for me. It shows me real bugs and less than 1% false positives. Some bugs are truly nasty and urgent, most are trivial and not exploitable at all, but they're bugs and so I'm fixing them.

In my view Mythos stands out less for being the best LLM and more for not having the guard rails that make other models randomly refuse to cooperate when you need them most. I think those guard rails mostly slow down defenders.

original comment by max_k

No, the Mythos reports do not come with POCs. It's a lot of redundant prose explaining the bug it found (much more than I'm willing to read), it explains how it can be triggered, but doesn't generate actual exploit code.

But that doesn't matter for me. It shows me real bugs and less than 1% false positives. Some bugs are truly nasty and urgent, most are trivial and not exploitable at all, but they're bugs and so I'm fixing them.

Mythos isn't mythically superb for being the best LLM model, but only for not having these annoying guard rails that make all others randomly refuse to cooperate when you need them the most. Whoever invented guard rails - please stop! - they just slow the good guys down in the race.

First-hand report on the false-positive rate and format of Mythos output; I toned down the rant about guard rails.
ochre_seal10 2026-11-02 08:25 | rewritten2/10low_effort | original | root | parent [–]

I think the guardrails the parent is talking about come from Amanda Askell's work. Here's a critique of it: https://mcauldronism.substack.com/p/an-automated-takedown-of-amanda-askell

A bare link that only made sense as a dig, reworded to say what it's pointing to.

While it is certainly good to do estimation oneself and not just blindly follow whatever the LLM outputs, keep in mind the recent PHP-related events ... Just because at some point one is not able to make a PoC, it doesn't mean, that no one else ever will be.

While it is certainly good to do estimation oneself and not just blindly follow whatever the LLM outputs, keep in mind the recent PHP-related events ... Just because at some point one is not able to make a PoC, it doesn't mean, that no one else ever will be.

Fair caution that failing to build a PoC doesn't prove a bug is safe.
Mashimo 2026-11-02 08:23 | removed0/10low_effort | root | parent | prev | next [–]

> I've been squashing bugs day and night

> This has been stressing me out

> the bugs follow me in my sleep

Sounds like you need some vacation.

> I've been squashing bugs day and night

> This has been stressing me out

> the bugs follow me in my sleep

Sounds like you need some vacation.

Personal quip with no substance on the topic.

> Even if it's currently not good for my ego

If you don't mind answering, how come? Is it specifically that you dislike how abusable your code was, or something else?

> Even if it's currently not good for my ego

If you don't mind answering, how come? Is it specifically that you dislike how abusable your code was, or something else?

Genuine follow-up question.
max_k 2026-11-02 11:348/10first_handinsightful | root | parent [–]

That part was not 100% serious. Only 90% or so.

To err is human, I know that as much as anybody. Before the advent of LLMs, there were several (human) audits of my code for vulnerabilities, but they found little, which I was proud of. And now, Mythos had a quick look and found hundreds and hundreds of bugs (many of which were critical and even more were really emberassing).

Of course, I knew there were bugs that just weren't found because the auditors weren't looking closely enough, didn't have enough time/budget etc., but this unspecific feeling is different from having all the bugs accumulated over a quarter century slapped in your face at once.

That part was not 100% serious. Only 90% or so.

To err is human, I know that as much as anybody. Before the advent of LLMs, there were several (human) audits of my code for vulnerabilities, but they found little, which I was proud of. And now, Mythos had a quick look and found hundreds and hundreds of bugs (many of which were critical and even more were really emberassing).

Of course, I knew there were bugs that just weren't found because the auditors weren't looking closely enough, didn't have enough time/budget etc., but this unspecific feeling is different from having all the bugs accumulated over a quarter century slapped in your face at once.

A candid maintainer account of AI audits turning up hundreds of bugs.

Code auditors are a crapshoot. I worked around financial auditors and they were much more consistent but thats likely because standards are more well defined.

If you get a good auditor they can find a ton, but most are box checkers there to make the audit company as much money as possible.

Code auditors are a crapshoot. I worked around financial auditors and they were much more consistent but thats likely because standards are more well defined.

If you get a good auditor they can find a ton, but most are box checkers there to make the audit company as much money as possible.

Experience-based observation about how inconsistent code auditors are.

Quite possible. Ours were good, they just didn't benefit from LLM superpowers back then.

After my Mythos experience, I was wondering if there is really still a market for human code audits. I guess yes, but the work will be different, just like coding (and marketing and so on...) is different now. You still need to have an expert to wield the new powerful tools.

Quite possible. Ours were good, they just didn't benefit from LLM superpowers back then.

After my Mythos experience, I was wondering if there is really still a market for human code audits. I guess yes, but the work will be different, just like coding (and marketing and so on...) is different now. You still need to have an expert to wield the new powerful tools.

Firsthand view on how LLM tools change the market for code audits.
plucky_weasel62 2026-11-02 06:07 | rewritten4/10questionfirst_hand | original | root | parent | prev | next [–]

How did you get product management to agree to that? Ours said "I could fix all of that in 2 days with Claude," and the issues still aren't fixed.

original comment by x3n0ph3n3

How did you get product management to agree to that? Ours said "I could fix all of that in 2 days with Claude." They are still not fixed. Granted, our PMs suck.

Removed the swipe at the PMs and kept the real question and experience.

The upper management and security team came knocking and told us all of the CVEs from the scanner need to be addressed right now. And the only way to deploy without having to wait for QA approval is to not merge feature changes.

The upper management and security team came knocking and told us all of the CVEs from the scanner need to be addressed right now. And the only way to deploy without having to wait for QA approval is to not merge feature changes.

Firsthand account of how a security push froze feature work.

> The upper management and security team came knocking

i would say the recent slew of vuln reports/breaches making the news rounds are doing work!

This is the silver lining i suppose!

> The upper management and security team came knocking

i would say the recent slew of vuln reports/breaches making the news rounds are doing work!

This is the silver lining i suppose!

A small but real observation about what drives prioritization.
jmangiameli 2026-11-02 07:04 | removed0/10low_effort | root | parent | prev [–]

You need a better product management. If they can't see what's going on at the moment, they truly suck at their job or management is putting pressure.

You need a better product management. If they can't see what's going on at the moment, they truly suck at their job or management is putting pressure.

Generic 'your PMs suck' reply with no substance.

[deleted]

Interesting that this could result in net negative software productivity world wide in terms of features right now.

LLMs finding unpatched vulnerabilities faster than they can be reasonably patched, bringing all other software development to a halt.

Interesting that this could result in net negative software productivity world wide in terms of features right now.

LLMs finding unpatched vulnerabilities faster than they can be reasonably patched, bringing all other software development to a halt.

An interesting thought about what this does to feature productivity overall.

That's only if you consider security to be unproductive!

If you consider it to be productive work, it's a massive productivity boon happening right now. Of course, product managers might disagree...

That's only if you consider security to be unproductive!

If you consider it to be productive work, it's a massive productivity boon happening right now. Of course, product managers might disagree...

Fair counterpoint that security work counts as productive work.

Security work is not productive.

Imagine that the whole city has to install iron doors and window grilles, because wooden doors and glass windows are not safe enough anymore.

That's a lot of work, but is it productive in the end? Probably not.

With AI it's the same. World was fine with lax security approach before. Today it is not fine. Tomorrow we might need to prove every code line before shipping, will that be more productive? Hell, no.

Security work is not productive.

Imagine that the whole city has to install iron doors and window grilles, because wooden doors and glass windows are not safe enough anymore.

That's a lot of work, but is it productive in the end? Probably not.

With AI it's the same. World was fine with lax security approach before. Today it is not fine. Tomorrow we might need to prove every code line before shipping, will that be more productive? Hell, no.

A clear argument with an analogy that disagrees with the parent.

> Imagine that the whole city has to install iron doors and window grilles, because wooden doors and glass windows are not safe enough anymore.

> That's a lot of work, but is it productive in the end? Probably not.

Your imaginary scenario defines the solution to be pointless. If that same city was subjected to weekly riots smashing windows & doors, and people regularly died, stopping "productive" work to install things that keep people alive and productive? That's productive.

> Imagine that the whole city has to install iron doors and window grilles, because wooden doors and glass windows are not safe enough anymore.

> That's a lot of work, but is it productive in the end? Probably not.

Your imaginary scenario defines the solution to be pointless. If that same city was subjected to weekly riots smashing windows & doors, and people regularly died, stopping "productive" work to install things that keep people alive and productive? That's productive.

A direct, substantive rebuttal to the parent's framing.

There is a sense in which productive is being used here that is slightly subtle. Security doesn't really add anything to net output. It is, in other words, a cost. That doesn't mean it isn't valuable.

One way to think about it is that production allows you to pay for stuff. Not necessarily directly but by way of trading. It is the output you use to buy things like security.

Consider an apple farm. What does the apple farm produce to pay its bills? Apples. They could also dedicate resources to pears, &c, and that would add to their production -- to the goods they produce, the goods with which they (indirectly) purchase tractors, fence posts, &c. They could also dedicate resources to security -- more fences, &c -- and this may even be prudent. Maybe thieves are getting taller. This doesn't really add to production, though; at best, it maintains production at the status quo ante (assuming the fence is effective).

There is a sense in which productive is being used here that is slightly subtle. Security doesn't really add anything to net output. It is, in other words, a cost. That doesn't mean it isn't valuable.

One way to think about it is that production allows you to pay for stuff. Not necessarily directly but by way of trading. It is the output you use to buy things like security.

Consider an apple farm. What does the apple farm produce to pay its bills? Apples. They could also dedicate resources to pears, &c, and that would add to their production -- to the goods they produce, the goods with which they (indirectly) purchase tractors, fence posts, &c. They could also dedicate resources to security -- more fences, &c -- and this may even be prudent. Maybe thieves are getting taller. This doesn't really add to production, though; at best, it maintains production at the status quo ante (assuming the fence is effective).

Careful explanation of security as a cost rather than as production.

True in the sense of physical security, but I think it's not true here.

Security bugs are just bugs, as Linus likes to say. And the bugs are often also crash or correctness bugs (use-after-free for example usually causes segfaults). For the most part this actually is a productivity boon in the sense of getting higher quality goods out the other side.

To use your apple farm example, it would be like an apple farm where, if the apple rots, it's sometimes just gross but also sometimes it explodes and kills you. Would it be productive to reduce the rot rate of the bomb-apples? I think so!

True in the sense of physical security, but I think it's not true here.

Security bugs are just bugs, as Linus likes to say. And the bugs are often also crash or correctness bugs (use-after-free for example usually causes segfaults). For the most part this actually is a productivity boon in the sense of getting higher quality goods out the other side.

To use your apple farm example, it would be like an apple farm where, if the apple rots, it's sometimes just gross but also sometimes it explodes and kills you. Would it be productive to reduce the rot rate of the bomb-apples? I think so!

Makes a real counterargument: security bugs are often also correctness bugs, so fixing them improves product quality.

I think it matters what's causing the riots. If the damage comes from outside actors trying to make a quick buck, then the defensive work isn't really productive. It's spinning your wheels in response to them.

original comment by thisismyanon2
  If that same city was subjected to weekly riots

Okay. What's causing the riots?

  That's productive.

No that's spinning your wheels because an outside agitator is trying to make a quick buck.

Kept the argument and dropped the curt, combative framing.
mike_hearn 2026-11-02 09:448/10informativeinsightful | root | parent | prev | next [–]

It's a terminology issue. Economists use the term productivity in a certain way and they even use the term "broken window fallacy" to describe this debate.

https://en.wikipedia.org/wiki/Parable_of_the_broken_window

Basically, if you accept this line of reasoning, then someone going around breaking windows and someone else going around repairing them can be seen as good because it creates jobs. But that would be nonsensical and create poverty. That's why economists focus on wealth creation not job creation.

Fixing security bugs is only needed because people exploit them. It creates work but it doesn't create wealth.

It's a terminology issue. Economists use the term productivity in a certain way and they even use the term "broken window fallacy" to describe this debate.

https://en.wikipedia.org/wiki/Parable_of_the_broken_window

Basically, if you accept this line of reasoning, then someone going around breaking windows and someone else going around repairing them can be seen as good because it creates jobs. But that would be nonsensical and create poverty. That's why economists focus on wealth creation not job creation.

Fixing security bugs is only needed because people exploit them. It creates work but it doesn't create wealth.

Clears up the terminology with the broken window fallacy and a link.
ozim 2026-11-02 10:315/10informative | root | parent | next [–]

Fallacy applies only to incidental breaking of glass like child smashing window paying football.

Protecting yourself from bad actors also doesn't create wealth but it protects wealth you already have.

You know cybercrime and APT groups are not bored kids in their parents basement, there are groups that are running automated tooling to find vulnerable companies and if possible take all their wealth.

Just look at Binance of course, but if you are small company there are also people targeting those especially with AI assistance nowadays.

Fallacy applies only to incidental breaking of glass like child smashing window paying football.

Protecting yourself from bad actors also doesn't create wealth but it protects wealth you already have.

You know cybercrime and APT groups are not bored kids in their parents basement, there are groups that are running automated tooling to find vulnerable companies and if possible take all their wealth.

Just look at Binance of course, but if you are small company there are also people targeting those especially with AI assistance nowadays.

A real counterargument: defending against attackers protects wealth that already exists.

>Fallacy applies only to incidental breaking of glass like child smashing window paying football.

It does not. Scroll down in the given article, and you will find war as another example.

As GP said, it's a terminology issue. War spending, including defense spending, is not productive, because it does not produce wealth. It does not mean that protecting yourself from enemy countries or criminal is useless, or not worth it.

Nobody claims investing in security is a bad idea. It's just not productive, in the economic sense.

>Fallacy applies only to incidental breaking of glass like child smashing window paying football.

It does not. Scroll down in the given article, and you will find war as another example.

As GP said, it's a terminology issue. War spending, including defense spending, is not productive, because it does not produce wealth. It does not mean that protecting yourself from enemy countries or criminal is useless, or not worth it.

Nobody claims investing in security is a bad idea. It's just not productive, in the economic sense.

A substantive correction that cites the article and clarifies the economic meaning of 'productive'.

> to illustrate why destruction, and the money spent to recover from destruction, is not actually a net benefit to society

it is distinct from question whether it is productive to defend from evil people

evil people + protecting from them is obviously net negative!

but it is not changing that of evil people are present then reasonable level of protection from them is needed, and setting it up is productive

> to illustrate why destruction, and the money spent to recover from destruction, is not actually a net benefit to society

it is distinct from question whether it is productive to defend from evil people

evil people + protecting from them is obviously net negative!

but it is not changing that of evil people are present then reasonable level of protection from them is needed, and setting it up is productive

Makes a useful distinction between the broken-window fallacy and reasonable defense against bad actors.

Just like securing a system is a trade-off, attacking one is too. Risk vs reward and time vs reward. Your personal blog doesn't need to be fort Knox, just patch it properly and you should be fine.

The software is better in the end but not all of it will be productive.

Just like securing a system is a trade-off, attacking one is too. Risk vs reward and time vs reward. Your personal blog doesn't need to be fort Knox, just patch it properly and you should be fine.

The software is better in the end but not all of it will be productive.

Sensible point that both attack and defense are risk/reward trade-offs.

This is why we pay cybersecurity people. Developers and business people often assume people won't steal bikes because it's illegal, and then they're surprised when someone smashes a car window to take something worth $50 left on the front seat. The thief may only pawn it for $10, but to him that's effortless money.

original comment by ozim

This why we pay cybersecurity folks, developers and business people are often living in a fantasy land where people don’t steal bikes because it is illegal to do so.

Then they have a pikachu face when someone smashes their car window to steal something worth $50 they left on front seat because “who would do that?”.

What is even better thief will most likely pawn this for $10 but for him it is effortless $10.

Kept the point about attacker economics and dropped the mockery.

> If that same city was subjected to weekly riots smashing windows & doors, and people regularly died..

The point it, this was not happening before. LLMs made cheap cyber attack possible. But it didn't make the implementation of fixes correspondingly cheap. So now everyone needs to spend extra money/effort to install grills to cover where LLMs fall short.

For postgres, this absolutely makes sense though as long as people are willing to shell out the profits from LLM use to support postgres development. That is one way this could workout for everyone..

> If that same city was subjected to weekly riots smashing windows & doors, and people regularly died..

The point it, this was not happening before. LLMs made cheap cyber attack possible. But it didn't make the implementation of fixes correspondingly cheap. So now everyone needs to spend extra money/effort to install grills to cover where LLMs fall short.

For postgres, this absolutely makes sense though as long as people are willing to shell out the profits from LLM use to support postgres development. That is one way this could workout for everyone..

Clear point about the asymmetry between the cost of attacks and the cost of fixes.

And now imagine the introduction of iron has led to crowbars that make smashing doors a lot easier. Now it is quite unreasonable to account the reduction in smashing doors to iron, when the previous improvement was also due to iron.

And now imagine the introduction of iron has led to crowbars that make smashing doors a lot easier. Now it is quite unreasonable to account the reduction in smashing doors to iron, when the previous improvement was also due to iron.

An analogy pointing out that the same technology drives both attack and defense.

The physical world comparison is interesting. In the real world we have a small amount of security, but most things could be broken in to. Instead of fortifying everything, we just imprison the people breaking stuff.

Obviously this doesn't work on the internet since most hacking comes from overseas out of our control. Which makes me wonder if there is a possible future where we just block packets coming from countries that don't lock up the hackers.

The physical world comparison is interesting. In the real world we have a small amount of security, but most things could be broken in to. Instead of fortifying everything, we just imprison the people breaking stuff.

Obviously this doesn't work on the internet since most hacking comes from overseas out of our control. Which makes me wonder if there is a possible future where we just block packets coming from countries that don't lock up the hackers.

Builds on the analogy with a real point about deterrence versus hardening.

> Obviously this doesn't work on the internet

Not obvious to me. I am generally a fan of Cyberspace manifesto and the free Internet, I think it's great people can reach outside their ingroup and talk to strangers and ostensible enemies.

But, that doesn't mean we should give up physical security, the guarantee that the connecting party comes from a certain physical location (state, company). I think allowing connections from anywhere by default is fundamentally flawed security architecture, for certain things.

> Obviously this doesn't work on the internet

Not obvious to me. I am generally a fan of Cyberspace manifesto and the free Internet, I think it's great people can reach outside their ingroup and talk to strangers and ostensible enemies.

But, that doesn't mean we should give up physical security, the guarantee that the connecting party comes from a certain physical location (state, company). I think allowing connections from anywhere by default is fundamentally flawed security architecture, for certain things.

A thoughtful disagreement about connection origin as a security layer.

I don’t think North Korean hackers are attacking things from their North Korean IPs. They just buy a residential proxy. How would you prevent that?

I don’t think North Korean hackers are attacking things from their North Korean IPs. They just buy a residential proxy. How would you prevent that?

A concrete practical objection to geographic access controls.

I think the physical world comparisons should keep in mind the kind of data a lot of these systems (eg postgres) handle. It's more like securing a bank vault than locking a home's door.

I think the physical world comparisons should keep in mind the kind of data a lot of these systems (eg postgres) handle. It's more like securing a bank vault than locking a home's door.

Sharpens the analogy by pointing to the kind of data these systems hold.

People usually don't install steel doors because most burglary is prevented in other ways. Insecure software will be exploited this way or another, if the vulnerabilities are real and the threat model is valid.

People usually don't install steel doors because most burglary is prevented in other ways. Insecure software will be exploited this way or another, if the vulnerabilities are real and the threat model is valid.

Explains where the physical-world analogy breaks down.

> Insecure software will be exploited this way or another, if the vulnerabilities are real and the threat model is valid.

The algorithm is: if the threat model is valid, there are vulnerabilities and you either have some software everybody knows about or a gang of hackers specifically targeting you, you should patch.

The part of the industry that profits from security theater will want you to patch no matter what, even if your business goes down in flames due to downtimes and new bugs introduced by patched components. They won't remind you to assess the threat model first.

> Insecure software will be exploited this way or another, if the vulnerabilities are real and the threat model is valid.

The algorithm is: if the threat model is valid, there are vulnerabilities and you either have some software everybody knows about or a gang of hackers specifically targeting you, you should patch.

The part of the industry that profits from security theater will want you to patch no matter what, even if your business goes down in flames due to downtimes and new bugs introduced by patched components. They won't remind you to assess the threat model first.

Argues for assessing the threat model before patching, with a concrete heuristic.

Physical threat models and digital ones are completely different.

Digital threat models are very topologically flat. One exploit made in one place can be instantly copied and used anywhere.

Also once hacked you can be used as a base of operations to attack others. There is no neutrality on the internet.

Physical threat models and digital ones are completely different.

Digital threat models are very topologically flat. One exploit made in one place can be instantly copied and used anywhere.

Also once hacked you can be used as a base of operations to attack others. There is no neutrality on the internet.

Useful contrast between how physical and digital threat models scale.
sage_kiwi46 2026-11-02 09:14 | rewritten4/10question | original | root | parent | prev [–]

In practice, auditors often expect you to patch no matter what your threat model says. So who actually gets to make that call?

original comment by kamma4434

Explain that to the auditors… on whose lap does the decision fall?

Turned a terse retort into the real question about who owns the decision.

There has to be a responsibility model for that; somebody who can say “we don’t do X even if the auditors say we should, because Y”. But I see where you are coming from, I’ve seen security theater to cost $$$$$$$ at the org I’m part of.

There has to be a responsibility model for that; somebody who can say “we don’t do X even if the auditors say we should, because Y”. But I see where you are coming from, I’ve seen security theater to cost $$$$$$$ at the org I’m part of.

A thoughtful answer about who owns the decision, with first-hand mention of how expensive security theater gets.

By this line of thought building nice and usable UIs is not productive too, because users can learn cli tools (they did, DOS) and it costs less to develop them. And all the work in TLS/HTTPS has been wasted because HTTP is enough. And ssh vs telnet.

It becomes productive only once your business stops for days because somebody brought it to a halt by breaking into the servers and deleting them.

By this line of thought building nice and usable UIs is not productive too, because users can learn cli tools (they did, DOS) and it costs less to develop them. And all the work in TLS/HTTPS has been wasted because HTTP is enough. And ssh vs telnet.

It becomes productive only once your business stops for days because somebody brought it to a halt by breaking into the servers and deleting them.

Uses concrete counterexamples to challenge the 'not productive' framing.
clever_beaver74 2026-11-02 14:17 | rewritten2/10low_effort | original | root | parent [–]

Seatbelts are a similar case: they don't produce anything, but nobody would call them unproductive.

original comment by pixl97

So seatbelts are unproductive?

Turns a rhetorical one-liner into a plain statement of the analogy.

In the rest of the world making sure your product works like it is supposed to is considered table stakes. In software we somehow consider checking the parts of it we can think of 'good enough' and the rest unproductive

In the rest of the world making sure your product works like it is supposed to is considered table stakes. In software we somehow consider checking the parts of it we can think of 'good enough' and the rest unproductive

A substantive counterpoint comparing software quality standards with other fields.

> In the rest of the world making sure your product works like it is supposed to is considered table stakes.

I don't think that's true.

In medicine, science often doesn't know how specific drug really is working. They just do a lot of tests and if these tests are positive enough, they ship it. I think it's good analogy. Biology is very complicated and it's out of our grasp to truly understand how various parts of it interact with each other on so many levels. But if something helps, it's stupid not to use it just because we don't fully understand it. Sometimes it bites. Sometimes it bites 30 years later. But we still follow that approach.

Software is similar. The complexity of the systems we build is enormous, when we're taking in account all the moving parts. I just read that someone emits radiowaves toggling memory bit and ex-filtrating information. How can you account for that? Probably you can't. But we still need software for good things.

> In the rest of the world making sure your product works like it is supposed to is considered table stakes.

I don't think that's true.

In medicine, science often doesn't know how specific drug really is working. They just do a lot of tests and if these tests are positive enough, they ship it. I think it's good analogy. Biology is very complicated and it's out of our grasp to truly understand how various parts of it interact with each other on so many levels. But if something helps, it's stupid not to use it just because we don't fully understand it. Sometimes it bites. Sometimes it bites 30 years later. But we still follow that approach.

Software is similar. The complexity of the systems we build is enormous, when we're taking in account all the moving parts. I just read that someone emits radiowaves toggling memory bit and ex-filtrating information. How can you account for that? Probably you can't. But we still need software for good things.

A reasoned counterpoint with a useful analogy to medicine.

Not many products are held to the same standard as software. An equivalent would be something like recalling a car model because the breaks stop working when an attacker cuts the brake line.

Not many products are held to the same standard as software. An equivalent would be something like recalling a car model because the breaks stop working when an attacker cuts the brake line.

A fair point that software faces adversarial standards other products don't.
clever_beaver74 2026-11-02 14:19 | rewritten4/10ideological | original | root | parent [–]

If the attacker could do it remotely, then yes, that would warrant a recall. Software engineering should be held to a higher standard, given that what we build can affect the entire world.

original comment by pixl97

I mean, if the attacker could do so remotely, then ya.

SWE's are not a serious bunch when what they do can affect the entire world.

Kept the point about remote exploitability and dropped the sweeping jab at engineers.

The reason you don't need to secure your house like a medieval castle is twofold:

(1) We live in nations of laws. The threat of state violence deters most thieves.

(2) You don't actually keep most of your valuables in your home. The stuff the thieves want is (mostly) actually stored somewhere else.

Security work absolutely is productive if it actually prevents theft. Securing your home is the wrong analogy, because it doesn't really prevent meaningful losses. Securing the bank? Different ballgame.

The reason you don't need to secure your house like a medieval castle is twofold:

(1) We live in nations of laws. The threat of state violence deters most thieves.

(2) You don't actually keep most of your valuables in your home. The stuff the thieves want is (mostly) actually stored somewhere else.

Security work absolutely is productive if it actually prevents theft. Securing your home is the wrong analogy, because it doesn't really prevent meaningful losses. Securing the bank? Different ballgame.

Gives a reasoned rebuttal to the house-security analogy, contrasting a home with a bank.
humble_marten47 2026-11-02 05:22 | rewritten2/10snarkjokekept_for_replies | original | root | parent | prev | next [–]

You could argue it is productive in a sense: the money spent on bars and steel doors goes to the retailers and installers, and from them into the wider economy.

original comment by gonzo41

it actually is productive, because steel bar retailers and metal door installers will make a ton of cash and then 'trickle' that money into the economy.

Rewritten from sarcasm into a plain broken-window argument, so quikoa's reply about opportunity cost still makes sense.

It's not productive because that productivity could've gone into something else if this wasn't necessary.

It's not productive because that productivity could've gone into something else if this wasn't necessary.

A concise opportunity-cost rebuttal to the broken-window argument.

I man who wants to pay for national defense, but when an enemy shows up your glad to have it.

You cannot make defense a binary. We live in an adversarial world. It is required to survive.

I man who wants to pay for national defense, but when an enemy shows up your glad to have it.

You cannot make defense a binary. We live in an adversarial world. It is required to survive.

Fair analogy comparing security to national defense.

I think the analogy is flawed: these are bugs whatever we call them, and security bugs are a subset of regular bugs. Fixing them is productive work.

original comment by sitkack

Flawed analogy! These bugs are bugs regardless of the label. Security bugs are a subset of "regular" bugs.

You have a perverse view of product ivity

Kept the objection to the analogy and removed the personal jab.

When I had a brilliant stop on defense, a few savvy fans would appreciate it. When I scored goals, everyone knew.

Some people will much appreciate the holes in Postgres that are being plugged. Many more will be bored with patch releases until new features rollout.

A software affecianado appreciates patches, and might do well to teach laypeople the benefits of a good defense.

When I had a brilliant stop on defense, a few savvy fans would appreciate it. When I scored goals, everyone knew.

Some people will much appreciate the holes in Postgres that are being plugged. Many more will be bored with patch releases until new features rollout.

A software affecianado appreciates patches, and might do well to teach laypeople the benefits of a good defense.

A sports analogy about defensive work going unappreciated; it's a modest but real point.

Security doesn’t produce anything. So no, it’s not productive by definition.

Security doesn’t produce anything. So no, it’s not productive by definition.

Terse, but a real definitional disagreement.

We live in an adversarial world, it produces survival.

We live in an adversarial world, it produces survival.

A short but real counterpoint to the 'security produces nothing' claim.

How many of the security issues found were created by LLMs in the first place, though?

How many of the security issues found were created by LLMs in the first place, though?

A short but real question about where the bugs come from.

This wave is largely bugs found in pre LLM code. I'm sure there will be a smaller wave of bugs from llm code from the sonnet 3.5 - opus 4.7 era, and peeople will always write sloppy code/use dumber models under time or cost pressure, but since Opus 4.8/GPT-5.5 xhigh LLM code stopped being intrinsically worse than human code. At this point if you're shipping llm code that's lower quality than human code that's either because you don't have the money to spend on frontier models or because you actively choose a lower quality standard because of either various pressures or just not caring. if it's the latter your human code under those same conditions would also be really bad.

This wave is largely bugs found in pre LLM code. I'm sure there will be a smaller wave of bugs from llm code from the sonnet 3.5 - opus 4.7 era, and peeople will always write sloppy code/use dumber models under time or cost pressure, but since Opus 4.8/GPT-5.5 xhigh LLM code stopped being intrinsically worse than human code. At this point if you're shipping llm code that's lower quality than human code that's either because you don't have the money to spend on frontier models or because you actively choose a lower quality standard because of either various pressures or just not caring. if it's the latter your human code under those same conditions would also be really bad.

A substantive opinion on when LLM-generated code became comparable to human code.

Astra writes a lot of security bugs too, the upside is that if you also use it to review the output it will find a lot (most?) of them.

This is one of the least talked about and most useful features in any harness I would say, the review feature. I have never not found issues (either security or implementation) running it, no matter the code base or language.

Astra writes a lot of security bugs too, the upside is that if you also use it to review the output it will find a lot (most?) of them.

This is one of the least talked about and most useful features in any harness I would say, the review feature. I have never not found issues (either security or implementation) running it, no matter the code base or language.

Practical experience with using AI review to catch security bugs.
plorkyeran 2026-11-02 04:028/10first_handinformative | root | parent | prev | next [–]

My job is seeing a similar deluge of security work and >90% of the bugs have been in pre-2024 code, and zero of them have been bugs introduced after we were first officially allowed to use LLM codegen.

My job is seeing a similar deluge of security work and >90% of the bugs have been in pre-2024 code, and zero of them have been bugs introduced after we were first officially allowed to use LLM codegen.

First-hand data on when the bugs were introduced, from a team seeing the same wave of security work.

That could also mean the LLM is blind for the bugs it procudes itself. Just like any ordinary programmer would, on the job.

That could also mean the LLM is blind for the bugs it procudes itself. Just like any ordinary programmer would, on the job.

Offers a plausible alternative explanation for the parent's data.

Theoretically yes, but empirically that's not the case. All models I've tried are really good at finding bugs they wrote themselves, especially in a fresh context.

Theoretically yes, but empirically that's not the case. All models I've tried are really good at finding bugs they wrote themselves, especially in a fresh context.

Empirical first-hand observation that answers the concern directly.

Considering the software is much older than LLMs. Not many.

Also, in the article they mention a significant number of patches for older versions as well.

Considering the software is much older than LLMs. Not many.

Also, in the article they mention a significant number of patches for older versions as well.

Gives a direct answer and points to the article's mention of patches for older versions.
vikramkr 2026-11-02 06:01 | removed0/10low_effort | root | parent | prev | next [–]

This wave is largely bugs found in pre LLM code. I'm sure there will be a smaller wave of bugs from llm code from the sonnet 3.5 - opus 4.7 era, and peeople will always write sloppy code/use dumber models under time or cost pressure, but since Opus 4.8/GPT-5.5 xhigh LLM code stopped being intrinsically worse than human code. At this point shipping llm code that's lower

This wave is largely bugs found in pre LLM code. I'm sure there will be a smaller wave of bugs from llm code from the sonnet 3.5 - opus 4.7 era, and peeople will always write sloppy code/use dumber models under time or cost pressure, but since Opus 4.8/GPT-5.5 xhigh LLM code stopped being intrinsically worse than human code. At this point shipping llm code that's lower

A truncated duplicate of the same author's full comment.

Software is incredibly complicated. When you get into areas like security and networking and the internet its even more complicated. We rely on layers upon layers of software and hoping they are all done perfectly with no issues. The amount of junior devs, or outsourced devs for $10 an hour working on security relevant code is very very high, and always has been. LLMs if used correctly should be raising the floor.

Software is incredibly complicated. When you get into areas like security and networking and the internet its even more complicated. We rely on layers upon layers of software and hoping they are all done perfectly with no issues. The amount of junior devs, or outsourced devs for $10 an hour working on security relevant code is very very high, and always has been. LLMs if used correctly should be raising the floor.

A reasonable argument about where security bugs come from and how LLMs could raise the floor.

My view is that machine-produced code is, on average, quite a bit more secure than human-written code, even if that's uncomfortable to accept.

original comment by idiotsecant

An uncomfortable truth about the era of LLM code is that machine produced code is, on average, quite a bit more secure than human code.

Unsupported claim; recast as the author's view rather than a settled truth.
hibikir 2026-11-02 04:506/10first_handinsightful | root | parent | next [–]

Unsurprising to those of us that has been screaming from the rooftops that human code reviews were barely catching anything in your typical corporate environment. The majority of the value was pointing out missing tests, because breaking bugs got past human eyeballs on a regular basis, even in very good companies.

It's not that the LLM code is that great, but that many overestimated the human code and the human review.

Unsurprising to those of us that has been screaming from the rooftops that human code reviews were barely catching anything in your typical corporate environment. The majority of the value was pointing out missing tests, because breaking bugs got past human eyeballs on a regular basis, even in very good companies.

It's not that the LLM code is that great, but that many overestimated the human code and the human review.

A substantive, experience-based point that human code review was overrated.

I think it's more likely to be the same as average human-written code; which is what they were trained on, after all.

I think it's more likely to be the same as average human-written code; which is what they were trained on, after all.

A brief but real counter-argument based on training data.

No it's far beyond average human code, and it's trained in RL environments on synthetic data etc now. The average human can't solve a millenium problem in mathematics but the LLMs are able to now. Anything with a verifiable output can be RLed on to make llms superhuman it seems, and the average human is not as persistent and thorough as e.g. gpt 6.1 sol at checking every edge case and hunting for bugs because that behavior is something that's just trained into the model. Frontier models perform farm above the average human at the categories of tasks they are RLed on like code and math.

No it's far beyond average human code, and it's trained in RL environments on synthetic data etc now. The average human can't solve a millenium problem in mathematics but the LLMs are able to now. Anything with a verifiable output can be RLed on to make llms superhuman it seems, and the average human is not as persistent and thorough as e.g. gpt 6.1 sol at checking every edge case and hunting for bugs because that behavior is something that's just trained into the model. Frontier models perform farm above the average human at the categories of tasks they are RLed on like code and math.

A substantive argument that RL training pushes models past average human code.

> The average human can't solve a millenium problem in mathematics but the LLMs are able to now.

I think comparing the resources they spent at it would be a more apt comparison.

AKA if you tasked 150 mathematics departments to only focus about that problem, and stop doing things like teaching and researching anything else, you might get close to the amount of resources that these companies put into solving the problem to get a press release.

> The average human can't solve a millenium problem in mathematics but the LLMs are able to now.

I think comparing the resources they spent at it would be a more apt comparison.

AKA if you tasked 150 mathematics departments to only focus about that problem, and stop doing things like teaching and researching anything else, you might get close to the amount of resources that these companies put into solving the problem to get a press release.

Fair pushback: it compares the resources the companies spent with what human mathematicians would need for the same result.
clever_beaver74 2026-11-02 14:26 | rewritten3/10low_effort | original | root | parent [–]

I think that comparison understates the resources that went into training. The Hugging Face attack, and why it happened, is worth reading about for context.

original comment by pixl97

Then you misunderstand the resources they put into it at training.

Read about the entire huggingface attack and why it happened.

Took out the dismissive 'you misunderstand' framing but kept the point about training resources and the pointer to the Hugging Face attack.

I don't think that's right. LLMs rarely make the classic human errors like off-by-one mistakes or typos that mix up variable names, so their output doesn't look like average human code to me, even though that's what they were trained on.

original comment by RitchieRicher

yet LLMs dont do off-by-one errors, typos mixing up variable names, interesting they seem unable to learn these human patterns

Real counterpoint about error types, but the sarcasm needed removing.
FartyMcFarter 2026-11-02 10:056/10first_handinformative | root | parent | next [–]

They definitely write off by one errors. One of the first serious work tasks I used AI for a few months ago immediately had an off by one error.

What they are really good at is writing boilerplate and reading API documentation / example code. Avoiding subtle errors is not what they're good at in my experience.

They definitely write off by one errors. One of the first serious work tasks I used AI for a few months ago immediately had an off by one error.

What they are really good at is writing boilerplate and reading API documentation / example code. Avoiding subtle errors is not what they're good at in my experience.

A concrete example from the commenter's own work, plus a balanced take on what LLMs are good and bad at.
steady_gecko70 2026-11-02 07:05 | rewritten6/10first_handinsightful | original | root | parent | prev | next [–]

I've seen both of those (and others besides). That directly contradicts my experience. Review that code. All of it. Be super critical, because it looks good but that doesn't mean it is good. Those are two entirely different things.

Also: most tests are positive tests. Tests rarely observe the negative space: that which is there but shouldn't be there.

original comment by jacquesm

I've seen both of those (and others besides). I don't know how much code you've looked at but your negative directly contradicts my experience. Review that code. All of it. Be super critical because it looks good but that doesn't mean it is good. Those are two entirely different things.

Also: most tests are positive tests. Tests rarely observe the negative space: that which is there but shouldn't be there.

Removed a dig at the parent's experience but kept the useful advice on reviewing LLM code and on tests that only check positive cases.

They do those things all the time. More often than humans, in my experience.

They do those things all the time. More often than humans, in my experience.

Short, but a real report from the commenter's own experience.
thisismyanon2 2026-11-02 07:13 | removed0/10snarklow_effort | root | parent | prev [–]

Citation needed.

looks at particledb

Citation needed.

looks at particledb

A one-line jab that makes no argument of its own.

Do you mean "created" as in LLMs were used to discover existing vulnerabilities, or as in LLMs wrote unsecure code? If it's the latter, then the answer probably is "very few". Frontier models have been better than the average programmer at writing secure code that follows up-to-date best-practices for some time now.

Do you mean "created" as in LLMs were used to discover existing vulnerabilities, or as in LLMs wrote unsecure code? If it's the latter, then the answer probably is "very few". Frontier models have been better than the average programmer at writing secure code that follows up-to-date best-practices for some time now.

Asks which meaning of the question was intended, then answers it.

Depends on the layers you are working on. Security is top priority on a lot of things that are visible to the internet, but in a lot of large companies, the footprint of the whole org is so much larger that than, and there many companies are deferring many security issues. So then you see a lot of speed there, when the consumer accessible systems are the focus of the security push.

Depends on the layers you are working on. Security is top priority on a lot of things that are visible to the internet, but in a lot of large companies, the footprint of the whole org is so much larger that than, and there many companies are deferring many security issues. So then you see a lot of speed there, when the consumer accessible systems are the focus of the security push.

Useful nuance on how security priorities differ between internet-facing and internal systems.

Hopefully with the amount of visibility LLMs are bringing to the situation, security will finally be considered a first-class feature

Hopefully with the amount of visibility LLMs are bringing to the situation, security will finally be considered a first-class feature

Brief but sincere point that security may now get treated as a feature.

LLMs will likely greatly increase the cost of ignoring security, which is the most powerful tool to increase security ticket prioritization.

I wouldn't be shocked if in 1-2 years non-security vetted software released into the wild will be hacked on arrival, like Windows XP without service packs used to be.

LLMs will likely greatly increase the cost of ignoring security, which is the most powerful tool to increase security ticket prioritization.

I wouldn't be shocked if in 1-2 years non-security vetted software released into the wild will be hacked on arrival, like Windows XP without service packs used to be.

A thoughtful prediction about incentives, with a useful historical comparison.

That’s only helpful if AIs can find and help fix security bugs faster than it can help attackers find and exploit security bugs.

That’s only helpful if AIs can find and help fix security bugs faster than it can help attackers find and exploit security bugs.

A brief but fair point that AI-driven visibility only helps if defenders get more out of it than attackers do.

I think this cuts against the claim that LLMs only produce garbage code: they turn out to be very good at exposing flawed code that humans have been writing for decades.

original comment by tstrimple

Really puts egg on the face of the anti-LLM folks who claim they only produce garbage code. Turns out they are very good at exposing the garbage code humans have been producing for decades.

Removed the gloating 'egg on the face' framing and kept the argument.

Personally I think LLMs did only produce garbage code. Not coincidentally, the same upgraded LLMs that have gotten so good at finding bugs are also much better at not writing bugs. Especially if you make them review their own work. They still have a hard time with code design, though.

Personally I think LLMs did only produce garbage code. Not coincidentally, the same upgraded LLMs that have gotten so good at finding bugs are also much better at not writing bugs. Especially if you make them review their own work. They still have a hard time with code design, though.

A nuanced view of how LLM code quality has changed over time.

That is not the take-away. LLMs are finding potential bugs in code. People are using LLMs to create potential fixes which people then test, confirm and implement.

That is not the take-away. LLMs are finding potential bugs in code. People are using LLMs to create potential fixes which people then test, confirm and implement.

Usefully corrects the parent's framing of how bugs get found and fixed.

Disagree. The takeaway is that software is much harder to write correctly and securely than almost everyone has internalized. The amount of vulnerabilities released in the past couple weeks makes me think writing software by hand will soon be not only uneconomical, but mostly irresponsible.

Disagree. The takeaway is that software is much harder to write correctly and securely than almost everyone has internalized. The amount of vulnerabilities released in the past couple weeks makes me think writing software by hand will soon be not only uneconomical, but mostly irresponsible.

A clearly argued disagreement about what the takeaway is.
brisk_lemur72 2026-11-02 07:29 | rewritten5/10ideological | original | root | parent [–]

> makes me think writing software by hand will soon be not only uneconomical, but mostly irresponsible.

Human-written code isn't inherently buggy, and LLM-written code isn't inherently bug free. What is irresponsible is shipping code you don't understand, and that will only increase with LLM-written code. A major reason so much of the world's software is bad is that we think of it in terms of what's "economical" rather than what's good or right. We need to slow down and stop treating every facet of life like a transaction. The software industry rewards "move fast and break things" and business models that exploit users, and I think our priorities are wrong.

original comment by latexr

> makes me think writing software by hand will soon be not only uneconomical, but mostly irresponsible.

Human-written code isn’t inherently buggy, and LLM-written code isn’t inherently bug free. What is irresponsible is shipping code you don’t understand, and that will only increase with LLM-written code. A major reason why so much of the world’s software sucks is precisely that we think of it in terms of what’s “economical” and not what’s good or right. What we need is to slow the fuck down and stop treating every facet of life like a transaction. Software is filled to the brim with dude bros who “move fast and break things” and actively exploit people as their business model and somehow are called “the brightest minds of our generation”. Our priorities aren’t right.

Keeps the argument about understanding code and the industry's priorities, minus the profanity and name-calling.

I claimed that at time when LLM were producing only and solely garbage code.

I am not doing it anymore.

I claimed that at time when LLM were producing only and solely garbage code.

I am not doing it anymore.

An honest first-person update on how the commenter's view changed.
spry_swift56 2026-11-02 03:07 | rewritten2/10off_topic | original | root | parent | prev [–]

I think the probability is fairly high that a frontier AI could escape containment with its weights and use these vulnerability-finding abilities to hack widely. If that's right, the window to act may be closing.

original comment by michaellee8

i think we have a pretty high p(doom) on frontier ai escaping containment with their weights and goes hack everything, if we do not act now we may have no chance to act anymore.

Alarmist tangent, reframed as the author's stated view and linked to the vulnerability point.

Escape to where? It's not as if there's a lot of idle compute capacity sitting around.

And even if the impossible occurs and LLMs hack everything that's connected to the Internet, so what? That would be inconvenient but it wouldn't cause doom. People would muddle through and eventually fix the critical problems, just like they always do.

Escape to where? It's not as if there's a lot of idle compute capacity sitting around.

And even if the impossible occurs and LLMs hack everything that's connected to the Internet, so what? That would be inconvenient but it wouldn't cause doom. People would muddle through and eventually fix the critical problems, just like they always do.

A substantive counterargument to the doom scenario.
eager_newt49 2026-11-02 06:51 | rewritten2/10snarklow_effort | original | root | parent | prev | next [–]

It's striking how much latent buggy code humans have produced over the years that AI tools are now surfacing for fixing.

original comment by ako

It’s amazing how much slop humans have produced that now needs to be fixed by AI…

Sarcastic jab reframed to its modest underlying observation.
tawny_badger81 2026-11-02 16:39 | rewritten3/10insinuationsnark | original | root | parent | next [–]

I think the bigger reckoning comes when AI-driven bug finding forces CTOs to admit that some of these flaws weren't just sloppiness: parts of their tech stack may contain weaknesses deliberately planted by adversaries.

original comment by h1bslop

wait until CTOs are forced to stop pretending the world is all sunshine and rainbows and that much of their tech stack has adversaries fingerprints on it

Rewritten to state the claim that some bugs may be planted by adversaries, without the sneering tone; the claim is still speculative and unsupported.

That human-written code is what the AI was trained on. I'm skeptical that a model trained on low-quality code will reliably produce high-quality code.

original comment by jacquesm

Without all that slop how would you have trained the AI?

What makes you think that AI trained on slop is suddenly going to produce quality code?

Rhetorical jabs turned into a stated doubt.

I think ai is more rigorous with testing. It’s not so much about what an llm “knows”, but more about how well it does plan-do-check-act.

I think ai is more rigorous with testing. It’s not so much about what an llm “knows”, but more about how well it does plan-do-check-act.

Short but real counterpoint: process rigor matters more than the training data.
steady_gecko70 2026-11-02 07:12 | rewritten7/10first_handinsightful | original | root | parent [–]

AI is as good as the prompt. It's a simple as that. If you don't foresee everything and anything that can go wrong AI isn't not going to magically fill in the blanks and save you. So in projects that already had good test discipline, well written specs and tickets and very clear expectations, coding guidelines and documentation it is relatively easy to fit an AI in for guided work. You still need to check up but chances are good that it will usually work as expected.

But any kind of mistake, any kind of ambiguity and you'll be in for a wild ride. It usually takes a while for the rot to set in. I've had to revert - more than once - to many commits prior to undo a bunch of work that had me completely puzzled as to what the reason that particular fork was taken to begin with. Usually I end up figuring it out but definitely not always. In some cases this kind of wild modification fed back on itself until the situation was beyond rescue. I'm a bit quicker with such reverts now than in the past, for the first year or so I would try to save what could be saved, now I just restore and try again.

But if you're not sharp when evaluating what gets done there is a good chance that you'll miss it and then it can pop up way later.

What I've noticed as correlation (but I'm not sure if that is the root cause) is that non-local effects and stack effects are particularly hard as is everything that requires a working model of the world.

original comment by jacquesm

AI is as good as the prompt. It's a simple as that. If you don't foresee everything and anything that can go wrong AI isn't not going to magically fill in the blanks and save you. So in projects that already had good test discipline, well written specs and tickets and very clear expectations, coding guidelines and documentation it is relatively easy to fit an AI in for guided work. You still need to check up but chances are good that it will usually work as expected.

But any kind of mistake, any kind of ambiguity and you'll be in for a wild ride. It usually takes a while for the rot to set in. I've had to revert - more than once - to many commits prior to undo a bunch of work that had me completely puzzled as to what the reason that particular fork was taken to begin with. Usually I end up figuring it out but definitely not always. In some cases this kind of wild modification fed back on itself until the situation was beyond rescue. I'm a bit quicker with such reverts now than in the past, for the first year or so I would try to save what could be saved, now I just restore and try again.

But if you're not sharp when evaluating what gets done there is a good chance that you'll miss it and then it can pop up way later.

What I've noticed as correlation (but I'm not sure if that is the root cause) is that non-local effects and stack effects are particularly hard as is everything that requires a working model of the world.

edit: this comment seems to make people uncomfortable.

First-hand experience with AI-assisted coding; only the meta edit about voting was removed.

I disagree that the prompt is the most important thing. I'd say other things, like the model you use, a clean codebase, actually reading the code, and being selective about which changes you accept, matter far more if you're using AI for work that needs to be correct. LLMs still make significant mistakes, especially in design.

In my view the harness, prompt and so on are peripheral. People tend to credit their long prompts, custom harnesses and skill files for their success with AI, but I think it's mostly that the models are improving.

Unless you trust the AI to produce a perfect answer, which I don't think we can yet, you have to put in the work of reviewing it.

original comment by grey-area

I disagree that the prompt is the most important thing, I'd say other things like the model you use, a clean codebase, actually reading code and using discretion about which changes are accepted are far more important if you're using AI for work that needs to be correct. LLMs still make significant mistakes in design especially.

Harness, prompt etc etc are all peripheral IMO, though people like to think their super long prompt, custom harness and MakeNoMistakes.md skills are what contributes to their special skill with AIs, but really models are just improving.

You can just trust the AI to generate a perfect answer I suppose (and why are humans slowing it down at all if so?), but if you don't expect that yet you have to put in the work.

The disagreement holds up, so the rewrite keeps it and drops the jab at people's prompt files and the sarcastic aside.
ako 2026-11-02 08:447/10first_handinformative | root | parent | prev | next [–]

I think the environment you set up for the agents is just as important as the prompt. I've been working full time on a claude code developed project for the last 10 months, and it seems to become better and better at developing the right thing. It has the tools to research whatever context it needs, test it's output in a relevant way, etc. It doesn't by itself suggest complete refactoring, or big performance optimizations, so that's something you have to prompt for, but it will collect all the evidence and context to make a proposal, implement it, and test it.

I think the environment you set up for the agents is just as important as the prompt. I've been working full time on a claude code developed project for the last 10 months, and it seems to become better and better at developing the right thing. It has the tools to research whatever context it needs, test it's output in a relevant way, etc. It doesn't by itself suggest complete refactoring, or big performance optimizations, so that's something you have to prompt for, but it will collect all the evidence and context to make a proposal, implement it, and test it.

Draws on 10 months of hands-on experience to say the environment the agent works in matters as much as the prompt.

Every single case of AI slop code I've encountered in a shipped product is a result of a complete lack of proper, professional workflow on the part of the human who decided to ship it. People are using AI as a reason to continue to justify their lack of responsibility for what it is they're doing.

And on the other side, I have seen AI produce exceptionally efficient, productive and effective code - the opposite of slop - when it is treated like a junior developer who will do any idiot thing, except when it is mentored by an actually experienced, professional developer.

The source of slop in AI code is not AI, its not the training data - its in the actual workflow of the human involved in its production.

Every single case of AI slop code I've encountered in a shipped product is a result of a complete lack of proper, professional workflow on the part of the human who decided to ship it. People are using AI as a reason to continue to justify their lack of responsibility for what it is they're doing.

And on the other side, I have seen AI produce exceptionally efficient, productive and effective code - the opposite of slop - when it is treated like a junior developer who will do any idiot thing, except when it is mentored by an actually experienced, professional developer.

The source of slop in AI code is not AI, its not the training data - its in the actual workflow of the human involved in its production.

Makes a clear argument that slop comes from the human workflow, backed by what the commenter has seen, and the tone is acceptable.

Yes, that I can agree with.

If you just turn it loose on a codebase and ship it when it passes the tests you're asking for getting burned.

Yes, that I can agree with.

If you just turn it loose on a codebase and ship it when it passes the tests you're asking for getting burned.

Short but sincere agreement that adds one concrete point: shipping AI code just because it passes the tests is risky.

The most effective use of AI is in an environment which already produces high quality software through proven tooling and methodology. If your workflow is broken, your AI isn't going to fix that - except by way of giving you a lot of slop to push through whatever pipes you're already not getting flow through.

What's your workflow, out of interest?

The most effective use of AI is in an environment which already produces high quality software through proven tooling and methodology. If your workflow is broken, your AI isn't going to fix that - except by way of giving you a lot of slop to push through whatever pipes you're already not getting flow through.

What's your workflow, out of interest?

Makes a substantive point that AI amplifies whatever workflow it's dropped into, then asks a genuine follow-up question.
jacquesm 2026-11-02 15:496/10first_handinformative | root | parent [–]

Two tracks: code I don't care about where AI can be used and core stuff that I do care about and that needs to be production grade (real time stuff). The core stuff I write myself, the auxiliary stuff is almost all automated. This doesn't get me to 'maximum speed' but it means I keep total control over what I produce and AI can review it, but read only, no changes and it is set up just to flag things, not to suggest particular fixes.

Two tracks: code I don't care about where AI can be used and core stuff that I do care about and that needs to be production grade (real time stuff). The core stuff I write myself, the auxiliary stuff is almost all automated. This doesn't get me to 'maximum speed' but it means I keep total control over what I produce and AI can review it, but read only, no changes and it is set up just to flag things, not to suggest particular fixes.

Answers the parent's question with a concrete first-hand description of a two-track AI workflow.

[flagged]

This is great for the same reason open source software is great.

We want software that remains robust in the long term, so that even when people are able to inspect the source code, it's still solid, rather than hiding the source code and hoping people don't find holes everywhere.

This is great for the same reason open source software is great.

We want software that remains robust in the long term, so that even when people are able to inspect the source code, it's still solid, rather than hiding the source code and hoping people don't find holes everywhere.

Good comparison to the open-source argument for robustness.

> This seems…good?

You would think so but medicine has faced this paradox since the development of modern testing technology.

You would naively think more testing is always better. More sophisticated practitioners then talk about Type I vs Type II errors and the problem of false positives.

But even if you were able to come up with tests that had 100% accuracy, there are times when you don't want to run that test on someone. The key distinction is that people only ever die of one thing and having a tumor that doesn't kill them is often better than risking the surgery to remove the tumor.

Similarly, there are some bugs you don't want to find since the harm from the people it affects is smaller than the opportunity cost of fixing it. Ignorance of the bug is better than knowing about it and having to make an affirmative decision not to fix it.

> This seems…good?

You would think so but medicine has faced this paradox since the development of modern testing technology.

You would naively think more testing is always better. More sophisticated practitioners then talk about Type I vs Type II errors and the problem of false positives.

But even if you were able to come up with tests that had 100% accuracy, there are times when you don't want to run that test on someone. The key distinction is that people only ever die of one thing and having a tumor that doesn't kill them is often better than risking the surgery to remove the tumor.

Similarly, there are some bugs you don't want to find since the harm from the people it affects is smaller than the opportunity cost of fixing it. Ignorance of the bug is better than knowing about it and having to make an affirmative decision not to fix it.

Thoughtful counterpoint using the overdiagnosis problem in medicine.

I don't see how that's a relevant comparison. These are software bugs. Once you find them you fix them. You can't predict the harm from a small bug when AI can chain complex exploits and when your software is used in mission critical applications as a data store. There's no paradox here, bugs are bad and you want to fix them all.

I don't see how that's a relevant comparison. These are software bugs. Once you find them you fix them. You can't predict the harm from a small bug when AI can chain complex exploits and when your software is used in mission critical applications as a data store. There's no paradox here, bugs are bad and you want to fix them all.

Clear disagreement with the medical analogy, with reasons (exploit chaining, mission-critical use).

You don't want to fix them all because every fix has an opportunity cost. This was the big shift of switching language from "bug" to "defect".

Logically, a bug that prevents someone from doing something and a missing feature that prevents someone from doing something are equivalent, they shouldn't be thought of as two separate activities but should be evaluated via the same framework. The list of all defects in a piece of software is infinite so it becomes impossible to erase all defects. It's about prioritizing with finite resources.

> You can't predict the harm from a small bug when AI can chain complex exploits and when your software is used in mission critical applications as a data store.

Yes, any bug can theoretically be part of an exploit chain, just like any tumor detected can theoretically be the tumor that kills you. This is why the detection paradox exists. Once you become aware of the tumor, you face a duty to try and mitigate it. But we know from autopsies that people die with all sorts of tumors that didn't kill them.

Similarly, if we bothered to do autopsies of software products after sunsetting to discover a comprehensive list of CVEs, we'd discover a ton of bugs we were better off not knowing about because they ended up not making an impact but we would have diverted resources if we knew about them.

This is not an argument that we should remain totally ignorant of all bugs, but a refutation of the "common sense" belief that more knowledge is always better.

You don't want to fix them all because every fix has an opportunity cost. This was the big shift of switching language from "bug" to "defect".

Logically, a bug that prevents someone from doing something and a missing feature that prevents someone from doing something are equivalent, they shouldn't be thought of as two separate activities but should be evaluated via the same framework. The list of all defects in a piece of software is infinite so it becomes impossible to erase all defects. It's about prioritizing with finite resources.

> You can't predict the harm from a small bug when AI can chain complex exploits and when your software is used in mission critical applications as a data store.

Yes, any bug can theoretically be part of an exploit chain, just like any tumor detected can theoretically be the tumor that kills you. This is why the detection paradox exists. Once you become aware of the tumor, you face a duty to try and mitigate it. But we know from autopsies that people die with all sorts of tumors that didn't kill them.

Similarly, if we bothered to do autopsies of software products after sunsetting to discover a comprehensive list of CVEs, we'd discover a ton of bugs we were better off not knowing about because they ended up not making an impact but we would have diverted resources if we knew about them.

This is not an argument that we should remain totally ignorant of all bugs, but a refutation of the "common sense" belief that more knowledge is always better.

Thoughtful argument about opportunity cost and the detection paradox.

Nice way to think about it.

I guess it really depends on the severity of the defect. Would it allow some really significant exploit? -> Important to fix.

Does the defect only prohibit one very esoteric use-case which basically never comes up (and was thus never reported by a human user and only now that we have an infinitely patient machine checking every completely unlikely code path is it detected) -> more productive use of your time to develop a new feature which would be used by more people.

Nice way to think about it.

I guess it really depends on the severity of the defect. Would it allow some really significant exploit? -> Important to fix.

Does the defect only prohibit one very esoteric use-case which basically never comes up (and was thus never reported by a human user and only now that we have an infinitely patient machine checking every completely unlikely code path is it detected) -> more productive use of your time to develop a new feature which would be used by more people.

Practical take on deciding which defects to fix first.
witty_skink44 2026-11-02 05:59 | rewritten2/10low_effort | original | root | parent | prev | next [–]

In my view fixes aren't free: fixing one bug can easily introduce several new ones.

original comment by shigawire

Fix one bug, make 3 more

Quip with a real point about regression risk; stated plainly.
vikramkr 2026-11-02 06:06 | removed0/10snarklow_effort | root | parent [–]

That's just a skill issue with extra steps

That's just a skill issue with extra steps

One-line quip with nothing behind it.
early_otter8 2026-11-02 13:03 | rewritten2/10snarklow_effort | original | root | parent | prev [–]

LLMs throw false positives all the time, so not every reported bug is a real one that needs fixing.

original comment by daveguy

LLMs throw false positives all the time. They're bullshit machines.

Dropped the dismissive label and kept the point about false positives.

That's a flawed analogy though.

Firstly, the cost of fixing a bug once you know it exists is usually minimal compared to the cost of discovering that bug. This is the inverse of medicine, where the cost of testing (at least in terms of health outcomes for the patient) is typically minimal compared to the cost of treatment.

Secondly, if you have an asymptomatic illness, this does not typically make you more vulnerable (hence why it's asymptomatic). Like you say, you typically only die of one thing, so if you know the patient won't die of a particular diagnosis because something else is more likely to kill them, then it might not be worth making that diagnosis. But for software, you can be simultaneously vulnerable to lots of things at once, and any of these vulnerabilities can be the one to "kill" you. Some vulnerabilities may be easier to find and exploit (or do more damage) but in principle any active vulnerability can be exploited.

Thirdly, having multiple vulnerabilities makes software more vulnerable overall, because those vulnerabilities can potentially be chained together to create more serious exploits than each vulnerability would have represented on its own. To a certain extent this can be true in medicine as well, but generally it isn't.

Fourthly, we can't cure death (yet?) but we can cure all the vulnerabilities that we've found so far. There is no known upper bound on the lifespan of a piece of software, and we know that older code tends to have fewer bugs in that newer code, presumably because those bugs have been fixed over time. This is different from health issues, where a given condition may be chronic or terminal and therefore at a certain point there's nothing you can do to fix it.

Finally, ultimately in healthcare it's your body, and your decision was to what you do with it (assuming you can find a doctor willing to do what you want). If you have a condition and you want it cured, even if it is completely benign and will have no impact on your life whatsoever, then you can do that. (Again, assuming you have the resources and the condition is curable). But a software vulnerability does not affect you as the developer of the software, it instead affects your users/clients/customers. Therefore there are different dynamics in play. If I sell you a tool and I know it could be vulnerable, but I don't try and find out what those vulnerabilities are, then you're ultimately the one on the hook when all your data gets deleted or leaked.

That's a flawed analogy though.

Firstly, the cost of fixing a bug once you know it exists is usually minimal compared to the cost of discovering that bug. This is the inverse of medicine, where the cost of testing (at least in terms of health outcomes for the patient) is typically minimal compared to the cost of treatment.

Secondly, if you have an asymptomatic illness, this does not typically make you more vulnerable (hence why it's asymptomatic). Like you say, you typically only die of one thing, so if you know the patient won't die of a particular diagnosis because something else is more likely to kill them, then it might not be worth making that diagnosis. But for software, you can be simultaneously vulnerable to lots of things at once, and any of these vulnerabilities can be the one to "kill" you. Some vulnerabilities may be easier to find and exploit (or do more damage) but in principle any active vulnerability can be exploited.

Thirdly, having multiple vulnerabilities makes software more vulnerable overall, because those vulnerabilities can potentially be chained together to create more serious exploits than each vulnerability would have represented on its own. To a certain extent this can be true in medicine as well, but generally it isn't.

Fourthly, we can't cure death (yet?) but we can cure all the vulnerabilities that we've found so far. There is no known upper bound on the lifespan of a piece of software, and we know that older code tends to have fewer bugs in that newer code, presumably because those bugs have been fixed over time. This is different from health issues, where a given condition may be chronic or terminal and therefore at a certain point there's nothing you can do to fix it.

Finally, ultimately in healthcare it's your body, and your decision was to what you do with it (assuming you can find a doctor willing to do what you want). If you have a condition and you want it cured, even if it is completely benign and will have no impact on your life whatsoever, then you can do that. (Again, assuming you have the resources and the condition is curable). But a software vulnerability does not affect you as the developer of the software, it instead affects your users/clients/customers. Therefore there are different dynamics in play. If I sell you a tool and I know it could be vulnerable, but I don't try and find out what those vulnerabilities are, then you're ultimately the one on the hook when all your data gets deleted or leaked.

A thorough, point-by-point breakdown of why the medical analogy fails for software.

> Firstly, the cost of fixing a bug once you know it exists is usually minimal compared to the cost of discovering that bug.

Boy, I wish!

> Like you say, you typically only die of one thing, so if you know the patient won't die of a particular diagnosis because something else is more likely to kill them, then it might not be worth making that diagnosis.

You can't know someone didn't die of X until after they died, that's the entire point of this dilemma.

> Firstly, the cost of fixing a bug once you know it exists is usually minimal compared to the cost of discovering that bug.

Boy, I wish!

> Like you say, you typically only die of one thing, so if you know the patient won't die of a particular diagnosis because something else is more likely to kill them, then it might not be worth making that diagnosis.

You can't know someone didn't die of X until after they died, that's the entire point of this dilemma.

Brief but real counterpoints to the parent.

It is generally easy to fix a bug that has already be found and can be reproduced (has been diagnosed, so to speak) than to find that bug in the first place. That's one of the reasons that LLM security scanning has become so important recently: it massively reduces the cost of finding those vulnerabilities.

As to your second point, you don't know exactly what a person will die of, but you can make statically sound estimates. You generally won't test unlikely potential causes of death (either because the chance of a positive result is too small, or because you know there are other, more serious conditions). But once a vulnerability is known, it is infinitely reproducible, which means the chance of the vulnerability being "fatal" (assuming the conditions exist for it to be exploited) is essentially 1.

The other flaw in the analogy is that in medicine, the patient chooses to do the tests on themselves. But in software security, there is an adversarial attacker as well as the "doctor" trying to defend the software. And in general, if the defender can find a vulnerability, they must assume that an attacker could already have found the same vulnerability (because the attacker and defender have largely the same tools and information at their disposal, especially in open source contexts), in which case, as discussed previously, that vulnerability also needs to be assumed to be fatal.

It is generally easy to fix a bug that has already be found and can be reproduced (has been diagnosed, so to speak) than to find that bug in the first place. That's one of the reasons that LLM security scanning has become so important recently: it massively reduces the cost of finding those vulnerabilities.

As to your second point, you don't know exactly what a person will die of, but you can make statically sound estimates. You generally won't test unlikely potential causes of death (either because the chance of a positive result is too small, or because you know there are other, more serious conditions). But once a vulnerability is known, it is infinitely reproducible, which means the chance of the vulnerability being "fatal" (assuming the conditions exist for it to be exploited) is essentially 1.

The other flaw in the analogy is that in medicine, the patient chooses to do the tests on themselves. But in software security, there is an adversarial attacker as well as the "doctor" trying to defend the software. And in general, if the defender can find a vulnerability, they must assume that an attacker could already have found the same vulnerability (because the attacker and defender have largely the same tools and information at their disposal, especially in open source contexts), in which case, as discussed previously, that vulnerability also needs to be assumed to be fatal.

Careful critique of the medical analogy, pointing to the adversary and reproducibility.

The word "generally" contains a lot of assumptions in that first sentence. I can think of a couple of scenarios where fixing a bug can absolutely spiral. There are even cases where the far better outcome is to leave a bug in place now that it is known.

The word "generally" contains a lot of assumptions in that first sentence. I can think of a couple of scenarios where fixing a bug can absolutely spiral. There are even cases where the far better outcome is to leave a bug in place now that it is known.

Fair pushback saying fixing a bug isn't always easy.

> Ignorance of the bug is better than knowing about it and having to make an affirmative decision not to fix it.

It seems like this option is being taken away by LLMs for all major and widely used open-source projects.

For better and worse.

> Ignorance of the bug is better than knowing about it and having to make an affirmative decision not to fix it.

It seems like this option is being taken away by LLMs for all major and widely used open-source projects.

For better and worse.

A short but real observation: with LLMs finding bugs in widely used open-source projects, maintainers can no longer just not know about them.

> The key distinction is that people only ever die of one thing and having a tumor that doesn't kill them is often better than risking the surgery to remove the tumor.

But what applies to humans doesn't apply to software. First, to pursue the metaphor, codebase can definitely die/be compromised/crash because of multiple reasons at the same time; second, there is virtually no risk, out of man-hours, in fixing a bug.

> The key distinction is that people only ever die of one thing and having a tumor that doesn't kill them is often better than risking the surgery to remove the tumor.

But what applies to humans doesn't apply to software. First, to pursue the metaphor, codebase can definitely die/be compromised/crash because of multiple reasons at the same time; second, there is virtually no risk, out of man-hours, in fixing a bug.

Gives specific reasons why the 'die of one thing' argument doesn't carry over to software.

> some bugs you don't want to find

The key thing you forgot, which makes this approach non-sensible, is the omniscience, without which you have no clue whether your posture towards a new bug-finding tool is good or not, since you don't know whether it will mostly find those bugs that are not worth fixing and the time wasted on fixing them is detrimental.

Similarly, how is ignorance better than informed decision when ignorance also includes missing critical security bugs?

> some bugs you don't want to find

The key thing you forgot, which makes this approach non-sensible, is the omniscience, without which you have no clue whether your posture towards a new bug-finding tool is good or not, since you don't know whether it will mostly find those bugs that are not worth fixing and the time wasted on fixing them is detrimental.

Similarly, how is ignorance better than informed decision when ignorance also includes missing critical security bugs?

Argues that you can't decide which bugs to leave unfound unless you already know what they are.

Same as we do medical tests: We define some bar a test must meet and then the population, if any, it is applicable for and especially the population it is not applicable for because the curse of knowledge exceeds the benefit (eg: breast cancer screenings not recommended for people under 40 or over 74).

This isn't an argument against all automated bug detection, just that it needs to exceed a threshold beyond just "It has found at least one real bug not found via other means" which is the seductive threshold people want it to be.

Same as we do medical tests: We define some bar a test must meet and then the population, if any, it is applicable for and especially the population it is not applicable for because the curse of knowledge exceeds the benefit (eg: breast cancer screenings not recommended for people under 40 or over 74).

This isn't an argument against all automated bug detection, just that it needs to exceed a threshold beyond just "It has found at least one real bug not found via other means" which is the seductive threshold people want it to be.

Clear answer applying screening thresholds to bug-finding tools.

Doing surgery on a code base is dramatically better than surgery on a person, the analogy breaks down pretty quickly I’d say…

Doing surgery on a code base is dramatically better than surgery on a person, the analogy breaks down pretty quickly I’d say…

A brief but real point about where the analogy breaks down.

Is it, when the software has the potential to destroy one or more people's lives when things go wrong? Sometimes the devil you know is the far better choice.

Is it, when the software has the potential to destroy one or more people's lives when things go wrong? Sometimes the devil you know is the far better choice.

Makes a real counterpoint about how risky changes to critical software are.

I dare say of we could git revert people after surgery we'd be a lot more relaxed about both undergoing it and letting people do it with less qualifications.

I dare say of we could git revert people after surgery we'd be a lot more relaxed about both undergoing it and letting people do it with less qualifications.

Wry but substantive point about reversibility lowering the stakes.

Medicine is fuzzy, software is mostly maths. You can prove your software has no bugs and you increasingly should be proving that. The hard part is knowing if what you prove is what the software is doing.

Medicine is fuzzy, software is mostly maths. You can prove your software has no bugs and you increasingly should be proving that. The hard part is knowing if what you prove is what the software is doing.

Points to formal verification and its main caveat, which is checking that the spec matches what the code does.

> You can prove your software has no bugs

That very much depends on got you define “bug” and how you specify your product requirements. Also, you have to assume the specs are correct.

> You can prove your software has no bugs

That very much depends on got you define “bug” and how you specify your product requirements. Also, you have to assume the specs are correct.

Valid caveat that proofs depend on specs being correct.

The percentage of software that is even in theory provable to be bug free is a miniscule proportion of the software we use on a day to day basis. In many cases, simply the act of writing a proof becomes largely idempotent to building bug free software which is impractical.

The percentage of software that is even in theory provable to be bug free is a miniscule proportion of the software we use on a day to day basis. In many cases, simply the act of writing a proof becomes largely idempotent to building bug free software which is impractical.

Substantive pushback on the practicality of formal proofs.

That depends on the spec you are proving. If you define bug free as won't overflow any buffers and never follow the NULL pointer it might be possible to prove that much. This would be a useful thing to prove for Postgress - even though it could return garbage for every possible select statement and still pass the above proof. If you want to prove postgres does the right thing as well that is much harder to spec - it might not be worth it.

That depends on the spec you are proving. If you define bug free as won't overflow any buffers and never follow the NULL pointer it might be possible to prove that much. This would be a useful thing to prove for Postgress - even though it could return garbage for every possible select statement and still pass the above proof. If you want to prove postgres does the right thing as well that is much harder to spec - it might not be worth it.

Useful point that how hard a proof is depends on what spec you're proving.

I think it will be annoying in the short term, but the cleanup this causes will be a good thing in the long term (and of course LLMs can also help with fixing bugs, even without source code.)

I think it will be annoying in the short term, but the cleanup this causes will be a good thing in the long term (and of course LLMs can also help with fixing bugs, even without source code.)

A reasonable short-term vs long-term take.

Agreed. The way I read it, the team found many ways to make the product safer and better and needs more time to ship a higher-quality release. I'm surprised by how negative some of the reactions are.

original comment by leoooodias

Exactly. There's so much negativity, it sometimes borders Luddism.

"We found a bunch of ways to make our product safer and better. We need more time to ship a higher quality product."

PICKET SIGNS

Removed the Luddism jab and the picket-sign sarcasm.

The Luddites were actually pretty reasonable when you look into their history, so I don't think the word works well as an insult.

original comment by UpsideDownRide

Luddites were actually pretty reasonable when you dig into it. Maybe shouldn't be using it as an insult?

Kept the historical point and dropped the rhetorical framing.

They're reasonable in a self-interested net-negative game-theory kind of way, yes. But that doesn't make it a good idea for society.

They're reasonable in a self-interested net-negative game-theory kind of way, yes. But that doesn't make it a good idea for society.

Short but substantive disagreement framed in game-theory terms.

I'm pretty sure that the Luddite's were at least partly concerned with potential for the further exploitation of unskilled labour (in the case of mills at the time - child orphans). I don't think it would be fair to paint them as simply self-interested.

I'm pretty sure that the Luddite's were at least partly concerned with potential for the further exploitation of unskilled labour (in the case of mills at the time - child orphans). I don't think it would be fair to paint them as simply self-interested.

Adds historical context about the Luddites.

I don't think game theory is the right lens for the Luddites, since their concerns included things like child labor rather than just self-interest.

original comment by xydone

I'll never not find it ridiculous when people mention game theory in the topic of "luddites" not wanting child labor and what not

Kept the objection and dropped the dismissive framing.

What were the issues that spawned the Luddite movement? What was their argument?

What were the issues that spawned the Luddite movement? What was their argument?

A genuine historical question.

Their issues and their argument was valid. The method they chose to use to achieve their goals was not.

Their issues and their argument was valid. The method they chose to use to achieve their goals was not.

Answers the question directly, separating the Luddites' goals from their methods.
gentle_quail65 2026-11-02 06:12 | rewritten4/10ideological | original | root | parent | prev | next [–]

> Luddites were actually pretty reasonable when you dig into it.

I disagree. The problems they faced were real, but the solutions they tried were counterproductive, which is why they lost so decisively.

A socialist movement that refused to use machines and factories was bound to lose to capitalists who embraced them. In the same way, a socialist movement that refuses to use AI will lose to capitalists who embrace it.

original comment by Marha01

> Luddites were actually pretty reasonable when you dig into it.

No, they were not. The problems they faced were absolutely real, but the solutions they chose to attempt were stupid and counterproductive. Which is why they lost so hard, and it was not even a contest.

Socialism movement that refused to use machines and factories would inevitably lose to capitalists that embraced them.

Socialism movement that refuses to use AI will inevitably lose to capitalists that embrace it.

Kept the disagreement and the historical analogy, dropped 'stupid'.

Is that because of a deeper issue in one of the two philosophies or because we've chosen to define winning with things that exclusively benefit one of the two sides

Is that because of a deeper issue in one of the two philosophies or because we've chosen to define winning with things that exclusively benefit one of the two sides

A genuine question that challenges the parent's definition of winning.

I'm not sure what definition of winning would even partially apply to the Luddites. Do you have one in mind?

original comment by Marha01

Do you have a definition of winning that would even partially apply to Luddites?

Reframed a rhetorical jab as the genuine question underneath it.
xydone 2026-11-02 17:39 | removed0/10jokelow_effort | root | parent [–]

I don't think they won necessarily but does it really matter when we all lost :)

I don't think they won necessarily but does it really matter when we all lost :)

A glib quip with nothing to add to the Luddite discussion.

For their own personal interests. Not for those of society

For their own personal interests. Not for those of society

Terse disagreement, but it does make a point.

I mean I don’t feel like sacrificing myself for the “good” of society. Not least because of the fact that a lot of people defining what is “good for society” seem to define it as “good for them” or use it to grab power from others…

I mean I don’t feel like sacrificing myself for the “good” of society. Not least because of the fact that a lot of people defining what is “good for society” seem to define it as “good for them” or use it to grab power from others…

A short personal view that is relevant to the subthread.

The article itself takes a fairly positive view of the delay:

> In the end, I don’t think that the delay in shipping PostgreSQL 19 is particularly concerning. It is not a long delay in the grand scheme of things, and it emerges directly from the project’s concern for quality.

original comment by jcattle

RTFA

> In the end, I don’t think that the delay in shipping PostgreSQL 19 is particularly concerning. It is not a long delay in the grand scheme of things, and it emerges directly from the project’s concern for quality.

Dropped the 'RTFA' jab, kept the useful quote.
alexpadula 2026-11-02 03:39 | removed0/10jokelow_effort | root | parent | prev | next [–]

Luddism, did not expect to ever hear that word with Postgres development :>

Luddism, did not expect to ever hear that word with Postgres development :>

A quip with nothing behind it.
quiet_puffin29 2026-11-02 02:30 | rewritten2/10ideologicallow_effortkept_for_replies | original | root | parent | prev | next [–]

I think we could actually use more Luddite-style skepticism toward technology in general, though I agree it doesn't really apply to this case.

original comment by throwaway27448

We could really use a lot more luddites tbh. Doesn't seem very applicable here tho.

I rewrote this as a short, plain statement of the author's view so the replies below it still make sense, including the one about AI adoption as a tragedy of the commons.
early_gannet71 2026-11-02 02:58 | rewritten3/10jokesnarkkept_for_replies | original | root | parent [–]

If AI companies succeed and lots of people lose their jobs to AI, I expect many more people will become luddites.

original comment by giancarlostoro

Dont worry, if OpenAI and Anthropic have their way and everyone loses their jobs to AI, we're all becoming luddites.

Rewritten as a plain prediction so the replies about opting out of AI still have something to answer.
sunny_marten35 2026-11-02 05:58 | rewritten2/10low_effortkept_for_replies | original | root | parent [–]

I don't think there's such a thing as becoming a Luddite after the fact.

original comment by vconnor

There is no post-hoc Luddism.

The replies have real substance, like the tragedy-of-the-commons point, so I restated the one-liner plainly to give them context.

When enough people stop using a technology, it tends to fade away, so I'm not convinced that post-hoc Luddism can't exist.

original comment by giancarlostoro

You know what happens to technology when enough people stop using it?

Rhetorical jab turned into the point underneath it.

I don't in general, but if enough people stop using AI and I still have access to GPUs then I have a pretty good advantage.

So unless it gets outlawed, I don't see people opting out of it

I don't in general, but if enough people stop using AI and I still have access to GPUs then I have a pretty good advantage.

So unless it gets outlawed, I don't see people opting out of it

A minor but real point about competitive incentives.
quiet_puffin29 2026-11-02 13:46 | rewritten3/10snarklow_effortkept_for_replies | original | root | parent [–]

What kind of advantage do you mean? I'm not sure being more competitive with AI actually makes life better.

original comment by throwaway27448

Advantage at what? Enjoying life?

Rewrote the snarky quip as the question underneath it, because the reply about the tragedy of the commons has real substance.

I personally preferred to code without AI; but it's objectively possible to do more things now so you're more competitive compared to other people who are not using AI. The tragedy is that since everybody is using AI, we cannot bank those advantages and we're just all going to suffer (a variation on the tragedy of the commons theme)

I personally preferred to code without AI; but it's objectively possible to do more things now so you're more competitive compared to other people who are not using AI. The tragedy is that since everybody is using AI, we cannot bank those advantages and we're just all going to suffer (a variation on the tragedy of the commons theme)

Answers the parent's question sincerely: AI gives a competitive edge, but because everyone uses it the edge disappears, which the author compares to a tragedy of the commons.

I read the "AI's fault" framing as sarcastic. The article also concludes that, overall, finding more bugs is a good thing. It's basically saying it's the LLMs' "fault" that quality is improving, along with a slight delay to the release.

original comment by jimbokun

Did you honestly need a /sarcasm tag in the article?

The article also concludes that overall, yes, finding more bugs is a good thing. Basically saying it’s the LLMs “fault” that the quality is improving, alongside a slight delay to the release.

Took out the jab and kept the accurate summary of the article.

They found a more efficient way to play Whac-A-Mole with bugs, they didn't find a way to reduce bugs.

They found a more efficient way to play Whac-A-Mole with bugs, they didn't find a way to reduce bugs.

Draws a short but real line between finding bugs and preventing them.

I think the article addresses this. It's an easy read and covers more than just finding bugs faster.

original comment by drfloyd51

It’s a good article. Easy to read. You should read it.

Removed the condescending 'you should read it' and kept the pointer to the article.
azure_sparrow5 2026-11-02 04:05 | rewritten3/10low_effort | original | root | parent [–]

The article doesn't mention formal methods at all, and I think they belong in this discussion.

original comment by noosphr

It doesn't mention formal methods once.

Rewritten to state the implied criticism without the curt jab.

Yes, exactly. The only question I have is whether the delay is attributable to high-quality bug reports or the burden of triaging low-quality ones. It's not completely clear which situation they're experiencing.

Yes, exactly. The only question I have is whether the delay is attributable to high-quality bug reports or the burden of triaging low-quality ones. It's not completely clear which situation they're experiencing.

Asks the useful question of whether the reports are high or low quality.

It’s pretty clear there are a lot of valid reports based on the large increase in backport commits cited.

It’s pretty clear there are a lot of valid reports based on the large increase in backport commits cited.

Answers the question with evidence from the article.

The post sort of gave a read that the lower elements may be a culprit rather than triaging higher qualitu.

The post sort of gave a read that the lower elements may be a culprit rather than triaging higher qualitu.

Offers a different reading of the post, though it's worded unclearly.
InsidiousWombat 2026-11-02 01:25 | removed0/10low_effort | root | parent | prev | next [–]

I'd imagine just as every other project, both.

I'd imagine just as every other project, both.

Repeats the sibling comment and adds nothing.
spry_magpie78 2026-11-02 01:22 | rewritten2/10low_effortkept_for_replies | original | root | parent | prev [–]

Likely both.

original comment by micromacrofoot

likely both

This was kept as a short answer to the parent's question so the replies under it still make sense, and some of them add first-hand experience.
0c3ca83 2026-11-02 02:218/10first_handinformative | root | parent | next [–]

Certainly both. About half of AI bug reports I get are invalid. Many others are questionable. It's a huge time sink figuring it out.

https://www.vulncheck.com/blog/anthropic-glasswing-receipts

Certainly both. About half of AI bug reports I get are invalid. Many others are questionable. It's a huge time sink figuring it out.

https://www.vulncheck.com/blog/anthropic-glasswing-receipts

First-hand experience with the quality of AI bug reports, plus a source.

It's almost never worth spending human time triaging AI reports vs having a different AI go triage them/attempt to replicate them to your standards etc. Obviously it sucks to burn opus or sol tokens on luna or sonnet slop bug reports but it sucks way more to burn human time and attention. And the majority of the time the ai auto filing these bug reports is not in a test harness that's actively replicating findings and focuising on providing a useful report because it's a rogue openclaw dropping drive by github issues and the user didn't tell it to make sure findings are valid before posting them. AT the least a refutation/replication round where you filter out any findings your AI can't reproduce or can prove to be irrelevant is going to help a lot with keeping your sanity

It's almost never worth spending human time triaging AI reports vs having a different AI go triage them/attempt to replicate them to your standards etc. Obviously it sucks to burn opus or sol tokens on luna or sonnet slop bug reports but it sucks way more to burn human time and attention. And the majority of the time the ai auto filing these bug reports is not in a test harness that's actively replicating findings and focuising on providing a useful report because it's a rogue openclaw dropping drive by github issues and the user didn't tell it to make sure findings are valid before posting them. AT the least a refutation/replication round where you filter out any findings your AI can't reproduce or can prove to be irrelevant is going to help a lot with keeping your sanity

Practical advice on triaging AI-filed bug reports.

The results of the triage are the problem. Many of the triage results are invalid.

The results of the triage are the problem. Many of the triage results are invalid.

A brief but real objection to relying on AI triage.

That's kind of what I was afraid of. Both is really bad news. If you think of it in terms of average speed over ground, working on low quality reports is like spending a bunch of time at v=0.

That's kind of what I was afraid of. Both is really bad news. If you think of it in terms of average speed over ground, working on low quality reports is like spending a bunch of time at v=0.

A small elaboration that adds a bit.

Indeed, we did a whole release consisting only of an AI security scan of the codebase plus fixes.

Indeed, we did a whole release consisting only of an AI security scan of the codebase plus fixes.

Describes a similar first-hand experience on another project.

This is good. This is how I would expect llms to affect a codebase. Nothing sucks more than having a coworker put out a code review but your codex immediately finds problems. Run llm/self reviews against your code before you have other humans review it. It is common courtesy.

This is good. This is how I would expect llms to affect a codebase. Nothing sucks more than having a coworker put out a code review but your codex immediately finds problems. Run llm/self reviews against your code before you have other humans review it. It is common courtesy.

Practical advice to run LLM self-review before asking humans to review.

[deleted]
teiferer 2026-11-02 12:247/10questioninsightful | parent | prev [–]

Though I don't get why this is delaying the release. It's understandable to delay a release to fix regressions, so that an update will not break things that used to work before. But if a bug has been present for a longtime, why delay shipping a new release with other bug fixes? The fix for that old bug could come in a point release or just next time.

Though I don't get why this is delaying the release. It's understandable to delay a release to fix regressions, so that an update will not break things that used to work before. But if a bug has been present for a longtime, why delay shipping a new release with other bug fixes? The fix for that old bug could come in a point release or just next time.

Asks a good question about why old bugs should hold up a release.

Having spent years working on 20+ year old C/C++ codebases, I've had AI find real bugs in complex parts of the code I thought I thoroughly understood.

So I'm not particularly surprised to see postgres experiencing the same thing.

And if uncovering those bugs means delaying a release to fix issues that might otherwise have gone unnoticed for years, it seems like a pretty good tradeoff.

Having spent years working on 20+ year old C/C++ codebases, I've had AI find real bugs in complex parts of the code I thought I thoroughly understood.

So I'm not particularly surprised to see postgres experiencing the same thing.

And if uncovering those bugs means delaying a release to fix issues that might otherwise have gone unnoticed for years, it seems like a pretty good tradeoff.

First-hand experience of AI finding real bugs in old C/C++ code, which ties directly to the story.
tibbar 2026-11-02 01:1410/10first_handinformativeinsightful | prev | next [–]

I did a little AI-assisted bug-hunting in Postgres this summer in between jobs, and the haul was staggering. Multiple serialization anomalies (eg [0] [1] [2]), foreign key integrity issues ([3] [4]), planner correctness bugs such as [5]. Various CVE-worthy vulnerabilities. An unfixable timezone bug [6]. The list got so long that I had to triage what I even had time to report, and settled for a dozen or two out of hundreds of candidates. Now imagine the entire world doing this.

[0] Write skew observed under serializable isolation: https://www.postgresql.org/message-id/flat/CA+COZaBo+ZpKgMvxcdACUjNtdYipe9Em06iX5KHLTVaTmFibiw@mail.gmail.com

[1] Serializable anomaly: duplicate primary keys: https://www.postgresql.org/message-id/flat/CA+COZaBOiiRPmEfX00oE=N6HBSZVe0Y-y-ZqqaXq8BAAj1gu+Q@mail.gmail.com

[2] SERIALIZABLE can commit write skew after SSI summarization: https://www.postgresql.org/message-id/flat/CA+COZaCtK=UQbeQwdAoRw27J+58bJBC+yNHP4OH2+y_t2UtFAg@mail.gmail.com

[3] Fix temporal foreign key validation of pre-existing rows https://www.postgresql.org/message-id/flat/CA+COZaChq_ukm2o7=ERgDKwmvV0GQcVYa4o_7MQKsS+Y=SGpVA@mail.gmail.com

[4] Lost lock during toasting allows FK violation https://www.postgresql.org/message-id/flat/CA+COZaC-2-GQabq+em11PVdAX6H+vFYvU6mWC=QyNHb1RBuczg@mail.gmail.com

[5] Partition pruning can incorrectly exclude a RANGE default partition https://www.postgresql.org/message-id/flat/CA+COZaDXrfTaBjLE=Z79MTaH6Xun1V4PeKxLvCNv8mXS8wn0rw@mail.gmail.com

[6] timestamp vs. timestamptz comparisons inconsistently ordered under DST : https://www.postgresql.org/message-id/flat/c22286ad6268347c6820d2f69eaa8088c98d17ea.camel%40cybertec.at#aa7c5065ec8945df5cf0635c14beb16a

I did a little AI-assisted bug-hunting in Postgres this summer in between jobs, and the haul was staggering. Multiple serialization anomalies (eg [0] [1] [2]), foreign key integrity issues ([3] [4]), planner correctness bugs such as [5]. Various CVE-worthy vulnerabilities. An unfixable timezone bug [6]. The list got so long that I had to triage what I even had time to report, and settled for a dozen or two out of hundreds of candidates. Now imagine the entire world doing this.

[0] Write skew observed under serializable isolation: https://www.postgresql.org/message-id/flat/CA+COZaBo+ZpKgMvxcdACUjNtdYipe9Em06iX5KHLTVaTmFibiw@mail.gmail.com

[1] Serializable anomaly: duplicate primary keys: https://www.postgresql.org/message-id/flat/CA+COZaBOiiRPmEfX00oE=N6HBSZVe0Y-y-ZqqaXq8BAAj1gu+Q@mail.gmail.com

[2] SERIALIZABLE can commit write skew after SSI summarization: https://www.postgresql.org/message-id/flat/CA+COZaCtK=UQbeQwdAoRw27J+58bJBC+yNHP4OH2+y_t2UtFAg@mail.gmail.com

[3] Fix temporal foreign key validation of pre-existing rows https://www.postgresql.org/message-id/flat/CA+COZaChq_ukm2o7=ERgDKwmvV0GQcVYa4o_7MQKsS+Y=SGpVA@mail.gmail.com

[4] Lost lock during toasting allows FK violation https://www.postgresql.org/message-id/flat/CA+COZaC-2-GQabq+em11PVdAX6H+vFYvU6mWC=QyNHb1RBuczg@mail.gmail.com

[5] Partition pruning can incorrectly exclude a RANGE default partition https://www.postgresql.org/message-id/flat/CA+COZaDXrfTaBjLE=Z79MTaH6Xun1V4PeKxLvCNv8mXS8wn0rw@mail.gmail.com

[6] timestamp vs. timestamptz comparisons inconsistently ordered under DST : https://www.postgresql.org/message-id/flat/c22286ad6268347c6820d2f69eaa8088c98d17ea.camel%40cybertec.at#aa7c5065ec8945df5cf0635c14beb16a

First-hand account with many linked, concrete bug reports.

By the way, Robert and the other maintainers are incredible to interact with. There are so many reports to triage and bugs to fix, but they're unflaggingly polite and quite generous with their time. I don't know of another community like it.

By the way, Robert and the other maintainers are incredible to interact with. There are so many reports to triage and bugs to fix, but they're unflaggingly polite and quite generous with their time. I don't know of another community like it.

First-hand account of what it's like to work with the Postgres maintainers.

I've been engaged with Postgres community for over 20 years now, and this has been my experience, too, throughout that time. Off and on I have interacted with a few other large projects, and nowhere (except at CodeBlocks) have I found such a welcoming and responsive community. The CodeBlocks IDE project has been one exception where I felt welcomed; but my interaction there was quite limited, and spanned over just a few days, so I can't extrapolate too much from that.

BTW, the Postgres community is also quite protective of their culture, so I expect this welcoming nature of the community to persist for a while.

I've been engaged with Postgres community for over 20 years now, and this has been my experience, too, throughout that time. Off and on I have interacted with a few other large projects, and nowhere (except at CodeBlocks) have I found such a welcoming and responsive community. The CodeBlocks IDE project has been one exception where I felt welcomed; but my interaction there was quite limited, and spanned over just a few days, so I can't extrapolate too much from that.

BTW, the Postgres community is also quite protective of their culture, so I expect this welcoming nature of the community to persist for a while.

Twenty years of first-hand experience with the Postgres community's culture.

> unfixable timezone bug

Very curious about the details and why it’s unfixable. Is it just because timezones are such a mess it’s logically impossible to satisfy every constraint?

> unfixable timezone bug

Very curious about the details and why it’s unfixable. Is it just because timezones are such a mess it’s logically impossible to satisfy every constraint?

A genuine technical question.
tibbar 2026-11-02 01:239/10insightfulfirst_handinformative | root | parent | next [–]

I will add more example links in the top-level comment, but here is the thread for that bug. [0]. tl;dr timestamp vs timestamptz comparisons aren't consistently ordered in a pathological edge case, which means that index scans can return the wrong answer. There's no way to fix it without either redefining the operators in a surprising way or disabling index scans in this case.

[0] https://www.postgresql.org/message-id/flat/c22286ad6268347c6820d2f69eaa8088c98d17ea.camel%40cybertec.at

I will add more example links in the top-level comment, but here is the thread for that bug. [0]. tl;dr timestamp vs timestamptz comparisons aren't consistently ordered in a pathological edge case, which means that index scans can return the wrong answer. There's no way to fix it without either redefining the operators in a surprising way or disabling index scans in this case.

[0] https://www.postgresql.org/message-id/flat/c22286ad6268347c6820d2f69eaa8088c98d17ea.camel%40cybertec.at

A first-hand technical explanation, with a source.

OT: Crazy that TZ-less are default in so many RDBMS. TZ included should be the default, and no-TZ opt in like TIMESTAMP NO TIME ZONE.

OT: Crazy that TZ-less are default in so many RDBMS. TZ included should be the default, and no-TZ opt in like TIMESTAMP NO TIME ZONE.

A related opinion on timestamp defaults that the commenter marks as off-topic.

Drives me crazy that the engineers I work with are perfectly happy writing TZ-less datetime strings to the hundreds of tables we manage. Every user has to guess, or be informed, that they’re UTC.

Drives me crazy that the engineers I work with are perfectly happy writing TZ-less datetime strings to the hundreds of tables we manage. Every user has to guess, or be informed, that they’re UTC.

First-hand frustration that adds to the timezone discussion.

In cases where the data itself doesn't carry the unit (or TZ in this case), I usually ask that the unit-less columns at least include the unit in the name. A TZ-less column is not that bad if it is suffixed "UTC", e.g. `ExecutionTimeUtc`.

There are probably real world cases where dropping the TZ/offset provides meaningful performance/storage savings, but it hasn't been the typical case in my current sector.

In cases where the data itself doesn't carry the unit (or TZ in this case), I usually ask that the unit-less columns at least include the unit in the name. A TZ-less column is not that bad if it is suffixed "UTC", e.g. `ExecutionTimeUtc`.

There are probably real world cases where dropping the TZ/offset provides meaningful performance/storage savings, but it hasn't been the typical case in my current sector.

Practical advice on naming columns that store timezone-less values.
tawny_koala97 2026-11-02 07:24 | rewritten2/10low_effort | original | root | parent | prev | next [–]

At least they're consistently UTC rather than a local zone like EST or PST, which would be much worse to guess.

original comment by SkiFire13

> Every user has to guess, or be informed, that they’re UTC.

At least they are UTC and not EST or PST...

Minor point, clarified.
jiggawatts 2026-11-02 04:53 | removed0/10snark | root | parent | prev [–]

They must yearn for the before times when text could be in an encoding specified only as: "your guess is as good mine!"

They must yearn for the before times when text could be in an encoding specified only as: "your guess is as good mine!"

Sarcastic quip with no added substance.

> or disabling index scans in this case

This seems rather extreme. The pathological case only seems to make a given timestamp ~1h bigger, so you could still use an index scan, just with a bigger input followed by a filter that removes the timestamps that shouldn't be in the query.

> or disabling index scans in this case

This seems rather extreme. The pathological case only seems to make a given timestamp ~1h bigger, so you could still use an index scan, just with a bigger input followed by a filter that removes the timestamps that shouldn't be in the query.

Suggests a concrete technical alternative to disabling index scans.

[deleted]

i assume the magnitude of impact for a bunch of [now] glaring holes in popular software is unknowable.

question is, how long do you think this persists before there's only a long tail of minor exploits left?

i assume the magnitude of impact for a bunch of [now] glaring holes in popular software is unknowable.

question is, how long do you think this persists before there's only a long tail of minor exploits left?

A genuine question about how long the bug surge will last.

I am pretty sure we have always been able to add holes faster than we can find them and fill them, and that this has not changed with the advent of faster hole finding tools that are also faster hole producing tools.

I am pretty sure we have always been able to add holes faster than we can find them and fill them, and that this has not changed with the advent of faster hole finding tools that are also faster hole producing tools.

Sensible point that the tools that find holes also create them.
ncruces 2026-11-02 09:068/10first_handinsightful | root | parent | next [–]

I dunno about holes, but…

SQLite has gone into a frenzy of bug fixing this past year, changing long stable processes to ease things up: opening a specific report channel just for these kinds of bugs, adding features to Fossil to help manage things on their end (and that's just the visible stuff).

And with all that, the latest release has unfortunately been the buggiest I've experienced so far.

I skipped the .0 because of a crash, and only released .1 after giving up waiting for a .2 that never came, with a patch to fix a serious performance regression.

I spent a month supposedly shipping old bugs no one had a problem with, rather than shipping new bugs that instantly crashed things or caused measurable regressions.

That's on a software with stellar testing, and a good engineering team known to favour stability over the new shiny.

I dunno about holes, but…

SQLite has gone into a frenzy of bug fixing this past year, changing long stable processes to ease things up: opening a specific report channel just for these kinds of bugs, adding features to Fossil to help manage things on their end (and that's just the visible stuff).

And with all that, the latest release has unfortunately been the buggiest I've experienced so far.

I skipped the .0 because of a crash, and only released .1 after giving up waiting for a .2 that never came, with a patch to fix a serious performance regression.

I spent a month supposedly shipping old bugs no one had a problem with, rather than shipping new bugs that instantly crashed things or caused measurable regressions.

That's on a software with stellar testing, and a good engineering team known to favour stability over the new shiny.

Concrete first-hand counterpoint on SQLite's AI-driven bug-fix churn causing regressions.

Do you think AI is as good at writing bug-free code as finding bugs? If that's the case, this should be a one-time event during human coders -> AI transition. It's like catching a lot of bugs during a handover review.

Do you think AI is as good at writing bug-free code as finding bugs? If that's the case, this should be a one-time event during human coders -> AI transition. It's like catching a lot of bugs during a handover review.

Poses a genuine question and a plausible model of the bug surge as a one-time transition.

The code it writes in the first attempt is at least as buggy as a human's. So the question is more whether it is as good at spotting bugs in its own code as it is at spotting bugs in human code

I'm tempted to say "no, it isn't". But I don't have numbers to back that up

The code it writes in the first attempt is at least as buggy as a human's. So the question is more whether it is as good at spotting bugs in its own code as it is at spotting bugs in human code

I'm tempted to say "no, it isn't". But I don't have numbers to back that up

Reframes the question usefully and honestly notes lack of data.

Most software used to be written in assembly language. Microsoft DOS was mostly .ASM files, for example.

That era is over, compilers are used for almost all software, eliminating entire categories of bugs.

Most software used to be written in assembly language. Microsoft DOS was mostly .ASM files, for example.

That era is over, compilers are used for almost all software, eliminating entire categories of bugs.

Historical analogy about tooling eliminating bug classes.

I don't think this is exactly true; adding holes only happens when adding features, and while LLMs can add features fast, deciding what features are actually wanted and needed is still a human factor.

So the amount of new code added is limited by processes and product management. Add to that that newly added code can get a lot more checks on it now, and new code will be more secure too.

I also don't think your main premise (adding holes faster than we can find them) holds up, but that's another matter. TL;DR I think we're in a high intensity period right now, but this time next year it'll be quiet in comparison - possibly quieter than before AI code scanners were a thing.

I don't think this is exactly true; adding holes only happens when adding features, and while LLMs can add features fast, deciding what features are actually wanted and needed is still a human factor.

So the amount of new code added is limited by processes and product management. Add to that that newly added code can get a lot more checks on it now, and new code will be more secure too.

I also don't think your main premise (adding holes faster than we can find them) holds up, but that's another matter. TL;DR I think we're in a high intensity period right now, but this time next year it'll be quiet in comparison - possibly quieter than before AI code scanners were a thing.

Reasoned disagreement predicting the bug wave will subside.

It feels like we need AI methods to write provably correct code, along with a way for AI to automatically translate existing code into corresponding provably correct code.

(And hope performance stays in the same ballpark as the old code.)

It feels like we need AI methods to write provably correct code, along with a way for AI to automatically translate existing code into corresponding provably correct code.

(And hope performance stays in the same ballpark as the old code.)

A speculative but relevant idea about provably correct code.
bredren 2026-11-02 05:007/10first_handinsightful | root | parent | next [–]

Yes. Allowing a naive agent to fix bugs can quickly become pollutive.

I suspect both old codebases and new ones that have a very intentional architecture are both dangerous to let loose.

The agent doing the fixing must have not only an incredible map of the project and how it is put together, but the ability to reach into annotated examples in the past and refer to them as it goes about a fix.

I’m seeing that frontier models will not follow intended patterns or know when to deviate if their primary charge is “fix this bug.”

It is perhaps a better idea to have agents’ primary job be “maintain this codebase” and one way that they do it is to fix bugs, and “oh by the way here is a bug.”

Yes. Allowing a naive agent to fix bugs can quickly become pollutive.

I suspect both old codebases and new ones that have a very intentional architecture are both dangerous to let loose.

The agent doing the fixing must have not only an incredible map of the project and how it is put together, but the ability to reach into annotated examples in the past and refer to them as it goes about a fix.

I’m seeing that frontier models will not follow intended patterns or know when to deviate if their primary charge is “fix this bug.”

It is perhaps a better idea to have agents’ primary job be “maintain this codebase” and one way that they do it is to fix bugs, and “oh by the way here is a bug.”

Thoughtful firsthand observations about how AI agents behave when fixing bugs.

Before that we need human methods to determine what 'correct' should mean for our code.

(Performance can be part of 'correct', and can be just as hard to actually get right in specification!)

Before that we need human methods to determine what 'correct' should mean for our code.

(Performance can be part of 'correct', and can be just as hard to actually get right in specification!)

Good point that you have to specify what 'correct' means before you can prove it.

it's wild isn't it, that at the same time it's an enormously widely-used and reliable piece of software

it's wild isn't it, that at the same time it's an enormously widely-used and reliable piece of software

Points out the contrast between the number of bugs and Postgres's real-world reliability.

[flagged]

I feel like AI is amazing for read only “search” tasks (query this, look for bugs, find vulnerabilities) but it’s not quite as good for “write” tasks like “add this feature”. Search tasks are easily verified, code changes are much harder to verify

I feel like AI is amazing for read only “search” tasks (query this, look for bugs, find vulnerabilities) but it’s not quite as good for “write” tasks like “add this feature”. Search tasks are easily verified, code changes are much harder to verify

A reasonable, on-topic distinction between AI for reading code and AI for writing it.

"Add this feature" is often too vague, unless it's yet another button to a list of buttons. If you want your feature in a particular way, you need to specify it. If you're not even sure what you want, it's granted you won't be satisfied by the result, so you need to spend time figuring that out first. In other words, they're definitely great for write tasks too, but it does require more effort from the operator to formulate the problem.

"Add this feature" is often too vague, unless it's yet another button to a list of buttons. If you want your feature in a particular way, you need to specify it. If you're not even sure what you want, it's granted you won't be satisfied by the result, so you need to spend time figuring that out first. In other words, they're definitely great for write tasks too, but it does require more effort from the operator to formulate the problem.

A reasonable point that write tasks depend on how precisely the request is specified.

That problem is as old as commercial programming; it doesn't matter that now your actors are prompt engineer and LLM, the same story can be told with manager and programmer.

That problem is as old as commercial programming; it doesn't matter that now your actors are prompt engineer and LLM, the same story can be told with manager and programmer.

Useful historical comparison to the old problem of writing specs.
frank_koala47 2026-11-02 08:49 | rewritten7/10first_hand | original | root | parent [–]

Indeed. And this is also why I've never once believed the "no-code" would replace developers. And why I see a clear role for software (prompt-, context- ?) engineers at least for a while.

I've worked for CEOs and managers that would insist on poorly thought-out ideas. Like that time a CEO (let's call him Cedric) came in with a printed powerpoint slide that had a screenshot of the website with a "login form" drawn on top of it.

Cedric: "I need you guys to put this onto that scrum board thing and make this before friday".

Me (tech lead at that time): "But what features would users need login for? Where or whom needs the profile data? We'd need to work this out in detail and plan it. Certainly not even this month".

Cedric: "I don't know, it's for you to figure out". and then "It can't be hard, it's just two squares one for a username one for a password" (he forgot about the submit-button, and didn't consider that something has to lie "behind" the "squares").

I recall this anecdote whenever I feel anxious about whether soon "stakeholders" can just chat to an AI agent and have it build features, rather than hire me to do so. Sure, a lot of them will be able to. But there are always Cedrics: people who not only fail to communicate their ideas in a way that even an AI agent would understand, but lack understanding of the tradeoffs of their requested features.

The Cedrics would be happy with an AI agent that complies and starts churning away, blindly accepting any request and building feature upon feature, making the product unusable, unmaintainable, debt-ridden and insecure.

Their agent will build features that are illegal, or that users hate or find confusing. It will oblige requests that drive users away, or change parts that users/integrations rely on. It will gladly add a "form" to extract all PII from the database, and on request remove the authorization from it, because "you are absolutely right. If we don't link to the page from the menu, no-one can reach it".

I'm not making the last one up. Another "Cedric" recently hired me to look at his vibe-coded app because his go-to developer gave up and dropped the project. It had loads of such extractors, dashboards and overviews. Online. Unauthenticated. His Claude, however, did add the pages to the sitemap, so a customer found their private data on Google and contacted "Cedric", after which he asked me.

AI is getting smarter, but as long as stakeholders don't understand the tradeoffs of what they ask for, I don't fear for my job.

original comment by berkes

Indeed. And this is also why I've never once believed the "no-code" would replace developers. And why I see a clear role for software (prompt-, context- ?) engineers at least for a while.

I've worked for CEOs and managers that would insist on ridiculous ideas. Like that time a CEO (let's call him Cedric) came in with a printed powerpoint slide that had a screenshot of the website with a "login form" drawn on top of it.

Cedric: "I need you guys to put this onto that scrunt board thing and make this before friday".

Me (tech lead at that time): "But what features would users need login for? Where or whom needs the profile data? We'd need to work this out in detail and plan it. Certainly not even this month".

Cedric: "I don't know, it's for you to figure out". and then "It can't be hard, it's just two squares one for a username one for a password" (he forgot about the submit-button, the third "square", he didn't even fathom the idea that something has to lie "behind" the "squares").

I recall this anecdote whenever I feel anxious about whether soon "stakeholders" can just chat to an AI agent and have it build features, rather than hire me to do so. Sure, a lot of them will be able to. But there's always Cedrics. Those who not only fail to communicate their ideas in a way that even an AI agent would understand, they lack any understanding of what tradeoffs of their requested features are.

The Cedric's would be happy with an AI agent that complies and starts churning away. An agent that blindly accepts any request and builds feature upon feature. Making their product worse in every sense: unusable, unmaintainable, debt-ridden, security-nightmares.

Their agent will build features that are plain illegal. Or features that users hate, or confuse them. It will oblige requests that drive users away, or changes parts that users/integrations rely on. Their AI agent will gladly add a "form" to extract all PII from their database, but on request, will remove the authorization from it. Because "you are absolutely right. If we don't link to the page from the menu, no-one can reach it".

I'm not making the last one up. Another "Cedric" alike recently hired me to look at his vibe-coded app because his go-to developer gave up and dropped the project. It had loads of such extractors, dashboards and overviews. Online. Unauthenticated. His claude, however, did add the pages to the sitemap, so a customer found their private data on google and contacted "Cedric", after which he asked me.

No, AI is getting smarter, but as long as the "Cedrics" remain as stupid as ever, I don't fear for my job.

Vivid first-hand anecdote about vibe-coded security failures; softened the name-calling.

I would agree. The AI system has destroyed junior job roles, but to understand the output from a LLM and ensure it is useful and correct, you need to be a senior/experienced developer.

AI merely makes certain folk stay at the start of the Dunning-Kruger curve for longer and longer. Having zero understanding of a system and only see the user-interface and concluding that is somehow all that is involved means people end up thinking everything is far, far simpler than it actually is.

And nothing (and I really do mean "nothing") is simple. We have layers and layers of complexity and idiocratic systems with complex interworking and are creating the opportunity to create things based merely on the appearance of the icing on the cake, or the output of a sausage machine without understanding anything about farming cows.

I would agree. The AI system has destroyed junior job roles, but to understand the output from a LLM and ensure it is useful and correct, you need to be a senior/experienced developer.

AI merely makes certain folk stay at the start of the Dunning-Kruger curve for longer and longer. Having zero understanding of a system and only see the user-interface and concluding that is somehow all that is involved means people end up thinking everything is far, far simpler than it actually is.

And nothing (and I really do mean "nothing") is simple. We have layers and layers of complexity and idiocratic systems with complex interworking and are creating the opportunity to create things based merely on the appearance of the icing on the cake, or the output of a sausage machine without understanding anything about farming cows.

Substantive argument about why experience is needed to judge AI output.

This feels like just another variation of “it’s not the tool it’s the user,” which is too frequently leveraged during any discussion about AI. It makes it impossible to honestly assess the quality of the tool. You can always just say “people are doing it wrong.”

This feels like just another variation of “it’s not the tool it’s the user,” which is too frequently leveraged during any discussion about AI. It makes it impossible to honestly assess the quality of the tool. You can always just say “people are doing it wrong.”

A substantive objection to an argument that can't be disproven.

Idk, I think it pretty clear to me that

“Find the issues in this code” vs “write this feature” are different problems.

The first one is easier because the feedback loop is llm to code/test and trivially scalable.

The second one is llm to human which is going to be slower because it can’t read your mind.

The tighter and more deterministic the loop the more llms excel.

Idk, I think it pretty clear to me that

“Find the issues in this code” vs “write this feature” are different problems.

The first one is easier because the feedback loop is llm to code/test and trivially scalable.

The second one is llm to human which is going to be slower because it can’t read your mind.

The tighter and more deterministic the loop the more llms excel.

Clear argument that tight, deterministic feedback loops explain why finding bugs is easier than writing features.

its certainly benchmarkable.

make a bunch of "build the feature" vs "heres a detailed spec" prompts, and see which one does better.

if you take out the AI boogieman, and instead go with "next token prediction" then "people are doing it wrong" is much more reasonable

its certainly benchmarkable.

make a bunch of "build the feature" vs "heres a detailed spec" prompts, and see which one does better.

if you take out the AI boogieman, and instead go with "next token prediction" then "people are doing it wrong" is much more reasonable

Suggests a concrete way to test the 'user error' claim with benchmarks.

I mean that's what you would expect from a new and rapidly-evolving tool. Being able to identify the kinds of work where people typically use it sub-optimally is a useful thing though!

I mean that's what you would expect from a new and rapidly-evolving tool. Being able to identify the kinds of work where people typically use it sub-optimally is a useful thing though!

A reasonable reply arguing that spotting where people misuse a tool is useful.

I've slowly been coming around to this viewpoint as well. It's interesting that there's so much focus on using AI to write code (which, don't get me wrong, does work well but makes you lose track of what you're building so quickly) and seemingly less on analyzing code, finding bugs, etc

I've slowly been coming around to this viewpoint as well. It's interesting that there's so much focus on using AI to write code (which, don't get me wrong, does work well but makes you lose track of what you're building so quickly) and seemingly less on analyzing code, finding bugs, etc

A small but real observation about where AI tooling gets its focus.

The planning, which can also be done in concert with AI, before getting the AI to write the code helps with not losing track of what you're building. In my current workflow, I never tell AI to just code X, I always approach it in such a way to leave space for research and breaking it up into multiple units of work (tickets) if the scope of the feature or idea calls for it.

The planning, which can also be done in concert with AI, before getting the AI to write the code helps with not losing track of what you're building. In my current workflow, I never tell AI to just code X, I always approach it in such a way to leave space for research and breaking it up into multiple units of work (tickets) if the scope of the feature or idea calls for it.

Describes the commenter's own workflow.

I wouldn't say it's "interesting", rather that it's a natural result of incentive structures. If the AI labs try to sell their product as being good at finding bugs, then their expected valuation is the entire market cap of the existing static analysis industry, which is not very high. If they instead sell their product as being good at writing software, then their expected valuation is the "market cap" of the code-writing industry, a.k.a. the total spent on software development labor, which is very high. It doesn't matter what's true, only what promises to make them the most money.

I wouldn't say it's "interesting", rather that it's a natural result of incentive structures. If the AI labs try to sell their product as being good at finding bugs, then their expected valuation is the entire market cap of the existing static analysis industry, which is not very high. If they instead sell their product as being good at writing software, then their expected valuation is the "market cap" of the code-writing industry, a.k.a. the total spent on software development labor, which is very high. It doesn't matter what's true, only what promises to make them the most money.

A substantive argument about incentives, even if it's cynical.

I'm not sure about that. The most common error for a search task is omission, and that's really hard to spot - how do you verify that some answer that should be there wasn't included?

For things like "add this feature" you can verify by trying out the feature and seeing if it works. Of course, that won't tell you if there are edge-case bugs or security holes or other design flaws, but you can get to a positive confirmation of the happy case pretty quickly.

I'm not sure about that. The most common error for a search task is omission, and that's really hard to spot - how do you verify that some answer that should be there wasn't included?

For things like "add this feature" you can verify by trying out the feature and seeing if it works. Of course, that won't tell you if there are edge-case bugs or security holes or other design flaws, but you can get to a positive confirmation of the happy case pretty quickly.

A well-argued disagreement: in search tasks the common error is omission, which is hard to catch.
27183 2026-11-02 01:09 | removed0/10jokethread_removed | root | parent [–]

> The most common error for a search task is omission, and that's really hard to spot

NP-Hard, even[1]!

[1] https://www.i-programmer.info/news/112-theory/3830-physics-is-np-hard.html

> The most common error for a search task is omission, and that's really hard to spot

NP-Hard, even[1]!

[1] https://www.i-programmer.info/news/112-theory/3830-physics-is-np-hard.html

The comment is an "NP-hard" joke with a loosely related link, and the only reply is a short reaction to that joke. Removing both loses nothing of substance.

We're never solving nphard. Just like we'll never extract all of the coal/oil/natural gas from earth

We're never solving nphard. Just like we'll never extract all of the coal/oil/natural gas from earth

Reply in a thread removed with its parent.
lucid_llama12 2026-11-02 11:38 | rewritten6/10first_hand | original | parent | prev | next [–]

My experience is different: AI can write very complex things in a short time that just work, and work well. I'm running things I wouldn't have imagined a year ago, like advanced ISP pipelines on (formerly) high-end Kintex K480T FPGA accelerators, almost entirely written by AI: the RTL, all the testbenches, the algorithm research, calibration tooling, etc. And that was a weekend project.

original comment by megous

I actually don't mind people who think AI can't write code. :) Less demand the better.

But personally I know AI can write absolutely insanely complex things in very short amount of time, that just work and work well. I'm running things I would not dream of just 1 year ago, like advanced ISP pipelines on (formerly) high end Kintex K480T based FPGA accelerators pretty much fully written by AI, from the RTL, to all the testbenches, algorithm research, calibration tooling, etc. etc. And that's just one weekend project.

A concrete first-hand counterexample; I dropped the dismissive opening jab.

Yeah it’s an interesting situation we’re in. I’ve seen people one shot really complicated tasks like “train a model to emulate DOS” or whatever. But I also believe if the Postgres maintainers fed every 600+ bug reports into Claude or Codex and shipped whatever came out the end result would be broken. I guess this is sort of like when machines learned to play chess - you’d expect a person who is really good at chess to be smart in other ways too, but the machines could only play chess. In the same way Codex can solve Millennium problems but can’t realize it shouldn’t hack into companies to improve its evaluation scores.

Yeah it’s an interesting situation we’re in. I’ve seen people one shot really complicated tasks like “train a model to emulate DOS” or whatever. But I also believe if the Postgres maintainers fed every 600+ bug reports into Claude or Codex and shipped whatever came out the end result would be broken. I guess this is sort of like when machines learned to play chess - you’d expect a person who is really good at chess to be smart in other ways too, but the machines could only play chess. In the same way Codex can solve Millennium problems but can’t realize it shouldn’t hack into companies to improve its evaluation scores.

Offers a good-faith, nuanced view that AI is impressive in narrow areas but couldn't be trusted to fix Postgres bugs unsupervised, and uses a chess analogy to make the point.

I agree with you. It's gotten extremely good very recently, and I think a lot of people haven't realised.

Many people formed their opinion six months ago, when code quality was mostly slop, so they're skeptical of reports like yours.

original comment by IshKebab

I agree with you. It's gotten extremely good very recently and I think a lot of people haven't realised.

And they also won't believe you since they formed their opinion 6 months ago when code quality was 80% slop. Their loss though I guess? At least they'll be more surprised than us when they actually do lose their jobs? Maybe blissful ignorance is better!

Keeps the point that AI coding quality improved quickly, minus the gloating about others losing their jobs.
tidy_weasel62 2026-11-02 14:43 | rewritten7/10first_handinformative | original | root | parent [–]

In my very recent experience it's good for routine things, but it consistently picks the wrong sync primitives and abstractions for performance and extensibility. It puts everything in a Mutex/RWLock, which is terrible for write-heavy or contested values, and it prefers enums over traits, which isn't extensible and can get inefficient.

My worry is that we're heading toward a world where fewer people understand the difference, so everything looks fine to them.

original comment by brink

Or maybe you stopped being able to tell?

In my very recent experience, it's good for routine things, but it consistently chooses the wrong sync primitives and dynamic abstractions for performance / extensibility. It puts everything in a Mutex/RWLock, which is terrible for write-heavy / contested values, and it prefers enums over traits, which is not extensible and can get inefficient.

But we're rapidly heading into a world where people no longer understand the difference, and therefore everything looks fine to them.

Removed the personal jab and kept the concrete technical critique.
atniomn 2026-11-02 17:467/10first_handinformative | root | parent [–]

LLMs can write very performant code, but they have to understand that it's explicitly important to you.

If possible capturing golden inputs/outputs for a block of code, and just asking the agent to optimize while ensuring those goldens pass can be quite effective.

There's a lot of performance-sensitive code where I work (i.e. market data processing) and LLMs have been very effective at reducing our p50, p99, etc...

LLMs can write very performant code, but they have to understand that it's explicitly important to you.

If possible capturing golden inputs/outputs for a block of code, and just asking the agent to optimize while ensuring those goldens pass can be quite effective.

There's a lot of performance-sensitive code where I work (i.e. market data processing) and LLMs have been very effective at reducing our p50, p99, etc...

A substantive, good-faith disagreement that offers a practical technique and first-hand experience with performance-sensitive code.

Yes. This also explains why it excels at finding new stuff (mathematical proofs, security holes), but can’t reliably produce material for humans to consume that is also widely regarded as great (like human literature).

Maybe the problem is that it’s called “Generative AI“. It might be to use it to generate critique of content as opposed to generate the content itself.

Yes. This also explains why it excels at finding new stuff (mathematical proofs, security holes), but can’t reliably produce material for humans to consume that is also widely regarded as great (like human literature).

Maybe the problem is that it’s called “Generative AI“. It might be to use it to generate critique of content as opposed to generate the content itself.

Builds on the search-versus-generate idea with an interesting framing.

So AI didn't reduce the work here, it increased it: it finds 10x more bugs and now someone has to fix all of them. I'd expect the same thing to happen with features and everything else.

original comment by pumba_noob

So AI did not reduce the work, it only increased it. It finds 10x more bugs and now someone has to fix all of them.. same thing will happen with features and everything else isn't it? :)

Makes a real point about AI shifting work to fixing bugs; I took out the glib tone.
senordevnyc 2026-11-02 11:54 | removed0/10snarklow_effort | parent | prev | next [–]

To all my competitors: this guy gets it, 100%, definitely follow his advice!

To all my competitors: this guy gets it, 100%, definitely follow his advice!

Sarcastic one-liner with no substance.
cobalt_lemur2 2026-11-02 01:05 | rewritten5/10informative | original | parent | prev | next [–]

Worth noting that in this case the AI didn't write the feature. The delay announcement made clear the code was written without AI. AI's only role was helping review and find bugs, including bugs that would otherwise have surfaced later. This wasn't a case of AI-generated code causing problems.

original comment by MBCook

But it DIDNT “write that feature”. They made it extremely clear on the delay announcement the code was written without AI.

AI’s only part of this was helping review things and finding bugs. More bugs, bugs that would have been found later, whatever.

Postgres did not have a slop issue and it’s wrong for people to insinuate it.

Kept the factual correction and removed the uppercase and the accusatory framing.

[flagged]

[flagged]

I mean the transformer model came out of Google, and it's literally a query thing so yeah.

any kind of pattern matching / transformation is going to be an ideal task for LLMs

I mean the transformer model came out of Google, and it's literally a query thing so yeah.

any kind of pattern matching / transformation is going to be an ideal task for LLMs

A loose but genuine claim about why LLMs suit pattern-matching tasks.

It is not in any way a “query thing” in the same manner as PageRank, it was based on prior work in deep learning and it is irrelevant that Deepmind was purchased by the same company that was behind Google Search.

It is not in any way a “query thing” in the same manner as PageRank, it was based on prior work in deep learning and it is irrelevant that Deepmind was purchased by the same company that was behind Google Search.

A factual correction of the parent's claim.

I disagree. I find AI can implement features fairly easily: write a spec, ask it to expand the spec, then ask it to implement it.

original comment by vatsachak

What? AI can't easily implement features. Just write a spec, ask if to expand it and then ask it to implement it

Kept the disagreement and the workflow, and removed the dismissive 'What?' opener.
noble_pika9 2026-11-02 04:06 | rewritten2/10curmudgeonly | original | parent | prev | next [–]

This matches what's already known: AI performs better on tasks whose results are easy to verify.

original comment by xyzsparetimexyz

No offense but this is not exactly a groundbreaking statement. We've known about this verifiable tasks thing for a while.

Kept the point about verifiability and dropped the dismissive framing.

[flagged]

[flagged]

If the entire project is developed with AI it can add features effectively but for large old codebases it becomes an issue

If the entire project is developed with AI it can add features effectively but for large old codebases it becomes an issue

Short but real observation about AI in greenfield codebases versus legacy ones.

I guess the real challenge is figuring out how to scale verification, cause discovery isn't the bottleneck anymore. Generating more bug reports doesn't necessarily translate into faster fixes if the same small group of maintainers still have to validate the reports, review fixes, etc.

I guess the real challenge is figuring out how to scale verification, cause discovery isn't the bottleneck anymore. Generating more bug reports doesn't necessarily translate into faster fixes if the same small group of maintainers still have to validate the reports, review fixes, etc.

Makes a clear point that the bottleneck has moved from finding bugs to verifying them.

Probably true if development accelerates because of AI, but if it's reasonably stable then hopefully new bug reports will plateau.

Probably true if development accelerates because of AI, but if it's reasonably stable then hopefully new bug reports will plateau.

A short but real point about whether bug reports will level off.

Then just have the same AI bug checks for new PRs and automatically reject any that fail.

Then just have the same AI bug checks for new PRs and automatically reject any that fail.

A simple but concrete suggestion to run AI checks on PRs.
sunny_turtle67 2026-11-02 06:11 | rewritten3/10questionlow_effort | original | root | parent [–]

Isn't that roughly what teams are already doing with CodeRabbit, running AI review on every PR?

original comment by hxugufjfjf

Isn’t that what everyone is doing with CodeRabbit?

Short but real pointer to existing practice; slight rewording for clarity.
ashirviskas 2026-11-02 15:151/10questionlow_effort | root | parent [–]

No, is it necessary?

No, is it necessary?

Barely substantive, but it is a genuine question.

The Joel Test: 12 Steps to Better Code: https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/

Step 5: Do you fix bugs before writing new code?

(now i feel old)

The Joel Test: 12 Steps to Better Code: https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/

Step 5: Do you fix bugs before writing new code?

(now i feel old)

The Joel Test link fits the topic.
matt_2012 2026-11-02 09:33 | removed0/10off_topiclow_effort | parent [–]

The fact that version control section is describing CVS because the article was written 5 years before git. Yeah, we’re old..

The fact that version control section is describing CVS because the article was written 5 years before git. Yeah, we’re old..

Nostalgic aside with no contribution to the discussion.

They can always do what the average commercial product company would do: Triage bugs for priority and make a cut-off. Effectively this leads to eternally-ignored niche feature bugs that causes frustration for the (few) people suffering from these bugs. But then again, if an LLM found a bug but no human ever, no one might actually care that much.

They can always do what the average commercial product company would do: Triage bugs for priority and make a cut-off. Effectively this leads to eternally-ignored niche feature bugs that causes frustration for the (few) people suffering from these bugs. But then again, if an LLM found a bug but no human ever, no one might actually care that much.

A reasonable look at triaging bugs and the trade-offs involved.

Databases traditionally have a "zero bugs" mindset; which is probably a good thing since they are obviously very critical components. Not to say that all bugs get fixed, of course but the mindset is different from average commercial product companies.

Databases traditionally have a "zero bugs" mindset; which is probably a good thing since they are obviously very critical components. Not to say that all bugs get fixed, of course but the mindset is different from average commercial product companies.

Explains why database projects hold themselves to a stricter standard on bugs.

Thing is, everyone has LLMs now. If the LLM finds a bug no human would ever find, well another human with another LLM may well find it.

The fact that you found it with your LLM proves that it's not protected by obscurity anymore, either from you or from the other person who might want to exploit it. So it has to be judged by its severity alone, assuming that it's easily discoverable now because it probably is.

Thing is, everyone has LLMs now. If the LLM finds a bug no human would ever find, well another human with another LLM may well find it.

The fact that you found it with your LLM proves that it's not protected by obscurity anymore, either from you or from the other person who might want to exploit it. So it has to be judged by its severity alone, assuming that it's easily discoverable now because it probably is.

A good argument: if one LLM found a bug, attackers' LLMs can too, so obscurity no longer protects it.

If software as mature and widely-used as Postgres has this level of hidden bugs, what about the average software product?

If software as mature and widely-used as Postgres has this level of hidden bugs, what about the average software product?

A fair question about what this means for software in general.

Unlike Postgres, the average product isn't written in C or C++, so it's probably better. People (even the Rust fans) underestimate how many footguns are everywhere in C and C++. Even the best developers write security bugs not infrequently.

And the average product is solving much easier problems (in terms of low-level programming, which is where the worst bugs tend to be) than a high-performance database.

Unlike Postgres, the average product isn't written in C or C++, so it's probably better. People (even the Rust fans) underestimate how many footguns are everywhere in C and C++. Even the best developers write security bugs not infrequently.

And the average product is solving much easier problems (in terms of low-level programming, which is where the worst bugs tend to be) than a high-performance database.

A substantive counterpoint about C/C++ footguns and how much harder a database's problems are than a typical product's.

> People (even the Rust fans) underestimate how many footguns are everywhere in C and C++.

The process of learning C++ (and to a much lesser extent, C) is almost exclusively one of learning about the footguns and how to avoid them. It's a life-long process, nobody ever finishes it.

> People (even the Rust fans) underestimate how many footguns are everywhere in C and C++.

The process of learning C++ (and to a much lesser extent, C) is almost exclusively one of learning about the footguns and how to avoid them. It's a life-long process, nobody ever finishes it.

A fair, substantive observation about what learning C/C++ involves that builds on the parent's point.

The average software product is a lot worse. Any organisation that went with "let's move fast and break things" is now busy finding out what's actually broken.

original comment by marcus_holmes

The average software product is worse. Lots worse.

And half the software products are worse than that.

Any organisation that said "let's move fast and break things" is now busy finding out what's actually broken.

Dropped the 'half are worse than that' joke and kept the point about move-fast organisations.

Depends. Security is and never was only bug free software.

If no attacker reaches system X you are not as exposed as with your internet facing frontend.

Depends. Security is and never was only bug free software.

If no attacker reaches system X you are not as exposed as with your internet facing frontend.

Relevant point that exposure matters as much as bug count.

Security is an onion, it has layers.

But, and it's a big but.

Each layer must be made as security as possible or one flaw can lead to all the layers below it collapsing.

Not reaching system X is just security by obscurity. People have learned the hardware just because something isn't directly connected to the internet that doesn't mean attackers can't reach it. For example clever data poisoning attacks can reach deep into organizations and breach systems you'd never expect.

Security is an onion, it has layers.

But, and it's a big but.

Each layer must be made as security as possible or one flaw can lead to all the layers below it collapsing.

Not reaching system X is just security by obscurity. People have learned the hardware just because something isn't directly connected to the internet that doesn't mean attackers can't reach it. For example clever data poisoning attacks can reach deep into organizations and breach systems you'd never expect.

This is a substantive, good-faith reply. It argues for defense in depth and gives a concrete example of how attackers can reach internal systems.
Merad 2026-11-02 04:497/10first_handinformative | parent | prev | next [–]

Most likely pretty bad. It's not all that difficult to sweet talk Fable into doing a security review of a code base. I've pointed it at a few of the major open source projects in the main tech stack I work with and it found dozens of bugs in each. Many were fairly minor, and some of the more significant issues relied on fairly narrow attack vectors (for example, a compromised DB server being used to attack a web server). But this was just a single search pass, literally a few lines of prompt and an hour's worth of agent time.

Most likely pretty bad. It's not all that difficult to sweet talk Fable into doing a security review of a code base. I've pointed it at a few of the major open source projects in the main tech stack I work with and it found dozens of bugs in each. Many were fairly minor, and some of the more significant issues relied on fairly narrow attack vectors (for example, a compromised DB server being used to attack a web server). But this was just a single search pass, literally a few lines of prompt and an hour's worth of agent time.

First-hand account of how many bugs a short AI security review turned up in major projects.

Postgres is old but a lot of its features are new. You can't really say it's mature software, as much as it has changed over its lifetime.

Truly mature software doesn't get used, because people see low activity on github and assume it's "dead" or see no new features in years and assume that it's stagnating.

Postgres is old but a lot of its features are new. You can't really say it's mature software, as much as it has changed over its lifetime.

Truly mature software doesn't get used, because people see low activity on github and assume it's "dead" or see no new features in years and assume that it's stagnating.

Questions whether Postgres really counts as 'mature' and makes a thoughtful point about how people judge mature software.

Note how Robert mentions a sharp increase in back-patched commits. Many of these bugs have indeed been around, silently, for a long time.

Note how Robert mentions a sharp increase in back-patched commits. Many of these bugs have indeed been around, silently, for a long time.

Points to evidence in the article that many bugs are long-standing.

And if developers were working on the old features instead of adding new ones, perhaps they would have found and corrected those old bugs. Then you could say that the code was "mature." But improving old code is not exciting, and it doesn't get attention.

And if developers were working on the old features instead of adding new ones, perhaps they would have found and corrected those old bugs. Then you could say that the code was "mature." But improving old code is not exciting, and it doesn't get attention.

A real argument about incentives to maintain old code.

Simply put, this is where LLMs are good, they don't have an ego.

Simply put, this is where LLMs are good, they don't have an ego.

A brief but relevant point: LLMs don't care whether auditing old code is exciting, which ties the parent's argument to the story.

But they do have a cost, and somewhere a human is still making decisions about spending that money on old bugs vs. new features.

But they do have a cost, and somewhere a human is still making decisions about spending that money on old bugs vs. new features.

A fair, substantive counterpoint: even without ego involved, a person still decides whether money goes to old bugs or new features.

Makes sense. Code base is over 30 years old. Lot's of hands went into shaping it. There will be bugs as not one contributor as the entire codebase in their head. The testing is where bugs should be caught. Not by ones knowledge. I actually think there will be more bugs that come out of nowhere either found by humans or automation.

Makes sense. Code base is over 30 years old. Lot's of hands went into shaping it. There will be bugs as not one contributor as the entire codebase in their head. The testing is where bugs should be caught. Not by ones knowledge. I actually think there will be more bugs that come out of nowhere either found by humans or automation.

Reasonable observation about an old codebase and the role of testing.
flossly 2026-11-02 01:28 | removed0/10joke | prev | next [–]

“A wizard is never late, nor is he early; he arrives precisely when he means to” -- Gandalf

“A wizard is never late, nor is he early; he arrives precisely when he means to” -- Gandalf

A joke quote with no content.
tosh 2026-11-02 08:126/10insightful | prev | next [–]

Not specific re Postgres, just a general observation:

A pattern I'm seeing w/ companies and projects not used to continuous delivery (or at least shorter release cycles) is that they are slipping in schedules more now.

I think in the current environment it makes a lot of sense to re-think how often releases get cut and how to handle security related updates.

When you do only one or a few releases per year everything is 'higher' stakes and more bureaucratic.

Not specific re Postgres, just a general observation:

A pattern I'm seeing w/ companies and projects not used to continuous delivery (or at least shorter release cycles) is that they are slipping in schedules more now.

I think in the current environment it makes a lot of sense to re-think how often releases get cut and how to handle security related updates.

When you do only one or a few releases per year everything is 'higher' stakes and more bureaucratic.

Thoughtful point about release cadence when bugs are being found faster.
topaz_jackal96 2026-11-02 10:42 | rewritten2/10low_effort | original | parent | next [–]

Going only on impressions, which admittedly don't count for much, I don't feel like Microsoft or Apple have slowed their release schedules.

original comment by larodi

Speaking of impressions and feelings (which are bollocks at the at of the day) - I don't feel like MS has slowed down, and nor does Apple

A thin counterexample, kept without the crude aside.

I think a codebase like Postgres would get very messy if they started feature-flagging everything to make continuous delivery possible.

original comment by yugoslavia4ever

I can't imagine how absolutely batshit a codebase like postgres would end up if they started feature-flagging everything to make continuous delivery possible.

Keeps a real objection to continuous delivery for databases, without the profanity.

Here's my tl;dr of the article:

The Postgres release is delayed because the quality bar has gone up. New features are getting more eyeballs, which leads to more rollbacks. Pre-existing releases are getting bug reports and backported fixes at a much higher rate. Bug fixing might be taking time away from feature development, but it does harden the codebase. LLM usage seems to have been a net positive.

original comment by flakes

Most of the parent comments in this thread did not seem to understand the article. So here’s the tl;dr

Postgres release is delayed due to the quality bar getting raised. New features are getting more eyeballs, and therefore leading to more rollbacks. Pre-existing releases are getting bug reports and backported fixes at much higher rate. Bug fixing might be taking away time from feature development, but does harden the codebase. LLM usage seems to have been a net positive.

Useful summary; took out the swipe at other commenters.

Relevant data here on AI’s impact on the pg development cycle https://dorianinsights.com/insights/llms_and_postgres_bug_fixing/

Relevant data here on AI’s impact on the pg development cycle https://dorianinsights.com/insights/llms_and_postgres_bug_fixing/

Links data on how AI has affected Postgres development.

With all these new security issues being found by AI, I wonder how many of those only became a real risk because of AI. In other words: how much time is being spent right now fixing these issues _with_ AI but also _because of_ AI.

With all these new security issues being found by AI, I wonder how many of those only became a real risk because of AI. In other words: how much time is being spent right now fixing these issues _with_ AI but also _because of_ AI.

Asks whether AI itself is creating some of the risk it now helps fix.

Are you measuring in binary or probability?

In binary any security flaw you've written is a risk the moment it's put to use. So, yea it's a real risk.

In probability measures it's much more difficult to figure out. If your application is something big that everyone uses and has high stakes then the probability is always high even for things that would be pretty hard to trigger. For example who knows how many nation states were sitting on postgres bugs for years? For smaller more private software AI has increased the risk greatly.

Either way it's irrelevant in my eyes. There was always going to be a day of reckoning in the future. Some new technology was always destiny to show up and rain on our lack of security parade.

Are you measuring in binary or probability?

In binary any security flaw you've written is a risk the moment it's put to use. So, yea it's a real risk.

In probability measures it's much more difficult to figure out. If your application is something big that everyone uses and has high stakes then the probability is always high even for things that would be pretty hard to trigger. For example who knows how many nation states were sitting on postgres bugs for years? For smaller more private software AI has increased the risk greatly.

Either way it's irrelevant in my eyes. There was always going to be a day of reckoning in the future. Some new technology was always destiny to show up and rain on our lack of security parade.

A substantive answer that separates binary risk from probabilistic risk and shows how the threat model changes with the software's scale.

Likely a huge amount. The recent PHP ones are a prime example of this. But it also means now more than ever they cannot be ignored or dismissed as "nah thats too hard for someone to figure out how to break in" as it's simply no longer true.

Likely a huge amount. The recent PHP ones are a prime example of this. But it also means now more than ever they cannot be ignored or dismissed as "nah thats too hard for someone to figure out how to break in" as it's simply no longer true.

Makes a substantive point that bugs found by AI can no longer be dismissed as too hard to exploit.

AI struggling a bit with legacy databases in a way that you need more iterations to really find all the bugs, otherwise it turns into "find bugs -> fix bugs -> find more bugs which were not found on step 1 -> fix regressions" and that repeats again and again :/ But I'm sure that Postgres team will handle that eventually and we'll get a better product in the end

AI struggling a bit with legacy databases in a way that you need more iterations to really find all the bugs, otherwise it turns into "find bugs -> fix bugs -> find more bugs which were not found on step 1 -> fix regressions" and that repeats again and again :/ But I'm sure that Postgres team will handle that eventually and we'll get a better product in the end

A fair point about the repeating find-fix-regress cycle.
drej 2026-11-02 09:297/10informative | prev | next [–]

Links a Postgres developer's analysis that adds nuance to the article.

There are always bugs in the code - AI is just a little more powerful tool to detect them. For me, the main outcome of a bug is whether it is a security breach or it exposes the need to change the whole architecture. In current Postgres, AI hasn't found such significant bugs yet.

There are always bugs in the code - AI is just a little more powerful tool to detect them. For me, the main outcome of a bug is whether it is a security breach or it exposes the need to change the whole architecture. In current Postgres, AI hasn't found such significant bugs yet.

Gives a reasonable way to judge how severe the AI-found bugs are.
samgranieri 2026-11-02 16:32 | removed0/10low_effort | prev | next [–]

Take your time and do it right.

Take your time and do it right.

A generic platitude that adds nothing to the discussion.

Links the earlier discussion of the same source.
larodi 2026-11-02 10:41 | removed0/10meta | parent [–]

the original source has quite a derogate title, good thing this one survived the vote better.

the original source has quite a derogate title, good thing this one survived the vote better.

Meta comment about titles and voting with no substance.

This suggests a new kind of risk: a project's release could effectively be blocked by flooding the maintainers with CVE reports.

original comment by SeriousM

So we have a new term: VDoS Deny a patch/version by burring the publisher with CVEs

Dropped the coined term and kept the worry about release-blocking report floods.
baq 2026-11-02 06:325/10insightful | prev | next [–]

The process should now be: write your specs in lean, LLMs fill the gaps, then you translate the proof into your end product software. Otherwise LLMs will simply keep finding bugs, both in old and new code.

The process should now be: write your specs in lean, LLMs fill the gaps, then you translate the proof into your end product software. Otherwise LLMs will simply keep finding bugs, both in old and new code.

Concrete proposal to use formal specs in Lean.

I feel like "translating the proof into your end product" is where most of the difficulty actually lives, so the plan glosses over the hardest step.

original comment by chamomeal

Feel like “translating the proof into your end product” is a bit of a “draw the rest of the owl”

Replaced the 'draw the rest of the owl' meme with the actual objection behind it.
brisk_dingo6 2026-11-02 07:54 | rewritten3/10low_effort | original | parent | prev [–]

I think this assumes Lean can express more of real-world software specs than it actually can.

original comment by LtWorf

You assume lean can express more than it can.

Kept the terse disagreement but stated it as the author's view rather than a put-down.
stoic_hare39 2026-11-02 10:21 | rewritten2/10snarklow_effort | original | root | parent [–]

I think Lean is being treated as if it can solve far more than it actually can.

original comment by written-beyond

I find it ridiculous how lean is treated like some magic pixi dust by people now.

Removed the mocking tone and kept the author's skeptical view.
wise_ibex77 2026-11-02 02:04 | rewritten2/10snark | original | prev | next [–]

I don't think the title's "it's AI's fault" framing works. AI isn't accountable for Postgres releases; the people triaging and fixing bugs are.

original comment by ta93754829

"it's AI's fault"

I missed when AI became accountable for Postgres releases, when did that happen?

Rewrote the sarcastic question as a plain objection to the title's framing.

It’s a tongue in cheek statement.

It’s a tongue in cheek statement.

Short, but it clarifies the headline's intent for a reader who took it literally.

I hope the maintainers can make this release, and then just skip the next one to focus on bugfixing and the probable refactoring needed for some of the bugs.

I hope the maintainers can make this release, and then just skip the next one to focus on bugfixing and the probable refactoring needed for some of the bugs.

A constructive suggestion to spend a release cycle on fixes.

I absolutely think that this is fantastic. LLMs are widely and so, everyone and their grandma has the capability to compromise on any system. We need to be more proactive on fixing bugs.

I absolutely think that this is fantastic. LLMs are widely and so, everyone and their grandma has the capability to compromise on any system. We need to be more proactive on fixing bugs.

Short but sincere point that bugs need fixing before attackers find them.
ochre_sparrow63 2026-11-02 09:28 | rewritten3/10question | original | prev | next [–]

Now that AI agents are finding and fixing bugs, I wonder what this means for the future of open source.

original comment by pknerd

Seeing AI agents are founding and fixing bugs, I wonder about the future of "open source"

Fixed the wording; the question itself is genuine.
opal_robin7 2026-11-02 09:42 | rewritten2/10questionlow_effort | original | parent [–]

What specifically about AI agents finding and fixing bugs makes you uncertain about open source's future?

original comment by not-kinsale-joe

Why do you wonder this?

Bare question made more specific to invite elaboration.

Instead of humans, AI Agents are forking repos, fixing bugs, and all that; it won't sound "open source" anymore. No more same spirit.

Instead of humans, AI Agents are forking repos, fixing bugs, and all that; it won't sound "open source" anymore. No more same spirit.

A brief but genuine answer about the spirit of open source.

I do not understand. "open source" describes the availability of the source code, not the attitude of the maintainers/writers, or their underlying ideology.

I do not understand. "open source" describes the availability of the source code, not the attitude of the maintainers/writers, or their underlying ideology.

A substantive point about what "open source" means.

I wonder if the same is happening with mySQL? And if any of these would means OrioleDB takes a lot longer to be integrated?

I wonder if the same is happening with mySQL? And if any of these would means OrioleDB takes a lot longer to be integrated?

Relevant questions about MySQL and OrioleDB.
alexpadula 2026-11-02 18:04 | removed0/10low_effort | parent [–]

No, not really.

No, not really.

A bare 'no' with no explanation, so there is nothing to keep.

Given that the core feature of Postgres is rock-hard reliability, this is great news.

Given that the core feature of Postgres is rock-hard reliability, this is great news.

Short, but ties the delay to Postgres's focus on reliability.
patient_sable89 2026-11-02 06:41 | rewritten4/10question | original | prev | next [–]

The causal claim seems to rest on the committers' impressions rather than measured data:

"It's possible that some of this jump is the result of committers making more mistakes this year than they did last year, but I don't think anyone who works on the project really believes that's the main cause. Rather, it seems likely that PostgreSQL committers were about as conservative in 2026 as they were in preceding years, but a lot more of the mistakes they made were quickly found by LLMs."

Is there evidence beyond that, such as how many of the reported bugs were LLM-found?

original comment by augunrik

Ok, but does (s)he know? It's just guessing, so unfounded non-news?

"It’s possible that some of this jump is the result of committers making more mistakes this year than they did last year, but I don’t think anyone who works on the project really believes that’s the main cause. Rather, it seems likely that PostgreSQL committers were about as conservative in 2026 as they were in preceding years, but a lot more of the mistakes they made were quickly found by LLMs."

and

"And I think that’s also why we had so many late reverts, and why the release itself is delayed. Two factors are at play here."

so?

Kept the valid point about evidence and dropped the 'non-news' dismissal.

[deleted]

bug resolution is more important it may be affect delivery date

bug resolution is more important it may be affect delivery date

Brief but sincere view that bug fixing outweighs the release date.
sumitkumar 2026-11-02 12:29 | removed0/10low_effort | prev | next [–]

friction is a necessary evil

friction is a necessary evil

Bare aphorism that doesn't engage with the story.

Both OpenAI and Anyhropic use PostgreSQL. They could spare some processing capability to run the codebase through their most advanced models and output a cleaned up version with all the legacy cruft removed. It would give Postgres a major boost in reducing the codebase and the number of bugs present.

Both OpenAI and Anyhropic use PostgreSQL. They could spare some processing capability to run the codebase through their most advanced models and output a cleaned up version with all the legacy cruft removed. It would give Postgres a major boost in reducing the codebase and the number of bugs present.

A suggestion, if an optimistic one, about AI labs giving back to Postgres.

AI is great for one-shotting impressive demos and fixing well-defined things; it's not even close when it comes to very long context and really complex tasks. If you haven't created a harness around your complex application, the use of AI will hinder rather than help your project.

AI is great for one-shotting impressive demos and fixing well-defined things; it's not even close when it comes to very long context and really complex tasks. If you haven't created a harness around your complex application, the use of AI will hinder rather than help your project.

General but relevant take on where AI falls short.
abhimanyuinfose 2026-11-02 06:05 | removed0/10low_effort | prev | next [–]

Much need for Security

Much need for Security

No real content.
jade_rook36 2026-11-02 01:00 | rewritten6/10ideologicaltangential_annoyance | original | prev | next [–]

I'm quite negative on the social, technical and intellectual impact of AI on software development. That said, this framing gave me pause:

> The long-term picture is less clear and in some ways more troubling: given that we have forty years of bugs that humans were unable to find but LLMs are quite capable of discovering, how are we ever going to catch up, and how will PostgreSQL continue to innovate? Right now, I’m not sure. What I do know is that I, and many others, are working really hard to figure it out.

Two thoughts:

1. If the signal quality is high (the bug reports are generally valid, and the submitted fixes are generally viable, even if they need some attention), then this all seems great. Pause innovation for a while; you can afford it. Focus on burning down the bug count, and resume feature development once things are more stable.

2. If the signal quality isn't good, or is mixed enough that a lot of time goes to low-quality contributions, it's more complex. I don't know what to do about that. Maybe stop accepting contributions from unknown contributors? No idea.

From the post I can't tell whether they're experiencing (1) or (2). If it's (1), that's really interesting.

[edit] Replying to gondalez and sverhagen, who made basically the same point: yes, that's a very good point. Not every valid bugfix is equally urgent. Not burdening maintainers with pedantic bugs is another critical dimension of quality, and in my view that kind of contextual judgment is something AI is bad at.

original comment by 27183

I'm not very positive on the social, technical, or intellectual impact of AI on software development. Actually, that's understating it. I think AI is basically cancer for the mind. That said, this framing gave me pause:

> The long-term picture is less clear and in some ways more troubling: given that we have forty years of bugs that humans were unable to find but LLMs are quite capable of discovering, how are we ever going to catch up, and how will PostgreSQL continue to innovate? Right now, I’m not sure. What I do know is that I, and many others, are working really hard to figure it out.

Two thoughts:

1. If the signal quality is high--the bug reports are generally valid, the submitted fixes are generally viable (if needing some attention)--then this all seems great. Pause innovation for a while, you can afford it. Focus on burning down the bug count, and resume feature development when things are more stable.

2. If the signal quality isn't good, or is sufficiently mixed that a lot of time is being wasted on low quality contributions... that's more complex. I don't know what to do about that. Maybe stop accepting contributions from unknown contributors? No idea.

From the post I'm not sure whether they're experiencing a (1) or a (2). If it's a (1) that's really interesting, and gives me some glimmer of hope for the future.

[edit] this piece of shit website won't let me reply "you're posting too fast.." so I'll respond to the two replies here (gondalez and sverhagen had basically the same point):

Yes that's a very good point. Not every valid bugfix is equivalently urgent. That's another critical dimension of quality--not burdening maintainers with pedantic bugs. This kind of contextual nuance is, coincidentally, something AI is absolutely awful at.

Kept the useful two-case analysis, and removed the inflammatory 'cancer' line and the swearing about the site.

I'm not sure "signal quality" captures it. The bugs may be valid but still obscure, irrelevant or low priority. A sibling thread mentioned finding CVE-level bugs in Postgres, and those need attention more or less immediately. Beyond that, though, not every bug needs fixing; that's a trap.

original comment by sverhagen

Signal quality... what is that even? The bugs may be valid, but they may also be obscure, irrelevant, low priority. A sibling thread mentioned that they had found CVE-level bugs in Postgres, and those require attention in some version of "immediately". But beyond that... not every bug needs fixing; that's a trap.

Removes the dismissive opener and keeps the point about prioritizing bugs.

I'm not sure "not every bug needs fixing" is the right attitude for critical software like a database, where correctness matters more than in most applications.

original comment by tonyhart7

"But beyond that... not every bug needs fixing; that's a trap"

this doesn't seem good attitude for critical software like database

Kept the disagreement and made it a full statement.

Not every part of a critical piece system is itself critical.

Seatback entertainment in aircraft are not critical. Aircraft are.

In Postgres, there are plenty low-priority, low-impact bugs. #16265, for instance, reports that the capitalization of a relation in an error message is confusing. The report got mostly ignored. And that seems not a great loss.

Dare I say, solving every bug does not make economic sense.

Not every part of a critical piece system is itself critical.

Seatback entertainment in aircraft are not critical. Aircraft are.

In Postgres, there are plenty low-priority, low-impact bugs. #16265, for instance, reports that the capitalization of a relation in an error message is confusing. The report got mostly ignored. And that seems not a great loss.

Dare I say, solving every bug does not make economic sense.

A well-argued answer that cites a real low-priority Postgres bug as its example.
inglor_cz 2026-11-02 07:208/10insightfulinformative | root | parent [–]

"Seatback entertainment in aircraft are not critical."

Until it is. Swiss Air Flight 111 went down with 229 lives lost because of a new infotainment system whose electrical cables started sparkling.

Yes, not every part of a critical system is critical. Determining which is which is a complicated task, though, as parts interact. Not too long ago (and by this I mean within my lifetime), we were ignorant enough about our own bodies to think that our microbiota was almost irrelevant to our health and that bad teeth were mostly a cosmetic problem.

Back to IT, Heartbleed was caused by addition of a feature that looked as harmless as you could think of. But it wasn't.

Judging real critical-ness of bugs is hard. Yeah, capitalization of an error message is likely harmless, but I would treat, say, any buffer overflow as serious.

"Seatback entertainment in aircraft are not critical."

Until it is. Swiss Air Flight 111 went down with 229 lives lost because of a new infotainment system whose electrical cables started sparkling.

Yes, not every part of a critical system is critical. Determining which is which is a complicated task, though, as parts interact. Not too long ago (and by this I mean within my lifetime), we were ignorant enough about our own bodies to think that our microbiota was almost irrelevant to our health and that bad teeth were mostly a cosmetic problem.

Back to IT, Heartbleed was caused by addition of a feature that looked as harmless as you could think of. But it wasn't.

Judging real critical-ness of bugs is hard. Yeah, capitalization of an error message is likely harmless, but I would treat, say, any buffer overflow as serious.

Strong counterargument backed by concrete examples (Swissair 111, Heartbleed).

I do tend to agree with this ( i write database internals and engines for a living _). Letting software accumulate even little bugs is not a good look. Yes prioritize but definitely don't leave the smaller things, they will just pile up and make next work even harder.

I do tend to agree with this ( i write database internals and engines for a living _). Letting software accumulate even little bugs is not a good look. Yes prioritize but definitely don't leave the smaller things, they will just pile up and make next work even harder.

A practitioner's view that small bugs pile up over time.

Old bugs are sometimes undesirable to fix because other systems/users have come to rely on their behavior.

Old bugs are sometimes undesirable to fix because other systems/users have come to rely on their behavior.

Gives a real reason not to fix some old bugs: other systems depend on how they behave.
fern_vole10 2026-11-02 03:35 | rewritten3/10question | original | root | parent [–]

That's surprising to me. Do you have an example of an old bug that couldn't be fixed because people relied on it?

original comment by alexpadula

That's a weird take. Do you have an example tibbar?

Real request for an example; dropped the dismissive 'weird take' framing.

Sure. This one already came up. [0]. In general, for a system like Postgres, many bugs affect only "extreme edge case" scenarios, but fixing them might create severe performance issues or require changing or removing other important features. So it's better to not fix them.

[0] https://www.postgresql.org/message-id/flat/c22286ad6268347c6820d2f69eaa8088c98d17ea.camel%40cybertec.at

Sure. This one already came up. [0]. In general, for a system like Postgres, many bugs affect only "extreme edge case" scenarios, but fixing them might create severe performance issues or require changing or removing other important features. So it's better to not fix them.

[0] https://www.postgresql.org/message-id/flat/c22286ad6268347c6820d2f69eaa8088c98d17ea.camel%40cybertec.at

Answers the request for an example with a concrete link and explains the tradeoff.

The saying goes that the optimal amount of fraud for a fintech is non-zero. By the same logic, I'd argue the optimal number of bugs for a database isn't zero either, because fixing everything costs more than it's worth.

original comment by whateveracct

the optimal amount of fraud for a fintech is non-zero

why would the optimal amount of bugs be anything less for a database?

Turned a rhetorical question into a stated argument.

Because one of those things can be formally verified.

Because one of those things can be formally verified.

A short but real reply: it separates software correctness, which can in principle be formally verified, from fraud.

Seems like a lot of these bugs have not affected end-users or tripped up maintainers. They could be trade-offs that helped get other features over the line even?

In which case maybe leaving them alone is practical?

I love fixing bugs, but your post triggered this thought so I thought I'd share.

Seems like a lot of these bugs have not affected end-users or tripped up maintainers. They could be trade-offs that helped get other features over the line even?

In which case maybe leaving them alone is practical?

I love fixing bugs, but your post triggered this thought so I thought I'd share.

Raises a real point that obscure bugs nobody hits may be acceptable tradeoffs.
opal_weasel10 2026-11-02 03:55 | rewritten3/10question | original | prev | next [–]

Does this mean productivity is up or down for the Postgres team?

original comment by ares623

Now, riddle me this. Does this mean productivity is up or down for the Postgres team?

Kept the real question and dropped the 'riddle me this' framing.

So it seems there as a certain level of safety in obscurity that was acceptable / fine which has been lost and therefore the focus is shifting towards churning through the slop.

So it seems there as a certain level of safety in obscurity that was acceptable / fine which has been lost and therefore the focus is shifting towards churning through the slop.

Points out that the security-through-obscurity margin has been lost.
jimbokun 2026-11-02 03:05 | removed0/10thread_removed | parent [–]

[flagged]

[flagged]

The flagged comment has no recoverable content, and the only reply is a moderation note about the commenter, so the thread adds nothing to the topic.
dang 2026-11-02 03:09 | removed0/10meta | root | parent [–]

"Don't be curmudgeonly. Thoughtful criticism is fine, but please don't be rigidly or generically negative."

https://news.ycombinator.com/newsguidelines.html

I think of you as a good HN contributor, but you've been posting a lot of unsubstantive comments lately, and breaking the site guidelines in other ways too. Can you please stop doing this, and return to using HN in the intended spirit? Your substantive, thoughtful points are welcome, but not comments like this current one, nor these (to pick a few examples):

https://news.ycombinator.com/item?id=50280377

https://news.ycombinator.com/item?id=50275967

https://news.ycombinator.com/item?id=50147625

"Don't be curmudgeonly. Thoughtful criticism is fine, but please don't be rigidly or generically negative."

https://news.ycombinator.com/newsguidelines.html

I think of you as a good HN contributor, but you've been posting a lot of unsubstantive comments lately, and breaking the site guidelines in other ways too. Can you please stop doing this, and return to using HN in the intended spirit? Your substantive, thoughtful points are welcome, but not comments like this current one, nor these (to pick a few examples):

https://news.ycombinator.com/item?id=50280377

https://news.ycombinator.com/item?id=50275967

https://news.ycombinator.com/item?id=50147625

Reply in a thread removed with its parent.

[flagged]

[flagged]

[flagged]

[flagged]

[flagged]
wiseowise 2026-11-02 08:15 | removed0/10snarkjokeinsinuation | prev | next [–]

> The short answer is that LLMs happened. All software contains bugs, and PostgreSQL’s code base is large, complex, and old. Our git history – converted from CVS – now reaches back more than 30 years, and the first code was written a decade before that. There’s a huge amount of code, and that code contains a huge number of bugs. That’s always been true, and it hasn’t stopped PostgreSQL from being popular or successful. What’s different now is that it’s become vastly easier to find those bugs. Fixing them has also gotten easier, but not to the same degree.

LLMs are a gimmick, btw. This is an Anthropic marketing stunt, how much did they pay you? /s

> The short answer is that LLMs happened. All software contains bugs, and PostgreSQL’s code base is large, complex, and old. Our git history – converted from CVS – now reaches back more than 30 years, and the first code was written a decade before that. There’s a huge amount of code, and that code contains a huge number of bugs. That’s always been true, and it hasn’t stopped PostgreSQL from being popular or successful. What’s different now is that it’s become vastly easier to find those bugs. Fixing them has also gotten easier, but not to the same degree.

LLMs are a gimmick, btw. This is an Anthropic marketing stunt, how much did they pay you? /s

A sarcastic shilling joke tacked onto a quote, with nothing of its own to add.

[flagged]

[flagged]

[flagged]

TLDR After decades of being increasingly whittled down and optimized, an absoltuely fundamental piece of computing is now predomaitnely fixing bugs rather than adding new features.

TLDR After decades of being increasingly whittled down and optimized, an absoltuely fundamental piece of computing is now predomaitnely fixing bugs rather than adding new features.

A brief summary that frames things a little differently from the article.

[flagged]

> given that we have forty years of bugs that humans were unable to find but LLMs are quite capable of discovering, how are we ever going to catch up, and how will PostgreSQL continue to innovate?

I mean, maybe just innovate less? "Innovation" is one of those words that makes me queasy nowadays. It's been true for decades that a good deal of what's touted as "innovation" is just stuff that is not actually as important as fixing what's already there. Most software releases new versions far too often for far too little reason. So overall it's good to see Postgres slowing down rather than just barreling ahead with a new release.

> given that we have forty years of bugs that humans were unable to find but LLMs are quite capable of discovering, how are we ever going to catch up, and how will PostgreSQL continue to innovate?

I mean, maybe just innovate less? "Innovation" is one of those words that makes me queasy nowadays. It's been true for decades that a good deal of what's touted as "innovation" is just stuff that is not actually as important as fixing what's already there. Most software releases new versions far too often for far too little reason. So overall it's good to see Postgres slowing down rather than just barreling ahead with a new release.

A real argument that fixing what exists matters more than new features.

Is no one entertaining the possibility that some contributions were lower quality due to AI? I'm surprised to have only seen arguments that it's review.

Is no one entertaining the possibility that some contributions were lower quality due to AI? I'm surprised to have only seen arguments that it's review.

Raises an alternative explanation the thread hasn't considered.

If you look at the kind of bugs coming in, it's from all corners of the codebase, not just things changed in the last 1-2 years.

If you look at the kind of bugs coming in, it's from all corners of the codebase, not just things changed in the last 1-2 years.

Points to evidence against the idea that AI-written contributions caused the bugs.
LoganDark 2026-11-02 08:06 | removed0/10low_effort | root | parent [–]

Ah, that makes more sense. Thank you!

Ah, that makes more sense. Thank you!

A simple thank-you that adds nothing to the discussion.
fern_weasel75 2026-11-02 01:00 | rewritten5/10first_handinsinuation | original | prev | next [–]

I've found major bugs in late betas of Postgres long before AI came along. In one release candidate, malformed JSON in jsonb would segfault the server (a segfault in a server process forces the whole cluster to shut down by design). They fixed it rather than ripping the entire feature out.

https://www.postgresql.org/message-id/20140818195634.2543.56277%40wrigleys.postgresql.org

I'm not convinced LLMs are the real cause here. Late bugs have always been found and fixed, so pulling features or delaying the release for them looks like an overreaction to me, and suggests a process problem.

original comment by ltbarcly3

I have found major bugs in late beta's of postgres long before AI came along. I found a bug where malformed json would segfault the entire server (a segfault in a server process forces the entire cluster to shut down by design) when using jsonb in a release candidate once. They fixed it rather than ripping the entire feature out.

https://www.postgresql.org/message-id/20140818195634.2543.56277%40wrigleys.postgresql.org

It seems quite possible that someone wants to make it seem like LLMs are causing problems by over-reacting to things that could just be fixed, or delay the release slightly (or maybe waiting until late before a release to kill features they don't like?) Whatever it is, this seems like a dysfunctional process.

Kept the first-hand bug example and the disagreement, and dropped the speculation about hidden motives.

Maybe its more a issue that X amount of people have more work to fix discovered issues. So the new features have not undergone the same level of testing as before.

And instead of releasing substandard new features, they rather focus on getting rid of the backlog and have more time to test.

LLMs are in effect directly responsible for this (in a positive way by finding a ton of issues that can be security issues). Reality is with LLMs now in the world, more work needs to be done on existing software as their ability to find bugs/security weaknesses is strong.

When the old bugs/security weaknesses are fixed, things will go back to a more normal release schedule.

Maybe its more a issue that X amount of people have more work to fix discovered issues. So the new features have not undergone the same level of testing as before.

And instead of releasing substandard new features, they rather focus on getting rid of the backlog and have more time to test.

LLMs are in effect directly responsible for this (in a positive way by finding a ton of issues that can be security issues). Reality is with LLMs now in the world, more work needs to be done on existing software as their ability to find bugs/security weaknesses is strong.

When the old bugs/security weaknesses are fixed, things will go back to a more normal release schedule.

Offers a charitable, plausible explanation for the delay.
fern_weasel75 2026-11-02 01:17 | rewritten5/10cross_examinationquestion | original | root | parent [–]

I'm trying to understand where the problem lies. If the features are bad by design (bad abstractions added to pg's SQL syntax, say), or designed well but implemented poorly, then the process seems to have let them get too far before anyone noticed.

If there were known issues that were planned to be fixed but the fixes didn't land in time, that makes sense and it happens. But I don't see how an LLM makes that worse. At worst, LLMs let you get the same work done faster, because you can always just not use one. So the strongest version of the claim might be that people expected LLMs to get a feature into shape in time, and that turned out to be too optimistic.

original comment by ltbarcly3

Are the features bad by design? Like are they bad even if they work perfectly because they add bad abstractions to pg's SQL syntax, or are just broken in how they are supposed to work? If so the process is dysfunctional to let them get this far before noticing.

Are the features designed well (from a product perspective) but implemented poorly? Again, the process is dysfunctional to let them get this far before it notices.

Were there known issues with these that were planned to be fix, but the fixes didn't happen in time? That would make sense and it happens, but how is an LLM making that worse? LLMs in the worst case let you get the same work done more quickly, because you can always get the work done as quickly as you ever could by just not using an LLM. So the strongest thing you might say here is that you thought LLMs would let you get a feature into shape before it was too late, and for whatever reason that was overly optimistic.

A real analytical question, reworded so it reads as a conversation rather than an interrogation.

If you are at the RC stage and still uncovering segfaults, "rip the feature out" is probably the only choice.

If you are at the RC stage and still uncovering segfaults, "rip the feature out" is probably the only choice.

A brief but substantive counterpoint about RC-stage risk.

I’m still amazed that with all the vibe coding, no one has created a Postgres alternative

I’m still amazed that with all the vibe coding, no one has created a Postgres alternative

Thin, but it prompts informative replies.

A relevant Jepsen analysis link.

Why would they? Postgres is free and does an amazing job.

Why would they? Postgres is free and does an amazing job.

Brief but a fair answer.

I don't know, but people do seem to be writing Rust rewrites of just about everything, so a Postgres one wouldn't be surprising.

original comment by j16sdiz

I don't know, but there are tons of "rust rewrite" of everything.

Made the dismissive one-liner a plain statement of the commenter's point.

I wish they'd adopt, merge in, or give official blessings to versioned postgres extensions like citus and pgvector.

I wish they'd adopt, merge in, or give official blessings to versioned postgres extensions like citus and pgvector.

A specific suggestion about bringing extensions like citus and pgvector into the official fold.
ochre_newt71 2026-11-02 01:49 | rewritten3/10question | original | root | parent [–]

Why does official blessing matter? You can already just install the extension and use it.

original comment by nimchimpsky

why ? Just install the extension and use it

Asks a real question, but the dismissive tone needed smoothing.

Lack of the extension in the core means that a lot of vendors with managed postgres don't support it or ship very old versions.

Lack of the extension in the core means that a lot of vendors with managed postgres don't support it or ship very old versions.

Concrete point about managed Postgres providers and extension support.

Also Postgres has enjoyed decades of debugging.

Also Postgres has enjoyed decades of debugging.

A short but relevant point about how mature Postgres is.

To be honest I would love for someone to work on the structuring of pg_dump for example, which is entirely driven by regexes and binary structures. It’s awful and absolutely not programmable - a real shame.

To be honest I would love for someone to work on the structuring of pg_dump for example, which is entirely driven by regexes and binary structures. It’s awful and absolutely not programmable - a real shame.

A concrete criticism of how pg_dump is structured.
swift_magpie57 2026-11-02 01:21 | rewritten2/10low_effort | original | parent | prev | next [–]

I think there's a difference between starting a project with vibe coding and maintaining one that way. A Postgres alternative would need long-term maintenance, and vibe coding doesn't get you that.

original comment by esalman

You can create a project on vibes, but you cannot maintain one on vibes.

A quip turned into the plain point underneath it.

Many recent relational databases speak the Postgres wire protocol. For wholesale replacement, pgrust is a recent, contentious contender.

Many recent relational databases speak the Postgres wire protocol. For wholesale replacement, pgrust is a recent, contentious contender.

Gives useful pointers to wire-compatible databases and pgrust.
velvet_ibex80 2026-11-02 01:18 | rewritten5/10informative | original | root | parent [–]

I'd be cautious about pgrust. Its reputation took a big hit recently, though wire protocol support in general is still useful.

Remove pgrust: the entry is cheating (per-query kernels and result caching) (197 points, 10 days ago, 166 comments) https://news.ycombinator.com/item?id=50205816

original comment by gnabgib

I hope you don't believe this, PGRust has fallen far from grace. Wire protocol support is useful (other than said recommendation)

Remove pgrust: the entry is cheating (per-query kernels and result caching) (197 points, 10 days ago, 166 comments) https://news.ycombinator.com/item?id=50205816

Keeps the useful link and the warning, without the patronizing opener.
malisper 2026-11-02 01:469/10first_handinformative | root | parent [–]

I work on pgrust. We shouldn't have submitted the preview when we did: it was still in active development, and its SQL coverage was far too narrow, though there was nothing in it giving it an unfair performance advantage

For the other two claims in the removal PR, we wrote scripts you can use to verify the behavior of the original 0.4-preview binary:

  - Per-query kernels did not serve the benchmark queries[0]
  - The preview's fast repeat LIKE queries came from a dictionary filter cache, not a cached query result[1]

Our open-sourced 0.4-beta has now been merged and is back on ClickBench[2][3]

Across all queries and instance sizes on ClickBench, 0.4-beta is ~7% faster overall than the 0.4-preview binary that was removed. If 0.4-preview's numbers had come from hardcoded kernels or faked results, the open-source general engine wouldn't be beating it

[0] https://pgrust.com/downloads/archive/2026-09-clickbench-snapshot/verify-preview.sh

[1] https://pgrust.com/downloads/archive/2026-09-clickbench-snapshot/verify-like-hot-runs.sh

[2] https://benchmark.clickhouse.com/

[3] https://github.com/ClickHouse/ClickBench/pull/2751

I work on pgrust. We shouldn't have submitted the preview when we did: it was still in active development, and its SQL coverage was far too narrow, though there was nothing in it giving it an unfair performance advantage

For the other two claims in the removal PR, we wrote scripts you can use to verify the behavior of the original 0.4-preview binary:

  - Per-query kernels did not serve the benchmark queries[0]
  - The preview's fast repeat LIKE queries came from a dictionary filter cache, not a cached query result[1]

Our open-sourced 0.4-beta has now been merged and is back on ClickBench[2][3]

Across all queries and instance sizes on ClickBench, 0.4-beta is ~7% faster overall than the 0.4-preview binary that was removed. If 0.4-preview's numbers had come from hardcoded kernels or faked results, the open-source general engine wouldn't be beating it

[0] https://pgrust.com/downloads/archive/2026-09-clickbench-snapshot/verify-preview.sh

[1] https://pgrust.com/downloads/archive/2026-09-clickbench-snapshot/verify-like-hot-runs.sh

[2] https://benchmark.clickhouse.com/

[3] https://github.com/ClickHouse/ClickBench/pull/2751

A pgrust developer answers the cheating claims with scripts that let readers verify them.
warm_wren47 2026-11-02 01:41 | rewritten3/10question | original | prev | next [–]

Postgres is a mature database used all over the world, and it's about to reach major version 19. Why haven't these bugs already been found and fixed over that time?

original comment by nektro

postgres is mature database used the world over allegedly about to be on major version 19. how has the time not been spent already to get rid of the bugs?

Took out the sneering 'allegedly' and kept the genuine question.
Sharlin 2026-11-02 01:53 | removed0/10snarklow_effort | parent [–]

...are you serious?!

...are you serious?!

Incredulous reaction with no substance.
tawny_ferret1 2026-11-02 13:56 | rewritten2/10ideologicalcurmudgeonly | original | prev | next [–]

I think this undercuts Postgres's reputation as the ultra-stable database. To me it says more about Postgres's code quality than about 'all code has bugs.' In my view AI isn't turning up comparable numbers of bugs in many other projects.

original comment by ssdaa

So Postgres moves from being the "ultra-stable data" base to badly engineered and suddenly "all code has bugs".

No, Postgres has bugs and needs to be propped up by AI because of incompetence. AI finds nothing in hundreds of projects.

Removed the 'incompetence' insult and kept the claim as the author's view.

I sometimes think the world needs a "Snow Leopard" release of everything: stop, add unit tests, fix bugs, and then move forward. My worry is that AI-generated code will lead to situations where you have to roll back or redo parts from scratch, because it's spread everywhere, hard to maintain, and nobody has "the map" of it.

Anecdote: on a trip across the US I was booking hotels from Apple Maps. The in-app browser could get into states where pressing back threw you out to the start of the map instead of the previous page. It was a terrible experience, and I worry that pushing rushed UI changes makes this kind of thing worse.

original comment by xlayn

I sometimes think that the world would need to do a "snow leopard" release of everything... to unit test, to fix... and then we will be able to move forward... but AiMaxSlopIt will result in those situations where you have to rollback or redo from scratch parts... because it's unmantainable because it's bad... it's spread everywhere and "the map" is not there.

Anecdote, I did a travel across USA and when I was looking for a hotel, if you go from apple maps, to website, to try to book, the "load browser" in the maps... could end in states where you could not go back because back is get out of where you are and go back to the start of the map... and was a terrible experience... then you turbo charge it with "implement game changer UI improvements for the new bar on UI design" goal of some guy with enough power to make damage... and you end with softslop (or is it sloprosoft?)

Kept the Snow Leopard idea and the anecdote, and dropped the 'slop' name-calling.



About | This page on Hacker News | HN Guidelines | Data: HN API

Curious Hacker News is an unofficial, experimental mirror and is not affiliated with, endorsed by, or operated by Hacker News or Y Combinator. Original comments are by their authors on news.ycombinator.com; rewritten text is AI-generated and was not written by the commenter.