10 Simple Rules for Hiring Great Software Developers
Why Hire Software Developer at All?
Before actually hiring a developer, it would be useful to decide on whom exactly you need, and what for. Software developers differ in functions they perform, the skills they possess, places they work at, and so on. Respectively, to find your perfect candidate let us clarify some important aspects first.
Who Are Software Developers
Unlike any people tend to think, the term “software” development does not refer only to creating desktop program solutions. Software developers are the people who create any kind of software: games, server scripts, mobile applications, ERP systems, and so on.
Generally, they fall into two big categories: web developers and software developers. In order to hire the specialist you need, you should clearly understand the nature of the task you want to be accomplished.
These engineers mostly specialize in creating program solutions for the web. They are responsible for how web pages look, function, interact with users. For example, if you need some kind of a specific browser plug-in, you would want to hire a web developer. Any kinds of websites, landing pages, Internet shops, plugins, extensions, online services–all this and much more is what web developers work on.
In their turn, web developers fall into front-end and back-end developers. Front-end is also called “client-side development,” and is focused around UI/UX, aesthetics, and layouts. Back-end, in its turn, is referred to as “server-side development,” and is related to the core logic, functional design, and implementation of principles and technologies on which front-end is grounded.
There are also the so-called full stack developers, who are skilled in both front-end and back-end development. These people are invaluable professionals, as they are extremely versatile and universal, and can actually create a fully functioning web application from scratch, on their own.
Desktop developers mostly design programs and applications for in-house usage and desktop operating systems such as Windows, MacOS, and Linux. Systems for electronic document management, browsers, antivirus software, text and graphic editors, security systems for banks and other big enterprises–this is what desktop developers design, in particular. Being a desktop developer requires a candidate knowing such languages as C, C++, C#, QT, Objective-C, and others.
Hiring Software Developer: Where to Find One?
Forms of Work
When a company is big and rich enough to afford developing software for its own needs, it is called in-house development. It works better for companies with stable and consistent workloads. If you are sure you can provide an in-house developer with the constant flow of work, definitely hire one.
The concept of remote development implies that a developer is not physically present in the company office. If there is no developer meeting your expectations on your local market, try looking for a remote specialist.
The market is full of independent specialists offering their skills for a fixed or hourly rate. They are flexible enough to work on both occasional development tasks with no established workflow, and on complex long-term projects.
Places to Look At
Finding a software developer is a simple task nowadays, you just need to know where to look.
The most obvious place to start looking is a job board. Typically, it is a website, on which hirers open position descriptions and search for candidates able to do the job. There are several types of such services.
For example, there are location-based job boards, which primarily focus on metropolitan areas. It means that if you live in, say, New York, and use such a job board, it will mainly show you candidates available in your city.
Industry-based job boards have a narrower focus. They allow people to search for positions within their particular spheres of professional competence. They also allow employers to look for specific sets of skills, and among people who actually know what it is all about.
Services based on keywords work like your typical job board: candidates type in the positions you are looking for and apply to vacancies displayed in search results.
It can be that your friend happens to know a coder looking for a job. Or that an employee of yours mentions a worthwhile candidate in search of a workplace. It is often a good idea to hire a candidate referenced by someone you know personally. You might also want to create a referral program, encouraging your current employees to bring the people they know to the company.
A nice idea for finding skilled developers could be to monitor services such as Quora. Just browse through tech and coding-related questions, and check out the answers people there give. Usually, a professional can be spotted by how detailed their posts are, how many specific nuances they mention when answering someone’s question, and so on. Of course, a potential candidate found this way can be already working for another company, and you will still need to check their skills.
If you feel like your company can be of interest to the top developers on the market, consider the following strategy. Many companies like making short promotional videos about their business and staff. The goal of such videos may differ: alluring new employees and/or clients, presenting innovations, and so on. The thing is that such videos often feature real specialists–and not just any, but the best of them. Whom you can try hiring, in your turn.
Networking (conferences, events, workshops)
One of the most common and still efficient ways is networking. Simply speaking, you must attend tech presentations, conferences, workshops, and other similar professional events. They are often attended by people whose purposes are to make new contacts in the industry. Chances you will find your potential candidate during one of such events are high.
Freelance platforms for vetted developers
If you are running a startup, you might have little to none time for a thorough search of a candidate. Of course, there are services such as Freelancer, Upwork, or Fiverr, but the risks are too many to fool around. Freelancers found in such places are not guaranteed to be reliable, and looking for a dependable one can cost you a lot of resources.
Long story short, a more reasonable option would be to hire from freelance platforms for vetted developers such as CodingNinjas. Only four out of 100 developers applying to work with the platform qualify to be allowed to work with clients. Candidates are tested for their professional, communication, and English skills, which allows customers to actually work with a hired developer, not test them for proficiency. If you want to save time and keep your project safe, CodingNinjas and other similar platforms might be exactly what you need.
How to Hire a Software Engineer: Hiring Workflow
Step 1: Develop a set of criteria
Obviously, it should include professional skills and their level of competence. However, there is much more to a job candidate than just what they can do. Whether a person is easy-going, responsible, communicative, and generally adequate, can affect teamwork and the future of your project. Decide on what values your perfect candidate should possess, and look for them.
Step 2: Write an informative position description
Many companies post job descriptions focusing on how cool they are, not on what they want from a candidate. “A hip team looking for a rockstar developer” is not a kind of job description a mature developer will buy. Make it super-short. List the duties, skills you require, and the expertise you are looking for. Everything else is optional.
Step 3: Plan your budget
Decide on how much you can afford paying to a developer you are looking to hire, and clearly state it in the job description. Do not offer or accept negotiable formulas. Also, allocate additional money for test tasks your candidates will perform: in many cases, a paid test task is a sign of your serious approach to doing business.
Step 4: Gather information about the candidate
Consider gathering additional information about people from the Internet, applying to your vacancy. Check their portfolios, testimonials left by previous customers, social media profiles, and so on. Sometimes, a Facebook page may be more eloquent than a well-designed CV.
Step 5: Plan the interview
You cannot simply invite a candidate and hope that somehow you both will get on the same line of communication. Prepare a list of questions you want to ask them. It may look like this:
- What career accomplishments are you proud of?
- What makes you want to work with us?
- Why have you left your previous job?
- How do you handle personal and professional conflicts at work?
Also, consider asking uncommon or even bizarre questions. For example, Google recruiters are known to ask questions like, “Why are manhole covers round?” and in Apple, candidates may have to explain how they would benefit from carrying scissors if they worked in pizza delivery. These questions can tell you a lot about a candidate–as long as you know, why you are asking them.
Also, a good idea might be to ask some preliminary questions using messengers or email. The way candidates formulate thoughts, the tone of their messages or how quickly they reply, the number of mistakes they make can tell you a lot about their personality even before the actual interview.
Step 6: Interview the candidate
An interview can tell a lot. There is a golden rule of interviewing, which says, “Spend 20% of your time asking questions, and leave the rest for listening.” If allowed to speak freely, a candidate can tell you more about themselves than you probably expect. You might want to pay attention to the following aspects:
- How many times the candidate has changed jobs recently
- What they talk and look like
- How they talk about their previous jobs, colleagues, and bosses
- How specific they are about their previous duties, skills, etc.
- What are their hobbies or accomplishments, not related to the job you are offering?
Step 7: Test task
Although some recruiters prefer to design a different test task for each applying candidate, you might want to actually hand out the same task to everyone. Just keep in mind that it should correspond with the duties typical for the position a candidate is claiming. This way, it will be easier for you to evaluate the performance of the applicants. Also, a reasonable practice is to pay for the test task. Usually, only people who really want to work with you reach this stage. They are few, so you do not need to worry about the expenses. You can think of it as of a trial period, during which you can figure out whether a candidate is capable of doing the job, and whether it will be comfortable for you to work with them.
Step 8: Analysis and evaluation
Compare the candidates you chose during the recruiting process. If you’re having a hard time making the final decision, create a chart with the most suitable candidates, marking whom of them matches which of the criteria that you set in the beginning.
You might want to keep records of the interview results in form of a simple comparison spreadsheet. It could look like this:
Step 9: Make a decision
Do not rush into making a decision as quickly as possible, give yourself time. Review your notes on the candidates and their resumes. Recall the details of interviews with the most prospective ones. Contemplate on how and whether they will fit into your team. Wait for the first impressions to wear off before making the final choice.
Step 10: Inform the candidate
Regardless of whether you decided to take a candidate or not, inform them. Do not let any of those whom you interviewed long for your answer, even if it says, “No.” If you reject a candidate after they have reached the final hiring stage (a second interview, etc.) it is better to inform them about your decision in person, or via a video call.
As Churchill said,
“When you have to kill a man, it costs nothing to be polite.”
Tips to Remember
Your company is a brand, and you are the part of the brand as well. Politeness is a manifestation of professionalism and one of the criteria your brand is evaluated by. If you turn down a candidate in a rude manner, they will be shouting about it on every corner. If you are friendly and polite, they will be doing the same. The truth is: good manners work for you, and cost you nothing.
If possible, try to meet the candidate’s former boss or colleagues in an informal setting, and ask them several questions about the candidate. You can hear a lot of unexpected yet sincere revelations this way.
Aim for long-term connections
Even if you reject a candidate, it does not mean you have lost them forever. A network of potential future employees is a useful asset. Provide feedback when turning them down. Invite them to career-related events you are organizing. Demonstrate your friendly attitude. Even if they are disappointed with the rejection, they are likely to retain a positive impression about your company/project and may recommend you to other candidates.
Rule out unsuitable candidates at once
There are several categories of candidates you should reject after the very first interview. Pay additional attention to those who:
- Never ask questions. This might look innocent, but it may actually mean the lack of motivation or interest in working in your company precisely.
- Have been applying for just any jobs recently. In practice, it means they do not care about their future workplace.
- Are mean about their former colleagues, bosses, or company in general.
- Agree to anything.
- Have little to none idea about their price as a specialist.
- Are not prepared for the interview.
Do’s and Don’ts
- Let candidates work on real tasks for the test
- Pay attention to both professional, and social skills of a candidate
- If you are inexperienced in software development, consult someone about your position proposal and requirements.
- Consider having someone else but you interview a potential candidate for the second time. This is needed to minimize the influence of subjective impression.
- Provide overly-specific vacancy descriptions
- Exalt the company/project
- Wait too long before finally rejecting a candidate. As soon as you know you do not intend to work with a developer, inform them about it.
- Hire the so-called “programming rockstars.”
As you see, hiring a software developer is somewhat trickier as it might have seemed.
For starters, software developers fall into numerous categories, the major ones being web and desktop developers. Although their functions may intertwine sometimes, they usually possess different sets of skills, work with different coding languages, and perform different tasks. Therefore, before hiring, you should decide for yourself clearly, the specialist of which profile exactly do you need.
The process of hiring itself somewhat resembles a psychological game, in which the main players are you and your candidates. The latter claim a beneficial position in your company, whereas you need to decide who of them is the most worthwhile. As in any game, there are tricks and nuances, of which you should be aware of prior to hiring.
If you do not feel like going through this, there is a better option. If you are looking for a software developer who is guaranteed to possess honed skills and is able to work on any task, CodingNinjas could be just the service you need.
At CodingNinjas we carefully test all the freelancers willing to cooperate with us. After passing a strict selection procedure, only 4 out of 100 developers remain to work with clients.
Hire at CodingNinjas: entrust your project in safe hands.
and be the first to know it all
You might also like
How to choose the top freelance websites to work with? Choosing a freelance network can be just as tricky as hiring the right person for...
Now is the time when you have to start hiring remotely if you haven’t done so yet. Numerous researches show that by 2020 more than half o...
What Is So Special About Managing Freelancers? Why do people prefer freelancing over regular office jobs? The answer is probably obvious: they val...