You are on page 1of 8

Hire Winners!

Tips for Finding Qualified Candidates and Great SAS


Programmers
Kathy Doan, Wells Fargo Bank, San Francisco, CA
ABSTRACT
Learn tips and tricks that will help you assess a candidates SAS skill level during the interviewing process. Youre
probably thinking: I dont program in SAS. How can I assess someones skill level in SAS? No, problem! These tips
work even for the non-programming interviewer.
Have you ever met a candidate who looked great on paper, but when they are hired for the job, you find out they
dont even know how to do a PROC PRINT? Well, I have, and as an experienced HR professional, I have learned
what questions to ask a candidate to see if they are exaggerating their SAS skills.
Learn how to tell if a candidate really does have 10 years of SAS experience or if they only took one SAS class 10
years ago and did nothing with it, but claim they have 10 years of experience. Even better, find out how to get the
right candidates to interview in the first place so you dont waste your time with the wrong fit. As a bonus, we will go
over a couple of short in-house SAS tests to give the candidate a chance to show-off their creativity in programming
and for you to gauge the level of difficulty of their techniques.

INTRODUCTION
Well go through the entire recruiting process in our journey in finding the most qualified SAS candidates. First, well
identify how to attract the right candidates and where to find them. Then well cover how to screen and interview
them. Finally, find out how to ensure your ideal candidate accepts the job.
Figure 1 outlines the main steps we will review in this paper.

Figure 1. Steps in the Recruiting Process

Hire Winners! Tips for Finding Qualified Candidates and Great SAS Programmers, continued

JOB DESCRIPTION
There is a correlation between quality of the job description and the quality of the candidates. The more poorly written
the job description, the more unqualified (and desperate) candidates you will receive. On the other hand, a job
description that is too specific will cost you qualified candidates. So you need to find that balance. Think of it as a
casting call. If youre looking for an actress to play Elizabeth Taylor in a movie, you dont advertise for any female to
play the role. You need to provide some details, such as height, age, and maybe race to narrow down the number of
women who will audition for the part. You wouldnt insist the actresses be exactly 33 years old with dark hair and
violet eyes. You would have an age range (or actresses who look like they are in that age range), and since hair and
eye color can be masked, you wouldnt even specify that in your casting call.
Your job description should not describe your ideal candidate, but rather, someone who is qualified to do the job. You
might not find somebody who fits your description to a T so you need to allow some flexibility in your search. You
may be looking for a candidate with 10 years of SAS experience, but there may be a candidate who fits all other
criteria and only has 8 years of experience who would be a terrific hire. If casting agents were stringent in their
criteria, then we wouldnt have a bunch of 20- and 30-somethings playing high school students in TV shows and
films. Fun fact: Shirley Henderson, who played Moaning Myrtle in the Harry Potter movies, was 37 years old when
she portrayed that character! My recommendation is to lower your expectations slightly. Instead of asking for 10
years of SAS experience, pare it down a few years and look for 7 years+ experience.
This is the classic case of the Three Bears syndrome. You want a job description that isnt too vague or too specific.
Example of a vague job description: Minimum five years or equivalent experience of SAS programming.
Example of a more specific job description: Minimum five years or equivalent experience of SAS programming using
SAS/BASE, SAS/MACRO, SAS/SQL, SAS/STAT, and SAS/GRAPH in a data intense environment.
Example of a too specific job description: Minimum five years or equivalent experience of SAS programming using
SAS/BASE, SAS/MACRO, SAS/SQL, SAS/STAT, and SAS/GRAPH in a data intense environment in the healthcare
sector. Must be SAS certified with a degree in Statistics.
Be explicit in the key requirements in the position what qualifications are needed and the level of experience you
are seeking in a candidate. Include what SAS platform(s) and version(s) are used for the position. This will weed out
candidates who may be a bad fit for your job. Experienced SAS programmer could mean 2 years to one candidate
and 6 years to another. Make sure you include your definition of experienced so there are no misunderstandings
later.
Think about the needs you have for your open position, and tailor your job description to that. Are you looking for a
SAS programmer who can code from scratch or someone who knows enough programming that they can reuse and
edit existing code? Do you need somebody who can create queries and reports off of Enterprise Guide? Do you need
someone with a statistical background who can interpret the results? Do you want someone who is SAS certified?
Word of caution on including a requirement for SAS certification in your job description I know many experienced
SAS programmers who do not have the certification, and these great candidates would have been overlooked had
SAS certification been a prerequisite for their position. My recommendation is to include SAS certification as an
alternate to experience. For example: Minimum 5 years of experience or Advanced Programmer SAS certified.

