So your interview is going along great, you’re swiftly navigating their questions with gusto and aplomb, then they ask you, “Okay, do you have any questions for us?” For the first time in the interview, you don’t know what to say. How many questions should you ask? Are certain questions offensive? Is this a trick question about asking questions?!
Hint: If the interviewer does not give you time to ask questions, especially if they sidestep around your attempts to ask questions, skip this company and move on to the next one. They’re probably hiding something, like their sweatshop headquarters, lack of decent coffee, or their ancient PowerPC developer workstations. The interview should be as much about whether the company is a good fit for you as them figuring out if you’re a good fit for the company.
If you’re interviewing with an engineer/software developer, feel free to ask them an opinionated question, like if they prefer Vim or Emacs, Nginx or Apache, or Supervisor or Upstart. You shouldn’t start an argument with them of course, but ask questions that give you a sense for how they think and what their preferences are.
Here are some specific questions I like to ask when interviewing for technical positions. I don’t encourage you to just read through this list in an interview, tailor these questions to the company and your personal interests.
1. What is a typical day at your company like?
This is a great question that gives you an idea of what your workday could be like. Ask questions about daily checkins, meetings, typical hours, whether employees eat meals together or not, Agile/Scrum, and management style.
2. What are the sizes of various teams?
I encourage you to ask this question about teams you’re specifically interested in. Their response should give you a picture of how any people you’ll be working alongside and how the team communicates with management. Additionally this question might give you insight into which team you’d like to work with.
3. Do developers use Mac, Linux, or Windows workstations? Why?
Chances are most employees are going to be using the same machines for development. If you strongly prefer a certain operating system, mention this upfront. They may be able to accommodate you or they’ll at least explain their reasons for the company’s preference.
4. What does your company use for source code management? Is submitted code reviewed first?
5. Does your company have a mentorship or onboarding program for new employees?
Inquire about what new hires do in their first two weeks to get acquainted with the company and its codebase. If you’re applying for an internship at a mid-size or large company, ask if there are any activities or outings for interns. Assuming you take the internship, many of these interns could be your future coworkers so you’ll want to get to know them and figure out what kind of personalities are attracted to the company.
6. How does your company assess the performance of employees and how often is this done?
Some companies are known for strangling employees with management constantly evaluating them. This question will give you a sense for how management keeps tabs on employees and what incentives (or bonuses) they offer for outstanding work. Having your performance reviewed isn’t necessarily a bad thing, this information can be instrumental in pointing out which of your strengths are being recognized and areas that you have room to grow in. A little constructive criticism can be very helpful.
7. Does your company encourage developing internal tools to automate tasks and increase productivity?
Some companies are against their employees spending time in the office on other projects, however related to the company they may be. If you spot an opportunity to increase the productivity of yourself and other developers you should be encouraged to work on a solution. They key is to get approval first and demonstrate the potential benefits of your project.
8. What are some of the biggest challenges I will face?
Ask the interviewer about challenges that other employees face at the position you’re interviewing for. Show that you don’t shy away from problems and are interested in coming up with innovative solutions. This question can also serve as an opportunity for you to discuss how you would specifically address some of these challenges.
9. What is the culture of your company like?
This is a very important question because every company can have a different culture on some level. Ultimately this often ends up being the biggest determining factor in whether or not the employee feels like the company is a good fit for them. Ask if employees go out to lunch together or hang out after work, what kind of values the company was founded upon, what the general atmosphere in the office is, how approachable upper management is, and how many ping-pong tables are in the rec room.
10. Do you have any reservations about my skill set or are there any strengths I will need to develop while working to be a contributer to your company?
I like to save this for my last question. It gives you a chance to find out what the interviewer really thinks about your fit for the position in the company. One time I asked this question in an interview and the interviewer said he was concerned that I didn’t have any Java experience. Now I am by no means a big Java fan, but I’ve got plenty of experience with it. I pointed out to him that it was on my resume and in addition to working with Android, all of my university coursework has been in Java. If I had not asked this question it’s likely that the interviewer would have just skipped over me, all due to a simple misunderstanding.
I encourage you to ask questions like these so that you get a much better sense of the company than you’ll be able to gleam from a job post. Additionally, many of these questions demonstrate to the interviewer that you’re really interested in the company and want to make sure they’re a good fit for you. They’ll want to qualify themselves and their company to you to prove that they’re good enough to have you as an employee. Never be afraid to ask questions!