You probably know that to be highly productive you should master your programming language(s), know common data structures and patterns, have a working knowledge of algorithmic analysis, and so forth. But there is more—much more—to being employable, a developer who doesn’t spend any time on the bench, worrying about their future. This may seem like a strange focus. We are in the fat years now, with median salaries for developers increasing rapidly (although, according to my friends, still not enough to match the pace of rising rents in San Francisco). It may seem surprising to talk about a time when a developer might have to fight for a job. But believe me, lean times will come.
The first habit of employability is periodically reviewing your employability. The biggest career mistake I ever made was taking a lucrative two-year contract and allowing myself to become complacent about my knowledge. Ours is an industry that can undergo shockingly fast shifts of what are considered “baseline” skills. The trick is that it’s actually more devastating than missing some industry-wide macro trend than missing a shift in your own technology stack. It’s actually quite rare to work with a codebase that accurately tracks the industry consensus; almost all codebases have some lock-in to an unusual library or build tool or coding style.
(Related: This book may help you master your development niche)
In enterprise development, the most common in-stack weakness is not keeping up with the language evolution. Java developers, do you know your lambda syntax? C# developers, are you using initializer syntax and the new string interpolation? In Web development, the problem is the pace with which frameworks evolve. The rapid rise and fall of JavaScript frameworks is an easy punch line, but the same problem exists with other technologies. For instance, my knowledge of Ruby on Rails stops circa 2010, and even if my old workflow came back to me, my code is undoubtedly archaic. But at least in that case the name hasn’t changed, and I might get in the door.
Bottom-line habit: Stay up to date with your technology stack and have at least a passing knowledge of its most popular new aspects. You don’t need to be an expert, just visibly competent.
Maintaining visibility is the second habit. This is a part of your online persona. Note that I don’t say your “online presence.” It’s probably true of everyone, but as a developer, it’s guaranteed that you’re going to be Googled, and any troublesome aspects of your Twitter, Facebook, Instagram, Whatever-Comes-Next feeds may come to the attention of potential employers. The public Internet is not the place to let it all hang out. Keep a journal, have a way of sharing photos that does not involve social networks, and embrace the writer’s commandment of “know your audience.” Your audience includes future employers. More developer-specific, you can count on having your Stack Overflow reputation checked and your GitHub account glanced at.
Bottom-line habit: You don’t need a sky-high SO rank or repositories with dozens of stars (“I put most of my effort into contributing to my company’s products” strikes me as a very reasonable position), but you should have at least some presence on these sites, which are proxies for community engagement.
Visibility shades into the next habit, which is sociability. I don’t like the term “networking,” which harkens back to a day when “We once met” could be used to get your foot in the door. No longer. I think this is one of the reasons why that enormous social network for professionals (you know the one I mean) is so worthless. Just being linked to someone is worthless compared to networks in which you can actually cultivate professional friendships. There is no faster way to be hired than to have a friend bring you in the front door and vouch for you.
Bottom-line habit: Cultivate a professional social network. Share interesting articles, let your opinions be known about techniques and styles, and help other people when they are looking for gigs or work. Odds are, they’ll reciprocate.
In your professional social networks, you should cultivate “strong opinions, loosely held.” The next habit is a technical variation: You should be a master of some technological niche, but only for a few years. When I say “master,” I don’t mean maintaining professional competence in your technology stack. I mean being incredibly strong in some potentially employable specialty. For much of the first years of this century, I specialized in travel-reservation system back-end programming. It was hardly sexy work, but between referrals and good search-rank, I thrived even during bad economic times.
On the other hand, one year’s boomtown technology can be next year’s ghost town. Many developers incorrectly believe that, in a worst-case scenario, they can maintain codebases in their now-obsolete technology. It doesn’t work that way anymore: Those jobs go overseas to developers making less-than-First-World wages.
Bottom-line habit: Max out on some technology or niche, but always be learning something that seems to be of increasing value in the marketplace. Do not be complacent about your strengths!
Next month, I’ll talk about additional habits, including the single most important one you need to stay employable as a developer.