SOURCING
Determine whether you want to hire internally, externally, temporarily, or permanently. Whichever type of hire you
choose, you probably want to target top performers. To attract the desired talent, you need to understand what your
targeted prospect considers important and market the position to those criteria. For some, telecommuting is a dealbreaker. If thats what talented SAS programmers prefer, then make sure that is included when you advertise the
position.
Once you have this information, you need to find this talent. What communication channels do they use? Dont use
the usual recruiting channels that are easy to do. Spend time on identifying where SAS talents hang out, and
market your jobs through those channels. Some places to look include online SAS forums, SAS blog groups, SAS
LinkedIn groups, SAS training classes, and local SAS users groups and conferences. This is similar to the dating
game. When youre single, you probably have a type of person you are looking to date. Depending on the type, you
would frequent certain establishments to increase your chances of meeting your ideal date. You may find the
wholesome type at church. You may find the active type at the gym. You can learn a lot about your potential date by
seeing what book section they hang out at in the library or bookstore. Or, if youre looking for a one-night stand, a bar

Hire Winners! Tips for Finding Qualified Candidates and Great SAS Programmers, continued

or nightclub may be where youll go.


Find out how your potential candidates search for jobs. If they use Internet search engines, then make sure your job
is easily searchable. If they visit job boards, focus your energy there. The goal is to make the job posting as visible as
possible. If your candidates cant find them, then dont be surprised if you have a low percentage of people applying
for your job.
These tactics work for candidates who are actively looking for a job. But you may even want to poach from your
competitors. If trying to hire from the competition, these potential candidates are probably not actively looking for a
job. Since these non-active prospects arent going to see your job postings, youll need to seek them out yourself.
This is also known as direct sourcing, which not many employers do, and that is a big mistake as it forces you to
select from a smaller pool of active candidates. Once you identify these talented non-actives, you need to build a
relationship and persuade them to apply for the job. I dont recommend doing the same when youre looking for a
date. Nothing is worse than a single person trying to steal someone away who is already in a relationship!
If posting internally, make sure the job opportunity is on the company website. You can also send an email to
employees letting them know of the position. Word-of-mouth is extremely powerful. Even if you dont have any
existing employee who is interested in the position, they may let their network of friends, family, and associates know
about the job. Posting externally is a little trickier. If you post through an online job site, such as careers.com or
monster.com, then you will get a bunch of candidates applying which means more resumes to screen through. You
can also post on social media sites, such as Twitter, LinkedIn, and Facebook. If desired, you can place an ad in the
newspaper to get a diverse candidate pool. Other places to post include university career centers (especially schools
that use SAS in their classes) and temp agencies. I highly recommend sending the job posting to local SAS users
groups.

