iOS technical interview: What should you ask in the final ten minutes?
If you are applying to a software developer position, all the companies have their own technical interview templates and it’s impossible to have a preview about what will happen during the board. But something is certain: You will be given 10(or maybe a different quantity) minutes to ask anything you want. Most people feel lost because there is a blank space in their minds and the nervousness takes control of them. Some people even think it's just a polite attitude to allow you ask your questions and you may eventually ask them in another opportunity or leave that to the offer time. What I must tell you is: this part of the interview is such important as the rest(or even more important).
It's the time when you can show your interviewer(s) about how much you are excited with this role, what you are expecting and for you to know if the company and its skill team fit your desire. And before you ask, yes, you are still being evaluated even if the challenge is over. I will provide you everything you should always avoid saying and which information you should ask about the company, not only for impressing your future work mates but also to be sure that this place is where you aim to work for so long.
What you should never ask
The first thing I need to highlight is that usually who is interviewing you during the whiteboard is someone that occupies a position very similar to the one you are applying. It may be a tech lead, a skill lead or even a standard developer who wants to measure your technical stack. It will never be your future manager neither someone from the recruitment team.
1. Don't ever ask about salary, bonuses or any kind of compensation
This is not actually a question that will result in a decline, but it's actually something obvious it's better to avoid in order to not waste your time. The technical team doesn't have any information about your work contract and how much you will get in the position you shall receive an offer. The only thing they know is the seniority they may classify you. It's not even ethic to talk about financial topics with your co-workers. Said that, remember to only ask about technical stuff.
2. Don't ever ask if you passed or if they think you are a good fit
It's good to have a feedback at the end and it's really appreciated that you desire to know, it demonstrates you are always aiming to do better. But to ask if you may pass or not brings kind of a pressure to the interviewer: he or she doesn't want to say something that you won't be happy at the same time he doesn't want to cause a hope feeling in the case you are a non-go. Actually, depending on the company, the last word doesn't even come from this interviewer but it may come from a committee. Or they may talk about your test in the following minutes. Usually, they just pass a feedback further and someone judges you based on their impression.
3. Don't ask if the company is a good place to work
This is not a red flag, but as I said earlier, it's a waste of time since the answer is obvious: It is a great place to work! Your interviewer will never bring negative points about the company he works. Of course he wants you to join if you pass the interview.
4. I don't have any question
This statement says you are not interested in this company at special and doesn't even search about it. When a team is seeking new fellows the desired ones always have proactivity and seek knowledge. If you don't ask any kind of question or don't demonstrate a piece of curiosity, there is a hight chance of a decline.
5. Be careful in how many questions you are asking
It's really good to show your interest in the company and iOS, but remember that your interviewer has his own time schedule, so he will be joining another meeting after this interview or even interviewing another candidate. It's important to respect his or her time so be careful with the time.
What should you ask
Remember that the point of this part of the interview is to cause a good impression, show why you want to work there and to fulfill your questions about the place to find out if the company is match. Of course people may have different criteria and curiosities, but I will paste the ones I would love to know if I was applying to some position.
1. How is the iOS team? Do you have an iOS chapter?
If you don't know, an iOS chapter(or skill team) is the hole set of iOS developers in the company that collaborate with themselves in order to change knowledge and provide suggestions about how to improve the iOS codebase, no matter the project or module. Ask about how the meetings are scheduled, if you have an opportunity to contribute with articles, workshops. It demonstrates you have proactivity and is always ready to help other people.
2. Which architecture do you adopt?
For me it's very important to know what is the major architecture of the project(s) because you may think about improvements you can bring or at least be prepared to study that if you are accepted to the job. Maybe the iOS skill doesn't have an unique architecture and this technical decision comes to the teams, but there are always patterns to be followed by the skill. If you wanna learn more about the existing software architectures for iOS, check this article.
3. How many people in the teams?
It may vary according to the team, but it's good to learn about how the teams are structured and which people you are going to communicate. Besides, it's important to know what are the possible teams you may be working with. If you want to understand deeper, check this other article.
4. Git flow / Pull Requests
I will split this topic into some subquestion that may raise:
- Which Git tool you adopt? (Github, Gitlab, Bitbucket, Azure Devops)
- How many people need to approve my PR?
- Can I approve all pull requests or only the ones restricted to my team?
- How does CI work? What are the steps?
- How do you organize your branches? There is a develop, epics, how do you name them?
If you want to learn more about code review, check this article.
5. Do you adopt MonoRepo or MultiRepo?
Many companies prefer to adopt MultiRepo in order to have one or more repos for the different projects and only allowed people may clone them locally, but the disadvantage of that is that there is extra work to keep everything in sync when we are handling dependencies.
If you are working with a monorepo you have all the code in a single repository and you have access to everything and easier to debug. The disadvantage of that is that you are not encapsulating anything to the other teams. In order to solve that you may implement code owners, where every time you change something, the owners of that file should approve, usually the team that is responsible for that module.
6. What should I consider in order to grow up in the company?
An interesting question. It shows you are really interested in developing a career and doing better. It shows some proactivity and answers your expectations about how it is to improve your career as a developer in this company.
7. If there was a technical question you didn't know, ask about the right answer
It shows you are always self improving and seeks to learn even more about iOS. We love to connect with people that are hungry to learn and apply new knowledge. It's an opportunity to show your action plan regarding your technical weak points.
8. Try talking about iOS
Remember that your interviewer will be someone that has the same role as you, so you may have a lot to talk. Ask about WWDC, about what does he think about some specific design pattern or anything. I can guarantee it will create a strong connection between you and if it flows, he or she will be pleased to work with you in the future. It's like magic.
9. What about the legacy structure?
If the company has more than 5 years of existence, certainly they have a legacy structure that may be a headache to everyone. Ask about what are the major bugs they face in their daily work, what is their action plan and how they could refactor. You could also ask about the percentage of Objective-C code to know the complexity of that and how will be your challenge.
10. How is interface built?
Unless you work in some kind of SDK, certainly there will be a lot of interface for you to create or give support. Ask if they are using storyboards, xibs, View Code, SwiftUI or all of them and which one they consider the best and why. If you want to learn about iOS user interfaces, check this article.
11. Which is the biggest challenge here?
Remember you are meant to be a solution before anything. Showing that you are ready to aim the core problems in the company will highlight you as a great candidate. Even if it's something you don't have enough domain, that shows you are apt to prepare yourself for what comes now.
12. Agile methodologies
It's important to understand how the work is logged in the company, so these questions may answer that:
- Do you prefer Scrum or Kambam?
- How do dailies work?
- How do you handle your projects roadmap?
- How do you manage Jira(or any other agile tool) tickets?
Conclusion
We provided 5 questions and comments that should never come in a technical interview and 12 that may be interesting to ask. Of course you won't have enough time to ask all of them, but they are great candidates to show your proactivity and to learn more the company you applied. Remember that your interviewer has a very similar position and he or she may be your co-worker, so cause a good first impression. This technical interview is a great opportunity to find about the company. I hope you enjoyed ;).