So You Want Me to Hire You as a C++ Developer?

, in Computing, Popular or Notable, Rant

Update: This got some attention, with some good discussion on this reddit thread The company where I work needs another experienced C++ developer. That means another round of technical interviews and another round of disappointing applicants.

I am sure those who I have interviewed in the recent past were good at their current jobs but none were suitable for the positions offered.

Do you want to work with me? What follows is a description of what we need from you.

A meaningless picture to lend a visually appealing introduction to what is basically just a long rant
A meaningless picture to lend a visually appealing introduction to what is basically just a long rant

We are not looking for a rockstar rather an experienced C++ programmer who knows the ropes. When interviewing, I am looking for someone with an excellent command of the basics of C++ and the sort of broad, generalized knowledge that comes with experience and curiosity.

One thing I am not looking for, surprisingly, is a 100% knowledge of the C++ language. It wouldn't hurt but don't panic if you can't rattle off the exact syntax to a perfect-forwarding templated move constructor off the top of your head. In real life you would look it up before implementing it but in an interview for a senior dev we might ask to describe the wheres, whys, and hows of such a beast in general terms.

The following is a list of the areas I like to cover when interviewing. A junior would not be expected to know everything here but I would like to think a senior could at least speak to almost everything here.

In vaguely descending order of importanceUpdate: Some comments complained that this is a fairly idiosyncratic and specific list. I disagree, it is meant to cover a wide range of topics that a commonly encountered in software development. Not everyone will have knowledge of this entire list but it is what I keep in mind when interviewing people.:

I am not a fan of extensive coding exercises in interviews but I usually get the applicant to write a simple Singleton implementation and then perhaps make it thread safe. It is worrying how many people get it wrong.

Here are some things that will score you negative points in a technical interview:

Finally, don't be shy in bringing up any private projects you have worked on even if they didn't go anywhere. All the best developers have random hobby projectsUpdate: Comments on this point were negative; I think I overstated the importance of hobby projects. Not everyone has the time to spend hours on a labor of love and I certainly don't hold it against anyone if they don't do this. What I was trying to explain was that experience in home projects is just as valid as on-the-job experience. and being able to say "Well I don't have any commercial experience in MySQL but I found when mucking about with my private cricket statistics generator that..." will earn you a secret bonus multiplier.