There's a lot to master in any job, but software engineering takes this to a whole new level. A good developer has to enjoy learning, and of course we usually do this by making mistakes. But what level of knowledge divides a master from a mere competent beginner? How do we know when we've learned enough to do our job properly and consider ourselves fully qualified? In this talk I'll help you to answer these questions by sharing the stories of my own greatest mistakes, and reveal how a lot of them ended up becoming my greatest opportunities. We'll explore what it means to fail (sometimes specatacularly) and most importantly, how to make the most of it. And remember - whether you think you know too much, or too little - you're wrong!