In this episode, we discuss how to filter through the noise of bad applicants and hire great software developers.
- Doug: Working on PodWP launch, attending Podcast Movement in Dallas in August
- David: Traveling to a conference in Scotland and WordCamp Hamburg, hired a full time developer
- Focus on the business instead of doing everything yourself and being a technician.
- Make broader product and business decisions, without worrying about the exact code implementation.
- Just because you can do the work doesn’t mean you have to.
- A lot of software developers have difficulties making great products when they are both managing and developing it themselves.
The 4 Step Hiring Process
- Post job offer
- Filter for the good applicants by using an Easter Egg in the application, e.g. “What’s your favorite WP plugin?”
- Appeal to the developer. A long term position, consistent work, and meaningful work can be motivating to them.
- Screen applicants
- Check their marketplace reviews and if they followed the application instructions. Filter out the cheaply priced applicants.
- Use a Trello board to organize your applicants (see below).
- Trial project
- Give them a simple test project (instructions here).
- Look to make sure the code actually works. Are there warnings and errors? Did they read the instructions, how long did they take to complete it? What is the code quality – did they use comments, did they structure the code well?
- Giving them the same, standardized project makes it easier to compare the applicants.
- Does the contractor deliver? Do you enjoy working with them?
- David has his full time developer write daily reports:
- What did you do today?
- Did you have any problems?
- Do you need feedback on anything?
- Working in person or “live” can be helpful.
- Hiring isn’t always the best option. In some cases a consultant is better. It depends on your goals and budget. A consultant will take less of your time, but more of your money. Hiring will cost you less money, but more time.
- Further reading: http://davidhehenberger.com/hiring-developers/
Tips & Tricks
- My Custom CSS plugin
- Menu that lets you add custom CSS to your site
- Doesn’t get replaced when upgrading your theme
- No FTP needed
- FTP client for Mac, about $30
- Synchronization button – syncs your local development folder with the folder on the website
- Performs FTP actions faster than other FTP clients
David: Welcome to the Professional WordPress Podcast. I’m David.
Doug: I’m Doug. This is episode 2, How to Hire Great Software Developers.
David: Let’s start with the Changelog. Doug, what have you been working on? What’s been happening over the last week?
Doug: I’ve been working some more on the PodWP launch. I’ve been getting some good feedback from people.
David: Did you talk to a couple of podcasters?
Doug: Yeah, I have. I’m going to be attending this podcasting conference in August.
David: What’s the conference called?
Doug: It’s Podcast Movement. It’s over in Dallas in August. It’s going to be hot. They’ve got a big lineup of speakers.
David: I’ve been pretty busy over the last week or two traveling, after living in Ho Chi Minh City in Vietnam for the best part of 2 years. I packed my bags and left Saigon behind. I’m back in Austria right now. I’m getting ready for another trip starting tomorrow. I’m going to be heading to Glasgow in Scotland for a conference, and I’m going to spend a couple of days exploring Scotland and going to Edinburgh. After that I’m going to go Hamburg, Germany to attend the WordCamp.
I’ve also been hiring recently. My new full time developer is starting to work for me full time tomorrow. That’s part of the reason we are recording this episode today, which is about how to hire great software developers. I think it’s pretty good. I think it’s a pretty good time to talk about this.
Let’s move on to the core of this week’s episode. The first question you kind of have to ask yourself is, why hire? Do you even want to hire? Do you need to hire? What’s the point? Maybe you can do it yourself. What are some of the reasons why you would want to hire somebody, Doug, instead of just doing it yourself?
Doug: One of the main reasons would be to focus on the business instead of doing everything yourself and being the technician as well. I think you found that to be really helpful with your business.
David: Yeah. I found it helpful with my WordPress plugin business Fatcat Apps. I found it very useful to be able to make broad business and product decisions before actually having to worry about how exactly the implementation on the code level is going to work.
Doug: It’s important that just because you can do the work and that you might be good at it, doesn’t necessarily mean you have to.
David: Yeah, absolutely. I was having this discussion with Simon Payne. He was one of the cofounders of LeadPages. One of the things he said to me is in his experience a lot of software developers have difficulties making great products when they both manage the product and develop the product themselves.
Sometimes what ends up happening is that you end up taking shortcuts, like certain user interface things or certain features that, from a product point of view, would be really rigid to do. You might just not end up doing them because you’re lazy. If you’ve got somebody that is working for you and that you’re paying, you don’t really have to think about those things. We’ve got a 4 step hiring process. It’s very, very simple.
Doug: All right. The first step would be to post the job offer. You would start off with a marketplace or job site. You’ll see a lot of different people in there. How do you filter out the good ones?
David: I like to put the Easter eggs in my application. What you get on a lot of those job sites, like oDesk or all kinds of sites, you get a lot of application spam. You get people that see some kind of job posting that might be vaguely relevant to what they’re doing, and they just hit the apply button. They don’t really even read through the application. They just mass apply to 100 or 200 jobs hoping that they’re going to get something.
One of the things I like to do is to put an Easter egg, which could be something like mention the code word Inigo Montoya in your application. One of the things that I did that is even kind of related to hiring WordPress developers is asking, “What’s your favorite WordPress plugin?” It gives you an understanding of has this person used WordPress before?
If you do offer a long time position, a lot of developers are really interested in that. If you can offer them consistent 10 or 20 hours a week or so, a lot of people are going to be interested. They might then also be willing to compromise on rates, because they would rather have the steady income coming in instead of having to hunt for jobs all the time.
Doug: I think it’s important to take some time to craft a decent job offer. The better quality applicants, they’re looking for someone good to work for. They’ll take you more seriously if you think things through, spell check.
David: One of the things that I’ve mentioned when I was hiring somebody is that I mentioned that I’m running this WordPress plugin business. I think the plugin at that time, it had maybe 25-30,000 downloads. The code that that person is going to be writing, it’s going to end up on thousands of websites. He can really make a difference. It’s not just that he’s customizing CSS for one single person. He can actually impact thousands of people with the stuff that he writes. I think that’s motivating to a lot of people, as well.
Doug, do you have any favorite job sites or job boards. I know you’ve both hired full time and part time employees, as well, in the past.
Doug: I haven’t actually used any job boards for that. I’ve looked to people that I’ve already known. I don’t have anyone that I’m hiring at the moment, but I am looking again, and so hopefully before the end of the year I’ll have a full time employee. I’m mainly going to be looking for the right candidate for the job.
David: I’ve had OK, or good, experiences with multiple freelancing websites. I’ve hired good people on freelancer.com. I’ve just recently hired someone on peopleperhour.com. I don’t think I’ve hired a full time, or even a part time, proper developer on oDesk, but I’ve had good luck with more VA type of employees, or very, very simple programming tasks as well on oDesk.
Those are the job sites that I would recommend. Of course, if you want to hire a full time developer, I guess in the US monster.com is quite big. My new developer is from Vietnam. I found him on vietnamworks.com. Based on where you’re hiring and in which country, there’s going to be a couple of relevant job sites.
Then next up, after posting your job offer, is to screen the applicants. What I like to do is I set up a Trello board. I put all of the applicants in there based on how much I like them and how they perform. I move them from column to column. At the end I only have one person that I hire. I can show you a screenshot of this Trello board when you go to the show notes.
Doug: What kinds of things do you do to screen the applicants? Probably start off with checking their reviews, easy first step.
David: Exactly. One of the nice things about marketplaces is that usually the people that apply already have previously done work. You can check through their work. I like to do that. If I’m hiring somebody for a PHP programming role, the fact that he had good reviews on programming tasks in the past doesn’t necessarily mean that he is actually good.
A lot people of hiring don’t really know anything about coding, so as long as the end results look OK, they are very happy. What’s really important to me, who runs a plugin business, is that the code actually is maintainable and looks good. Other than checking the reviews, I check the Easter egg. Did they answer whatever questions I asked in the application?
I usually can filter out the cheap applicants. If I’m hiring somebody for a WordPress PHP programming role and somebody asks for $7 an hour, I usually tend to not hire them because there’s probably a reason they ask for so little money.
Doug: If somebody is charging very low per hour, they’re either not that good, or they’re just starting out, or they find it difficult to get work. With any of these options your chances are much lower of getting somebody who’s better. You always have that chance of finding somebody really good for really cheap, but if you want to just play the numbers game you’re better off by cutting off the lower priced applicants.
David: You could also add some kind of interview, like either another layer of email interview or Skype interview, etcetera. I usually don’t do this. The reason is coming to the next point, which I a trial project. For me, when I’m hiring a software developer, the test project is really where the rubber meets the road.
It doesn’t matter how good the person’s English is and how friendly they are on Skype, if they don’t do a great job at the trial project, there’s no point in hiring them as a programmer. I usually tend to select 3 or 4 applicants. I give them a very, very simple WordPress plugin that they should write. I am going to include a link to the instructions in the show notes for this episode.
Basically, what the plugin does is it allows you to insert a call to action button via a WordPress shortcode anywhere on a page or on a post. Based on how good of a programmer you are, you might be able to get this plugin done in 30 minutes or so. I send the instructions to the applicants, and I let them do the test project.
Then I review the project in terms of, does the code actually work? Are there some kind of warnings or errors? Did they follow the instructions? Sometimes you have people that don’t really read the instructions properly, and they end up developing a half-ass plugin. I also look at how much time it took them to complete, and I also look at the code quality. Are there a lot of comments? Is it structured nicely, or does it look like it’s going to be a maintainability nightmare?
Doug: One interesting thing that you did with your trial project is that you had everyone do the same project. Some people may feel like this could be a waste, because you could have multiple products or plugins as a result of hiring people to do different projects. I think the way you did it was particularly effective because you could compare them effectively to each other.
David: Yeah. I was tempted to actually give each of them a separate test project because I thought, “If I’ve got 4 developers developing plugins for me, I might as well have them do 4 different plugins and then I can release all of them in the WordPress repository. I’m going to have a bunch of extra plugins and it’s going to be really good.”
Thankfully, I didn’t end up doing that. I ended up giving each of them the same instructions. I think that’s really critical, because based on what kind of task you give them, the results can really vary from developer to developer. You really need a standardized test project, otherwise I think it’s going to be pretty much useless.
Doug: The last step would be to actually hire the person. After you’ve hired then you want to check to see if the contractor’s actually delivering.
David: That might take a while for you to figure out. It might take a couple of months. You’ll just see, what kind of code does he write? Is he responsive? Does he get stuff done on time? Does he do a good job? All those kind of things. I think it’s just a matter of actually working with the person and seeing if you enjoy working with them and if they enjoy working with you.
Sometimes it doesn’t work out. Sometimes you spend some time, and you hire somebody. You write up specifications and send them instructions. They seem very motivated, but then all of a sudden they disappear and you just never hear back from them ever again. That has happened to me, too.
I think it is a little bit of a crapshoot, in my experiences at least. I haven’t really cracked the hiring process yet. Sometimes it just tends to happen that some contractors are a bit unresponsive.
Doug: How often do you try to check in with them?
David: That really depends on how many hours per week they work for me. If they work for me part time … say I’ve just got somebody who’s doing 15 to 20 hours a week for me right now, usually that person ends up doing something like committing code or asking some questions, not everyday but probably 2 or 3 times a week or so.
If I don’t hear back from my developer for a couple of days, I usually check in and see what’s going on. It might just turn out that they’ve been heads down in code and really didn’t need any feedback from me, just cranking away. I’m having my new full time developer send me daily reports. Those reports answers 3 simple questions. What did you do today? Did you have any problems? Do you need feedback on anything? Based on that, I get a really good idea of what’s been happening and if there’s anything important that I can do to make sure that he stays on track.
Doug: I think one thing that could be useful, if it’s possible, is to work with the person in person, or live over Skype, or Hangouts or something. A lot of times it’s easier to show what needs to be done or have them show you. If you can do screen sharing, a lot of times that speeds up the process a lot.
David: From going through these steps, I think it’s pretty clear that hiring, especially hiring somebody on a job site or a freelance website, is not necessarily always the right solution for anybody. If you’re running a business and all you need is a website built once and maybe a small bit of maintenance, if might not make sense for you to get your hands dirty in oDesk.
It might just be better to go with a consultant who focuses on bigger, higher level problems and the objectives, kind of like we talked about in the last episode. Especially when you hire a programmer, I think it’s very valuable when you can actually write code, or at least be good enough to read code, because otherwise you just have no clue what’s actually going on.
Doug: I think it depends a lot on your goals and your budget, how much time you’re willing to spend. If you hire a consultant, you’re generally spending a lot less of your own time, but it’s going to cost you a lot more. Then if you’re going though and hiring on one of these job boards, it will probably cost you a lot less, but you’ll have to invest a lot of time to find the right person and to be working with that person and giving them instructions the whole time.
David: Absolutely. To recap, we’ve talked about why you should hire, and the hiring process itself contains 4 steps. First is to post a job offer. Second is screen applicants. Third is the trial project. The fourth is to hire and double check if the contractor actually delivers.
Let’s move on to the tips and tricks section.
Doug: One of my favorite plugins that I use on basically every site, it’s called My Custom CSS. I’ll link to the plugin in the show notes. Basically, what this does is it’s a one page menu for adding custom CSS to your site. Normally with WordPress you go and you edit your style.css or you create a trial theme with its own style.css.
What that means is you have to use FTP to upload this file. What I like about this plugin is it basically adds in all the CSS that you write through the database, as opposed to having to upload a file. It’s a lot faster. You don’t have to switch from your browser to your FTP client. It doesn’t get replaced when you upgrade your theme. This is one of the reasons why it’s better to use a child theme, anyway.
David: I think that’s a great point, by the way. I think too many people put their code in the style.css file in their theme. Then they change the theme and everything breaks.
Doug: Yeah, it’s very easy to forget. This plugin, it’s pretty simple. It just reduces the chance of things going wrong.
David: Sounds great. Speaking of FTP, my recommendation is a FTP client for Mac called Transmit. I’ve been using free FTP clients, like FileZilla or Cyberduck for a really long time. I feel like it is good enough, and they really are, but I just bought Transmit about a month ago because I had to do a lot of FTP-ing files up to my new Fatcat Apps site.
It has a lot of really nice features. One of them was a synchronization button. You can actually sync your local development folder with a folder on the website. The tool compares the time stamps and changes the files accordingly. I feel like that saves a lot of time. It also seems that the way that Transmit is built seems to be able to perform FTP actions much faster than normal FTP clients. I feel like I have to wait a lot less. It’s $30. It’s a really sleek program. If you’re using Mac and looking for an FTP client, I would highly check out Transmit.
Doug: Sounds pretty cool. I’m definitely going to have to check it out myself. OK, that’s it for this episode. You can leave a comment or find the show notes at wpcast.fm/hiring. If you like this episode you can leave us a review on iTunes. Thanks for listening.
David: Thanks. Bye, bye.
- Building a Distributed Software Development Team with Brad Touesnard – WPCAST036
- How To Be a Better WordPress Consultant – WPCAST001
- Our Top Nine Tools for Managing Software Projects – WPCAST013
- An Expert’s Guide to WordPress Migration – WPCAST020
- How To Handle Refunds & Quick Update on WPcast – WPCAST038