@aral I think most problems in software are fundamentally architectural in nature. Bugs often arise from spaghetti code. Spaghetti code is basically unmanageable statefulness and obfuscated dependency chains. Dependency chains are inherently architectural and statefulness is often the go-to answer when the developers don't know how to cleanly model/architect the solution to a problem.
Until we have AI literally producing original code to solve complex problems, I believe well-designed languages and elegant programming patterns are the most important factors in helping a programmer avoid bugs. I hope we can one day have them.
This is my personal Mastodon.