We have all been there, you have managed to get through the interview with some of the senior engineers and answered their barrage of questions to the best of your abilities.
Then the interviewer turns round to you and says, “Do you have any questions for us?”
Suddenly your mind goes blank, you stare wide-eyed at the interview and say, “No, I think you have answered all my questions thank you”.
The problem is, not having any questions for your interviewer will often make you look uninterested and more importantly, you miss out on your opportunity to find out what the company is really like.
It is your responsibility to interview the company as much as it is for them to interview you.
So before you go for that next interview, watch this video so you know what questions you need to ask.
This is a great question as it shows interest and implies that you are trying to imagine what it would be like to work in their team.
It also gives you a chance to find out what the ratio is between junior to senior developers. Are there going to be other people with more experience that you can learn from?
The size of the team is important as well. I much prefer working in smaller teams but it is a personal preference.
This is a good question but you might not get an honest answer. It could be that they are just trying to expand the team or they could be trying to backfill a vacancy because someone has left or is leaving.
If you can get an honest answer then it can give you good insights into what the company is like to work for.
When you are applying for a job they might give you some details about the tech stack on the job posting but it is to ask the engineers who are interviewing you as they will know the tech stack inside out.
This is your opportunity to find out whether the company is really as cutting edge as they say they are or whether they still have some legacy applications lying around.
Talking about legacy applications…
The best way to progress as a software developer is to be on the ground level of building out a new application. This is how you get to work with the latest technologies and learn how to design applications.
However, if most of the time you are going to be making small changes to a legacy application then you aren’t going to learn these skills and you won’t get to use the latest tech stack.
It is worth asking whether there are any plans to upgrade the legacy applications or migrate them to a new platform.
Software development generally requires large blocks of uninterrupted time so that you a concentrate and “get in the zone”. It is hard to do that when you are constantly interrupted by meetings.
If you like me and you like a fairly clear calendar then it is worth asking what meetings are scheduled each week so you can get an idea of how much time you will have to actually do your work.
Even better some companies have a day a week with no meetings which can be really useful for focussed work.
It is good to find out from a developer why they like working for a company. It could be that everyone gets on really well, there is a good company culture or the company is open to suggestions from developers.
If the best they can think of however is the free snacks and drinks then that could be a red flag.
Many companies give their employees free access to Udemy or Pluralsight which can be really useful for learning new concepts.
The top companies usually have a generous learning budget as well to cover additional courses and certifications or for visiting tech conferences.
Finding out how often a team releases code to production can be a good indicator of how robust their testing frameworks are. Teams that release every day or multiple times per day generally have a lot of automated tests.
At the very least you would expect a company to release at least once per sprint if they are using Scrum. Unless they are a big company like Apple or Microsoft, who are known for big releases. Infrequently deployments are generally a sign that there is a lot of manual testing done or a lot of red tape that teams need to go through in order to release.
Tech debt is inevitable in most places but what is important is how teams deal with it and whether the company actually lets teams have time to address it.
It is a good sign if the team has regular meetings to review and prioritise tech debt so that it can be worked on in the sprint.
If a team has a lot of tech debt and no time to address it, then it is often a sign that the team is constantly under tight deadlines which isn’t necessarily the kind of environment that you want to work in.
Finally, you want to ask about the biggest challenge the team faces so you can understand whether it is something you actually want to be doing.
Maybe they are splitting out a monolith into microservices and you have always wanted to learn that or maybe they are moving to a new tech stack.
Hopefully, your interviewers will be honest and there are some interesting things to work on.
They are unlikely to say their biggest challenge is that the company sucks and everyone is leaving but hopefully you will get some good insights by asking this question.
These are the question I would ask but it really depends on what is important to you. Are you interested in doing hackathons? Then ask whether the company does them or would be open to doing it.
Maybe there is a particular technology that you like using and you want to know if they use it too. Make sure that you ask, even if they don’t use it, as it shows that you have knowledge about it and are passionate about your work.
If you have any good questions that you always ask at an interview then let me know in the comments I would love to hear what they are.
Beyond having the right skills most employers are looking for passionate interesting people who are going to bring something new to the team. Asking questions at the end of the interview is your last chance to show that you are interested in the job.