Seven Core Competencies of Top Software Engineers