SCREENING
Now that you have your pool of candidates, you need to go through the elimination process. First, you do the initial
screening to see if the candidates meet the minimum qualifications for the job. The goal is to make sure the qualified
applicants are not screened out and that as few unqualified candidates make it to the next level of the recruiting
process.
Make a list of the qualifications, skills, and experiences required for the job. You can refer to the job description to
create this list. Categorize these into must-haves and nice-to-haves. Compare the job application / resume to this
checklist. The more checkmarks the applicant has, the more closely, their qualifications match the requirements for
the job. At the end of this process, you should have three piles: Yes (has all of the must-have skills and most of the
nice-to-have skills), No (lacking in both must-haves and nice-to-have skills), and Maybe (has most of the must-have
skills and some of the nice-to-have skills).
Look out for red flags on the resume. Do they have employment gaps? Do they move around frequently from
company to company or job to job? Does the resume show decreasing responsibility, spelling mistakes, or omitted
dates? Be careful of candidates who load their resumes with buzzwords. These are people who put in keyword
terminology in their resumes so they can be picked up at the top of search results. Look past these keywords and
focus on where and when they were used in the job. For example, if macros are a requirement for the job, then make
sure theres evidence in the resume that the candidate actually has experience using macros in a previous job,
instead of just stating they know macros.
After screening the resumes, the next step is talking to the candidates. One way to do that is through an initial phone
screen. This will give you additional information on the candidates qualifications and fit for the job. This is the interim
step before the actual interview.

INTERVIEWING
Hopefully, only the most qualified candidates have advanced to the Interviewing stage. Dont settle for just one
interview. Have the candidates interview with multiple people. If possible, the candidates should interview with the
hiring manager, potential coworkers, internal clients, and customers. Your interviewers should be looking for technical
qualifications, cultural fit, and overall SAS knowledge as part of the interviewing process. Each interview should fill
out a job candidate evaluation form.

Hire Winners! Tips for Finding Qualified Candidates and Great SAS Programmers, continued

Here are some websites I recommend to get SAS interview questions:


1)

http://sastechies.blogspot.com/2009/11/sas-interview-questions.html
This site includes both the interview questions and answers. Great site for the non-technical SAS
interviewer. Posted by SASTechies on 11/9/09.

2)

http://www.docstoc.com/docs/18080585/SAS-Interview-Questions-and-Answers
The questions and answers here are the same as the previous site. The only difference is there seems to be
a few more questions. The downside to this site is you have to pay to download the Word document if you
dont want to print out screen shots.

3)

http://studysas.blogspot.com/2008/09/sas-interview-questionsbase-sas.html
Another site that has the same questions as the sites above. However, the answers provided are different in
that they are more concise and less of a text book answer. Posted by sarath on 9/2/08.

4)

http://www.tipsoninterview.com/sas.html
The site has what it considers Important SAS Interview Questions and Answers, though no answers are
actually provided.

5)

https://sites.google.com/site/sasbuddy/sas-interview-questions
The site has a bunch of SAS interview questions broken out by category, though no answers are provided.

6)

http://www.techinterviews.com/basic-sas-interview-questions
Very good basic SAS interview questions, but answers are not included. Posted by admin on 10/17/04.

7)

http://www.techinterviews.com/advanced-sas-interview-questions
The first few questions are SAS related. The rest of the questions are behavioral and non-SAS related. The
title of the site Advanced SAS interview questions is kind of misleading. Posted by admin on 10/25/04.

8)

http://www.techinterviews.com/interview-questions-for-sas-expert
These contain good questions when interviewing SAS experts. Posted by admin on 10/25/04.

9)

http://www.globalstatements.com/sas/jobs/technicalinterview.html
There are no actual questions here, but more of a discussion on what can be asked in a SAS technical
interview. Answers are not provided as the questions can be asked in a variety of ways. Posted by Rick
Aster on 8/26/08.

10)

http://support.sas.com/certify/creds/samples.html
The SAS site is a great resource for sample Base and Advanced SAS certification questions and answers.
One way to gauge skill level is to have your candidate take a test based on questions from the certification
practice tests or preparation books.

11)

http://support.sas.com/resources/papers/proceedings09/180-2009.pdf
Jenine Milums paper, Assessing SAS Skill Level during the Interviewing Process, from the SAS Global
Forum 2009 has great interview questions, along with the assessments of the answers. I highly recommend
reading her paper to get another perspective on assessing SAS candidates.

12)

http://www.sconsig.com/tipscons/neilhoward_sugi25.pdf
Neil Howards paper, The Ultimate Match Merge: Hiring the BEST SAS Programmers, from SUGI 25 also
has SAS interview questions, but answers are not provided.

