This is a big part of why I left Web dev, too. I'm just sick of working with amateurs. When I'm at work, I have things I want to get done. This isn't the classroom, my teammates' lack of comprehension of even things as simple as dependency injection and MVC is their fault, not mine. My productivity and coding power shouldn't have to be hampered just because I'm working with a bunch of code-until-it-works-sorta hacks.