How to reach top developers for your company

12/2/17

It happened again at a conference: While I looked at all the booths of the large amount of participating companies, many of them showed interest in hiring developers. How did they do it? By showing what kind of free-time activity they do as a company. At one booth, there was even a wall with lots of photos and post-its containing hashtags like "fun", "team", "soccer", "games", "coding" and many more. All those hashtags were generic and the photos looked more like an Instagram account of a person and friends doing free-time activities like table soccer. It didn't feel like a company at all. Is this the efficient way to reach out for new developers to hire them? It must be, because nearly every company I know is doing it.

The big pool of developers


More than 15 years ago, I became a developer for a consulting company/agency, that also had a few successful employment website. The daily business of a company will always become a part for the code writing employees, so over the years I learned a lot about that topic, was part or the first instance of job interviews and even did appraisal interviews.

The internet offered so many opportunities that developers of web applications became more and more important for companies and the search for "high potentials" in a big pool of developers seems to be a hard task. That's no secret. It seems that the demand is even higher now compared to the past years, but amount of developers is not the same as quality and it takes a lot of effort to make the pool of developers recognize your company as a possible new place to work. And how do we rise awareness? With extras like free beverages, company events, games... all the fun stuff. You want to convince that you're the company a developer want to work for.

How many professions do have such conveniences like developers do? It's not even an edge case anymore and nearly any company searching for developers is offering those goodies. How can anybody stick out of that crowd of conveniences?

Let's turn the tables


If this is the most important part you can show about your company, then let me write down an application fitting to your company:

"Dear company,

thank you for your interest in me to be a possible new employee. I'm sure my skills at the Wii will be a great addition to your team. My experiences in hiking will round up your events and my cooking knowledge extends your repertoire on your Cooking Fridays. Even though my table soccer ability needs improvement, I can hold my ground even on tough matches. I also do write code in the language your company needs."


Would you choose someone who writes like that? If you want to explain me that this is a totally different thing compared to the previous mentioned benefits, I have to disagree. It's about presenting yourself and what your daily business will look like. You want to know what an applicant has to offer to the company's projects and what kind of other business values she/he has.

The same goes for applicants: They want more details than your website may offer, what kind of knowledge you can give, if one of the mentioned technologies/skills are listed, because it has to be a given for working at the company or you want to expand your repertoire and need someone who will introduce new technologies/solutions. You can't be in need of new developers if you expect them to get all information on their own at the same time. They may have shown interest in your company, but their attention span might be short. The next employer is just one click away, thanks to the internet.

Now you have to turn the tables


Of course, you can't chase after every developer either and if they are honestly interested to work for your company, they will inform themselves about everything they still need to know, before they write an application. Or they just write it with the information they can get in a short amount of time. Your time is too precious for that. But why would you want to have numerous job interviews with non-fitting job applicants? How high are the costs for that quantity of interviews, resulting in no or too few employments? What if the new developer leaves, because in the aftermath she/he realizes, that it was the wrong company for her/him?

Be aware, that your competitors have the same problems as you and that you need to stick out of the crowd, so here are a few tips to improve the awareness of developers to your company.

Job advertisement content


Next to "Who we are" and "What we do" there is the description of what a company needs and what the job, the developer has to take, looks like. Some consider both the same, but there is an important difference. One is about the minimum requirements an applicant should know to be considered for the job, the other one is about what the developer has to do as daily work.

Example: The applicant needs to have at least 3 years experience in the language PHP. The job is to maintain projects written with frameworks like CakePHP, Zend Framework and Laravel.

Wait, why not looking for someone who knows all three frameworks and has experience in all of them? Those may be quite rare. Frameworks are created to be easy to use and considered to have a high learning curve for fast improvements. They don't necessarily teach the proper usage of the language they are written in (In our example PHP). Frameworks are generic tools to make a developer's life easier and to accomplish faster results. Technical concepts for the customer's business features are still a responsibility of the developer and can't be handled by the knowledge of tools alone. Knowing how to use a saw is no guarantee that its user can craft wood to a precise size. That's where the main programming language comes in place and with 3 years of PHP experience everything can be accomplished, right?

