This post originally appeared on the staffmagnet, LLC blog (HERE). If you ask many recruiters and executives, the question of how to recruit top programmers is like a war for talent. I am here to tell you that this is not the case at all even though sometimes it feels like it is.
4 Keys To Recruiting Top Programmers
1. Set reasonable objectives based on your circumstances, not the objectives of Google or Microsoft size companies.
2. Determine the current market salary range.
3. Assess whether or not your company is a desirable place for developers or if developers would be immediately turned off or tempted to bounce after they take a job on your team.
4. Recognize that developers people in your local community and not a commodity that you can juts pick up off the job board shelf.
5. Recognize what makes a top programmer.
Setting Reasonable Objectives
This is the most critical part of your developer recruiting game plan so plan on investing some time into researching before you formulate your plan.
I often get asked by executives who have just raised tens of millions of dollars from venture capitalists if I can help them take people out of Google and other large companies. My answer is always that it is possible to do so. Right after that I ask them why and there is usually one of two responses: silence, or something along the lines of …they hire the best people so if Google hired them they must be good.
Over lunch at the Googleplex several years ago a friend who works at Google told me that Google is a great place to work. The only trouble is that it is also a place where good developers get put out to pasture to graze. I asked him to explain what he meant. He told me that while there are a lot of really smart people working at Google, many of them work on teams where they just mail it in.
My friend was an early hire at a company that IPO’d long before he left. He told me that he felt a little guilty leaving the founder he worked for, but he felt like he made the right decision. He is one of the really smart and talented programmers working at Google. I have met plenty of people who work for Google who are the exact opposite. They were hired because they could pass a Google style interview, but they could not hold their weight in other companies. Google also hire tons of people who are sub par to work as contractors (think long term temps).
A better idea would be to invest in building a distinct company culture for your company and investing in your people. I should also point out that to pursue out of state programmers at a company like Google is no short term proposition. If someone can be had on a moment’s notice they are probably not going to be very good. Additionally, you are going to have to face the fact that they might leave you and go back to Google.
Beyond where you look to hire from, you should consider how quickly you want to hire. You could probably hire someone really fast who is not that good or you could plan a recruiting campaign over 2-3 months to identify, entice and hire people who are really good. There are plenty of other factors that can affect your timeline including how in demand the skill set you are looking for is.
A search for someone who is using Golang or Go on a full time basis might not be a quick search. It could be, but it might be a lot quicker if you tried searching instead for someone who is programming in Python that would be interested in picking up go or who has played around with Go in their spare time.
Determine The Current Market Salary Range
Often the biggest mistake the managers that I have worked with make is talking to a few developers and taking their preferences as the real time market conditions. Most of the time this is a costly mistake, but it can even be a fatal one if your business depends on developers.
The Indeed Salary Tool (www.indeed.com/salary) is a great way to look for real time market conditions. To get most accurate data you have to experiment a bit.
A search for four related job titles shows today’s salary range for programmers in Washington, DC. (Source)
Adding “Ruby on Rails” to the job titles helps refine the range a bit. Notice the blue bar under the average salary changes. This is an indication of how many jobs there are for this particular skill set. (Source)
Unfortunately, the Indeed Salary Tool can get it wrong too as evidenced by swapping out “Ruby on Rails” for “Python” or “Java” which takes the overall base from $94,000 to a level that is not accurate: the Python base range rises $132,000 (Source) and the Java base range rises to $109,000 (Source).
Subtract $15,000 to $20,000 from the low numbers and add $15,000 to $20,000 to the high numbers you you get from the Indeed Salary Tool and you should have the high and low salary watermarks in the current market. I have been tracking salary information for nearly a decade now and while I can’t say that the Indeed Salary Tool is holds up for every category of job, it is can be fairly accurate for programmers.
It is important to recognize that hiring developers is not like buying something from a retail store. Programmers have human factors to consider. If you talk to someone who is the sole bread winner in a family of four they are going to have different considerations than someone similarly situated who lives in a different zip code. You should not make hiring decisions based on factors like this, but you should understand that things are different for different people.
One really good example of how human factors enter into salary discussion is paid time off. So many companies that I Know offer a stripped down paid time off plan and never consider the value of an employee being able to take time off to recharge after a really stressful or intense period. This is especially true for programmers who are more prone to burnout than many other categories of worker. By offering your employees an extra 5 or 10 days per year of paid time off per calendar year you might actually be able to entice workers to take a $5 or 10k less in pay. This may seem like a huge loss in productivity, but to someone who is a coder it can actually lead to a boost in productivity. It can also boost your bottom line.
A programmer salaried at $105,000 per year is earning around $53/hr. 5 days of pay is around $2,120 before benefits. 10 days of pay is around $4,240. If you provide an extra 5-10 days of paid time off in exchange for $5-10k, you save $2,880-$5,760 and your employee will be more productive and have a higher quality of life. A smart employer could use that extra cash and turn it into additional employee benefits, training, conference budget, employee perks like free lunches and snacks or bonuses.
Company Desirability Considerations
There are a lot of things you can do or that you could do as an executive or manager, but you know that there is something better that you should do or that you might not think to do. Think of this as a recruiting cookie jar discussion or better yet as your own personal marshmallow challenge.
1. If you are a startup or a small company, don’t hire people looking for logos. A “logo” is a company that is so far ahead of you in the employer branding space that you will never catch up no matter what you do. If someone has it in their mind that they need to work at Google or Microsoft right away to satisfy their ambitions then let them. This is true for recruiting entry level talent and mid to senior career professionals. Instead, focus on finding people who have are looking for a job where you are and who is local to you. If they come to you then by all means, talk to them. Just don’t waste your effort.
2. You could budget some extra money for more expensive hires or for other things that are not necessary. Instead, set aside some funds to help make your workplace more attractive for potential job seekers and employees.
Some examples: Buy a couch and coffee table for a break area., upgrade the desks in your office, upgrade the chairs in your office, provide a weekly company meal where employees talk to each other, buy t-shirts for your employees that have a nice design, add a fresh coat of paint that is a warmer color to make the office brighter, buy some nicer monitors, or take the team out for a company event so they have fun together. Take a camera along to take a few photos if you take the team out or when you provide the weekly meal.
3. Host a Meetup event in your office and get your employees involved in the event. If you are a startup it could be a marketing Meetup or a developer meetup. If you have a slightly nicer office or a nice conference room this is something that can go a long way to getting the word out about your office. Do not expect to hire someone from the event, but expect to get some kudos and good karma from the community for doing it. Hint: you do not have to be the organizer of an event to host one. You can also buy pizza or a round of drinks at a Meetup that your team attends.
4. Stop listing your company’s jobs like they are a grocery list and humanize your career page. People work at your company so show them off. If you don’t have group photos of people having fun or participating in something that looks like a happy team in the act of being one then read the examples from #2 (above). Don’t stop there, your career page is a canvas not a file folder containing jobs. Get some help designing your career page and make some positive changes to it. If you want to hire someone you should imagine that they want to work with some people like you. If your career page does not show who you and your team are then how will they know? Exactly. Leave the guess work to someone else.
Think of it another way, you could waste your time chasing people who look at you as their level two backup option or target people who are more likely to prefer joining your team and create a more compelling experience for them.
If you know there are good hires out there go out and meet them or hire someone to help you do this. One of the cornerstones of community centric recruiting is word of mouth marketing. You have to get out there and let people know who you are. People talk to their friends so one way or another you are going to reach the right people. Be patient, this stuff takes time.
A few weeks ago I attended the DC Golang Meetup held a nearby co-working space. I had a really good conversation with someone who is very happy in his current job. He really liked what I shared with him about the client of mine that has a job opening. The next time he has a bad day at work or the next time he is looking, he might apply for a job with my client. In the mean time, he referred a friend and co-worker who IS looking right now to me within a week of our conversation.
Community engagement is really powerful.
Recognize What Makes A Top Programmer
I could write an entirely separate article on this subject. Heck, I could write a book or several. The basic idea here is that you should not be looking to clone your existing developer or the resume of someone who just left. Every person is different. You need to make sure that you set your sights on people who a) have the capabilities required to do the job (and not a bit more), and b) will be great contributing members of your team.
Don’t get too academic about it either. I can’t tell you how many times an over zealous white board interviewer armed with text book puzzles or questions unrelated to job has crushed a potential good hire by being over the top or by not talking to the person being interviewed like a human.
Whatever you do, treat people better than you expect to be treated based on your own experiences.