can mechanical engineers become software engineers