Hiring a software developer can be a difficult task to accomplish. Here at LightSky, we have made quite a few revisions to the interview process, and have settled on the following list of base questions that we ask when interviewing every job candidate. We’ve included a list of those questions below and give some guidance as to what we are looking for in answers. Feel free to use any of these in your interview process. I should note that these questions are often given during the first step of the interview process, usually done over the phone or via video chat. We do have a series of technical questions that we tailor to each applicant and position that we ask in a later interview.
What are some techniques you use to ensure that there isn’t a breakdown in communication when interacting with a difficult client?
I realize that for some software development companies, their developers are isolated from the clients, however for us, that isn’t the case. While we do have Project Managers, our developers are often on the call with clients and asked to explain technical concepts. For this answer, we are trying to ascertain the applicants underlying communication skills. Do they mention stepping back and trying to understand the client’s point of view? Do they have actionable steps to mitigate a communication breakdown?
What is one area of software engineering that you wish you knew more about?
With this question, we are trying to get a better idea as to what the application sees as their own limitations. Often the answers will surprise us, but there isn’t a wrong answer, per se
A new hire is having trouble estimating time amounts on tickets. You are finding that their estimates are coming in low. How would you go about mentoring them to help them improve their estimates? What advice might you give?
We started asking this question in particular as we noticed that a lot of our developers had trouble accurately estimating tickets. They say that an excellent way to establish a thorough understanding of a topic is to teach it, so we present this question as a scenario to better gauge their understanding. As far as specific advice, it can often be helpful to break a ticket down into smaller tasks and estimate those versus a large bucket item.
With web technologies changing at such a rapid pace, what are some things that you do to stay ahead in the industry?
A software developer should aim to be continually learning. Does the applicant mention specific podcasts or blogs that they follow? Are there conferences that they enjoy?
How do you evaluate if a particular framework/technology is a good fit for the client’s needs?
When new technologies arise, it can often be pretty exciting to use those in a project. However, what we are looking for out of this question are caution and forethought. Does the applicant appear to balance the desire to implement new technology with the potential risk of doing so? Would this new technology fit well within the ecosystem of the project or organization? Does this new technology have a solid open source community behind it? Mentioning these things would indicate that you have an applicant who is balanced in their approach.
What steps do you take to ensure that the code you release is as bug-free as possible? Do you consider yourself good at anticipating edge cases? If so, what steps do you take to account for those? If not, what could you do to improve?
There is no such thing as bug-free code. However, that is not an excuse for releasing poor code. A developer can do a lot of things to help mitigate the risk of releasing poor code into the wild. If the applicant discusses using best practices such as Test Driven Development and defensive programming techniques can be a positive sign.
How do you sell difficult concepts to clients when they are making a decision that you feel is not in their best interest?
There are going to be times when a developer presents something to the client that is in their best interest, but the client wants nothing to do with it. So long as our developers have done their due diligence in educating the client about the consequences of not following a particular piece of advice, then that is all we can do. For us, we are looking for an applicant to indicate that they would fight for their idea, but within the confines of professionalism and due diligence.
A client submitted a ticket indicating that, “Some users are reporting emails are not being sent. Please help!”. What questions might you ask the client? What are some of the reasons why their website may not be sending emails? How would you go about identifying which of the potential causes of the problem?
For this answer, we are trying to get at the core of how the applicant thinks. There are many reasons why a server wouldn’t send an email. Is the mail server down? A DNS issue? An issue with the form on the website itself? Has the domain been blacklisted? The key here is that they can articulate a variety of problems that can manifest themselves as an email not being sent.
What steps do you take to prevent burnout?
Software burnout is a big problem in our industry. Does the applicant have specific techniques that they use to prevent burnout? This is also a great question to help you learn more about what they do outside of work to maintain a level of sanity.
I hope you found these questions helpful and can help you either as the interviewer or interviewee. Do you have any other questions that you find useful? Let us know some of your favorites, and we will gladly add them to this article.