Besides coding, many soft skills are vital to making a technology professional a productive employee, a good team worker and a well-rounded person. You do not want to hire a software developer who only knows how to churn out codes. Therefore, when preparing for a technical interview, it is important to mix some general questions that evaluate general knowledge and soft skills, with the usual technical questions you may have.
I have collected a list of my favorite general questions below for your reference.
(This list does not include non-technical behavorial questions or questions that assess cultural fit. We will explore those questions in another article. The guide for setting technical interview questions can be found here.)
- Tell us about yourself.
- Tell us about your most recent / favorite project.
- This is a classic interview question. In the context of technical interview, this is just to test the candidate’s command of his spoken language. It also sees if the candidate came prepared. Being prepared for your work, and being able to communicate well are two important qualities of a productive employee.
- Expect a well-crafted and concise answer that reveals the candidate’ past experience and his recent life.
- Red flags: incoherent speech / long recitation of past job experience / too much irrelevant details.
- What do you love about technology? / Tell me about a technology you like most.
- Also a very common interview question. This is to see if the candidate is passionate about technology. Is he/she motivated to work in a position that uses technology day-in day-out.
- Expect an interesting discussion about a technology.
- Red flags: candidate views technology only as a means to get a monthly paycheck.
- The server just went down. Customers couldn’t use the site and started sending support queries in. You investigated the issue and discovered that it is due to disk storage being filled up by temporary files generated by the server process. The person in charge of the server is currently away on holidays, uncontactable. How will you resolve the issue (direct the team to resolve the issue, if it is a managerial opening), assuming you have all the permission and access to do so?
- This question is about learning from mistake and fixing the problem for long-term.
- The actual fix to bring the server online which the candidate may propose is not important here. Expect the candidate to discuss the root course, and what does he/she learn from the mistake and how he/she can prevent it from happening in the future.
- A senior engineer should discuss more about improving the availability of the site.
- A common variant of this question is to ask the candidate to recall a critical mistake made in the past and how he/she overcomes it. I do not prefer that form of questioning because some people tend to move on from mistakes, after learning from them.
- How do you reduce the number of bugs and crashes in production?
- This question tests the candidate’s understanding of good software engineering practices, and their relation with software reliability.
- Expect the candidate to discuss the effective application of various techniques such as static typing, testing, refactoring, data modelling, etc.
- Red flags (unless it is what you want): candidate knows nothing of these practices, prefers to code and deliver fast, patch later, possibly coming from a company with this culture in-grained.
- The Linux Foundation, 10 Job Interview Questions for Linux System Administrators.
- starandtina, Github, A curated list of backend interview questions.