IN-HOUSE TEST
Giving a SAS coding test is very telling in assessing the candidates SAS experience. The test requires the candidate
to write a few lines of code. A good in-house test should be simple with multiple possible answers. The answer itself
can tell you how creative the candidate is and how efficiently they can write code.

Hire Winners! Tips for Finding Qualified Candidates and Great SAS Programmers, continued

In-House Test Example 1:


Write SAS code to bucket the following Body Mass Index (BMI) ranges into the appropriate groups.
BMI

Group

14 and Under

Severely Underweight

Between 15 and 18.5

Underweight

Between 18.6 and 24.9

Normal Weight

Between 25 and 29.9

Overweight

Between 30 and 40

Obese

41 and Over

Morbidly Obese

Possible Answer 1:

If
If
If
If
If
If

bmi
bmi
bmi
bmi
bmi
bmi

> 0 and bmi <= 14.9 then group = "Severely Underweight";


=> 15 and bmi <= 18.5 then group = "Underweight";
=> 18.6 and bmi <= 24.9 then group = "Normal Weight";
=> 25 and bmi <= 29.9 then group = "Overweight";
=> 30 and bmi <= 40.9 then group = "Obese";
=> 41 then group = "Morbidly Obese";

Possible Answer 2:

If 0
else
else
else
else
else
else

< bmi <= 14.9 then group = "Severely Underweight";


if 15 <= bmi <= 18.5 then group = "Underweight";
if 18.6 <= bmi <= 24.9 then group = "Normal Weight";
if 25 <= bmi <= 29.9 then group = "Overweight";
if 30 <= bmi <= 40.9 then group = "Obese";
if >= 41 then group = "Morbidly Obese";
group = "Other";

Answer 2 is more efficient than answer 1. Answer 1 uses "if" instead of "else if" after the first if-then statement. For
each if-then statement, SAS parses the entire dataset to classify the subjects into proper BMI groups. In Answer 2,
SAS puts aside all Severely Underweight after processing the first if-then statement and scans only the rest of the
data. After processing the second if-then statement, SAS ignores all Severely Underweight and Underweight, and
only looks for Normal Weight in the remaining data, and so on. Answer 1 also uses "AND" to combine two criteria
while Answer 2 combines two comparisons into one statement. Check the answers to see if the candidate includes
an Other category for validation purposes (e.g., negative BMI values). Note that Answer 1 does not have that
category while Answer 2 does.
Possible Answer 3:

select;
when (0 < bmi <=14.9)
when (15 <= bmi <= 18.5)
when (18.6 <= bmi <= 24.9)
when (25 <= bmi <= 29.9)
when (30 <= bmi <= 40.9)
when (bmi >= 41)
otherwise
end;

group
group
group
group

"Severely Underweight";
"Underweight";
"Normal Weight";
"Overweight";
group = "Obese";
group = "Morbidly Obese";
group = "Other";

Answer 3 is also more efficient than answer 1.

=
=
=
=

Hire Winners! Tips for Finding Qualified Candidates and Great SAS Programmers, continued

In-House Test Example 2:


Write SAS code to delete the following values from a list: Monica, Rachel, Phoebe, Chandler, Ross, Joey
Possible Answer 1:

If name = "Monica" or
name = "Rachel" or
name = "Phoebe" or
name = "Chandler" or
name = "Ross" or
name = "Joey" then delete;
Possible Answer 2:

If name in
("Monica" "Rachel" "Phoebe" "Chandler" "Ross" "Joey") then delete;
Answer 2 is more efficient than Answer 1. It not only reduces the use of memory resources, but also saves time from
tedious coding. Answer 1 repeats the same comparison using "or," but Answer 2 simply puts a list of values into a
variable. Processing a list or an array of data is faster than processing data one by one.
Possible Answer 3:

%LET delete_list = %str


("Monica","Rachel","Phoebe","Chandler","Ross","Joey");
If name in (&delete_list) then delete;
Answer 3 is also more efficient than Answer 1. If you reuse the same code over and over, you can assign a macro
variable so the next time you can just update the list in the macro.
In-House Test Example 3:
Write two different PROC statements to summarize the number of observations in work.test by gender and state.
Possible Answer 1:

