Answer by John L. Miller:
The software engineer most likely to stay employed and be sought after, even in bad times, is:
- Utterly reliable. They get things done, even if it means working hard. They notify ahead of time if they're going to miss a deliverable.
- Thorough. Things they do only need to be once, which is to say, it's unlikely anyone else could have done it better.
- Productive. They get things done quickly and competently.
- Innovative. They can think of new ways to solve problems old and new.
- Adaptable. They learn new technologies easily, and can integrate it with their existing knowledge to leverage both for gain. Also known as 'fungible.'
- Optimistic. When things are looking crappy, they're the ones who convince everyone that this too will pass, and probably in a good way.
- Personable. People like working with them. Despite being good, they don't make other people feel bad.(Picture from)It's not about your primary programming language or technology, it's not about being smarter than everyone else, it's not about being the world's best programmer. It's about being good, being reliable, and being someone who other people want to work with.
- Managers want reliable people in bad times, and people who don't cause trouble.
- Peers want someone who buoys them and makes the team stronger, and helps their team mates and the company succeed.
- If by some miracle a position is open, hiring managers want to hire people like this because they're good for business, they're good for team morale, and they're good for the company. And they find them by remembering who THEY like working with, or asking their team for recommendations of people they like working with.