What makes the perfect software engineer?