When I hire people (developers) I focus on the following things:
1) Do you understand the basics of programming? The exact definition of "basics" will vary by the job. Writing basic scripts probably just requires an understanding of how to use classes, functions, etc... Some more advanced roles might require more complex data structure and algorithmic knowledge but this really needs to be targeted to the role being hired for.
2) Can you think? More specifically, give the person a hard problem and see if they're able to adjust their thinking when it becomes apparent that the initial approach is flawed
3) Does you ask questions? I've found that people that won't ask questions in an interview also won't ask questions on the job leading to them taking many wrong approaches. I intentionally under specify things to encourage questions.
That's about it on the technical side in my opinion. If they have those things they're probably able to learn anything else you require. I have some additional things I look for while hiring into my current company because I know the personality characteristics required to survive here but that's going to vary from company to company.
Google's self-driving cars have driven over 300,000 miles without causing accidents while in automatic mode. There are two accidents I'm aware of. One, the car was rear-ended while stopped at a red light. The other was when the Google car rear ended another Prius. In that incident the car was in manual mode.
A far larger concern should be users that decide hacking together their own driving AI would be fun or those that maliciously hack into other cars. Even these are likely to be relatively small concerns.
People are just uncomfortable about not having control and are also disturbed by looking at things through a statistical lens.