So - I think I'm pretty skilled, and the #1 rule of programming anything non-trivial is you don't do your own testing. Well, you do, but only as a pre-req to having others look. You get blind to your own code - miss the flaws, avoid the stuff you know is jank. You need the QA folks to do the things it never even occurred to you to test. And when they're done? Actual users, who will also pick up things that QA missed, every time. And rather than argue someone would never do that - you fix it. Or you're not quite as good as you thought you were.