I’ve read a lot recently about how hard it is to recruit programmers in today’s market. Personally, I think it’s all hogwash.
There are plenty of great programmers out there, but companies aren’t actually looking for them. What they really want is a plug-n-play solution, a programmer who knows what they need him/her to know, who can churn out code and build software solutions.
The problem is that engineering is an art and a discipline, and you can’t just expect to hire someone and have them show up batteries included. A company that refuses to train its coders is a company that won’t find enough people to meet its needs.
What Not To Do
Recently, I saw an ad for a job that required, among other things:
- 5+ years experience
- A college degree (no “or equivalent training and experience”)
- Being comfortable with the Microsoft stack, Java, Angular, and Node
- Knowledge of data privacy practices and laws
- Understanding of SSO and SAML
- Project management experience
- Experience in the healthcare technology industry
In other words, the ad was for a college-educated senior front-end/back-end developer, security expert, and project manager with healthcare tech experience, all rolled into one.
The “Accountabilities and Activities” section was equally incoherent, essentially requiring involvement with every part of the stack, from end-users to business plans to documentation to configuration to application architecture. (Interestingly, out of 11 bullet points, only one indirectly mentioned coding at all: “Develop new or modify existing applications and systems as required.”)
I could tolerate advertising for a generalist, even though that’s already a unicorn. But what really bothers me is the list of requirements. That list severely narrows the already-tiny population that would be relevant to the job, for no good reason. In fact, it narrows it for a very bad reason: The company is simply unwilling to train new hires. Any programmer it picks up must be plug-n-play, no instructions necessary.
I have no idea whether that job ad picked up anyone, but I’m 99% certain that if it did, it was someone who had no more than 3-4 of the points I mentioned. Because the unicorn they’re seeking just doesn’t exist, but overconfident people certainly do.
What To Do?
If you’re interested in opening up your application pool to people who are worth hiring, people who will be great to work with, and maybe don’t have 100% of the skills you need, try toning down your job ads. Limit requirements to the absolute minimum you can imagine.
But there’s more than that. Think of it as a sales pitch. You don’t sell a product by saying, “Look at how much money you’ll get to pay for it! And did we mention that tax is not even included in the price?” You sell a product on its features. “Look at what this product can do! It will revolutionize your lifestyle!”
Most job ads sell the job as “Here’s what we, the company, want you to do, and this is what we think you need to do it.” Maybe think about it from the job seeker’s perspective for a change. Why should I, as a programmer in high demand, focus the majority of my waking hours on building your product? What’s my motivation? What can you do to help me build my career? Will your company give me the time to actually enjoy the salary you’re paying me?
I wrote a sample job ad for a made-up company, to demonstrate the sort of perks that might appeal to software developers. Some might even appeal to business-oriented folks as well. (I’ve erred on the side of having this run too long, since I hope companies will be able to use this as a brainstorming example. Your actual job ad should be way shorter than this.)
Do you care about teamwork, learning, and professional development? Want to work with a smart, diverse group, solving complex problems? Do you feel satisfaction from writing clean code with excellent test coverage? Do you enjoy even more when a teammate shows you how to improve your code?
If you answered “yes” to those questions, SawftWearLy would love to chat with you. We’ve built a professional environment where we constantly iterate on our practices, both human and technical.
At SawftWearLy, we seek to create value above all, so we’re less nitpicky about the where and when of how you work. We do believe, though, that pair programming and code review are building blocks of better code and professional development, so we’ll ask you to make sure your hours are conducive to teamwork.
We understand that it’s easier to build great developers than to recruit them, so we won’t demand X years of experience in Y. We’re looking for devs who are bright and eager to learn, and we’ll provide the support that we can to help you be awesome. We maintain a library of hard-copy and Kindle books, and we’ll get you a CodeSchool or PluralSight subscription if you’d like. Our engineers attend and speak at conferences and local meetups. We also arrange frequent internal presentations where developers can speak about anything related to coding. We contribute to open source, even during work hours.
SawftWearLy tries to create an enjoyable, dynamic work atmosphere, but we know your work isn’t your whole life. We want to minimize the tension between work and your other priorities. To make sure you feel comfortable taking time off and relaxing, we have a minimum/maximum PTO policy, so everyone needs to take a vacation, and you know how much is too much.
Rather than beer kegs or ping-pong tables, we’ve decided to invest in your future with a partial matching 401(k) plan. We have top-notch health and life insurance options, so you’ll have peace of mind knowing that you and your loved ones are covered.
Compensation is standardized per job category, so you will know you’re getting fairly compensated. However, we do award bonuses based on performance, so we can recognize employees who display initiative and creativity in their work.
SawftWearLy is a workplace where managers speak to their team members to make sure they have the support they need. It’s a collaborative space where we make time to talk about what we can do better, or just bounce ideas off each other. We celebrate questions, and value answers that convey not just information, but understanding.
If SawftWearLy sounds like a good fit for you, drop us a line at firstname.lastname@example.org. Tell us about something you’ve built, what you’re learning now, and something you like doing outside of programming.
Note that there weren’t really any requirements here. That’s because you don’t actually need a coder who’s familiar with your technical stack, or your business domain. They’ll figure it out in a couple months. (Would you rather spend 2-3 months training a new hire, or wasting your efforts on continued attempts to find someone who knows it all already?) But you need people who are smart and motivated, and who know how to program well. And you need to keep them happy, because there are plenty of other companies out there.
Some of you might be thinking, “That sounds great, but we don’t actually do that at our company!” Well, guess what? That’s exactly the point.
If you want awesome developers to work for you, you need to be an awesome place for developers to work at. It’s impossible, without lying outright, to have an awesome job ad without being an awesome workplace.
So the actual secret to hiring great developers is to treat the ones you have really well, and let your job ads reflect that. Really, we don’t demand much – give us learning opportunities and good people to work with, and chill out if we want to work from 11AM to 7PM, or 7AM to 3PM, or work from home 3 days a week.
On my team, I’ve been a major evangelist for pair programming, I’ve been very involved with training newer folks, and I do it across an ocean at +7 hours. Especially in this field, it’s so important to be open to creative solutions for getting good people to work together, because good people are hard to come by.