They say you should write what you know. Lately I've spent some time exploring the job market. I've been doing this to some extent for years as I worked to recruit new employees to Rentrak. In the past year, I've seen the volume of open positions explode as the economy starts to recover. This has created something of a low pressure zone "outside". Plenty of companies are seeing turnover in the past year as employees get sucked out by one of the very many external opportunities.
This is good for developers. Even if you're not actively looking for work, your employer will feel market pressure to improve your working conditions. They want to be sure that you're not sucked out the door. If you are actively looking for work, then there's a veritable smorgasbord of options out there. If you don't see something you like today, just keep your eyes open. If you'd like to be actively looking but are not sure where to start, then the rest of this blog post is for you.
I think you should read two books
You don't have to read them before you start a job hunt, but read them while hunting. If you're not in a rush go ahead and read them first. If you're in a rush then you need to have a generic resume ready first.
The Laidoff Ninja is primarily targeted at folks who have been laid off and are struggling with the financial and emotional terrors of unemployment while hunting for work. The psyc bits are still relevant to employed job hunters, however. Job hunting is quite demoralizing and raises all sorts of insecurities. The chapters on finding work (particularly the chapter on using LinkedIn) are also totally relevant.
Land the Tech Job You Love is totally targeted at anyone who has read this far. One of the key pieces of early advice is to get your kit together before you do anything else. So, do that before you read the book ;) Once you have a resume, you're ready to hunt.
There are tons of sites where you can find job postings. Most of them will allow you to set up searches and get email and/or RSS notification of new jobs matching your search criteria. I have found that I get the best coverage from three sites: jobs.perl.org, indeed and craigslist. I've subscribed to others and I expect you would too. However, I got 90% of the value of RSS/email notifications from those three sites.
Now you'll have a steady stream of job postings clogging your daily diet of electronic media. Most of them are crap. Well, they're great jobs for someone, but they're not what you want. Get used to skimming and deleting these posts. You may be motivated to tune your queries to cut out more of the crap. You'll still have mostly crap to delete.
When you see something you like, you've already got your resume ready, so just tweak it for this particular opportunity and tap out a cover letter indicating why this opening excites you so and apply. Expect no response. It's just easier if that's your expectation. The hiring manager is normally a busy person. Now that they're short-staffed, they're even more busy. Eventually they'll get around to looking at the apps. It might be days or weeks. They may not reply to every applicant.
Just keep firing resumes through the front doors of attractive opportunities until you get some serious nibbles. (#blog_post_idea: resume hints)
That's one approach. Another is to go in through the side door. If you've got a nice-sized social network (#blog_post_idea: using LinkedIn), then you may well know someone in the company (or know someone who could introduce you to someone in the company). Reach out to one or more current developers and learn more about the position. This conversation is essentially a no-stress interview. You can learn more about them, and they'll be selling you on the company, and you won't yet be asked to sell yourself.
If you find that the position is a poor fit, then you've probably saved the company (and yourself) a nice chunk of time. If you decide to apply, you've got more details to use in crafting your resume and cover letter to fit the position and the challenges currently facing their team. You might also have the email of the hiring manager to ensure that they see your app before HR has a time to sit on the application for a week. If you actually know the folks on the inside, you might be able to get them to recommend you to the hiring manager (or at least to mention that they should expect your app soon).
If you're not sure what to ask, consider each of your prior jobs. What have you loved and what have you hated? What have you heard good/bad about other folks' jobs? As questions about all those sorts of things to ensure that they have much more of what you love and less of what you hate. Dave Rolsky posted a nice write-up of his personal set of questions last month. You might find his list to be inspiring if you're still coming up blank.
You really want to see if this opportunity is a good fit for you. The goal is not "to get inside contacts and build rapport" or "to sound cool and impressive". You're trying to learn. Put together a list of questions which will help you to learn whether or not you'd like to accept the advertised position.
Once you start finding interesting positions and start getting interview requests the job search becomes more interesting (ahem!). One problem is that i can be difficult to schedule time off. See if you can arrange for some regularly available time off (work early and have late afternoon free, work late and have mornings open; work long days and take half or even a full day off. Failing that, you're going to have use PTO every so often. (#blog_post_idea: interview hints)
I'll end this here. I've got a few more ideas for future posts. Right now I am struggling to keep my eyelids open. I'm sure that there are some strange typos in this text, but am too tired to re-read with any hope of finding them ;)