My friend and mentor Mike Stephenson gave me the best career advice ever:

Interview outside your company every 6 months, even if you don’t want to switch just now.

You may have heard a watered-down version: “You should always take the interview.” But Mike’s advice is more proactive: don’t just wait for the phone to ring, take the driver’s seat.

Over time, I’ve discovered that it’s the perfect antidote to everything developers hate about the job search:

  • It keeps you from getting too lazy in your current position
  • Your interview skills stay sharp
  • You know the salary or billing rate you can command
  • You learn which skills are in demand… and if your skill set is getting rusty
  • You understand which jobs/roles/cultures fit you best
  • You develop a thick skin to rejection and learn to just play the game
  • You get valuable, direct feedback about your strengths and weaknesses
  • Most importantly, if the need truly arises, you have multiple people you can reach out to immediately

As the saying goes: If it hurts, do it more often

Not only do I follow this advice, I’ve openly shared with my bosses that I do this. Most of them understand that it’s not about disloyalty, it’s just the reality of working in an at-will employment state like Texas. Independent contractors would call this Business Development, because that’s exactly what it is.

Having done this pretty religiously for nearly 5 years now, I’ve accumulated some rules of thumb that I’d like to share here, about how to plan your next big career move. Mostly commonsense stuff, but it needs reiterating:

1. Avoid places that don’t test for skill

Why isn’t anybody testing for skill? The last time I went through a job search, out of 12+ companies, only 2 seriously assessed my ability to do the job. Even a basic assessment like FizzBuzz would have been good… but no. Instead, most places rely on unstructured behavioral interviews. It’s well-documented that such interviews are ineffective, subjective, and open to all kinds of discriminatory biases. At best, it’s a personality test.

A lack of technical assessment is usually a sign that the company doesn’t value that expertise much. Most candidates with decent technical skills would enjoy being able to show off their chops. In addition, candidates who underperform due to nerves in a pressure-cooker interview would love the opportunity to show what they can do in a “normal” setting.

(And no, please don’t take this as an excuse to introduce whiteboard puzzles. Take a look at how places like Pivotal or ThoughtWorks interview candidates.)

2. Know the percentages to avoid getting frustrated

The job market is extremely inefficient. Most companies’ application process is so stacked against the individual that you’ll want to yell out in frustration. Often.

Relax - learn from sales people who do cold calling for a living: it’s a numbers game. Studies say that the average response rate for job applications on websites is 1-2% - that is, out of every 100 applications you will submit to websites, only 1 or 2 will get you an initial response (let alone a final offer.) Which means, depending on how frequently you’re applying, it could be weeks or even months before you hear back. Keep at it.

Also know where you’re more likely to succeed. Having been a consultant all my career, the highest percentage of responses I get are from the Consulting industry. When I apply to product companies I expect a much smaller ratio. Similarly, the more senior the role is that I apply for, the smaller my success rate.

The highest likelihood of a response is when someone introduces you directly to their company. This is a lesson that keeps reinforcing itself time and time again: your network is your best bet for finding new and interesting jobs. Friends, ex-colleagues and their extended networks are where you should turn. Some will do the bare minimum (“why don’t you find the job postings you like and I’ll internally submit your resume”) while some go over and above the normal call of duty to help (“I’m making it my mission to get you here.”) You won’t know until you ask.

p.s. To all who have helped me through my career: I am eternally grateful, and hope to either repay the favor, or pay it forward when it’s my turn to help, should the need ever arise.

Which brings us to a related point:

3. Sow the seeds today if you want to reap the harvest later

Have you kept in touch with your network lately? Have you blogged, tweeted, worked on OSS, spoken at a conference… in short, made any contributions to your community? Have you kept your GitHub profile up to date? Have you learnt any new skills lately?

By the time you’re job hunting it is too late - these things need to happen way before. All those excuses (“I’m too busy right now” or “I’m too tired today”) will come back to bite you if you don’t.

4. “Spray and Pray” doesn’t work

Focus. Spray and pray (i.e. sending your resume to as many places as possible, regardless of fit or interest) doesn’t work, not beyond a certain level. You need to be specific about a lot of things:

  • what role(s) you want
  • what kind of company/culture you want
  • which skills you want to grow or learn over the next several months
  • your own career goals for the next 5 years

Knowing these things has allowed me to turn down offers that were much more lucrative in the short term, but where my career would have stalled in the long run.

Corollary: job boards like LinkedIn, Glassdoor and Hired.com are practically useless beyond a certain level. Let’s not even talk about Monster.com and their spammy ilk. Yes, they make it marginally easier and faster to apply compared to individual company sites, but they all still rely on Spray and Pray tactics.

5. How a company treats you as a candidate is a pretty good indicator of how it will treat you as an employee

Companies often forget that interviews are a 2-way street. While they are evaluating a candidate, the candidate is evaluating them too. Sample red flags:

  • The one where the interviewer couldn’t stop acting superior the whole time
  • The one where my would-be boss couldn’t find time to meet for the final interview for over 3 weeks
  • The one where nobody knew what my role would be. Their response to questions like “Who will I report to?” and “What will my first 30, 60, 90 days look like?” was “Not sure. We’ll have to figure that out.”
  • The ones who said “We love your profile, but our executives have a strict policy against H-1Bs because they’ve been burned in the past.” To which I said - really? Have you given up on meaningful relationships forever because you had a bad break-up once? And do you place your personal biases above the evidence that this person is - by your own admission - qualified for the job?

Things like this say a lot to me about the culture and the decision-making process.

6. Speak with your significant other

This really is critically important. Speak with your significant other (and anyone else who’ll be directly impacted) about what you’re targeting next. Is travel or relocation on the table? What salary range makes sense? What work-life balance makes sense? If tradeoffs need to be made (e.g. spouse needs to put career on hold, or a temporary lower salary), what level of tradeoff is acceptable and for how long?

My wife is a constant rock and an amazing sounding board whenever I go through this process. And in moments when I get frustrated (which happen to everybody) she always brings me back on track, often by reminding me of what we’d agreed upon. It really helps.

7. Have a system

A haphazard process results in a suboptimal result. Often I see friends taking up the first offer that comes along, or waiting for recruiters to reach out to them via LinkedIn, or getting tired and giving up altogether (“after all, I still have a job.”)

My own system consists of two steps:

  • Build a backlog. This is done over time - often when I’m not even looking for a job. I look at Fortune 50 lists, Best Places to Work lists, Most Innovative Companies to Work For lists etc. Like an investor keeping an eye on opportunities, I build a list of interesting candidates. Then I sort them by things important to me: technical innovation, thought leadership, community involvement, work-life balance, business prospects for the next 3-5 years, etc. I have a Trello board with lists of dream companies, first-choice companies, companies to keep an eye on, companies to avoid, etc.

  • 5-a-Day. This kicks in when I actually start looking for a new gig. To work through the backlog, I apply to 5 job positions each day, no matter what. Regardless of how many responses I get the next day (often 0), I stick to this regime. This serves two purposes: it prevents me getting too negative (“why isn’t anyone responding?”) and keeps me focused on the present. The last time I really looked hard for a job, it took a month of 5-a-days to line up a healthy pipeline of interviews with great companies. And everything was tracked in my Trello board.

8. Like in life, you learn the most from your failures

Rejections are invaluable feedback. If you aren’t failing enough, you aren’t stretching enough. The things I don’t do well on, in today’s interview, will be the skills I go work on over the next 6 to 12 months. And then I’ll be ready.

On a less rah-rah note, you should also examine patterns in your failure. Always failing at the technical screen stage? Better get some practice with live coding exercises then. Always getting rejected for a certain job role? Maybe you need some experience or skills that qualify you better for that role.

Finally, getting rejected a lot of times is the best way to develop a thicker skin. For example, I was once rejected by a large company (automated response), then got hired by a consulting firm and ended up at that large company as a consultant - who then offered me a job with much higher pay than the original one - which I rejected because of their internal dysfunction. Life is funny that way.

A Note On Recruiters: in my limited personal experience, recruiters are of little help beyond a certain individual contributor level. I understand there are superstar recruiters and headhunters out there - but I certainly haven’t met them yet. From ghosting, to sending me mismatched job profiles, to “Can I update your resume to show 5 years of experience in this area?” - I’ve encountered them all. Recruiters deal in volume. Unless you deal in volume too, you’re not likely to have a successful or rewarding experience. The strongest reason to use them is when your own network is lacking - like if you’ve moved to a new town.