Home Blog Trends How to Hire a C++ Developer: “What I Want to See Is How the Candidate Thinks and How They Approach Problem Solving”

How to Hire a C++ Developer: “What I Want to See Is How the Candidate Thinks and How They Approach Problem Solving”

Author Daxx Team
Posted Jun 12, 2017
Trends

In his 20-year-long career in software design, engineering, and management, Andriy Syrovenko has developed a wide and varied range of skills. His interests include database management systems, information and network security, parallel computing, network technologies, VoIP, billing systems, virtualization, and much more.


As a Team Lead and Senior C++ Developer, Andriy frequently conducts job interviews. We’ve asked him to describe his process for interviewing C++ engineers, and here’s what he shared:

When I think back to how I conducted interviews twelve years ago, I can’t help but wince. Those talks were chock-full of standard C++ developer interview questions that I’d use over and over again with a single purpose — to demonstrate my superiority to the candidate.

These days, I no longer have any kind of set-in-stone interview routine. The questions I ask depend heavily on the project for which I need to hire a C++ developer.

The most basic technical task I give C++ candidates is to describe, in their own words, what a pointer is. 

Whether I’m talking to a senior C++ developer or a junior candidate, I like to start with the basics. I’ve met engineers with over 10 years of experience whose beginner-level knowledge had rusted simply because they hadn’t had the chance to use it in their projects. If you spend years working with high-level libraries, it’s hardly surprising that you don’t remember the low-level C programming that any good C++ developer is generally expected to know. So I want to be extra sure the candidate I’m interviewing understands what C is all about.

The most basic technical task I give C++ candidates is to describe, in their own words, what a pointer is. This is a very primitive question, but it allows me to understand how the candidate views the language, and how well they understand the basics of C++ development. It’s also universal: any C++ developer, regardless of their level of experience, should be able to answer it.

What I want to see is how the candidate thinks and how they approach problem solving.

Sometimes I ask candidates to explain the difference between big-endian and little-endian architecture. Usually, when asked about such things, candidates start describing real life examples and difficulties they’ve encountered in their own work. This information allows me to judge how versatile and in-depth their experience is.

learn-more

Want to learn more about setting up an extended development team with us?

tell me more

I also love to task candidates with logic problems relating to programming. For example, I could lay out a generic problem that is usually solved using the classic merge sort algorithm. Some people instantly recognize it and go straight to explaining how it works.

Over time, I’ve come to the conclusion that the one type of candidate I’m definitely not looking for is a multipurpose developer. 

However, this algorithm — although relevant to my current project — isn’t especially widespread, so most people don’t know anything about it and request some time to think it over. Some can work it out pretty fast, while others start suggesting wrong solutions. Either way, we discuss their answers together. This stage can take anywhere between five and twenty minutes. I’m not necessarily interested in the right answer here. What I want to see is how the candidate thinks and how they approach problem solving.

I know most articles on the subject of tech interviewing tell you to organize live coding sessions, but I consider this practice a waste of time. 

Over time, I’ve come to the conclusion that the one type of candidate I’m definitely not looking for is a multipurpose developer. These people are very rare, and if you do find one, you’ll soon realize that they’re too conceited and lazy for their own good. Having someone like that on a team is highly ineffective, so it’s a much better idea to hire someone whose skillset isn’t quite as varied, but who’s ready to learn fast and will approach their job with diligence.

If I decided to meet a candidate in person, it’s safe to assume that their resume caught my eye and they’re likely to be a good fit. The goal of the interview is to either prove or disprove this assumption. This is what it all boils down to.

Another type of candidates you want to avoid are developers who read their way through every new trend and try to implement it in their work immediately. From my experience, these candidates tend to feel very smug about how forward-thinking they are, but what they often miss is that business doesn’t care about using advanced technology for the sake of it, business cares about making money.

I know most articles on the subject of tech interviewing tell you to organize live coding sessions, but I consider this practice a waste of time. How should you check the code quality then? That’s what the trial period is for.

To conclude, here’s what I think about interviews: if I decided to meet a candidate in person, it’s safe to assume that their resume caught my eye and they’re likely to be a good fit. The goal of the interview is to either prove or disprove this assumption. This is what it all boils down to.

name

Daxx Team

Daxx Team is a team of passionate creative writers, content marketers, designers who vigorously research internet as well as cooperate with Daxx developers and Daxx CTO to provide you with the top-notch material about tech, salary trends, development team hiring and management tips as well as up-to-date information about Ukrainian IT outsourcing market.

Share this article

Comments

Read also

Blog
Trends

Software Developer Shortage in the US 2019

9 in 10 business owners struggle to hire software engineers, 472K programming jobs remain unfilled, while only 13.2% schools provide AP computer training. Uncover the details, reasons, and possible solutions for the rising talent shortage in the US....

Author Olena Herasymchuk
Posted Aug 16, 2016
Blog
Trends

When Do Companies Need Software Testing: Tips From a Lead QA Engineer

To shed some light on the role of a QA throughout different stages, we've partnered with a leading QA engineer from Daxx and explained when exactly companies need professional software testing services....

Author Yustyna Velykholova
Posted Apr 24, 2019
Blog
Trends

Where Do German and Dutch Companies Outsource Software Development? We’ve Surveyed 300+ Businesses

We’ve communicated with 98 business executives operating in the Netherlands and 204 from the DACH region to determine the top outsourcing destinations and study how enterprise size influences outsourcing decisions. Check out the results....

Author Olena Herasymchuk
Posted Apr 24, 2019