Engineers are a special class of people that are extremely vital to a company. Why should you evaluate engineers with projects? Well, you wouldn’t spend money tailoring a new suit before trying it on, right? Same idea here - resumes can easily be manipulated and the truth can clearly be rewritten. Since their performance is dependent on their technical skills, it's best to make sure they can do work required of them.
So how do you make sure a potential engineering candidate has the skills they say they do? You need to evaluate them by testing them on the hard and soft skills that they will need on the job. Evaluating candidates allows recruiters to differentiate between candidates who have the necessary technical skills and cultural fit versus those who simply do not.
Why Projects? Pre-employment tests or as we like to call them, projects, are used to screen and evaluate job candidates. These projects can include testing of cognitive abilities, soft/hard skills and even emotional intelligence. Companies use testing to find candidates most likely to succeed in positions and to screen out those who are unqualified or not a good fit for the company.
By helping companies identify the candidates that are most likely to perform well on the job, projects can lead to additional company benefits, such as saving time and cost in the selection process, decreasing turnover, preserving good company culture and even improving morale.
How Will Projects Help You Evaluate Engineering Candidates? Have you ever thought about how much your turnover rate would improve if you could better your chances and put yourself in the best situation to hire an engineer who would be a perfect fit for their role? The best way to evaluate an engineer thoroughly is to work with them firsthand; This is exactly what projects allow you to do. Projects are 3-5 week commitments (flexible) designed by your company, set in place to evaluate candidates for the skills that are required for success. Projects can consist of whatever you want them to and be designed how you want them to. Consider projects as a way of inviting your most promising candidates in for a short period of time to work with the team and show what they have to offer. This will let you evaluate cultural fit as well as technical competency.
Why Are Projects Better? Than Other Ways of Evaluation? Now, compare a project to a CV. A CV is a snapshot in time from the candidate’s point of view (this is the reason references also have to be used, to compare and contrast this information with another party’s point of view). A project, on the other hand, allows you to see and experience first hand how candidates behave in your work environment (communication, personality, project ownership, etc.). This allows you to check for culture fit and test programming skills all while creating value for your company.
A common method used to test engineers is whiteboarding. Whiteboarding is asking a candidate to solve a well-known (and tricky) data structure or algorithm with a marker on a whiteboard.
Besides creating an antagonizing position with the recruiter who is 'testing' you, this only represents a tiny slice of how software developers work.On a normal day, you have access to unlimited sources of knowledge. You can always “Google it” if you can't remember certain details. E.g.: What's the most memory efficient implementation of a double linked list? Or will this variation of the tree sort you are implementing run in O(n log(n)) or O(n^2). Most problems we face require complex solutions, long periods of focused work and mixing multiple information sources while coordinating efforts with your team.
So, What Qualities Are People Looking for In Their Engineers? We asked ProSky’s own CTO, Fabio Panettieri, for some insight.
Some of the qualities we look for in our engineers are…
A. Programming Skills
Programming skills are the cornerstone of a successful career as a software engineer. A big part of a software engineer’s daily work will require them to use this skillset. This includes, but is not limited to, knowing the language and frameworks or libraries your position might require, setting up your development environment and knowing your way around a good integrated development environment, and being proficient with a great text editor (emacs, vim, atom).
B. Ego and Humility
This is a difficult area to balance. Too much ego and you might end up suffering from the Dunning–Kruger effect, the phenomenon where underperforming individuals overestimate their abilities. On the other end of the spectrum, too much humility and you will have problems getting your point across to other engineers. A good engineer needs a balance of both the humility to recognize and acknowledge what you don't know and the ego that gives you the confidence to master a new area and apply what you already know.
C. Project Ownership
If you have the required technical skills, it's very easy to do what you are told to. However, that isn’t enough. You should require something extra from the candidates. What happens when they don't have anything assigned? Or what if the task is overestimated? The perfect candidate will not focus solely on the code. Perfect candidates will be proactive. They will come up with new ideas, propose improvements, and will work to see the bigger vision of what their tasks are meant to accomplish.
A good candidate must be able to keep a clear line of communication with his peers and superiors. A good candidate will be able to communicate so clearly that there is no way to misunderstand what he/she is saying. Good candidates know how to ask for help, how to present a controversial point of view and keep everybody on their team and in the company updated and inspired. This is an extremely difficult skill to master, however, it is absolutely critical for any engineering role.
What are some examples of projects you use to evaluate engineers?
Some projects we have used to evaluate candidates are:
1. A simple URL shortener, developed by our first hired engineer. You can use it too! http://pros.ky
2. A single page with a tricky layout that needed to be implemented entirely using css3. This page ended up being the foundation of our new blog.
3. A simple peer to peer mobile chat app for iOS and Android. The app is going to be released on the App Store and Play Store soon!
In a nutshell, once you get past the functional aspects of a candidate, i.e., making sure the candidate is competent, able to code, understand both basic CS and software development principles, and can design and work on the kind of systems you need them to, it really comes down to personality and fit.
Evaluating your potential engineer hires with projects allows you to figure out if you can work with this person. At any company, you cannot afford to spend half your time dealing with your employees’ character issues. If you're in a startup, you're going to be spending a lot of time with your co-workers so personality fit is supremely important.
Now that you've got a few ideas on how you can use projects in your next hiring round, decide with your team the best projects for your team.
Schedule a time to chat with one of our hiring experts to get your project evaluation setup for your next engineer hire. We know you can improve retention and find the perfect fit with project evaluation. Let us know what other ways you hire engineers below!