Project managers benefit from it because the talent pool is increasing. There are more people to hire, which makes it easier to manage projects, and quickly find new developers if need be…
First major decision – locally, or remotely?
Both options have their benefits. You need to choose the one that won’t disrupt your project management flow, or disturb the development process.
There are several guidelines to help you make up your mind. For starters — what kind of product are you building?
If it’s secretive and NDA-protected product, or it’s a FinTech program built for a bank or a government-focused project with significant data security challenges, then remote work is rarely an option.
The good thing is that in all those situations you usually have enough budget to relocate a talented developer.
Ultimately you could say that there are two project characteristics that demand in-house developers:
- Clear, indisputable need for the development team to be in-house due to the sensitive nature of your project,
- Large financial backing that allows for relocating talented developers.
In any other situation, it will be beneficial to look towards remote hiring.
You have a huge network of potential candidates, whereas local hiring (if you don’t have relocation budget) would limit you only to the people who live nearby.
Which is an unacceptable limitation when you have a deadline to find the right person, and can’t afford to hire and train juniors.
Sure, remote work poses additional challenges. Time-zone differences for one, as well as the need for a special communication process, or a task management process that ensures the whole team is on the same page regardless of where they work from.
If you’re unsure, here are a few tips on how to prepare for working with remote developers:
- Write a detailed plan for crucial project updates (failures, bugs, uptime issues) — enabling remote developers to switch off non-essential communication to focus on work, but still get notified when big problems arise.
- Prepare your communication tech stack — sounds more complicated than it is, but just choose the software you’ll use to communicate and stick to it throughout the project to avoid situations where notifications go unnoticed.
- Be as professional as you want your team to be — want developers to care about answering your questions quickly? Do the same for them. Be pleasant to talk to, and your remote teammates won’t hesitate to come to you with issues.
Once you’ve made a decision, you need to define the type of professional that your project needs.
It’s important to understand what type of person you’re really looking for.
Knowing this will enable you to write a concise, specific job description, and also – later on – test the skills of your chosen candidates.
First things first: unless it’s absolutely necessary, you shouldn’t hire junior programmers and train them. In most situations, it will be a waste of your project’s limited time and budget.
Why is this important? It helps us determine how many years of experience you should be looking for:
|Frameworks to know – Angular, React, Vue, Backbone, Ember
|Frameworks to know – Node.js, Express.js, Mithril, Meteor
|Both back-end and front-end frameworks
|Design skills and creativity
|Analytical skills and problem-solving
|Combination of problem-solving and design skills
|Experience in UX / UI development
|Experience in building server-side features
|Experience in developing complete products from the ground up
|Mastery of HTML and CSS, knowledge of AJAX, JQuery, JSON
|Knowledge of client-server environment, RESTful architecture
|Combination of front-end and back-end skills
|Understanding of DOM and cross-platform compatibility
|Knowing different types of databases and experience working with them
|Understanding of browser rendering, behavior, and performance
|Experience working in Agile methodologies
In a tiny project, one full-stack JS dev should be more than enough. As the project grows, and both sides of your product become too big to maintain, then the need arises to specialize your team more.
Should you hire a full-stack JS dev if you only need support on either the back-end or front-end? If their experience is relevant, they’re a professional, their rate isn’t jaw-dropping, and they possess all the necessary soft skills, then I see no obstacles in doing so.
However, if it would cost you a lot more to go full-stack, and you still have time to look for a specialized candidate, go ahead and keep searching. No point in spending your budget on overqualified developers.
That’s because salaries in IT are quite mysterious, and it’s very easy to end up overpaying.
Now that we know who we’re looking for, it’s time to start searching. There’s a simple process here that will help you stay organized, and it goes like this:
- Start with your network – post that you need a JS developer on Facebook, Linkedin, even Instagram. Ask your friends personally if they can recommend anyone. Go to local tech conferences and ask around.
- Freelance / out staffing sites – UpWork, Freelancer, TopTal, RemoteOK, Talmatic… there are A LOT of options. Google is your best friend here, so find as many relevant and active sites as you can. Post your job, and if there’s no job posting option, ask consultants whether they have candidates that meet your requirements.
- Hire a headhunter – nothing else is working? You might want to turn to HR specialists for help. The best headhunters will utilize their existing network to connect you with relevant candidates within a short time, but it comes at a premium price.
My advice is to use as many free options as possible, unless you really, really need to hire someone fast (in which case I recommend an out staffing service like ours, Talmatic).
To do so, it will help you to be patient. Take your time looking through different candidate profiles, and thoroughly screen their skills.
“Screen their skills” is easier said than done. But there are a few things that will help you do so in a manner that will save time, and increase your success rate.
You can start by letting go of traditional resume-based hiring, and do a test instead. Short tests with even 10 highly relevant, specific questions are much more efficient at fishing out the best candidates. Hundred5 is a great tool for this purpose.
Next, from the moment you start talking to candidates, take a close look at how they communicate:
- Does it take days for them to answer a simple question?
- Do they leave you on “read”?
- Do they make mistakes in emails/messages?
- Are they confusing you with too much information and technical lingo?
If you answer “yes” to any or all of these questions, it’s already a warning sign that they might not have the soft skills for the job.
Instead, to really test their skills, just give them a task to do (and pay for it if they succeed!). Or, if you’re a non-technical manager, ask your CTO / senior engineer to task the candidate with something that isn’t super hard, but will show how they think, how they work, and whether they write high-quality, clean, readable code.
Also – GitHub. Or another portfolio-type site for developers. Great programmers have rich profiles, where they show off their own, self-built projects. It’s also where you can find out if they contribute to open-source projects.
That last part is particularly important. Contributing to open-source projects shows passion, devotion, and true love for the craft. That’s not to say that developers who don’t contribute are bad. They might work on commercial projects that take up too much time to do anything else.
Nonetheless, it’s a strongly positive sign if a developer has a rich GitHub profile.
Above all, think of the project
Just remember — in the end, what matters for the project should matter to you the most. Personal preference is not the way to go about hiring software developers. It’s too important.
That’s why you should rely on data, look for proof of skill, support your decision with feedback from trusted experts, and focus on hiring the candidate who truly meets all your requirements. Not just the one that you “feel” is the best.