I’ve been looking for experienced Frontend Engineers and Full Stack Engineers for several months to join my team at NIST. I took this opportunity to explore how best to evaluate the professional qualifications of candidates. For some time I used different methods and compared the results. In the following, I will briefly present my results from this experiment and my future approach, which I have derived from it.

Presentation of a project of the applicant

Applicants are invited to present one of their previous projects. The presentation should not take more than 10 minutes. Subsequently, individual questions about software design, architecture and other aspects of the respective problem will be asked.

Coding Challenge

Candidates are given a programming task, which they have to solve within a certain time. Due to the limited time, the task will often not come from the everyday life of the company, but will solve a more or less arbitrarily chosen problem. The notorious FizzBuzz test is a common example of such a task.

Screening of Github repositories

Often developers have a Github account and include it in their CV. This is an invitation for the interviewer to have a look at the repositories of the account. If the repositories of the Github account are meaningful enough, the interviewer can refrain from further tests of the applicant’s abilities.

Programming homework

With this type of test, the applicant is given a task in advance that requires several hours to solve. The candidate completes this task on his or her own computer with free time management. The results are then submitted by e-mail or simply deposited with Github. At NIST, we have prepared corresponding tasks for Frontend Engineers and Full Stack Engineers.

Analysis homework

The analysis homework has some similarity with the programming homework. The challenge here, however, is not writing code but analyzing a larger code base. The candidate gets access to a source code repository containing the code. This can be examined – also under free time management on his own computer. In a personal interview he is then asked for his opinion on the code.

Pairing on some real world problem

The candidate is invited to the company for a period of at least a few hours and a maximum of a few days. During this time, the candidate works together with the developers of the team on a real task from the everyday life of the team.

HackerRank

HackerRank is listed here as one of several similar online platforms designed to facilitate the assessment of applicants for developer positions. HackerRank offers two different approaches. Interested companies can use the platform to automate coding tests. Applicants can also work on challenges independently of concrete tests and thus prove their skills.

Conclusion

My conclusion after some months of testing and evaluating is unfortunately that there is no such thing as the optimal solution that can be applied to all applicants. However, I do not think that this is necessary either. At the beginning of this project in particular, I overestimated the value of a uniform test that would provide comparable results. It turned out to be much more important for me to find a test that suits the candidate and allows him to optimally present his strengths.

This brings us to the approach that I have been using since then to evaluate the technical skills of applicants. If an applicant mentions his Github account (or SourceForge, BitBucket, …) in the application, I will evaluate it after reviewing his CV. If the account is meaningful enough, I assess the candidate on the basis of this profile. If the account is not meaningful enough, I leave the choice between two options to the applicants: