theatlantic[.]com/technology/archive/2017/09/saving-the-world-from-code/540393/
I've got a "thing" against many coders -- I admit it... in getting their code to work they too often ignore everything else, like what the software's supposed to be designed for, & the effects of the way they chose to implement their code, not to mention any quirks &/or bugs. This article, which really isn't technical in nature, explores one reason why that's so -- coders are too far removed from the actual purpose of their working software. It talks about how that's slowly changing, and why it has to change. And I think it's a good read if you've got the time to read it.
In a FWIW, I kept thinking about Huawei as I was reading this... The UK gov has a lab where gov techs work with Huawei engineers, looking at the security, potential vulnerabilities etc. in their networking & other communications equipment. The purpose is to keep UK networks using that equipment secure, making sure that it's safe for them to do so. They haven't found any problems with Huawei being dishonest really, trying to purposely do anything near shady, but back in China where the programming happens, it's sort of a nightmare zoo -- sort of a concrete example of everything the article talks against.