high paying software jobs