Principal Engineer Software jobs