What does "3 years experience in PHP" even mean? Does everybody make the same amount of experience in the same areas that language has to offer? Do we learn the same things in the same amount of time? This is "thinking like in schools". In a school, everyone gets taught the same information, but knowledge isn't the same as experience. A lot can happen at a job in 3 years... or even nothing. Some developers will make their fair share of mistakes and learn from them. Others will only be challenged a few times but won't grow much. They all will specialize on certain topics of a language depending on their past jobs.
It's similar to spoken languages. Being able to speak Italian doesn't mean that a person can do business talk in a B2B case. For a local area, that person may need to know about local dialects and culture. In a B2C case, they may need to explain in simple terms too. Knowing a language is not a true/false case. It depends on your company's needs.

Don't just list coding languages, frameworks or years of experience. Write about what special kind of experience is needed, in case it isn't already part of a job description: Testing, security, design or others. A jack of all trades doesn't exist.

What does a future employer's work look like?


Some companies prefer to see some code examples of an applicant's résumé to validate, if those words in the job application are true or just simple words without any meaning. Applicants are selling their abilities, knowledge and experiences like in an advertisement, showing to be the best choice. Just like companies do to win possible customers. The possibility, that a lot can be "All show and no substance" still exist and need to be proved. Just like with companies.

An applicant may also want to know how quality, clean code or solutions of possible new colleagues may look like. These criteria are relevant to get an overview about how "good" the company is in writing code. The quality of code influences how maintainable a project is, which is, in contrast to "just make it work", a way to safe money and time. This can also include a developer's free-time.

Creating Open Source projects is one way to show off the skills of your company. It's not only about creating software but also about managing that project, improving and maintaining it. Customer projects usually aren't for showing code to others outside the team who work on it, which is why public projects are needed. It shouldn't be a project that has no value to anyone and should be in use by your team(s). One possibility is to extract a generic part of a customer project into a library, that can be used independently in other projects too.

It needs effort and consumes company-time (and therefore money), but if it is widely used by other companies and developers too, your company will also get attention (from developers). Good code is one of the best form of advertisement your developers and you can get.

A double-edged sword: money


Reading something like "fair payment", "realistic wages" or "performance-based payment", I ask myself what's wrong, that you need to hide the money you want to pay for a developer? Nobody is questioning this approach because nearly every company is doing this. Think about the following scenario:

Customer: "How much will it cost?"
You: "Not that much, it be fair and fitting to your needs."
Customer: "How much?"
You: "It will be a realistic amount of money."

I can't imagine to win many customers without them having at least a glimpse of what it will cost them. This comparison isn't a fitting one, because customers are the ones who have to pay money, while in case of an applicant it's your company, that needs to pay. The point is about winning them with numbers. How much money does an applicant win or lose, when she or he starts working at your company compared to others? But mentioning real numbers are a double-edged sword you can cut yourself with. The competitors may be able to top your offer with a much more attractive one. But thinking in bigger payments won't result in earning more money. It also depends on living expenses, that may result in less money at the end of the day. If your wages are smaller than the ones of the competition, you better have some good unique arguments to show an applicant that your company is more profitable than others.

Yes, money is not a stable motivation, but it's the reason why people are going to work. And your offer doesn't affect only the applicants, but also the people who already work for your company. People who may work many years for your company, accomplished success for it and may get much less in return compared to a new employee. Even Dilbert comic strips made jokes about quitting the job and getting recruited for higher wages.

It's also about keeping them


The effects of lost capable employees from your company are slow and many will not realize the cause-effect that such a loss will bring to it. Denial will make things even worse. Too many take their employees for granted and will have a rude awakening, when lower quality results will rise costs despite having enough, maybe even certified, employees for the job.

A company is only the sum of its parts and employees are a very important part of it. Their knowledge and experience can be taught to others, but that will be only a small fraction and depends on the tasks they need to work on. What are you doing to find new capable developers? What are you doing to keep them? Overtime and fixing/solving problems created by others on a regular basis is more a reason to become a freelancer.

My advise to you, next to my suggestions in this blog, is not to become ignorant about the job market development and the needs of developers. And with "needs", I don't mean caffeine.

It's terrifying how fast a company can go from professional to questionable in a few month just because of wrong decisions. Software is part of a fast developing industry and a company needs to adapt to that fast, prevent stagnation by inflexible rules and find people, who will be a great addition to the further success of your company.


About Claudio Zizza
I'm working as a software developer for more than 15 years and used many coding languages and frameworks during that time, like PHP (of course), ASP, .NET, Javascript, Symfony, Zend Framework and more. I also contribute to the open source communities and am a part of the PHP Usergroup in Karlsruhe, Germany.
Follow me on Twitter (@SenseException)