Are you in the hiring marketplace looking to hire an engineer or software developer?
You know that it is an essential process, but you also probably know how frustrating the hiring process can be too. We’ve outlined a few tried and tested handy tips to help you hire the software developers and engineers that will help drive your company to success.
Hiring is tough. That's why we‘re here to help you find the best talent for your company. Here are the three primary things to look for when hiring engineers:
-- Communication skills
-- Project work
-- Industry experience
But you probably already knew that. To hire the best engineers and software developers for your team, you need some extra tips to give your hiring team the edge.
Seek Someone (Slightly) Smarter Than You
When recruiting your team, look for someone smarter than yourself. Professionals with a history of success and the skill set needed to make your business happen will bring a wealth of knowledge and insight to your start-up.
The hard part about employee selection and hiring smart people is, well, hiring smart people. Sure, it's easy to find engineers who are willing to do something for money, but it's far more challenging to find someone who will be able to contribute to your company. Not just anyone can hack programming -- there are interpersonal skills that need to be taken into account here as well. And not just any old engineering degree will do.
Experience counts for a lot -- the types of projects someone works on and the types of languages they're comfortable with are invaluable when you want to grow your team quickly.
The smartest people are usually the ones looking for someone smarter than them to work for. A great way to find top talent is to search online forums where engineers, developers, and designers usually go (i.e. Reddit's r/forhire, Designer News, Designer Hangouts, etc).
By posting job openings in these channels with a message like "I'm looking for someone really smart. Someone better than me," you can attract top talent easier than most other channels. It sounds almost too simplistic. But next time you post on job boards give it a try. The hiring manager might just get a pleasant surprise.
Use a Real-Life Problem
When the human resource manager or hiring team begins to conduct interviews, remember that open positions should be filled with candidate’s that can apply their knowledge in real-life situations.
Job interviews (whether it is a phone interview or in-person) should have interview questions that discover more about the candidate’s character. Don’t be afraid to steer away from traditional cover letter questions and ask for candidates to show rather than tell.
Here are some other examples of ways you could put this into action during the candidate screening process:
- We need to figure out data storage solutions before moving on to “phase 2” of our new CRM dashboard. Would you be able to help us with this?
- I’d like to know how you would solve the following problem. We need to be able to receive data from users clicking specific components of our website and store that data into CouchDB.
- For this next exercise, we’d like to see how well you can apply what you know in the real world. I’ve included some code in this file that looks pretty complex. However, it is just listening for changes to an array and then calls a function that makes a color selector appear when clicked. Just change the array data, call the function with it, and we can see how well you employ your skills in the real world.
Flexibility is Key
Let’s be honest. The reason you are looking for a programming candidate is that you have a job that needs to be done well. Maybe it's optimized, maybe it's not. The truth is, there are hundreds of programmers out there who know the language you use, and thousands of others who could learn it quickly.
So what do you look for? How do they think? Do they approach problems as open-minded individuals that will optimize their code as they go?
But how do you implement this approach in real life?
In short, instead of looking for someone who already knows a programming language, look for potential. Look for a great problem solver, someone who always gets the job done, and someone who will help your company succeed. You are looking for someone eager to learn and grow - not someone who already knows everything.
If you are trying to hire a programmer, you are looking for at least one of two things: someone who is already good at the language you use, or someone who may someday become good at that language. Hiring based on the current state of the language the candidate knows is more about finding someone who will fit in, rather than finding someone with the potential to grow in your company.
When you are trying to understand how the candidate thinks, focus on how they approach a problem. Is this great problem solver going to optimize their code? Is he/she going to come up with an elegant solution and fix the problem efficiently or someone who is just going to get the job done?
Use a Dual Interview Process
When hiring engineers, always have at least one more person involved, ideally two. In the first round, you may want to bring in a CTO or other senior technical team members from time to time to vet the candidate from a business perspective. Given that these people will be managing the engineer moving forward, it's critical that they feel comfortable with the new hire.
To help reduce the undue influence of biases and increase the overall quality of the team, a "dual interview" process for all full-time offers made is helpful. Sure, this practice is no silver bullet. But, as far as I'm concerned, it's at least one way to put multiple sets of eyes on the same candidate over time and reduce resource-constrained hiring mistakes.
When there is a risk of over interviewing the candidate, the second interviewer should take notes on the conversation. The interviewers will attempt to keep their questions consistent so that the candidate does not feel blindsided by each interviewer's line of questioning.
Look for Qualified Candidates with Communication Skills
Communication skills matter at every level and every department. So don't just look for an engineer who can write high-quality code. Look to hire new employees who are super passionate about learning new things and work well with the team. This can be included in the job description and should not be overlooked in the recruitment process.
Don't underestimate communication skills, even if an engineer's job doesn’t involve much verbal communication. Communication skills are the most important skills you will need at your startup. Engineers need to communicate fluently with other engineers, product/marketing managers, investors, business people, etc. They should be able to explain technical concepts in non-technical terms easily.
Establish Expectations Early
Establishing expectations at the start is an important part of your hiring process. Make sure there are no surprises later on by setting expectations before you finalize the offer. It's also important to be upfront about the basics like how important it is for you both to have the flexibility for achieving work-life balance.
Once you have selected your candidate(s), the next step is to set expectations for them before finalizing job offers and hiring. It is extremely important to communicate clearly with both your internal and external candidates about what type of work environment, culture, team structure, etc. you are trying to foster. Let the candidate know what they can expect in terms of corporate benefits (if any), perks (if any) and support.
Get a clear list of the top 15 things you want from your new hire. This will keep you from being disappointed with their performance or from being confused about why they do not have the skills that they promised to have based on their resume. Since this is a post-hiring analysis, you will have some ideas about where they need improvement. To help them out, point these areas out to them during your session and ask for their input on how they can improve this skill set.
Use Video Screening Tools
Resumes are not effective screening tools for many reasons. Sure, they are a great starting point but they only provide a small glimpse into the candidate’s capabilities and potential.
On-site interviews require more time and resources than remote assessments do. A candidate's resume should not be the only deciding factor in hiring them or not.
The truth is, there are many great developers out there! But if you focus solely on a resume, they will pass you by. A candidate's resume should not be the sole deciding factor on hiring them or not.
While resumes are still used in the screening process, many employers are finding that on-site interviews after the screening process aren’t as effective as phone or video interviews. Or, they find that they need a more detailed and effective screening process. And, traditional resume screening and on-site interviews can take a lot of time. So companies are increasingly using other methods to screen candidates, especially for entry-level positions.
Resumes are not the best screening methods in many cases. They are time-consuming and ineffective for remote hiring. Hiring criteria like personality, skills, and culture fit get poor representation through resumes.
On-site interviews cost more time and resources than remote assessments do. Phone and video interviews are effective and take less time than scheduling, coordinating, and conducting on-site interviews. These methods are far more efficient because they are more efficient and cost the company less.
Sometimes because of the number of applicants, most companies use phone and online interviews as a first step in the screening process. It allows them to reduce costs and screen for skills and experience more effectively.
Are they Passionate or just Pursuing a Paycheck?
Question them about their favourite project/course. This is the best indicator of intrinsic motivation or someone who codes because they love it, rather than for the paycheck.
- What is your favourite project/course?
- Can you describe the project/course that you’re most proud of? (Always ask this as an open-ended question.)
- Who introduced you to programming? Are you interested in doing anything else with computers? Who was your favourite instructor?
- What’s your favourite project you worked on and why?
Seek a Developer that can Write Readable Code
A developer's ability to write good, readable code is critical these days. As the complexity of modern software grows, developers must be able to communicate clearly using well-written code. This is not only true for the development that is done within the company, but it is even more important when you start to collaborate with colleagues across geographies. Developers who can create functional, readable code are typically more successful in the long run.
Although writing specifications and functionalities is one of the main responsibilities of a software engineer, producing well-written, clean code is an equally important skill to master. It’s not just about the correct syntax. Practising good coding habits will help you write flexible and adaptable scripts.
When you have a team of developers working on a software project, all of the code written for the project has an impact on the final product. A poorly-written algorithm will drastically lower a product’s performance, but a well-written algorithm will increase a product’s performance.
Experience isn’t Everything
Just because one doesn't have much experience doesn't mean they need to know every single thing about their job. Most successful engineers I've worked with in my career were well-versed in what they were working on and could easily learn the things they didn't know.
Don't be afraid to hire engineers with less experience if they are very passionate about what they do. Passion will trump experience every time, and passion means productivity. I have met numerous people who are very passionate about programming languages, development environments, frameworks, etc. Pick an employee that is excited to use the technology at hand.
The Bottom Line
We all know that every job is unique and requires a unique job posting.
As developers' skills get more and more valuable, it is becoming more and more difficult to find the right guy.
Need to find the right engineer for your project? Use our video screening tool to see your candidates in action, and to identify the key players that will add value to your company.