Tracy Phillips
CodeSubmit Team
How to Use Pair Programming in Your Next Technical Interview [2023]
How can you use pair programming to hire the right developers for your team?
After all, hiring technical talent is one of your company’s biggest investments. But to identify the best candidates, you need to test their skills in an effective way.
Today, you learn how to conduct a pair programming interview that creates a stand-out candidate experience and helps you select the best talent.
Want to learn more? Read on!
What is pair programming?
Let’s start from the beginning:
What is pair programming?
Great question! Here’s what you need to know.
Definition of pair programming in interviews
Pair programming is used in technical interviews to test candidates’ skills. This is how it works:
The interviewer and interviewee share a coding platform to solve a technical problem together.
The test itself takes about 45 minutes. During it, the assessor or interviewer guides the candidate through the process and the candidate writes most of the code. They discuss the process and both can ask questions, give their opinion, and voice concerns.
A code pairing interview helps interviewers get an understanding of the candidate’s coding, collaboration, and communication skills.
But why is this a great way to test candidates? Let’s find out.
Benefits of pair programming in technical hiring processes
What are the benefits of a pair programming interview?
After all, there are several other ways to test developer skills, such as whiteboarding assignments and screening tests.
However, pair programming comes with several advantages.
- Better hiring decisions. A good pair programming session focuses on candidates’ skills. Studies show that this type of “work sample” is the most reliable assessment technique.
For example, whiteboarding tasks require candidates to perform in front of hiring managers -- and as research shows, these types of tests measure candidates’ anxiety levels and not their skills. In the same way, screening quizzes don’t show how well candidates code; only how good they are at brainteasers. But a well-designed pair programming session imitates a real-world pair programming scenario and isn’t about coding from memory, but solving a real problem. As a result, hiring managers can uncover a good understanding of candidates’ collaborative programming skills.
- Objective hiring process. Pair programming is a much more objective coding assessment test than most other alternatives (with the exception of take-home coding assessments). In other words, you choose the most qualified candidate rather than candidates who meet your biases (we all have them). This is huge for what talent your team takes on, as well as your diversity efforts.
- Faster hiring cycles. Because you can zero in on candidates based on their skills, your hiring process speeds up. You don’t need several rounds of screening tests or similar because pair programming is such a thorough approach.
- Better candidate experience. A challenging but fun pair coding interview also makes the entire experience better for candidates. They leave the experience with a better understanding of how your team works and get to know team members. As a result, you attract better candidates now and in the future, lower your recruitment costs, and end up with more qualified candidates.
- Higher ROI. Industry research shows that companies that use skill assessments are 24% more likely to make hires who exceed their performance goals. What’s more, the cost of a bad hire can be up to 30% of the employee’s first-year salary. Pair programming significantly reduces that risk.
Here’s why Monica Lent, founder of Affilimate and a previous hiring manager for a fast-growing FinTech company, prefers pair coding interviews:
“In my experience, the most effective strategy for assessing a developer's skills is by pair programming on a simple but realistic coding task.
It's an extremely useful approach for a few reasons:
- The candidate is in a familiar setting (their own computer) working through the task
- You can assess their communication skills as they work through a problem
- You can discuss their thought process instead of only seeing the end result
- The candidate can also assess the skills and communication of the interviewer
If you have a great team, the pair programming phase can be the one that helps a candidate decide they want to work for your company, because they've already gotten a realistic idea of what it would be like to collaborate on a technical problem.”
Next, how do you hold a great pair programming interview?
How to conduct a pair programming interview
Now you know what pair programming is and why it’s a useful tool for your technical hiring processes. But how do you conduct a pair programming interview? Here’s what you need to know.
Overview of a technical hiring process
First, what should your developer interviews look like?
Simple:
You have an application phase, interview phase, and assessment phase.
You’ll likely start your hiring process with a phone screen to initiate your developer assessment.
However, if you’re part of an organization with too many candidates, you need to filter them more effectively upfront. In that case (and we only recommend this in this specific situation), you can use a screening test to get through the first round of candidates.
You can use our own screening tool, CodeSubmit Bytes. (Want to try it out? Get access to a demo here.)
After your initial phone or code screening, it’s time to introduce your pair programming task.
Once you’ve identified some promising candidates and completed the pair programming round, move on to a few more interviews. We typically recommend a manager interview and a team interview.
This offers a far better candidate experience than including brainteasers that don’t measure candidates’ skills and, instead, create a terrible experience. It’s also a process that focuses on actual programming skill over interviewing skill, helping you identify some strong signals of future performance in all of the interviewing noise.
That said, your candidate experience depends on how well you execute your pair programming interview tests. Here’s how to conduct them in the right way.
Holding thoughtful and effective pair programming sessions
For effective and enjoyable pair programming sessions, you’ll need to set up an interview structure you can easily replicate. Here are our best tips for creating a pair programming interview that provides a great candidate experience and measures candidates’ real programming skills:
Explain what the pair programming test will look like
Send an email or call your candidate to explain what the process will look like. After all, pair programming isn’t meant to be a stress test. If candidates can mentally prepare and know what to expect, they will likely perform better (and you get a better understanding of their programming skills, rather than how they perform under artificial pressure).
Use a real-world problem
Your pair programming task should be related to the work that a candidate would perform if they were chosen for the role. For example, if your team is building websites everyday, it could be fixing a slow database query.
The developer will work through the problem as they would normally; by looking at source code, looking up documentation, and googling. The difference is that they talk about the steps they take with you. In fact, candidates might not even have knowledge of a problem and need to ask you questions, which is a great opportunity to see how they learn.
Use short tasks
The task should be relatively simple and take about 45 minutes to complete. You shouldn’t use a task that is too difficult; the task should be easy enough that it can be solved in an hour or less.
Look for thought processes and communication skills
Don’t measure “right” or “wrong” answers or syntax mistakes. Instead, a pair programming interview is all about understanding how your candidates work, how they communicate, and how they think. Do they contribute? Or do they rely on your guidance? Do they explain their approach, or do they work in silence?
For example, a “bad” thought process would be, “I’m stuck, I don’t know how to do X.”
A “good” way of solving a problem is, “The way I usually solve problem X is to do A and B and I think a could solve the problem here. But the program asks for C. Are C and B alike? How does C differ from B?”
Include the rest of your team
You can either run the pair programming test by yourself or include other members of the team. Other participants can sit and listen, while you conduct the test and perhaps ask a few relevant followup questions at the end of the session.
Choose the programming language
What language are you testing for? Alternatively, you can let candidates choose the language they prefer. (This is probably a wiser choice unless you have strict language requirements for the role; after all, you want to know how candidates solve problems.)
Train your interviewers
One of the pitfalls of pair programming is that your interviewer may not know how to conduct one. The experience can become pretty horrible for everyone if your interviewer is unprepared to communicate clearly and make the candidate feel at ease. So set up pair programming training for your interviewers, so that everyone on your team pair programs in a coherent style.
Need tips for how to conduct the interview? Here’s how.
Interviewer guidelines
This guide shows you how to conduct pair programming interview sessions step-by-step.
First, let’s start with the pre-interview phase
Start by looking through your candidate’s resume and any other material they’ve submitted. Take some notes about how they convey their personality and skills. You can use this knowledge to better communicate with them in the interview, both to make them feel at ease (talk about hobbies or things you have in common) and to discuss the problem at hand.
Prepare questions
Prepare a list of questions that you want to cover during the assessment. While you do want to ask questions to understand their way of working, you don’t want to ask TOO many. After all, candidates can get overwhelmed by a huge number of questions.
During the interview, be open to different solutions
There’s no one right answer to most coding problems. Be open to new solutions because there are 57 different ways to do the same thing. You can have an answer in mind, but put it to the side when you listen to the candidate’s ideas. You’ll not only see how they work, but also how creative they are!
Help candidates get unstuck
You obviously don’t want the candidate to get stuck on a problem for the duration of the assessment. So if you see that someone is getting stuck, help them without giving the exact answer. Ask questions like, “What can you do to fix the problem?” or “What do you think is the problem?”
Participate in the session
Candidates should be the main problem solvers, but don’t make them lead the interview 100% of the time. You want it to be a collaborative experience. They shouldn’t feel like their every move is recorded and assessed.
So be sure to really participate in the session. Ask them to talk you through their solution. Make it fun, not stressful.
Converse with candidates
During your session, you can’t just sit back and listen to the candidate. It’s a pair programming session, so you should participate, too (after all, how else will you know how they *really* work in a collaborative setting)? Ask questions, discuss the problem, and share ideas.
That said, it’s completely fine if you or the candidate needs some time to think. You don’t need to be talking ALL the time (and you wouldn’t in a real pair programming session); give them the space they need, but keep the conversation open and relaxed.
Be clear with your expectations
Last, pair programming skill tests aren’t a “gotcha” test. Explain what you expect and how the test will unfold. For example, tell candidates that they need to communicate their solution to you as they go. And let them know if there are things they shouldn’t do up front.
The best pair programming interview tools
To conduct your pair programming session, you need a pair programming interview tool that makes it easy to interview candidates. But how do you choose your pair programming test platform? Here’s what you need to know.
Choose your pair programming test platform
If you’re conducting remote pair programming tests, the tool you use is incredibly important. After all, the platform needs to integrate seamlessly into your hiring process. And it needs to function well for a good assessment environment and candidate experience.
Your pair programming tool should be:
- Simple to set up
- Easy to use
- Support for the language you’re testing for
- Include the integrations you need
- Have powerful features for video and audio
- Make it easy to share code
Our own online pair programming interview tool, CodeSubmit CodePair, is a cloud-based, collaborative code editor. CodePair makes it easy to set up a powerful shared coding environment and work through coding problems.
We currently support 18 languages in CodePair (including Python, JavaScript, and Java, to name a few) and it is incredibly easy to use. CodePlay is already loaded with some cool features, and the code editor is based on Monaco (the code editor that powers VS code) to provide a natural candidate experience during the interview.
You’ll also get access to Dolby™ video and audio calls, custom branding, sessions with multiple hiring managers, and custom files and databases. Oh, and powerful add-ons!
Plus, we support integrations like Slack, Lever, Zapier, and Greenhouse.
Set up a pair programming test
It’s easy to set up pair programming tests with CodePair.
Sign up for CodeSubmit and choose CodePair in the menu bar.
Then, click on “create session.”
Fill in the candidate’s information. By clicking on “Advanced settings,” you can choose your language and add initial code and instructions.
You can also choose “Add template” to add an existing template.
Once you’ve added a new candidate, choose “Launch CodePair.”
You will now be able to invite the candidate to your session and change settings, like switching the language and activating add-ons.
Simple, right? With CodePair, you can focus on your most important task -- identifying the right candidate for your growing team.
Pair programming interview exercise
What are the top pair programming interview questions?
There are various questions you could use as pair programming questions. You can use a real-world task that candidates would complete as part of their jobs. Or you can use a made-up task.
As a pair programming interview example, you could ask candidates to write a symbolic differentiator for polynomial expressions of one variable. (Credit goes to this website.)
Ask candidates to solve code that’s poorly written or includes bugs.
Or you can ask candidates to create a simple game or a functionality, such as a shopping cart. Of course, your functionality still has to be simple enough so that candidates have reasonable time to complete it within the allocated time.
You can use similar questions regardless if you’re interviewing for a position that requires Python, Javascript, Java, C, or another language or framework.
Over to you!
There you have it!
Now you know how to conduct a pair programming interview using an industry-leading pair programming test. What it comes down to is creating a structure that works for you and using effective tools to help you hold seamless sessions.
Ready to give pair programming a try?