On Remaining Employable
Following my post on changing jobs, I communicated with a friend who's in the market for a job. His circumstances inspired me to write a post for a slightly difference audience. So, here's some advice on remaining employable as a developer.
- There are some job sectors wherein it's been common for a developer to remain employed with the same organization for years, sometimes even decades. Government is one example of these. These sectors have two notable qualities: a) they are few in number; and b) they are becoming fewer by the day.
- These days, it's very difficult to survive in the tech industry without some sort of specialization. There are too many technologies for you to be competent with all of them. While there are some exceptions, most companies look for developers with a specific set of skills who can hit the ground running when they're hired, as opposed to developers who may be generally savvy, but will take time to become acclimated to a new tech stack. Choose your specialization carefully and, once you choose it, immerse yourself in it.
- There's a balance to be found between the extremes of being a niche specialist and being a jack of all trades. Too specific a niche will mean that people with your skill set are difficult to find. While this sounds good, the lack of supply can ultimately limit available positions. That's not to say that job availability should be the sole factor in what tech stack you choose to specialize in, but market demand is a factor worth taking into consideration.
- Do not become complacent in any position you take. Do not become too content or comfortable, do not assume that you will have the same job indefinitely. Things happen, losses are suffered, organizations downsize, people end up out of work. You need to remain potentially valuable to other organizations to stay employed, which means you need transferrable skills.
- Do not stop learning. If you only deal with technology from 9 to 5, you are what's called a "day coder." It may earn you a paycheck, but it will not keep you employable. Technology is too massive and changes too frequently for you to keep a reasonable handle on it from what few opportunities most 9 to 5 jobs will afford you.
- Be prepared to take time off the clock and spend your own money for professional development. Do research on new tech, experiment, work on side projects, contribute to open source projects, attend conferences or local meetings of professional industry peers, etc. Sadly, few companies that I've encountered seem to have both the resources and interest in the professional development of their employees to contribute significant time or money to such efforts.
- Network with people, and do not wait until you need a job to do it. Go to user groups or conferences, make a point of talking to people, form relationships, and stay in contact. Get online, join IRC and Twitter, ask questions, participate in discussions, put your name out there, and maintain visibility in those communities.
- Put your work in the public eye. Write articles for sites like SitePoint or magazines like php[architect]. File issues and submit pull requests to open source projects, or start your own. Submit to and speak at conferences and user groups.
- Update your résumé frequently. Add descriptions of projects you've worked on, both at work and on the side, complete with the tech stacks you used. Include links to your profiles on sites like GitHub or Bitbucket. List any publications or speaking engagements you've had.
- If you haven't already, give my friend Cal Evans' book on the subject a look.