software career