Wednesday, October 1, 2008

Getting a Good Job in Software, Part II: Beginning the Process

As night follows day, so Part II follows Part I (eventually). So you've decided you want a new job, huh? By this time, you should have a rough idea of what you're looking for and what's out there. The first thing you should do is update your list. Your list might have entries on it a year old. Companies go out of business, get acquired, shift markets, etc. Make sure you have current information.

The next step is to filter your list of candidates more rigorously. I said before that you shouldn't be selective when getting your list of names. Well, now is the time to be picky. Now you're looking for reasons to take a company off your list. Map them to find out how far they are. Try to find out how big they are.

Go through that list. See who's hiring. Research their business. Look for news articles about your target company. Try your local newspaper, your local Business Journal, national newspapers, Infoworld, CNet, and the like. Look especially for information about deals, funding, product launches, and hiring. You want to get a feel for the company, and how it is running.

Find out not just how much money they make, but how they do it. Do they get a recurring fee for service? Do they get money from people who aren't their primary users, like in advertising? Do they get a big check up front for shelfware? These models have a pervasive effect on the culture and incentives in a company. Don't expect to find out all these things. You can't get a complete picture of the company, so don't try. What you're doing is trying to save yourself effort later on. If a company is a bad match, you want to find out sooner rather than later.

Look at the job listings they have. Are there jobs you want to do? Would anyone realistically hire you for them? Don't waste employers' time by applying to a job you're not qualified for, even if you're a fast learner. Maybe you can do the job. They have no way of distinguishing between you and someone who is just blowing smoke. If there's a must-have skill that you don't have, forget it and move on. If you can't offer evidence on your resume that you can do the job, skip it.

Contact the independent recruiters that you know. See what they have, what they're working on. Ask them about the companies on your target list. They're probably not working for any of them, but they might be. They'll also often be privy to industry gossip, and can tell you things you wouldn't learn otherwise. If you've been keeping in touch with them, they'll be happy to talk to you, especially if you're willing to talk about one of their prospects.

Use Linkedin to find out if you know anyone at your target. That's good for research, such as when a friend of mine vouched for two of the people at one company. It's also good for making contact, as when I discovered that an acquaintance of mine from years back had become a recruiter for one of my target companies. It's useful even when you don't know anyone there. By looking at the histories and profiles of people who work there, you can get a good idea for their styles and skills.

All of this should be used to narrow down your list. Your goal is to end up with 5-10 currently open positions at your target companies. If you can only come up with a couple, maybe you need to loosen your standards. Or maybe your current situation is tolerable, and you can stick with it. If you have more than 10, you need to prune your list, or at least prioritize it. Go ahead and be as frivolous as you have to in order to get that number down. A good job is not a commodity; different jobs will fit you in different ways, so you should focus on finding a good match.

Once you've narrowed down your list, you need to start thinking about specific openings. You were looking at companies before; now you're ready to take action on specific jobs. Work on your resume. There are lots of guides out there on how to write a resume; I'm not sure they're good, but I'm also not sure I'd be any better. I can just point to what seems to have worked for me.

Come up with a canonical, complete resume that describes every significant aspect of your work experience. Ignore the standard advice about length; you are not going to send this version to anyone. List your experience, skills, education, portfolio of work, and so forth. Leave out hobbies and side interests unless you can directly connect them to the job, or if your read of the company suggests they like that kind of thing (very fuzzy, I know). Spell check, grammar check, etc. Have someone else read it. You don't want to let any stupid errors slip through.

Once you have this resume, shaping it for specific jobs becomes easy. Remove or minimize the less relevant things. The travel web site won't care about your experience with card processors. Remove that section, or at least condense it. The programming tools vendor has no interest in your database experience. The company writing software for Windows won't care that you're a whiz at shell scripting. Use boldface to emphasize points of alignment; if the job posting says "Spring," and you have Spring on your resume, put it in bold. That can apply to inexact matches, too; if the job wants TopLink, and you know Hibernate, emphasis that.

Some job postings emphasize business skills, so leave in the section about how you worked with product marketing to develop business requirements. Put that in bold, too. Other jobs are more about heads-down coding, so you can leave that out. If you can't find a number of places where your job overlaps with the opening, maybe the job isn't for you. This isn't just an exercise in adapting your resume; it's also about double-checking the match. Make sure you save the job posting you're applying to; you'll want that for later so you can confirm what you're getting into, and you can't cont on it to remain where you found it.

This should go without saying, but your resume must be completely true and accurate. Besides being the right thing to do, anything and everything on your resume is fair game for questions in an interview. If it's been a while since you worked with a particular tool, and your skills are rusty, you can leave it in the experience section, but exclude it from the current skills section.

Once you've got a resume customized to a particular job, figure out how you're going to make contact. It's always good to go through someone you know, but I've had surprisingly good results just contacting them cold. I figure if a company is posting a job on their web site, they probably have someone paying attention. In my recent experience, I contacted 6 companies. I knew the recruiter at one of them. Another one came up due to a recruiter contacting me. The rest of them were cold contacts. Two were via their web site, one was via a Craig's List posting, and the last was directly to a specific recruiter whose contact information I'd gotten from a third party. I heard back from all of them.

I'm assuming your contact is via email. Does anyone do anything else these days, at least in software? You must include a message with your resume. It doesn't have to be anything elaborate. Aim for something between 1 and 4 paragraphs. The basic points to cover are who you are, where you heard about the company, what job you're applying for, why you like the job, and a brief justification for why they should consider you. You can often do that in 100 well-chosen words. Sometimes that's all you need. If you are particularly interested in this job or company, you should say that. That indicates you've done your research. A company would rather hire someone particularly interested in them than someone who's looking for a generic job.

Your resume should be an attachment. Don't include it in the main part of the message because your introductory message serves a distinct purpose. Use whatever file format that the ad calls for. If it doesn't say, you'll have to pick one. Word files are common, but there's a proliferation of versions. Text always works, but it's ugly. On my recent search, I sent out all my resumes as PDF. That seemed like the safest attractive option, and it seemed to work.

Once you contact a company, you should expect it to take up to 2 weeks for them to get back to you. It's unfortunate, but it's true; for a number of reasons beyond your control, companies can be slow. There's nothing you can do about it. Often, companies don't even acknowledge that you've contacted them. It's rude, but again, there's nothing you can do about it. It is acceptable to send a single follow-up message if you don't hear anything, but I would only do that if you have reason to believe that your email was lost. Otherwise, give up on them and move on.

It is perfectly acceptable to talk to multiple companies at once. In fact, it's desirable. It gives you better perspective on your options, while also mitigating the frustration of the glacial pace of the process. Let's not forget that this is a financial transaction. You want to establish a positive relationship built on trust and mutual respect, but you're also looking out for number one. Balancing those can be tricky, but nobody worth working for should question you examining all of your options.

Assuming you get a positive response you should expect the process to take at least 3 weeks from initial contact to an offer, unless of course you or the company declines to continue. Usually it will take 4-6 weeks, though in some cases it may be as much as 12 weeks. 3 months is totally not cool, but it can happen. It can be a frustrating experience because you'll have bursts of activity where you're making rapid progress, followed by days or weeks of stasis. That's where it can help to be talking to multiple companies at once. Hopefully, you'll be making progress with at least one company every couple of days. There's a lot that's outside your control, though, so you should know what to expect. These are important decisions, so you should expect it to take a while.

Next time I'll write about what to do when they respond.

Labels: , ,


Post a Comment

Subscribe to Post Comments [Atom]

<< Home