I've heard from a great many companies here in the Netherlands (and elsewhere) that hiring and retaining engineers is super difficult. Here are some things to consider to make things easier for your company:
Is your company involved in the right communities?
If you're looking for, let's say, Ruby developers, you're going to need to be involved in Ruby communities. Here are some ways to get in:
- Send your engineers to local meetups. Like Appsterdam here in Amsterdam, Cocoaheads near you, and so on.
- Send your engineers to conferences. Send your engineers to at least one conference a year, even if it's just a nearby one. Not only does this get you exposure for your company, a policy like this can be the difference between someone choosing to apply for your company or not.
- Encourage your engineers to speak. If you can send them to a conference and they get on stage to talk about something interesting, that's two birds with one stone.
- Contribute to open source. Your team is very likely making use of open source projects to get work done every day. Find a bug? Contribute a fix. Even minor changes can get people's attention. This also shows that your company is the type that contributes, which is important for many of those potential applicants.
Do your job listings mention the important parts?
Today's engineer, especially the experienced ones, care less about ping pong tables and kegerators and more about the things that actually affect their daily life much more.
- Do you allow remote work? You definitely should, if you do, make sure you mention that.
- What kind of vacation policy do you have? Whatever it is, make it clear.
- Do you offer parental leave? How much? The more experienced an engineer is, the older they might be and the more likely they are to have children. If you don't treat this like they have a disease, it will help to get those experienced engineers in the door.
- Also be sure to mention those community-involvement things you do that we discussed above. It's amazing how many job listings I see that don't specifically call these out.
With all of these things, don't be vague. Call out specicially what you offer as much as possible. "We take care of our engineers" could mean anything from "we give our engineers a beer on friday" to "we offer 3 months of parental leave". When your job listing is vague, it can make it sound like you're hiding something.
Do your requirements fit the position?
If you're looking for an iOS engineer, but also require 4 years of Java experience, this doesn't make any sense and will often make engineers pass up on your company. If there is some legitimate reason why this is actually needed, explain that in the listing. "We need engineers with Java experience for this iOS team because we're using this tool which compiles our Java code for iOS." makes things way more clear. (Side note, if your iOS app is made from cross-compiling Java, that by itself might be a reason you're having trouble hiring engineers).
We can help.
There's quite a bit that can change, and you most likely can't do it all at once and that's ok. If you'd like, we at Roundwall Software can help identify what needs changing and help fix it. Starting in 2018, we are now offering this as a service. More than simply some management consultant, we offer an actual developer. Someone who knows firsthand what it means to be a part of the developer community. Contact us and we can begin.