The last part of your question/statement makes me feel you will have a very hard time finding something suitable for you.<p>The reason I say this, and by far don't take this the wrong way, is that mistakes, obvious or not, are an absolute requirement in business and in successful software developers. Reason being, in order to innovate, you need to treach into territory previously unexplored, meaning you need to accept the fact that there is a 95% or more of a chance that something will inevitably break, and it will break badly. Successful leaders not only accept failure, they embrace it. There is so much someone can tell you about their failures, and if you're lucky you may spot them happening to you, however there is no comparison when it happens from your own experience. A good analogy is sailing through a storm based on reading a book, or having sailed through a storm before, which do you think will complete their journey?<p>I also believe a big part of the so-called "PhD thinking" is they are willing to accept the fact that the 3-10 years of work they put in will be absolutely destroyed by their peers. It's that willingness to take a chance that drives them. Without it most things we know today would not exist<p>So basically, if you want your dream job, embrace failure and reach for the stars. Make mistakes, fix them, and make different ones