Hiring a developer?
In that case, you’ll want to know how to spot the best candidates. And your interview process plays a huge part in this.
Today, we’re bringing you the top questions to ask in your next developer interview.
Ready to learn more? Let’s dive right in.Click here to jump straight to 50+ developer interview questions.
How do you identify the right developers?
Hiring a developer is an investment. And to make that investment pay off, you need to hire the right candidate.
According to Society for Human Resource Management, it takes on average 42 days to fill a position, and the average cost-per-hire is $4,129.
Glassdoor’s estimate is similar. Their data shows that it takes 52 days to find a new employee and the costs are around $4,000.
You can calculate your own cost per hire by adding up your recruitment costs (internal and external) and dividing the result by the total number of hires.
Your internal costs include recruitment team costs, incentives, software, hardware, and fixed costs.
External costs include third-party recruitment agency fees, advertising and marketing expenses, recruiting event costs, travel, contractors, background and reference checks, assessments, and relocation costs.
These numbers will likely be higher for a developer since they’re a more expensive hire.
For example, if you decide to hire an external recruiter to fill a technical role, their commission is typically 20-25% of a new hire’s base salary.
And the average US salary for a Systems Developer in 2017 was $111,780.
This means that external recruitment costs alone (all other costs excluded) amount to $27,945.
If it turns out that the hire was a bad one, you get to factor in costs like:
- Loss of productivity
- Loss of morale
- Training costs
- Onboarding costs
- Recruitment costs to replace a bad hire
...They quickly add up.
Not to mention that it’s hard to find the right talent to replace this bad hire.
In 2016, 3 million more STEM jobs were posted than STEM workers to fill them.
That’s why developer interview questions are so important. With the right questions (together with a technical assessment), you’re setting your team up to identify the right developer talent for your open roles.
What does a great technical interview look like?
Interview questions alone won’t “save” your technical recruitment process.
You need to pair it with an industry-leading interview process.
This will do a few things for you. You’ll...
- Source the best candidates;
- Improve your employer brand;
- Attract the best applicants;
- Streamline your hiring process;
- and create a stand-out candidate experience.
That last point is really important, especially since over 80% of candidates wouldn’t apply to a company again if they had a negative candidate experience. Oh, and over 50% wouldn’t accept an offer and/or tell others not to apply.
So with that, let’s look at what it takes to create a great interview process. (These same strategies apply to hiring both on-site and remote developers!)
The interview process for startups and SMEs
For smaller companies (startups and small- to medium-sized businesses) you can start with a phone screen and then follow up with a take-home coding assignment to test candidates’ technical skills before you move on to the next round of interviews.
As smaller businesses typically don’t have plenty of applicants, you can include your take-home coding challenge early in the process. This process offers a far better candidate experience and will help you stand out from bigger companies (a necessity, if you want to attract talented developers).
The interview process for large companies and enterprises
Larger companies tend to have the enviable problem of too many applicants. If that sounds like your company, then your hiring process will likely look a bit different than the one previously discussed.
The following advice applies primarily to larger enterprises-- the Google-level employers with a very strong employer brand. If your employer brand is weaker, use the process above.
Instead of a take-home assignment early in the process, you’ll likely go for a screening task before or after the phone screen.
Once you’ve filtered out candidates, move on to the manager interview. And then, a take-home challenge to assess developers.
The key to a successful interview process: Communication
According to CareerBuilder, 81% of candidates say that one of the best ways to improve the overall experience is to continuously communicate. 52% say that the biggest frustration is a lack of response from employers. And 83% say that having a clear timeline of the hiring process would improve the experience.
In one word: Communicate!
If you don’t, you risk losing great candidates who accept other offers (or get tired of waiting around).
Bonus: Scripts for inviting candidates to interviews and for respectfully rejecting them
As a hiring manager, you’ll need to both invite and reject candidates.
Here are a few scripts to use (remember to tailor them to fit your brand!):
A script for inviting candidates to your interview
Thank you for your interest in working at [company]!
We received your application for [job title] and would like to invite you to a short phone interview to learn more about you and discuss the job requirements.
You will be meeting with [interviewer’s name and position]. The interview will last approximately 30 minutes, and we’re going to focus on understanding more about why you’re interested in this role, your experience, and how we can help you achieve your career goals.
Feel free to ask any questions about our hiring process, the role, or our company by replying to this email.
Which of these options would work best for you?
[Include a few different alternative dates and times]
If these options don’t work for you, let us know your availability for next week.
We are looking forward to discussing this position with you!
A script for respectfully rejecting candidates
If you’re rejecting a candidate you’ve interviewed, always call!
After all, they’ve made an effort of going through your recruitment process. It’s minimum common decency to let them know that they weren’t selected.
You can simply say:
I wanted to thank you for coming in the other day. We really appreciated your time, but we decided to move on with another candidate.
(And by the way, if they’ve completed a coding assessment test, it's best to give feedback on that too if you can.)
What’s the difference between good and great developers?
What should you look for in a great developer when interviewing them?
Sure, technical skills are important.
Good developers have a strong background in at least one language (such as C#, C++, PHP, Java, or Python) and framework (such as React, Angular, Ruby on Rails, or Django).
They're comfortable working with integrated developer environments (IDEs), databases, version control tools, system design, maintainable code, and cloud services. They should also have an understanding of data security, data privacy, and algorithms.
However, you can have the most technically skilled developer, but if they don’t pair those skills with soft skills, they may not be a great fit for your team.
Great developers have vision. They communicate well, both technically and non-technically, and are adaptable, creative, and excited to solve problems.
Jerome Williams, Developer and Talent Director at JWorks Studios, explains how he identifies successful candidates:
“A large part of programming is creativity. You are presented with a problem, and you need to come up with the best solution, even if non-conventional. I pose a scenario to the applicant and ask for a few solutions - an A, B, and C plan of action. No code, just ideas.”
And as research at Google shows, what creates successful teams is that team members feel psychological safety, or trust. The way to create psychological safety is by prioritizing communication and empathy. So, if your candidates have these traits, you know they are great team members -- and leaders.
Now, it’s rare to find someone with all these skills. So before you start your interviews, decide on the skills that your candidates must have and the ones you’re able and willing to coach them on.
What questions should you ask a developer?
Job interviews are all about getting to know your candidates.
The biggest problem with interviews? Hiring managers’ confirmation bias.
People make snap judgments. Research shows that judgments made in the first 10 seconds can predict the outcome of an interview.
It plays out as hiring managers quickly decide what they think of a candidate and then spend the rest of the interview trying to confirm that initial impression.
But the first 10 seconds are useless to determine if someone is or isn’t a fit for the company.
Another issue is that candidates are often not evaluated in the same way. For example, underrepresented groups tend to be assessed harsher than white males. There is objectively no reason to require underrepresented folks to go to greater lengths to prove themselves, so we need tools to identify where this is happening and nip it in the bud.
Yes, there are ways to minimize the risk of confirmation bias.
First, if you're doing an assessment, be sure to use skills-based tests to objectively assess your candidates. At CodeSubmit, we offer an industry-leading tool for skills-based technical assessment.
Second, establish clear criteria that you use for everyone.
Research shows that the best interviews for assessing candidates consist of (a) a structured interview process and (b) behavioral interview questions. These are questions that focus on a candidate’s past accomplishments as an indicator for future success.
Finally, if you truly want to know if a candidate is a good fit for the job or not, don’t ask brainteasers or generic interview questions.
Brainteasers are hypothetical math problems or market sizing challenges, like “How many golf balls would fit into a Boeing 747?”
The problem with these types of questions is that they don’t predict anything. Even Google, a company known to previously used them rigorously, says that they are a complete waste of time and only serve to make the interviewers seem smart.
On the other hand, generic questions like “What are your biggest strengths?” are overused. Candidates prepare "good" answers for them, so you don’t really get an understanding of how they will perform in the job.
Here’s what Jay Andrew Allen, a technical writer and translator with extensive experience in hiring software developers and support specialists, looks for in his interviews:
“I like to dispense with trick questions or artificial scenarios and use more STAR-focused questions. My favorite is: "Tell me about a time you ran into an unexpected technical roadblock. What happened and how did you solve it?"
I look for candidates to give me as detailed an answer as they can to this question and to be able to explain how they went about troubleshooting the issue.
A good explanation gives me real insight into, not only the candidate's technical capabilities, but their ability to break down a thorny problem and drive it to resolution.”
Next, we’ll look at 50+ questions that measure developers’ technical skills and soft skills.
Software developer interview questions and answers
Let’s begin with general interview questions. In the following sections, you’ll also get questions you can use depending on the seniority level you’re interviewing for and more technical questions depending on what language and framework you want to assess.
When you choose questions from this list, make sure to set up a structure for yourself with different categories so that you know you’re covering it all. For example: skills, experience, and cultural fit.
Rahul Gulati of web development company GyanDevign Tech Services gives his top two interview questions:
“What are the things you do to take care of a website's performance?” and “How do you secure a web application? And why do you choose method 'A' over method 'B?'"
You need to know their thought process. Developers should be tech agnostic. If they have that understanding, then they are focused on the fundamentals of engineering- problem-solving.”
Top 10 good interview questions
You're probably wondering: What are the top 10 good interview questions I should ask my candidates?
This list is extensive. You’ll obviously not get through 50+ questions during your interview process.
You should choose the ones that work best for your needs.
But I know your time is limited, so I put together a list with the 10 best questions to ask! Here you go:
1. Walk me through your latest project. How did you contribute to it and how did you handle obstacles?
Your interview should focus on getting to know your candidate and understanding how he/she would function in the role and your team. How does a candidate function in a team? That’s what this question tries to find out. There’s no wrong or right answer but look out for:
- A candidate’s overall contribution to the project
- How they work as a team
- Their management skills
- How they identify obstacles
- How they interact with project management and other stakeholders
2. What programming languages do you use? Which languages do you prefer and why?
Also, take a leaf from Jerome’s book:
“It's always prudent to ask questions pertaining to the languages that will be used on the project(s). That just makes sense.
I ask why they chose to learn that language, what they think about it, and ask them to compare it to another similar language.
I'll throw a curveball and ask them if we start introducing projects with a huge dependence on a programming language not listed on their resume, how would they adapt.”
3. Walk me through a project/open-source code on your GitHub profile.
This question does two things: (1) candidates walk you through their work, so that you get a better understanding of their technical skills and (2) you see if a candidate is putting themselves out there and participating in open-source projects.
4. When was a time when you had to make a critical decision during a project? What happened? How did you manage it?
This question is all about understanding if a candidate is able to think creatively and manage issues as they come up. It could also help you identify candidates who have an explorative mindset and who can innovate and improve existing processes.
5. What do you look for when checking a team member's code?
Code reviews are a fundamental part of any developers’ tasks. With this question, you get an idea of how well candidates solve problems, their attention to detail, and big picture thinking.
Ultimately, the goal is to have code that works with minimal issues. Some things you can look for in the answer is:
- Is the code cluttered and inefficient, or simple?
- Does the code have to be rewritten?
- Is the code exposed to vulnerabilities?
- Is it secure, functional, and readable? Is it easy to understand?
- Does it pass automated and manual testing?
- Are there any memory leaks?
- Is the code duplicated?
6. Give an example of a time when you went above and beyond on a project.
You probably don’t want team members who just do the bare minimum, right? Ask them how they overdeliver to get a sense of their business-mindedness and motivation to achieve their goals.
7. Describe a time when you had a conflict or disagreement at work. How did you resolve it?
If teamwork is important to you, you need a developer who can solve disagreements without any drama. Look out for cues on how willing candidates are to admit when they are wrong and understand other people’s perspectives.
8. Tell me about a time when you had to explain a technical topic to a non-technical person. What was it about and how did you ensure that the other person understood you?
If you have non-technical team members and stakeholders, it’s necessary that your candidates can (or are willing to learn how to) explain technical topics in plain English.
9. What is an achievement you are especially proud of and why?
This question is a great way to understand how candidates prioritize and analyze projects. You could even add a “And who helped you achieve it?” to see how well candidates recognize other people’s efforts, not just their own.
10. Tell me about a time when you developed a feature and it didn’t live up to expectations. Where was the disconnect and what did you learn from the experience?
Ultimately, your developer should be able to take feedback and also problem-solve when needed. How do they respond to failures or mistakes? Do they blame it on others (a huge red flag) or do they explain how they worked through the situation?
Skills-based interview questions
What are your processes for testing and finding bugs in an application?
Even small bugs can lead to big problems. So, how do candidates approach testing? This question gives you a good idea of their current process and how focused they are on writing manageable code.
How do you keep up with technical trends?
A developer who stays up to date with changes and trends will be much faster at adopting them. Whether blogs, industry websites, or online forums, get an understanding of how candidates develop their skills and keep up with news and trends.
How would you explain APIs to a non-technical co-worker?
APIs are an example here, but you can switch it to another technical term -- the idea is to understand exactly how a developer would explain it to someone without technical skills. Look out for an answer that includes an explanation without any technical jargon that might leave someone hanging.
“APIs help us automate products, from websites to apps and software. For example, we could use Instagram’s API to show our recent Instagram posts on our website without having to copy them separately and publish them on our site. That’s how APIs help us save time and effort.”
Do you think unit testing is important or a waste of time?
Unit testing helps prevent bugs and coding errors. How do your candidates approach unit testing (and are they even familiar with it)? Do they follow test-driven development or behavior-driven development? And how do they prioritize it?
How do you ensure code quality?
Do candidates use a coding standard or are they open to using yours? Do they analyze code on an ongoing basis? Also, ensure that candidates follow code review best practices.
What IDE do you use and why?
IDEs, such as Eclipse and Xcode, increase developer productivity by using a single application for combining common activities of writing software, including debugging and editing source code. Get an idea of what your candidates are used to, in case your company has requirements on the IDEs they use.
What source control do you use and why?
Source control is a way to keep track of different file versions and the source code of software projects. It makes it easier to coordinate if multiple developers are working on a project. If you have a team of developers, you’ll want to make sure that your developer uses a source control system and/or that you can train them to adopt the systems already in use at your company.
Experience interview questions
Walk me through a recent project you worked on.
If your candidates don’t have a GitHub profile on their resumes, you can ask them about a recent work project or a project they’ve worked on outside of work.
What’s a project you loved working on and why?
A motivated developer is a great asset. This question helps you form a better idea of how candidates work on projects, what motivates them, and why.
Tell me about a time when you worked as part of an agile software development process, if any?
Does your company use an agile approach to software development rather than a waterfall model? You’ll want to know if your developer fits into your processes.
How do you make project estimates?
Project management is one of the most important tasks of development teams. More often than not, projects face unexpected delays. How realistic are candidates in making estimates and how do they approach their work?
Culture fit interview questions
Tell me about a time when you disagreed on a decision. What happened and how did you approach it?
How well do candidates listen to others? And how well do they communicate their point of view? That’s what this question focuses on.
Walk me through a time when you had to depend on others to achieve a goal. How did you approach it and how did you feel?
If you have a team of developers, they need to be able to work together. Or to put it another way, the better they work together, the more productive they will be. That’s why you should figure out if the developer you’re hiring is actually willing and able to work together with others.
How do you see your role in a team and why?
And finally, how do candidates see themselves in a team? Will they improve your existing team and how?
Junior developer interview questions
If you’re interviewing for a junior developer role, you have to take into account that candidates might not be as technically skilled as more experienced developers. Instead, look at things like how motivated they are and how well they work with their peers. Here’s what to look for in a junior developer:
- Attention to detail
- Eagerness to learn
- Communication skills
- Cooperation skills
What new language are you learning and why?
Instead of focusing on technical details, look for how candidates answer this question. How do they approach their jobs? Are they eager to learn more or are they set in their ways?
Tell me about a time when you didn’t feel confident that your skills were enough. How did you approach this situation?
One of the most important things to look for in a junior developer is how good they are at asking for help and guidance. (After all, you don’t want a developer who goes off and does their own thing -- this can, in the worst case, lead to lost morale, project delays, and extra work.) Also, this question shows how self-aware developers are and how well they can identify their own shortcomings.
Tell me about a project you worked on recently. What did you like about it? What did you dislike about it?
This question helps you uncover how motivated candidates are and how they work on projects. What do they like about projects and why?
What industry websites or blogs do you read/follow?
If a junior developer keeps up to date with what is happening in the industry, you know it’s a great sign that they’re willing to learn and develop their skills.
How do you approach a situation where you don’t agree with a co-worker?
The answers you get when you ask this question can show you a few things. First, how do candidates work together with other team members? Second, are they really open to other people’s suggestions and ideas? And how do they present their own ideas?
Senior developer interview questions
A senior developer typically has about 10 years of experience (or more). Look out for these four skill sets:
- Programming skills
- Mentoring skills
- Management skills
Jerome of JWorks Studios explains what he looks for in senior developers:
“For senior levels and positions of leadership, I'll ask how they handle the people under them such as a mostly good programmer who has been slipping recently. How would they approach them? How would they help them? Questions like these are designed to gain insight into the applicant's personal experiences.
Programming is stressful and over time you can get sloppy with your work. If not caught early, this can lead to burnout! Not only is it rough on a programmer's psyche and body, but if worse comes to worse and they have to quit or are fired, we have to find a replacement which takes time and money.”
Walk me through how you measure your team's performance. What do you do if you don’t achieve your objectives?
How do candidates measure their KPIs? What are their priorities? And how do they ensure that KPIs are met or what steps do they take to understand why KPIs weren’t met? The best developers have clear processes in place.
Tell me about a time when someone on the team questioned your decisions. How did you approach the situation?
A great manager can take feedback -- it goes both ways. Your candidates should preferably be open to hearing other people’s ideas and assessing them objectively.
Tell me about a time when you noticed that a co-worker or a team member underperformed. What happened and how did you approach the situation?
How well do candidates give feedback? That’s what this question helps you figure out.
Walk me through a time when you/your team failed to deliver on expectations. What did you learn from this experience and how did you resolve it at the time?
This question is all about understanding a senior developer’s management skills. How do they go about achieving goals on a team-level? A senior developer who can analyze and problem-solve a situation is a real asset for your team.
Technical interview questions
Our strong recommendation is that you test your developer’s coding skills with a take-home coding challenge. However, you might want to ask a few questions about their language or framework of choice, especially when it comes to junior developers.
Namespacing makes it possible to group functions, variables, and more under a unique name. This improves modularity and makes it possible to reuse code.
What are the unescape() and escape() functions? Please define.
The escape() function makes it possible to code a string to transfer information across a network from one computer to another.
The unescape() function, on the other hand, decodes the coded string.
Python interview questions
Does Python support multiple inheritance?
Yes, unlike Java, Python supports multiple inheritance. This means that one class can be derived from more than one parent class.
What are the benefits of Python?
Python supports readability and that way, program maintenance can be reduced. It includes high-level data structures, dynamic typing, and dynamic binding, which makes it a popular choice. Plus, Python can be used to script, it’s open-source and it supports third-party packages.
Explain PEP 8.
PEP 8 is a set of recommendations on how to write code that’s more readable.
Java interview questions
What are the advantages of Java?
Java is relatively easy to learn and use; it’s easy to write, compile and debug. Java is also object-oriented, which means that you can create modular programs and reusable code. Last, Java is platform independent. You can move from one computer system to another and run the same program on many systems.
Explain how Java enables high performance.
Java makes use of the Just-In-Time compilation, which means that required code is executed at run time by translating bytecode into machine code. Then, the code is executed directly.
The Just-In-Time compilation is enabled by default in Java. It gets activated when it’s called, so that it compiles bytecode into native machine code. The compiled code is called directly instead of being interpreted, which ensures the performance boost.
Is Java platform-independent? Please explain.
Yes, Java is platform-independent. This means that its byte codes can run on any system regardless of underlying operating systems.
C++ interview questions
What is C++?
C++ is part of the C languages. C++ is also called “C with classes.” The reason is that it adds object-oriented programming principles (along with the use of defined classes) to C programming languages. Ultimately, it focuses on more sophisticated virtual data types and objects.
Explain the main benefits of C++.
In general, C++ is a fast and efficient language with a wide range of applications. It also gives users complete control over memory handling. Compared to C, C++ offers exceptional handling and function overloading.
What’s the difference between class and struct?
There’s only one difference between class and struct; the access modifiers. Class members are private by default, whereas struct members are public. Use classes when you need an object that has methods and use structs for a simple data object.
React interview questions
What is React?
What are the benefits of React?
React has several benefits. First, it uses Virtual Dom (a virtual representation of the real DOM) to improve efficiency. As data changes in the react app, a new virtual DOM is created, which makes the whole process much faster than rendering the UI inside the browser.
It’s also relatively easy to use, has a huge ecosystem of libraries, tools, and architecture to choose from, and thanks to component-based architecture, the pace of development improves.
What are components in React?
Components are the building blocks of the UI in a React application. Thanks to them, the UI is split up into small independent and reusable pieces. Each component is rendered independently without the rest of the UI being affected.
Over to you!
There you have it. Now you know what interview questions to ask to spot the best candidates for your team.
Want to get the coding assessment tool to go with your new interview process?