Interviewing a software developer

A good developer is more than a buzzword

I have spoken with 1000’s of developers in my career, I am friends with a lot of developers, mainly because I find it interesting and it has been my job for a long time (recruiting developers). It amazes me how so few people seem to get what it is that they actually do, or what makes a good developer. Below are some of what I have learned in all my years interviewing developers.

Anti-Reductionistic

One common thing I have heard so many times, and it is stupid; “they don’t have experience with a particular framework or tool”. This is mostly utter crap as an answer. Only in the case that all you want is a code monkey to come in and just do stuff immediately with no thought, or resource capacity is bottle necked, but in the long run is that the best reason to pick someone?

To reduce a developer to a buzzword is to miss out on exceptional people. More often than not a tool or framework is chosen specifically for the current balance of problems versus benefits, and sometime those tools are predetermined by management. Developers themselves are great at seeing all the problems and benefits of a tool or framework, and love to argue this back and forth among one another; each one is right!

Also, there are shared similarities between all computer science. Some languages are closer than others, most frameworks and tools are a lot easier to understand as they are often attached to your current root language. For example, my very good friend is an awesome Frontend Developer, Javascript is something he can use very well. So whether he uses Angular or React makes a much smaller difference than if I said start using Cobalt ;). However, what he knows about programming could easily be transferred to other languages, yes he might need some time to familiarise himself with new syntax and some rules, but he would just love to do that, as he is a geek; unless he already tried it and thinks it sucks, or knows it will be terrible in that particular situation. But the point is he learns, he goes out of his way to know as certainly as possible about what he is saying. And I think that is something that makes a good developer, a thirst for knowledge and the pleasure of learning; I would argue this makes a good quality in many professions.

So I urge you, don’t reduce someone to a keyword. It certainly can’t hurt if they have that skill, but don’t miss out on talent due to the absence of a word.

Long term vs short term

Your focus on what you need should also dictate the type of job advertised, I think this is one of the biggest mistakes made by companies. Is not being transparent about what the job really is, maybe just because they don’t know or sometimes done knowingly.

This is made quite apparent when you consider long term versus short term needs. If a company has a severe bottleneck and a good idea of what this additional resource must do, and this is the sole purpose of the hire is to get things going; I would propose a freelancer. It’s quicker and easier to find, and once the backlog of work is completed, perhaps your team now has capacity. But knowing most tech companies, this is rarely the case. Innovation and therefore more development is a continual process, and should be encouraged to to stay at the top of your game. So, if that leads you down the path of hiring a permanent team member, it is a trade off between the right person and time.

Or you could just hire a freelancer to buy you more time to find the right person.

The short term demands may push towards a profile that has more experience with your particular stack, as this could save you time in getting them productive. More often than not though they still need to get to grips with your codebase, tools and processes anyway, and familiarize themselves with all your company’s past choices. But I argue this shouldn’t be the final deciding factor for a long term hire.

It is also really important to consider what is really needed. Do you just need a coder to crunch out lines all day, do you need an architect to make calculated decisions about the next step, or someone to communicate with business counterparts? For the last two I would say tech stack is far less important, design patterns and high level decisions/discussions are normally more stack independent.

But still, good developers pick tools and skills dependent on the current projects needs. They are incredibly versatile, pick up things quickly and are often very happy to work with new tools.

I’m always a fan of the long term view, as I mainly find people for permanent jobs. I always look for something deeper than the tools they work with. Yes, on the surface if you need a frontend engineer it does help as a good starting point if they have worked in this field and have experience with the general concepts, as this makes sense and ideally an educational background in that field. But ultimately a person is more than the words on their CV, and their ability is more defined by what they have done, can do and will do.

Complexity/Challenge factor

And the awesome thing about developers is they have stuff to show you, it is tangible and is something that can be considered. E.g. I made a website for a small dental practice compared to I worked on a website dealing with 100K traffic a day and improved conversions from 25% to 50% with a new UI design. By listening to what they have done you can get an idea of the level they are at in their career, what kind of issues and decisions have the had to make? What problems have they had to fix? Complexity doesn’t always mean better, some of the best solutions are simple; but complex situations require great skill and knowledge to choose the best course of action.

Passion

The way they talk about their work and projects. It is really easy to hear if someone has enthusiasm for their work, and I’d say perhaps one of the most important traits to look for. A person who loves what they do is the best kind of employee, they are always learning more, doing more and trying their best. Sometimes if you feel there is an absence of passion you can ask about what they are most passionate about, this gives them an opportunity to show you their best side.

How they talk

I always like to hear how and what people talk about. I often start with a very open ended question, as it gives them freedom; and it’s always most interesting to see what people will do with very little prompting, e.g. “So, tell me a bit about you and what you’ve been up to”. This first few minutes is where you learn the most about this person, where do they sit on the extraversion scale, what do they think you want to hear, what is their understanding of the job and company, what do they think makes them right for this job, are they a team player. If you are interviewing for a job, mostly you should want to get that job, so all you say towards that should be in their best efforts to get this job. As such you are presenting yourself. This is kind of the general opener to the interview, and often opinions become very fixed here at the first impression.

If the person struggles here it normally indicates either they are just nervous, not so good at communicating or perhaps inexperienced.

The next step is to ask them some more direct questions, which are often what I look for in the first part without asking, so; what is their understanding of the job and company? what do they think makes them right for this job? why do they want this job? Normally from these questions you can get a sense of what they value and do they sound genuine with what they say.

Just to clarify, it is always incredibly important to understand what is needed for the job before you interview. As this is what you are listening for in the interview.

If you know that the team wants a leader, someone who can end disputes and communicate a vision well; then this what you want to hear from this person. The earlier on you hear this in the interview, the more attractive a candidate becomes. As if this is the key factor, then this is the key requirement and if the candidate speaks this early it indicates they are more so aligned with what you need.

People skills

By now you probably have a good idea of their communication and people skills, what they think is important and how aligned it is with your company view.

Be honest with them

I normally then take this opportunity to give them feedback, be it good or bad, and try to always leave on a positive note. For example, I often speak with many nationalities and communication is a big issue. If someone is really struggling with English, I ask them how would they cope working in an English speaking environment? Often this is met with “I would like that”, but then comes the reality of explainingly tactfully that this would not work for your team at the current level. And if they are really serious about working in English (or whatever language you need), then they will certainly need to invest sometime in honing their skills further here. I also let them know about how well they matched up to what we are looking for, and let them know if they were strong or weak in these areas; obviously this must all be done as nicely as possible and always try to lead to a constructive end point.

Do I like them

This is pretty much the synopsis of the interview and it will always be biased to you. You have now heard them speak freely, respond to your questions, seen what they think is important and seen how they handle feedback, normally this is enough to get an initial feeling of if this person is right for you. And if you and team are aligned on your values and what you want for this job, then, this will be a great early indicator of potential success.

All the parts together

And finally it’s down to considering all of these parts together and how they weigh up to your experience and knowledge, and then on to the team/managers to conduct their interviews.

This is how we do business here at Bounty Most Wanted, come on down today and let us put some rewards in your pocket and find your dream job in technology and marketing in Berlin

Original found here