Mobile App Developer Interview
Here are a few questions which, I think, make a good skeleton of a first interview of a mobile developer (or any developer, really). I collated these from real interviews we've conducted with dozens of developers in the past year, and tried to keep them as generic as possible. You may want to adapt the details to your specific situation, technology stack or role.
I see that you developed [Amazing app]. Who is it for and why?
- Does the developer understand the product he developed, i.e. the problem it solves, the target audience and business model?
- Does the developer know how to describe the main user journey in the app, and how the user experiences the app?
- Does the developer mention any of the competition for this app, or any references that go beyond the scope of his role?
What is the biggest technical challenge you've faced in [Awesome app]. How did you solve it?
- What the developer considers "technical challenge" tells a lot about professional maturity and skill level.
- How did the developer cope with the challenge? What kind of a solution was reached?
What do you do when you face a problem that you cannot solve?
- What is the developer's attitude towards "unsolvable problems"?
- Does the developer show resourcefulness? resilience? determination? motivation?
How would you implement the following [vaguely defined] feature?
For this question you may need a pasteboard for sharing code and typing.
- Does the devloper jump quickly to a solution, or ask questions to clarify the requirement and make sure it's well defined?
- Does the developer ask about the purpose, functionality, desired behavior or error handling?
How would you implement this [asynchronous application flow]?
For this question you may need a pasteboard for sharing code and typing.
- Does the developer understand asynchronous programming principles?
- Does the developer leverage the appropriate language constructs to facilitiate simple code flow, readability and maintenance?
- How does the developer handle callbacks? closures/blocks? delegates? notifications?
Which [data storage] [caching] mechanisms do you know?
- Does the developer mention more than one? two? three?
- Ask the developer to provide more details about the pro's and con's of each mechanism, and for which cases each one is more suitable.
How do you test your code?
- Does the developer understand the importance and priority of unit tests?
- Does the developer differentiate between unit and integration tests?
- Does the developer know how to write unit tests?
- Usage of automated testing, test frameworks and tools.
Pair programming session
For this question you may need a pasteboard for sharing code and typing.
Let the developer work through a real coding problem. You can create a simple "Hello World" project with a specific bug or issue which needs to be resolved or a feature that must be added to an existing application. Observe how the developer deals with the new code base and works his way towards resolving the issue. Keep tab of time.
The purpose of this task is to get as close as possible to simulating the day-to-day job and observe how well the candidate performs.
- How quickly does the developer orientate himself in the code?
- Does the developer plan ahead of executing? Does he "design" the solution?
- Does the developer require a lot of googling and stack-overflow'ing to get to where he wants?
- Does the developer exhibit good control of the language constructs?
- Does the developer provide the solution at a timely manner, or loses the plot?
You could plan this session as a separate / second interview.
Cognitive Reflection Test
- This short test consists of 3 questions and was developed by Shane Frederick of Sloan School of Management at MIT. I stumbled across it in the book Thinking Fast and Slow, by Daniel Kahneman.
- The test provides one measure of a type of intelligence, associated with applying reasoning to simple problems rather than rushing to easy answers.
- Does the developer provide the "simple" and quick answer, or does he think it over and provide the correct one?
- You want the developer to get at least 2 answers right, and preferably all 3.
Can you provide two references from your previous employers?
Ask other people, especially recent superiors, about the candidates strengths, weaknesses and performance on the job.
- What was it like working with this developer?
- Why did the developer leave the company?
- What are the developer's weaknesses? What needs improvement?
These questions aside, it's important to try and "connect" with the candidate, and assess if you'd enjoy working with him/her.
Photo by Tirza van Dijk on Unsplash