It is one of the toughest job markets that I've seen in 20 years. For the benefit
of our visitors, I thought I share a few thoughts about how you can improve your
chances of landing a job.
Recruiters
In today's IT world, it is really, really tough to contact a company directly and
obtain an interview. Having a friend refer you is about the only way. You almost
always have to go through a recruiting agency. Software development shops cannot
afford to waste their time reading dozens and dozens of resumes and weeding through
unqualified candidates. So, you are left with recruiters. Not a pleasant scenario
mind you but a virtual necessity.
Finding the right recruiter can drastically increase your chances of finding the
right job. You might not have thought of this but you need to interview as many
recruiters in your area as possible. To start, post your resume on as many job
sites as you can. When you post it, make sure to set your minimum salary at least
$10,000 per year less than you are willing to accept. Why? You want as many of
recruiters to email you as a result of your resume being shown to them in a low
salary search query. If your resume has been inactive on the major job sites,
renew it and keep doing so every 30 days because many of their automated search
jobs feed off that flag.
Recruiters are constantly contacting developers to mine resumes for future jobs.
I see no reason you cannot do the same in reverse.
Now that you've got people filling up your email inbox, it is time to start interviewing
them. Why? Many of these recruiters work for companies that are strong in a particular
geographical region or perhaps certain technologies. You need to ask them questions
about both. If you are strong in ASP.NET and live on the north side of town,
you may not want an agency that fills a lot more Java positions on the south
side of town.
You also want to ask your recruiter how many years they have been with this same
agency. This can tell you a lot about the strength of the agency and how many
companies they have built strong relationships with. Both are key to getting
your resume seen as well as how well the recruiter will personally promote you
to your potential employer.
I like to keep a list of companies within a reasonable commute. Ask each recruiter
you speak with if they represent this company. Often times, they will approach
the company on your behalf even if they do not have a currently published job
request. Just think of all the conversations you've been apart of or overheard
regarding positions in your current company that were never posted to sites like
monser.com, careerbuilder.com, or dice.com. Use the recruiter to do that hard
work for you. That is what they get paid for.
At the end of each recruiter interview, remember to keep their contact information
along with detail notes concerning what you have learned. I often contact the
recruiter at later dates inquiring about certain companies or whether certain
types of environments have job opportunities. For instance, I happen to enjoy
working for start up companies where there is a chance for an ownership stake
and they are often working with cutting edge techniques and technologies. Higher
risk of course but often a higher reward.
If you know who the strong recruiters/recruiting companies are, what regions they
are strong in, and what technologies they are more successful with filling positions
for, you drastically increase your prospects for landing the right job. It costs
you nothing but time to acquire this information and keep it current.
On a side note, if you visit the home page of your desired company and determine
the site is written in ASP.NET, there is a high degree of probability that they
use .NET in house. It also increases the likelihood they use SQL Server as well. This
not fullproof of course but I've found it to be commonplace.
LinkedIn.com
If you aren't using this, you should be. Facebook.com as well. These social sites
can be useful when a friend of a friend of yours ends up working for the company
you are interviewing with. Make yourself easy to find and researchable. Your
public presence has real value in the job search process.
Resumes
Put your resume online using simplistic html formatting that Internet Explorer can
easily save to a nice looking word document. You might be surprised at how many
recruiters and agencies simply search google. I'll bet at least half the contacts
I've gotten are from Google searches. Type C# resume or even C# resume FL and see what you get...
You really have two audiences to prepare for: human resources and other software
developers. Human resources either manually scan your resume looking for keywords
and years of experience or they use software to do it. Keep in mind, they are
given specific instructions to look for keywords for which most of these people
have no clue what they mean. In fact, I once had a friend who was denied an interview
because he didn't have NotePad on his resume.
So, you need to have a section that lists virtually every piece of software you have
ever used that is anywhere near relevant. There is nothing wrong with putting
a primary list at the top with a link to the secondary list at the bottom. If
you've won awards for companies you worked for in the past, make sure you put
them at the top. Human resources personel and IT management will instantly see
these and want to talk with you before talking to others.
Preparing your resume for other developers is a whole other ball game. Rather than
read your resume, one of the first things people do nowadays is paste your name
in Google looking at how you carry yourself online. A positive and helpful person
in an online environment typically acts even better in person. So, if you participate
in online forums like EggHeadCafe's, make sure to use your real name and act
as professional as your patience can stand at all times. I'd go so far as to
post links to forum discussions you've participated in and articles you've written.
Watching how you carry yourself in real world scenarios says a lot about how
well you will fit in with the rest of the team.
Now, to the resume itself. Over the years, the most successful resume tactic I've
ever used is the one I use now ( http://www.eggheadcafe.com/robbemorris.htm ). For each job you've had in the past, provide a specific list of what you did,
what technologies were used, related accomplishments, and any accurate/believable
revenue increases as a result of your work. Let's look at a couple of jobs I
recently completed:
.NET Evangelist for Bright House Networks, Inc.
Provided day to day guidance and oversight of all web software development activities,
definition of our best practices, methodologies, and implementation of third
party tools.
Lead the CMS migration teams for the television news web sites cfnews13.com and baynews9.com.
The migration involved moving from Ektron CMS to Open Text (Red Dot CMS).
Lead the implementation effort to convert many of our custom applications previously
tightly integrated into our CMS platforms over to Microsoft Silverlight line
of business applications. This enabled us to have the appearance of tight integration
without the custom applications actually being integrated into the CMS at all.
Our team consisted of 10 software engineers.
Here's another example
.NET Evangelist for Alinean, Inc.
Performed software development duties for Alinean's offline Enterprise ROI tool known
as Pack-N-Go. This tool utilized C#, WPF, VistaDB.NET, and Excel calculation
engines.
Created the master architecture as part of the transition from the Java version of
the Enterprise ROI tool to the next generation of Alinean's Enterprise ROI tools
in 100% Microsoft technologies. The next generation Enterprise ROI used a shared
code base between the online version in Microsoft Silverlight/WCF/SQL Server 2008
and the offline version in Microsoft WPF/SQL Server 2008 Compact Edition.
Provided mentoring for 3 software engineers.
By listing out specifically what I did in short bursts, I made it easy for the interviewer
to formulate questions I wanted to answer that highlighted my strengths. For
the resume reviewer, they are able to instantly get a feel for the roles I played
in each endeavor versus guessing whether I was the senior person on the project
or a maintenance developer. It is also much easier for them to associate your
past experience with the environment and scenarios you would be working in now
in order to determine if you are a good match.
If you were promoted one or more times, make sure you list each position out separately.
You want to show an obvious pattern of excellence and promotions are one of the
best ways to do this.
Phone Interviews
The first thing you do when preparing for a phone interview is to understand who
you are speaking with.
If you are of foreign decent or have an accent, you need to make sure you can be
understood by individuals who are interviewing you. As an example, you might
be an extraordinary developer from India or perhaps Eastern Europe. If you are
interviewing for a job in Iowa, your interviewer may have a very difficult time
with your accent simply because it is unfamiliar. The same can be said in reverse
if you are an American looking for a contract overseas. If it is at all possible,
confirm with someone who is in the same demographic as your likely interviewer
that your voice is clear and easy to understand over the phone.
If your interviewer is a non technical person, then use the high level technical
terms they are trained to listen for but do not delve too deeply. As an example,
Silverlight is a high level term but IValueConverter and INotifyPropertyChanged interfaces are not. Also avoid the use of slang and be careful not to talk over your
interviewer. There is no need to oversell yourself. Just answer the questions
calmly and politely. This is an opportunity for you to demonstrate your superior
communication, people, and situational awareness skills.
Your job in this phone interview is to make the HR representative feel comfortable
speaking with you and not feel intimidated or talked down to. In their mind,
you want to be that expert they could come to and ask stupid questions without
being embarrassed or insulted. Remember, if this HR representative simply doesn't
like you, they'll just put your resume at the bottom of the pile. Trust me, this
happens more than you think.
For technical phone interviews, your task is largely the same. The only difference
is that you are allowed to delve into more technical details. One trick I use
in phone interviews to get them to ask the questions I want to answer is use
the word "we" a lot in my initial answers to questions. Not only does
this reenforce my experience working in team environments, it almost always triggers
the question "what specific role/thing were you responsible for on the project".
This tactic then gives you a chance to provide much more detail only at those
times the interviewer specifically asks for it. Believe me, management will pick
up on your ability to understand when they want short precise answers and when
they want very detailed technical explanations. To them, this is an important
aspect of their relationship with you.
When it is your turn to ask questions, have at least 5 ready. I tend to focus on
getting as much information about the technology they use as possible. I also
ask about what technical challenges they are facing. This lets me better prepare
to match my specific skillset to the challenges the employer needs to overcome.
If you feel comfortable, I also suggest asking about team personalities. Questions
like "tell me about the people on the team" are very open ended questions
that will trigger some interesting responses. The more you know before the personal
interview, the better off you'll be. No salary, vacation time, or benefits questions
should be submitted at this time. There is plenty of time to discuss that later
and you'll be in a better negotiating position after the personal interview.
In Person Interviews
If you have gotten this far, they are no longer looking for reasons to hire you,
they are looking for reasons not to hire you. Thus, they are quite interested
in bringing you on board.
Start by wearing a nice blue, black, or dark grey suit with a tie. White shirt if
possible. No funky colored patterned shirts or cartoon ties. Reasonably new shoes
freshly shined are a must. You need to present yourself like a business and not
some nerdy style show.
The situation...
These days, it is likely that you will be interviewed by a group of developers in
a conference room. Often times, management will not show up until the technical
portion of the interview is done. You need to understand that the primary purpose
of this interview is to catch you lying or mispresenting your skill set. These
folks have already seen/heard enough to be interested in you but want to be certain
you really know what you say you do.
Senior level technology interviewers...
Prior to the interview, read your resume and study up on what you say you know. Do
not get caught flat footed by having something on your resume that you cannot
discuss in detail. Based on your prior phone interview, study up at a high level
some of the technologies that this company uses or is thinking about using. Many
software development teams have chosen a technology to migrate to that they are
less knowledgeable about than you are. Familiarity with terms and basic principles
will be helpful. Just do not oversell your experience with them.
Senior architects/developers are going to dominate the interview. With that in mind,
the three most important words in your interview are going to be "I don't
know".
Catching people who lie or misrepresent themselves in interviews is a specialty of
mine. The most important piece of advice I can give is just be yourself and be
honest. Guys like me will purposely ask questions we know you cannot answer as
well as push you to elaborate on subjects you are clearly not comfortable with.
Like the dogs we are, we can literally smell fear.
Be certain of this, you are not skilled enough to keep your body language from giving
yourself away. Your eyes, the way you sit in your chair, the nervous movements,
and other quirks are easy to spot when you are stretching the truth and noticably
absent when you aren't. Our job is to prevent our employer from making poor higher
decisions that are expensive to correct. We take it quite seriously.
When you are honest and straightfoward, interviewers will quickly get bored and stop
trying to trip you up and focus more on the things you know. They will be searching
tirelessly for a reason you are wasting their time. Believe me, they want to
find the reason and be pleasantly surprised. Plus, you signal to management that
when the "sh.." hits the fan, they can count on you to give accurate
answers in stressful situations.
On the flip side, we are also evaluating whether we can enhance your skillset over
the next 12 months. If the cost is reasonable and we are convinced you are very
bright, hardworking, and trustworthy and are just inexperienced, it is quite
likely we'll suggest that you be hired. You can bet there is already someone
on the team we'd like to get rid of and have you replace them. That, of course,
is a set of tactics I'll talk about in another article...
The know it alls...
There are people in every IT shop who are technology purests and feed their egos
by using terminology even they themselves do not fully understand. Fortunately
for you, they are often not the most senior level people on the team and may
not have the influence your first impression leads you to believe. So, when these
folks pipe up and start asking you these types of questions, it is ok to just
admit you are not a much of a technological dictionary and that you digest things
in real world terms. At least one of the interviewers in the room will laugh
and break the ice. Trust me. Then, ask if they can rephrase the question in a
real world scenario. Notice how quickly they come back to earth and thus give
you a chance to answer and shine.
The junior level guy...
Often times, at least one junior level member of the team is present in these group
interviews. They often do not ask any questions or contribute anything at all.
You cannot let this stand. Look for opportunities to ask their opinion on a given
topic or ask for their input on what they like most about the company. This person
needs to feel comfortable working with you. Management will take their opinion
into consideration just as much as the senior level guys. For them, it isn't
just about technology, it is about team cohesiveness. Your willingness to open
up to junior level people sends a strong signal that you work well with others.
Management...
These guys are easy. They want you to work a gazillion hours, put up with their childish
rants when things go wrong, not embarrass them in front of the CEO, and help
make the company money. It really isn't any more complicated than that. You really
only need to have answers for two questions:
1. How many hours a week do you think a developer should work?
Answer: Whatever you need me to.
That is the only acceptable answer. You need to get offered the job first. If you
find out that they want more
hours than your salary is worth, either renegotiate your salary or do not take the
job.
2. Give me an example of when you missed a deadline and what did you do?
Answer: This happens very rarely. The only thing you can do is go straight to management
explaining what the
issue is, possible resolutions, and let them make the call sooner rather than later.
That's it. That's all they really care about.
Summary
None of this is rocket science. Slow down and think about what you are doing each
step of the way. I know looking for a job is really, really stressful. Just remember,
you have to take control of the situation and learn to maniplate it and the people
involved before they do the same to you.
Identify your targets with recruiters. Control the first impression with HR. Influence
resume reviewers by getting them to focus your specific skills and accomplishments,
and be honest when interviewers show enough interest in you to ask a question.
You may think you are nothing special. You are mistaken. Most developers in the software
development community are just not that smart or experienced. They resort to
lies and misrepresentations more than you could ever imagine. Employers desparately
want developers just like you as well as the ones who present themselves as people
who can learn quickly at a low cost.
If anyone has other useful suggestions, please post them below.