Having the skills to do the technical work is only part of the answer. I've met a lot of brilliant programmers in my career who were not good at following through on commitments, delivering work, working with others, or leaving old workplaces without burning bridges.
On the other hand, I've known a lot of good-but-not-great programmers who were great to work with, made sure they got their work done to good standards, worked hard to overcome skill gaps or looming deadlines when necessary, and left a good impression everywhere they went.
The latter group (good reputation, good communication, good networking) will always have a list of people happy to hire them back. That's what you want.
Also, avoid the trap of thinking that social skills are "bullshit" or other cynical dismissals. Business is more than just writing code and avoiding peers. Results are delivered by teams, not individuals. Knowing how to be a good team member is a crucial skill.