proc freq data=work.test;


tables gender*state;
run;
Extra points if the candidate suppresses the display of the default statistics (i.e., tables gender*state / nocum
nopercent norow nocol).
Possible Answer 2:

proc means data=work.test;


class gender state;
run;
A VAR statement could be added, if desired. Extra points if the candidate suppresses the display of the default
statistics (i.e., proc means data=work.test n).
Possible Answer 3:

Hire Winners! Tips for Finding Qualified Candidates and Great SAS Programmers, continued

proc summary data=work.test;


class gender state;
run;
Possible Answer 4:

proc tabulate data=work.test;


class gender state;
table gender, state;
run;
These are just several examples of summarizing data. The candidate could have used other PROC statements, such
as PROC PRINT, PROC UNIVARIATE, PROC REPORT, and PROC SQL.
The purpose is to see if the candidate knows multiple ways of coding to get the same end result. You could use any
example that has multiple solutions. Another easy example could be asking the candidate to complete an assignment
statement using a SAS variable list and the SUM function (e.g., SUM(of Qtr1-Qtr4), SUM(of Qtr1-Qtr4), and SUM(of Qtr:) will yield the same results). For a more advanced example, you could ask the
candidate to write a SCAN function to extract a phrase from a variable (e.g., if Example = New Years Day,
January 1st, 2012 and you want the year extracted, then SCAN (Example,-1), SCAN (Example,
6), and SCAN (Example,6,, ) will all extract 2012).
Word of Advice: Keep in mind that any minor SAS skills gaps that the candidate has can be filled by on-going
training. For example, if making graphs is important for the job, but the candidate does not have extensive experience
with graphs, they can still easily learn this skill if they already have a good solid foundation in SAS programming.

REFERENCE CHECKS
Now you have your short list of final candidates, cover all your bases with reference checking. Youll get additional
information on the candidates that will validate whether your perception of the candidate is accurate. If any red flags
pop up, such as being dishonest about their qualifications, then its a no-brainer that the candidate is automatically
eliminated from the hiring process.

OFFER
You finally found your ideal candidate, so its now time to extend an offer letter (or email). For best results, keep it
simple. A good offer letter will have the likelihood of your top candidate accepting the position. In addition to the basic
information youll be including in the offer letter (job title, salary, summary of benefits), youll want to include when and
how you want the candidate to let you know when youd like to hear back from them on their decision.
Cross fingers that your candidate accepts the offer. Ensure continuous communication with the new hire prior to the
first day of work to lessen the possibility the candidate will back out of the offer. Otherwise, be prepared to either
make an offer to your runner-up candidate or start the process all over again.

CONCLUSION
Now that weve gone through all of the recruiting steps, the most important takeaway to remember is: Do not settle for
just any candidate. Not hiring the right person will do you more harm than good. If you dont find anybody in your firstgo-around, then re-post the position. Trust me it is much better to start over from scratch than to hire the wrong
person. You will save yourself tons of headaches (and time) that way.

ACKNOWLEDGMENTS
Special thanks to Wells Fargo colleague, Jenine Milum, for her inspiration on this topic, and for also providing
feedback on this paper. I would also like to thank my SAS mentor, Sunil Gupta, for his ongoing feedback on the topic,
paper, and presentation.

Hire Winners! Tips for Finding Qualified Candidates and Great SAS Programmers, continued

CONTACT INFORMATION
Your comments and questions are valued and encouraged. Contact the author at:
Name: Kathy Doan
Enterprise: Wells Fargo Bank
Address: MAC: A0190-200, One Montgomery St, 20th Floor
City, State ZIP: San Francisco, CA 94104
Work Phone: 415-947-4631
E-mail: doankath@wellsfargo.com
Web: https://www.wellsfargo.com
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS
Institute Inc. in the USA and other countries. indicates USA registration.
Other brand and product names are trademarks of their respective companies.

You might also like