Team Geek: A Software Developer's Guide to Working Well with Others