Having only programming background, it is impossible to develop software in some areas.
I'd say except for software development tooling itself you'll never develop anything useful if you don't have or acquire at least a basic understanding and knowledge in the domain of your software, whether it is music scoring, aerospace engineering or photo manipulation.
That is why developers sometimes save on code quality.
I thin the examples in the article are mostly oversights or the result of inexperience and inadequate code quality assurance, not because of the domain knowledge needed. Those errors are also present in life-critical software, but will be discovered before coming close to anything like a release because of rigid automatic quality metrics like the static code analysis done in this article.