If you want to do your best on a mobile dev job interview, the mock interview is the most important tool in your toolbelt. After all, an interview is an elaborate performance that allows you to showcase yourself and your abilities in the best light possible. And what do great performers do? They practice. Practice, practice and practice.
Even if you have the perfect answer to a question, how you deliver it is what will determine whether you get the job or not. Doing mock interviews to practice not only your knowledge but also how you present yourself, is critical to your future success.
What You’ll Learn
- What mock interviews are and why they’re important.
- How to set up a mock interview and which tools to use.
- How to put together an evaluation rubric for your mocks.
- Where to find practice questions.
- How to find potential interviewers.
What Is a Mock Interview?
A mock interview is when you simulate a specific interview stage as closely as possible before you go through the real thing. You generally do as many mock interviews as possible before you speak with an actual hiring agent so that you present yourself as well as possible.
Why? As Ash Furrow, Senior Staff Developer @Shopify, elegantly puts it: “Interviewing itself is a skill to learn.” Mock interviews help you learn that skill.
Why Mock Interviews Are Important
While the overall benefit of doing mock interviews is to improve your performance, here are some specific advantages they give you:
1. See Yourself From an Outsider’s Perspective
It’s extremely difficult to know how you appear or sound to others. That’s no surprise, since your internal dialogue runs constantly, and your mind jumps to conclusions without fully realizing how it got there. That’s why seeing yourself from an outside perspective is crucial to your success.
Whether you get feedback from an interviewer or record yourself and play it back, the mock interview allows you to focus on how you’re really presenting yourself and understand where you’re succeeding and where you’re falling short. Knowing that lets you practice until you overcome your shortcomings and tailor your interview to your advantage.
2. Understand Your Strengths and Weaknesses
Evaluating your performance in a mock interview is crucial in knowing where you need to improve. When you know what you already do well, you can stop practicing those parts of the interview, and focus instead on the things you’re not so good at. It’s easier to practice what you’re good at because it feels comfortable and you know you can succeed — but really, it’s a waste of your time when preparing for technical interviews.
After each round of mock interviews, note what went well, what didn’t and where you got stuck. Then, set up your next round focusing on the last two categories.
Do you struggle to speak out loud as you’re working through a problem? Don’t know how to ask the interviewer relevant questions to better understand the problem? Or maybe you find it difficult to make small talk. Whatever it is, write it down and address it head on.
3. Calm Your Nerves and Boost Your Confidence
Think about the first time you drove a car. Most likely, you were equal parts excited and nervous, with an elevated heart rate that made the whole experience memorable. Now, think about the last time you drove a car. By now, it’s probably a routine activity you do without giving it too much thought. That’s exactly how you should think about interviewing.
Interviews are stressful, but the more you do them, the less stressful they become. You get used to the setting, the pacing and the back-and-forth dialogue. Slowly, they become familiar. Mock interviews will boost your confidence and mitigate your stress levels. The best way to get rid of your interview nerves is to put yourself under time pressure over and over again.
4. Practice Problem Solving
The point of an interview is to evaluate how you solve problems. It’s likely that you’ve never faced the exact questions you’ll get in your interviews. By doing mock interviews, you help prepare yourself to deal with the unknown.
If you’ve practiced your problem-solving skills enough, when you hear an unfamiliar question in an interview, you won’t freeze and think “I don’t know how to answer this!” Instead, you’ll think “OK, what does this mean, and how can I break it down?”
5. Develop Unique Interview Strategies
The more you practice, the easier it is to see patterns between one interview and the next. By trying out different ways of explaining a concept, telling a story or walking someone through your code, you’ll learn what works. These become your interview strategies, and they’re unique to each individual.
Whenever someone nods excitedly at what you’re saying, shows a lot of interest in a particular story or compliments you on how you’ve handled a situation, write it down! Over time, you’ll build a repository of unique interview strategies that you can rely on any time you need.
How to Do a Mock Interview
There are two ways to do mock interviews: in person or remotely. Pick the scenario that you’re most likely to face in your real interview. Practice in person for in-person interviews, and practice remotely for remote ones.
Do your in-person mock interview in an office with a whiteboard whenever possible. That will best mimic your actual interview. If you don’t have access to an office, buy a whiteboard and practice from home. Most importantly, practice the physical activity of whiteboarding. While it might sound silly, it’s more difficult than it sounds.
Get yourself a whiteboard, stand up and write the solutions out. The financial investment is negligible compared to the financial gain you’ll receive if you do well!
When you’re interviewing remotely, you’ll encounter different remote collaboration tools. Make sure that you know which ones you’ll use in your interview by explicitly asking the company which tools to prepare for. If they don’t indicate a preference, you should pick the tool you’re most comfortable with.
The three tools you’re likely to use are:
- A text editor for writing code.
- Xcode or the most popular IDE for your tech stack.
- A remote collaboration whiteboarding tool.
If your interview won’t use an IDE, make sure to practice coding in a text editor that has no autocomplete or highlighting. You’ll be surprised at how challenging and time-consuming this is until you’ve practiced it.
IDEs are excellent tools, but they can also be crutches that you most likely won’t be able to use in an interview. This means you’ll type much slower and you’ll have to memorize certain classes and functions. You don’t have to memorize them perfectly, but you should be pretty close to the real deal when you write your code. If you can’t remember something exactly, try to explain what the function does and make up a name.
When you finish your mock interview, run your code through Xcode or your IDE of choice to see how many errors you made. That’s a great way to improve your text editor coding skills. And hey, at least your SwiftUI previews won’t have problems loading during the interview!
You might have to do an interview that doesn’t involve code in a remote setting as well. In that case, you can use a virtual whiteboard to diagram architecture, explain a system design question or mock up a UI.
Recording Your Interview
Whether you do your mock interview in person or remotely, you must record it so you can analyze and reflect on it post-mortem.
Recording is much easier to do in a remote setting because you can simply turn on your computer’s recording software and screen capture everything that happens.
If you want to get more advanced, you can set up an additional camera, like your phone, to record your face and gestures.
When you’re doing a mock interview in person, you can use your phone to record. Make sure you position it at a good angle to capture yourself from the perspective of a potential interviewer. Use a tripod if you have one handy.
If you absolutely can’t record video, use an audio recording app on your phone to at least capture the conversation.
Once you finish the interview, take a photo of the whiteboard so you can analyze it alongside the recording.
Preparing for Your Mock Interview
To fully harness the benefits of a mock interview, you should follow a few standard steps to ensure you cover everything you need in your interview. While there are many ways to set up a mock interview depending on the type of interview you’re expecting, your preparation should follow this basic outline:
Create a Mock Interview Rubric to Evaluate Your Results
Before you start a mock interview, you need to understand what you’re trying to assess or improve. In a real interview, the interviewer has a set list of criteria, also called a rubric, that they use to evaluate you. By creating a mock interview rubric for yourself, you make it much easier to determine whether you succeeded or not.
To do this, make a list of the specific criteria you’ll evaluate and how you’ll score the results. For examples, see the list below. You could then score your results on a scale from 1 to 3, like so:
- (1): Excellent performance.
- (2): Room for improvement.
- (3): Needs more work.
Creating an evaluation rubric ahead of time is especially necessary when you’re working with a mock interviewer because it helps them understand what to pay attention to. By asking them to use your rubric to score your performance, you’ll have a clear view of what’s already working well and where to focus your attention to improve.
Common Coding Interview Pitfalls to Evaluate
Here’s a list of common things that interviewers are looking for but interviewees don’t do well. It can form the basics of your evaluation rubric for practical, computer science, system design and platform-specific interviews:
- Take a breath and don’t rush your answer.
- Don’t jump into code or solution too quickly.
- Ask clarifying questions.
- Propose a few different ways to address the problem.
- Outline your plan out loud and visually.
- Get feedback early and often.
- Listen to the interviewer and take their suggestions on board.
- Keep a running commentary.
- Ensure all your sentences are full sentences instead of something like “Uhh, maybe I could…” or “What if I move this…”.
- Explain your decisions and ask for feedback before moving on.
- Don’t be quiet for more than a minute.
- If you do want to take some time to think and be quiet, let the interviewer know explicitly with something like “I need two minutes to collect my thoughts on this; I’ll explain right after”.
Don’t skip any of these questions, even if you’re doing the mock on your own. It might feel silly, but it will be useful.
Create a Mock Interview Script
Give yourself a rough script to follow, including introductions, answering some questions about yourself and finally the technical interview questions.
Finding Mock Interview Questions and Answers
So which questions should you use when you do your mock interview? It’s important to quiz yourself using both questions you know the answer to and questions you’re not that familiar with.
For your first mock interview, use a question you know the answer to already. That way, you remove the mental load of figuring out the problem, allowing you to focus exclusively on your performance.
Once you’re happy with that, move on to questions you don’t know the answers to add extra pressure. After all, an interview aims to assess how well you think on the fly and solve problems you haven’t seen before. It’s much more important that you have a good approach than the right answer.
So where can you find challenging mock interview questions?
Start by making a list of questions related to the job you’re applying for. These are questions you understand well and are confident you can answer thoroughly.
To find questions you don’t know the answer to, have someone else come up with a question for you or find good sources of questions online.
Our video course, Acing the iOS Interview, offers common interview questions and answers for iOS. You can also check out these books for great questions and solutions:
- Data Structures and Algorithms in Kotlin
- Data Structures and Algorithms in Dart
- Data Structures and Algorithms in Swift
For even more options, check out the Resources section at the end of this article.
Set a Start and End Time
To mimic a real interview, you must to give it a time limit that you follow from start to finish. That means that even if the mock interview is not going well, you have to persevere and continue until it’s over. Don’t just give up if the question looks too difficult, or if you get stuck halfway through.
Situations like these will undoubtedly happen in real interviews, so your ability to recover from errors and missteps is crucial. Set a time limit somewhere between 45 minutes and an hour for your mock interviews.
Limit Your Access to Resources
Even though this is only a mock interview, you still shouldn’t cheat and use external tools to help you succeed. Before you start, determine which resources you can and cannot use in a real interview and stick to them. Otherwise, you’ll defeat the purpose of practicing.
Don’t use Google to look up answers, and don’t use your reference materials during the mock.
Most importantly, don’t use Xcode or your usual IDE! It’s highly likely that your interviews will happen on a whiteboard for in-person interviews or a coding collaboration tool for remote interviews. You don’t have access to your IDE in either of those scenarios, so get comfortable without it.
Finding an Interviewer
Ideally, you’ll find another person to interview you. This gives you better feedback and feels more realistic. In the best-case scenario, you’ll find someone who’s senior to you and has experience doing interviews in their current or previous roles — these people know how to evaluate candidates.
If you can’t find someone like this, your peers or friends with a similar background will also do the trick.
Here are a few options for finding people to interview you:
- Find engineers from the companies you’re interviewing for and ask them to do a mock interview with you. You can use LinkedIn, Twitter, or email to reach out. They might say no, but showing this initiative can work in your favor at the real interview.
- Ask your ex-colleagues or ex-managers.
- Ask someone from the coding community at large — they’re a helpful bunch. For example, try the raywenderlich.com Discord or the iOS Developers Slack or Twitter.
- Use a mock interview service. You can review your interviewer’s profile and rest assured that you’ll get quality feedback. You’ll find links to these services in the Resources section below.
If all else fails, you can always fly solo, record your mock interview and review it.
Another way to do more live interviews is to open yourself up to interviewing at companies that you feel lukewarm about.
You might be hesitant to interview at such companies because you don’t think you’d accept an offer from them. However, you never know until you chat with them, and you might even end up liking the company. If the worst outcome is declining an offer from a company that you weren’t initially sure about, that’s not a terrible problem to have!
Reflecting After Each Interview
Remember that simply doing the interviews isn’t enough — reflecting on your efforts and gathering feedback are the most valuable parts of the process. This is where you put your mock interview rubric to use to understand where you succeeded and where you need more practice.
If you’re working solo, you must record yourself and play it back — that’s the only way you can judge your performance fairly and without bias. This will be uncomfortable and potentially scary, but it’s the best way to improve.
By watching your recording, you can focus on your output rather than your internal thought process. Did you notice you didn’t say anything for five minutes or that you didn’t explain your reasoning? Well, that’s a mistake, so you know what to fix next time. If you’re brave enough, you can even invite others to watch with you.
When working with an interviewer, your job is to make it as easy as possible for them to understand how to give you feedback when the interview is over. Give them your rubric beforehand so that they can pay attention to the items on your list. Remember that the more specific your question, the more likely it is you’ll get an actionable response. For example, you’ll get a better response with a question like: “Hey, I think I did really well on keeping a running commentary. What do you think?” than with a generic: “How did the interview go?”
At the same time, allow them to speak freely with any comments they might have outside of your evaluation criteria.
Knowing When You’re Ready to Interview
How do you know that you’re ready to have a real interview? Unfortunately, the answer is: You don’t. Your goal should be to do as many mock interviews as your timeline allows. You’ll learn something new from every single one.
However, you should keep applying for interesting positions, even as you set up your mock interviews. If you’re tight on time, you should concentrate on doing a:
- Mock interview with a question you know the answer to, to focus on performance.
- Mock interview with an unknown easy question to see how you handle new problems.
- Mock interview with an unknown medium or difficult question to see how you collaborate with the interviewer to make progress.
Remember: “The point of a mock interview is not to prepare you to solve a problem, but to prepare you to succeed in an interview setting.” Ash Furrow, Senior Staff Developer at Shopify.
Where to Go From Here?
Now, it’s time to challenge yourself and put what you learned into action:
- Do at least one mock interview on your own, from start to finish.
- Create a list of your interview strengths and weaknesses by watching the recording and thinking about what went well and what didn’t in past interview experiences.
- Create your personal evaluation rubric based on the weaknesses you identified above.
- Find other people to interview you.
- Start a list called “My Unique Interview Strategies” where you catalog every story, gesture or interaction that received a good response from your interviewer.
- Practice makes perfect. The more mock interviews you do, the more you improve.
- Buy a whiteboard and practice coding without an IDE.
- Practice addressing your weaknesses, not your strengths.
- Record your mocks.
- Always make time for reflection and feedback.
- Be intentional about the evaluation rubric, the feedback you want and what success looks like for each mock.
Here are suggestions for handy resources to use when setting up your mock interviews.
Useful Items to Purchase:
- Reusable whiteboard sheets.
- A whiteboard.
- A revolving whiteboard with stand.
- A good quality lavalier or clip-on lapel microphone.
- A standing microphone that you can place on your desk.
- A good quality webcam.
- raywenderlich.com Discord
- iOS Developers Slack
- Interview Buddy
- Tech Mock Interview
Common Collaboration Tools:
- CoderPad for code.
- Miro for architecture, system design and whiteboarding.
- Zoom and Google Meet for online interviews.
Resources for Finding Mock Interview Questions:
- Questions From the raywenderlich.com Community
- Algorithms & Data Structure Challenges (and answers).
- Swift Coding Challenges by Paul Hudson
- Interview Cake intertwines practice questions with hints and theory into a great learning experience
- Cracking the Coding Interview
More Tips to Improve Your Job Search Skills: