My system for staying booked as a contract software developer.

My entire career has been consulting, but since 2003, that's been through my own corporation.

This system is tailored to those looking to do corporate contract gigs through consulting/staffing firms, but lots of it also applies to those doing employment.

But, in this thread, I'm focusing on what I actually do.

You may find spots where I describe something that doesn't match what you see on my profiles. You can chalk those things up to me not being as strict about the system when I don't need to be.

This system has worked well for lots of people I've coached through it.

If you like these ideas, please put them into action. if you don't . . . just move along. At this point, I have very little interest in hearing how you think I'm wrong about this stuff.

Make an extended version of your resume. Every article out there will tell you not to do this. Do it anyway. Even many of the recruiters in this industry will tell you not to.

My resume is currently 7 pages. I can hear the outrage already.

"Managers won't read that all", etc.

Except they do. I can't speak for other industries. But, for software, list all of the projects.

Load the extended resume with keywords. Include the various spellings of tech stacks, include version numbers. You're doing SEO here.

That includes making sure, for example, that if you're a dotnet developer that you have it on there in some way as "dotnet", ".NET", "ASP.NET" , C#,, etc. All of the ways you see it used.

Everyone will tell you to be consistent. That advice pre-dates candidate search as the primary discovery mechanism.

Version numbers matter, especially for things frameworks like Angular where hiring teams get really focused on things like v8+.

I tend to mostly make sure the latest version I've worked with makes it on there somewhere. If something is older, I usually mention the version number only if it's a migration, like migrating from Angular 5 to 8.

Also keyword stuff the various non-tech terms. Agile/Scrum/Kanban, etc.

Once you have that extended version of your resume, put all of that onto your LinkedIn profile.

I also put the extended resume up on Google Docs and include a link to the latest resume in my "About" section.

Ask every manager/director from your past if they'll write a LinkedIn recommendation for you. Be prepared to do the same in return and be generous in your praise.

Change your job title to something that includes the end date of your current contract. I *always* have that date visible. It currently says:

Contract Software Consultant - Available Jan 2, 2023

When I sign a contract, even if it's for a year, I'll update that to say Jan 2024.

This helps keep recruiter spam down.

Speaking of which, get a phone number for your resume that's not your actual phone number.

I got mine from Twilio and set up a phone tree like what's in this screenshot.

https://capture.dropbox.com/drQERhZRH8omDZqp

If you call +1 612 568 7906, you'll get the option to press 1 to hear that same "next available" info and current rates and 3 to leave a voicemail.

If I'm actively looking, it says 2 to connect to my cell. If not, I turn that off in the workflow.

Dropbox Capture

Create and share screenshots, screen recordings, and video messages with the Dropbox Capture. Download and try Capture for free.

You can also set it up so if someone texts that number it will forward on.

Having the Twilio phone number on my resume was one of the biggest wins in this whole system. It lets you send the resume/CV all over, to as many recruiters as you want, etc.

AND it lets you turn the calls off when you're not looking, but still keep networking.

It also turns out that lots of recruiters just want to update your availability and keeping this info up to date turns it into self-service.

It's also how I discovered that the worst of the spammy recruiters are clearly paying folks in some way based on completed calls, including voicemails left. Because I discovered that many will do so even if offered the chance to connect to my cell number.

Added bonus, a bunch of recruiters and hiring managers end up REALLY impressed at this "techie" solution, so it bolsters their impression of you as a dev. That may diminish if enough people do this, but not so far.

OK. Back to LinkedIn. When you're actively looking, you're going to make changes to your profile every day or 2. Obviously, set the "looking" flag when you start looking.

But, also change something about it regularly. This changes the LastModifiedDate on your profile, which affects the algorithm recruiters are using to search.

I generally change the "Contract Software Consultant - Available Jan 2, 2023" in little ways, like Jan/January or 2023 to '23 and back.

Oh, I did keep a 2 page version of my resume in the past in case someone really pushed for it, but I don't bother anymore.

So many folks in interviews would ask me about stuff on page 5 that I had the evidence I needed to push back on the recruiters who wanted something more traditional.

I also don't list dates on mine. I found that the overlapping dates that sometimes happen caused more people to treat it as a "gotcha" moment than leaving them off caused. I offer to detail in interviews.

When I start a contract, I set up calendar reminders for the following:

The date the contract ends.
14 days before the end.
30 days before the end.
60 days before the end.

Those are prompts for conversations.

At 60 days, I email/call/talk to the hiring manager that is funding my contract. I mention that we're 60 days from the end, and asking if they've thought about whether that end date is still the plan, or if they want to extend, etc.

At 30 days, I remind them of that earlier conversation and ask if they're closer to a decision. I also tell them that if I don't have a written change/contract to me by the 14 day deadline, I will start looking for my next gig.

At 14 days, I let them know we've hit that point and let them know that the remaining work days should be focused on handoff tasks, and wrapping things up.

Obviously, if I don't want to renew, that includes less opportunity for them to do so.

If they do renew and get me a new contract, I move the calendar reminders, update my Twilio phone number, update my LinkedIn, etc. with the new end date.

Otherwise, it's time to look.

I post something on LinkedIn and other social stuff that I'm looking, but LI is what powers most of this.

I accept all connection requests on LI. Yes, I know it's supposed to be for people you've worked with. This is what I do.

I reply to most (I'm human and busy) messages from recruiters and hiring managers. Often, it's just a polite "I'm booked through the end of July, so definitely check back then. Also, my profile always contains my contract end date, so you can check back along the way"

I answer calls that come through. Pleasantly. I make conversation. Even if they're from some place like Robert Half that will never have a gig at my rates. Because recruiters move around and this is a long game.

If I'm aggressively looking, I do an email blast. This is tedious. But not as tedious as doing sales.

You can export your contacts from LinkedIn to CSV/Excel. Do that.

Now, go through and find everyone with a title like Recruiter, Staffing, Talent Acquisition, etc. Note anyone who may have had such a title in the past, but doesn't now.

That can require holding onto your last export and comparing. That can be manual work, or, well, you're a dev, right?

Open that filtered list and your email client. You're going to write a template email.

Subject something like: J Wynia Available for Contract Software Roles on Jan 2, 2023

Body explains that your current project is ending on that date, a bit about what that project was, what you're looking for in your next project, a link to the extended resume, your Twilio phone number and your sincere hope to hear from them even if they don't have any projects that will work for you this time around.

When sending this email, you're going to look for the last email you have from that person and make your message a reply to that, changing the subject.

READ what the last conversation was and make sure your new message acknowledges that context.

If they've moved on from recruiting, ask if they have contact info for who replaced them or covers that area now.

Yes, this is often far more personalization than they do toward us. Do you want to be right or do you want to book work?

When evaluating opportunities, I let them submit my resume to anything that's remotely close to a good fit. The goal of this phase is to schedule interviews, not pick where you work yet.

When you do interviews, you're trying to get offers.

Only when you get offers are you choosing.

Certainly ask questions to understand the gig. But, keep "risky" questions until you have an offer in hand. Because then you have leverage to ask those questions that might disqualify otherwise.

In interviews, my goal is always to turn them into storytelling. Find ways to get them to tell you stories about the team, the company, the project. Answer their questions with stories.

Humans like both the people who listen to the stories we tell AND the people who tell us stories.

Make the stories relevant, but work on there being more of them as an interview goal.

I regularly take interviews where people have a checklist of questions and get them to quit looking at it 10 minutes in.

Let the recruiters submit your profile to as many gigs as the recruiters are willing to. Only have 30% of the listed skills? If the recruiter is willing, go for it. You'll be surprised at how flexible those lists actually are.

Go on as many interviews as they'll give you. Not because you're going to take all of those jobs. Because you're getting good at doing interviews and getting offers.

Keep score. When I last was doing so, I was at 93% offers for interviews.

Going on interviews and getting offers for gigs you are pretty sure you don't want lets you get experience in how to interview when you're not giving off desperation vibes.

I have gone on SO many interviews over the 20+ yrs I've been consulting. Phone screens, tech screens, panel interviews with 6 people grilling me like it's a Congressional hearing, one-on-one interviews, etc.

The more you do it, the more comfortable you get. The more comfortable you are, the better it goes.

When you get an offer, never do anything about it with other options until you get a signed contract in your hands. If it's not written down, it doesn't exist.

Know what the payment terms are and be OK with them before signing. I won't sign anything that doesn't make termination clauses equal. I'm fine if they want 30 days' notice if I quit as long as they have to give me the same.

Always know when your first payment will arrive and follow up immediately on that one if you don't get it.

There's a ton of other little stuff too, but, when I say that I regularly get 3-5 offers in 3-5 days, it can seem a bit like a duck just gliding across the pond. But, this whole system is the furious paddling going on under the water to make that happen.

This is the system I use to always have contract options, in good economies and bad.

If the offers this round aren't what I really want to do, I take one of the shorter ones and push for something better next round.

This thread was longer than I intended. But, I hope it was helpful.

Sorry if it was obnoxiously spammy.

I do get asked about it a lot and this platform allows multiple pinned posts, so it was time to spell it out.

P.S. Yes, if you press 4 on my resume's phone tree system, you get Rickrolled.

One more addendum. I specifically moved to the Minneapolis metro to get access to more job options than the small towns I grew up in. And tailored my tech skills to stuff that was in demand here. Remote is shifting that, but location still matters more than it should.

As long as I'm working, until that shift is more stable, or I retire, I won't live anywhere with less than a million people in the metro area.

Economic opportunity goes with population density. It's changing, but not changed.

@jwynia Mine says "If you're interested in forming an onshore partnership, press 3."

Press 3 and it says "We do all of our development in house." and hangs up.

4 is for SEO and marketing partnerships. Tells them to use our contact form... which trashes anything mentioning SEO related keywords.

@jwynia
This all looks like very solid advice. I'm still 'retooling' and not yet really applying for work, but this is a well I'll return to.

@jwynia Fully endorse this. Back in the day when I was doing contract work, about half of these things were on my list, including the 5+ page resume.

Most of the rest didn't exist (it's been quite a while) but they're bang on.

I'd get desperate (read lucrative) calls for something I'd worked with 5+ years ago, thanks to something on page 4.

@jwynia Hell, I can't even find jobs to apply for.

@lopta Some of this was also steering toward tech stacks that are marketable in my local market.

Where are you located/looking? What job role are you looking for?

@jwynia Sadly I don't think there is a local market. Two big employers in town (not counting the local college and weird university). Other than that it's a tech wasteland. Mostly looking at IT jobs because "beggers can't be choosers" as my mother used to say.

@lopta That's a big part of what makes it easy/hard. My local market has 1700 software development jobs on a search like this: https://www.indeed.com/jobs?q=software+developer&l=Minneapolis%2C+MN&vjk=236cd32f04cc12ef

Compared to a city like Albuquerque (where I plan to retire), which only has 400, which will keep our move until remote work is reliably available or we can actually retire.

https://www.indeed.com/jobs?q=software+developer&l=Albuquerque%2C+NM&vjk=cdbf616a47f3366a

@jwynia I really liked Albuquerque when I was there on business. Would love to go back there on holiday to look around.

I should have done software development for my degree rather than networking, which is a dying trade.

@jwynia Really pay attention to the payment terms. I didn't do this on one of my first contracts and ended up in a situation where my first payment was almost 2 months after starting. All the contracts I had previously were either payed within a couple of days or before 30 days, so I hadn't focused on those terms. Luckily, I had savings to carry over the gap,

@gwonk What I always tell people interested in switching to this life from employee is that people are most concerned about health insurance, but aren't concerned at all about payment terms and those priorities should be reversed.

Because you can buy health insurance, but going 2-3 months without getting paid surprises the hell out of a lot of people.

@gwonk @jwynia Cash flow management is a huge part of freelance success. Three months cash on hand is a good rule. This was sometimes a struggle to maintain, especially when starting out, but has saved my butt repeatedly over the years.
@tjradcliffe yeah, there’s lots of that kind of thing people should know too. I was just focused on what ends up being my version of “sales”.
@jwynia Your sales process sounds awesome, and highly reproducible! I've sold almost entirely by word-of-mouth, but the system you've got is actually probably monetizable as a service :-D