Hiring Process For Software Engineers
What does a typical hiring process for a software programmer look like?
Whether you are experienced hiring manager or new to it, it never hurts to understand the hiring process used by majority of software organizations.1
Qualification interview
After a candidate is introduced to an organization and has passed basic quality check, a qualification interview is done. Generally conducted by the recruiter, goal is to understand more about the candidate, their experience, kind of problems they have worked on, technologies they are familiar with, and basic communication skills.
Programming assessment
Once a candidate passes qualification round, they are given a programming assignment. Currently there are two2 ways this is done.
Programming test
Typically 1 to 3 problems, alogorithmic in nature, to be solved in 45 to 90 mins. Most companies use tools such as hackerrank , codility, or similar. The problems aim to assess basic programming, problem solving, and algorithm implementation skills.
Programming assignment
A programming assignment consists of problem statement and requires candidate to submit a complete solution, including documentation. Aim of this is not just to test problem solving, but can the candidate write production quality code.
Technical interview
Technical interviews are usually conducted by a panel of 2-3 people, almost always includes hiring manager and one of your potential team member. Technical interview aims to cover
Outcome of the programming assessment and ask detailed questions about the solution candidate has submitted.
Understand previous technical experience, systems and technologies candidate has worked with.
Assess technical competence.
Architecture interview
For senior engineering positions, candidate is given a set of requirements, mostly kind of problems team is actually going to work on, and is asked to submit solution design. An architecture interview is then conducted to understand the solution design, design trade offs, architectural patterns, and so on. This interview usually consists of hiring manager, architect/s, and senior engineers from other teams.
Culture fit interview
Most organization these days have a defined culture code, values they strongly believe in and would like all new hires to have demonstrated those values. Culture fit interview tries to assess behavioral traits of a candidate and if they can thrive in the organization. This interview is usually done by a panel, often very senior manager or CEO herself3, along with 1/2 other people.
Team meeting
Some organizations will do a team meeting round, where candidate is given opportunity to understand the team, how they work together, and team dynamics. This meeting is usually for candidate to assess the team and almost never used at a filter to reject a candidate.
Reference checks
Once all assessment processes are successful, candidate is asked to submit 2-3 references from previous jobs. Most companies will aim to only confirm that the candidate has not lied about working with those companies. Candidates performance at those jobs is not inquired about4.
Offer
Once all rounds are successful and references check out, candidate receives verbal offer. She can negotiate salary and overall compensation. If candidate accepts then formal offer is extended.
Above process is meant to be typical and not comprehensive. There are few other assessment techniques used, such as
Psychometric test
Logic test
Aptitude test
Pair programming to assess programming and communication skills
Have you tried a different process with success? Do share it with me!
I will cover each step in more detail in following posts.
Very large organizations like Google and Amazon have few other ways to do programming assessment.
For larger companies usually a VP Engineering.
Some organizations may deviate and ask about performance record of the candidate, which is not a good practice.