Do you work in concurrent programming? If yes, then considering that you can get a race condition after 10,000 times you run that program, you shouldn't blame the programmers.
It's not like they hire the best of the best, because they simply cannot afford to. We want software in medical devices to be very safe, but we also want cheap competition there. We can't have both.
I get where you're coming from and why you might suggest that. However I do happen to work on those kinds of codebases and if there was even a .00000001 percent chance of _death_ by using my software I'd make sure it didn't go out the door. No question. It's possible to work smart not hard and avoid entire classes of issues like manifested in the link I posted above.
As-is Medicine / Aviation and other such "mission-critical" real-time / life threatening industries do take this sort of thing very seriously. Programming has come a long way since the 80s and at least in aviation I'm aware that code undergoes audits to ensure that things like dynamic allocations / malloc aren't done at all in critical sections of the code. Lots of limitations are placed on software run in those environments and it's justified and warranted.
It's not like they hire the best of the best, because they simply cannot afford to. We want software in medical devices to be very safe, but we also want cheap competition there. We can't have both.