Teamwork and collaboration are more important than ever as remote work evolves into hybrid work. Companies are looking for ways to hire developers who have strong coding and communication skills. Pair programming is one way to test both.
If the interview process includes a session working with an existing employee, it’s crucial to understand the do’s and don’ts. Employers want to see how a candidate will fit into the team in addition to measuring a variety of skills.
Jonathan Fernández, senior consultant developer at ThoughtWorks, said the goal of pair programming is about an employee and a job candidate working together to solve a problem, not about the candidate solving the problem.
“Misunderstanding this point can lead the candidate to making important design decisions without having a constructive talk about the topic beforehand, or even introducing additional complexity to the exercise just to exhibit knowledge about a specific feature of the language,” he said.
Sachin Gupta, CEO of HackerEarth, said that employers measure these capabilities during a pair programming session:
- Problem-solving skills: Was the person able to understand the problem, break it down into sub-problems, and then come up with solutions?
- Quality of coding: Did the person write clean and easy-to-understand code?
- Correctness of the code: Did the code cover all common scenarios?
- Communication skills: Was the person about to debug different scenarios, talk about the complexity of the code as a proxy for writing optimal code, stress test and optimize the code?
- Aptitude to learn: Does the person seem to be willing and capable of learning on the job?
“Some of the more progressive interview processes have these competencies as a rubric and each interviewer evaluates each competency and gives a rating, which they used to determine overall — reject, weak accept, or strong accept,” he said.
Fernández said pair programming sessions are meant to illustrate a person’s communication skills overall.
“Asking the right questions about corner cases, being able to explain the trade-offs of one design over another, or using simple examples to illustrate complex concepts are good indicators,” Fernández said.
Here are four do’s and three don’ts for navigating pair programming.
How to make a good impression
Employers are measuring technical skills as well as soft skills during pair programming sessions. Successful candidates will be able to show overall coding skills and the ability to work on a team.
- Explain the thought process behind your decisions.
- Keep readability, maintainability and extensibility in mind.
- Accept constructive criticism gracefully.
- Show you can learn and be part of a team.
Fernández wrote in a recent blog post that developers should think about how to illustrate their skills at readability, maintainability and extensibility during the interview.
“Although we don’t take specific measures during the pairing session, we expect the candidate to apply well-known development patterns (SOLID, YAGNI, KISS, etc.) and good practices (test-driven development) to achieve this, and we also love to talk about when and why you should apply them when coding,” he said.
Another important element of the process is handling the back and forth of writing code together and being able to accept constructive criticism and offer it during the same conversation. Job candidates should be able to accept criticism of code without taking it personally and feel comfortable asking difficult questions during a pair programming session, Fernández said.
“To push back on a solution with empathy and with logical reasoning before the implementation will lead to a discussion that could save a lot of time and will help ensure the pair fully understand the implications of the change,” he said.
Companies also are looking for developers who can keep multiple users in mind, depending on the task at hand.
“Sometimes you need to put yourself in the position of the final user, sometimes you need to think like the one who is paying for the infrastructure, or the one who is taking care of the security of the platform,” Fernández said. “Doing that, at the same time you are pairing, and explaining to your pair what kind of hat you are wearing in a specific moment, is a really good skill.”
Don’t make these mistakes
In addition to looking for specific skills, employers are also watching for warning signs that an individual would not be a good fit for the team. Fernández said that red flags could be technical, such as a lack of testing skills or misalignment in a candidate’s values around work culture, like not giving strong enough value to diversity in the workplace.
The shortlist of mistakes looks like this:
- Don’t jump straight to the right answer–show your work.
- Don’t be afraid to ask questions.
- Don’t exaggerate your skills.
Gupta said that employers watch for any kind of misrepresentation, such as people claiming to have done something but not being able to substantiate it with evidence of work.
“Rigidity in thought is another one; this typically demonstrates that they may not be open to learning from their mistakes,” he said.
Gupta also said that candidates should make a point to ask questions of the interviewer.
“People are hesitant to ask clarifying questions, the boundary conditions, or the corner cases,” he said. “As a result, they come up with a response based on their own assumptions, which might differ from the interviewer’s assumptions.”
Gupta also recommended taking an iterative approach to the problem, instead of identifying the optimal solution in the very first shot.
“An interviewer expects the candidate to show how they are approaching the problem, how they are thinking through it, and how they landed at the solution, and not just if they know the solution,” he said.
Subscribe to the Developer Insider Newsletter
From the hottest programming languages to commentary on the Linux OS, get the developer and open source news and tips you need to know. Delivered Tuesdays and Thursdays