The perfect 1st stage interview for a Software Engineer...
Written By: Ross Hibbert
Back To All Blogs
I'm a Technical Recruiter with five years’ experience. I specialise in recruiting Software and Mobile Engineers that work with technologies such as Java, Golang, Python, Swift, Kotlin, C++, and Node.js. Due to the nature of my experience, I am often asked to share advice on the best ways to interview Software Engineers.
Through this blog series I am going to share my knowledge around the interview steps companies undergo when hiring a Software Engineer. I have been lucky enough to work with amazing companies whose diverse hiring methods will hopefully provide you with some inspiration or challenge your current process thinking. My aim by the end of this blog series is for you to potentially re-consider your hiring framework.
According to our friends at Google, the first-ever recorded job interview was conducted by none other than Thomas Edison in 1921, Thomas created a written test to evaluate the knowledge of the applicants. It’s been rumoured that the test contained strange questions such as “who is Hannibal?” and “Where do we import cork from?” - interesting!
Since then, the interview process has come a long way. However, I am sure if we had a time machine a Cavemen would disagree as surely you had to prove yourself in some manner as an induction to part of a tribe!
Everyone has had a 1st interview…. According to Software Advice 63% of job seekers will likely end up rejecting a job offer because they have had a bad candidate experience during their interview process.
The Phone Screen - usually consisting of a 20-60 minute phone call. This will be with the hiring manager, technical recruiter or a member of the tech team to assess if the candidate is aligned from both a technical and behavioural perspective.
The candidate’s communication and general values can be tested over the phone. It gives the interviewers a chance to explain the role and the company to the candidate in more technical depth.
A lot of these questions will be covered by the internal or external recruiter so there is a chance of doubling up. It adds another step into a potentially already long interview process. If there are any connection or signal issues this could lead to a bad first impression for both candidate and interviewer.
I feel this is a great process for the interviewer to sell the role to the candidate….yes you heard me! It’s often forgotten that a lot of candidates are not actively looking for a new role and/or they have multiple other options on the table. It’s also a chance to cover some basic values/team fit over the phone before starting the more technical interview process.
Onsite coding interview - paired programming or live coding test with a member of the tech team.
You get to assess the candidate in a live coding environment there is no hiding and requires quick concise answers.
Not everyone handles the pressure well in this kind of environment, candidates might not be used to the specific syntax or testing format the interviewer is after.
I really like this kind of process, I know a lot of the top software companies use this interview step at some stage in their interview process.
Take-home technical test - sent to the candidate before any interaction from the client in the form of a HackerRank, Test-dome, Codility or a custom-built take-home technical test
It’s easy for the client to send out a test-platform website to a candidate. Often the platforms are user friendly. These are timed tests and a candidate gets to complete it at a convenient time. These tests can also be used by internal or external recruiters to assess a candidate's coding skills before introducing their profiles to a hiring manager.
These tests take time! If a candidate is not actively looking for a new role they are likely going to prioritise an in-person interview over a technical take-home test. I have been told that some very strong engineers have not been able to pass HackerRanks!
I’m personally not a fan of a take-home technical test. Having a lot of experience working with clients who use the HackerRank platform specifically, who have used this test as a source of truth and missed out on talented candidates. We have examples of Engineers who have passed more comprehensive technical tests with arguably more highly regarded technical companies. Often test-platform websites are designed to assess an Engineers principles of coding that are usually learned in early university days, which are often tucked away in the subconscious!
Traditional interview - 1-hour face to face interview
This is a chance for the candidate to meet their potential manager/colleague face-to-face! This is important so both the candidate and interviewer can make sure there is an alignment in their values. Again this is a chance for the interviewer to explain and sell the role to the candidate.
This step is usually unnecessary at the start of the interview process, the majority of companies will have a more values/culture focused interview at some stage of their process. This step can easily be used for a more technical discussion, coding interview OR completed over a video or phone call as mentioned above.
I like this step! But I would suggest it should be added at the start or the end of a candidate's 2nd round technical interview?!
As you can see there are a lot of different ways to assess software engineers, my experience working with the likes of Atlassian, AWS, Macquarie Bank, Woolworths and lots of smaller software start-ups has shown me there is no wrong or right way to assess talent - but there are some options to make sure you hire the right person. If you feel you have the perfect formula please do share!
Stay tuned for my next blog about the perfect 2nd stage interview, also known as the technical/white-boarding interview!