Despite the recent rounds of highly publicized tech layoffs, the technology space is alive and well, and there’s no shortage of jobs for software engineers. This is especially true for mobile engineers, given the growing number of companies whose mobile revenue has either eclipsed other revenue sources or has been the core revenue generator since Day One. At Bitrise, we interview hundreds of mobile engineers and work with more than 6,000 more mobile developers across our clients’ mobile apps.

6 Sample Software Engineer Interview Questions

  1. Describe the different classes in Kotlin.
  2. Describe the difference between a struct and a class.
  3. Explain what Cocoa is.
  4. Explain the Android library ecosystem. 
  5. What is the purpose and value of a CI?
  6. How do you debug issues with your code?

Think about it. As recently as 10 years ago, companies still mostly viewed their mobile apps as an accessory to their primary business and customer engagement models. As such, they were able to get by with just one or two specialized engineers managing their fledgling mobile app development practices. Some even lumped their mobile efforts in with their larger web DevOps departments. 

But as consumers have come to rely on mobile apps for everything from shopping and banking to adjusting their home's temperature and understanding their day-to-day physical health, mobile’s impact on organizations has created more demand than ever for engineers who understand its nuances.

For mobile tech talent, this means massive career opportunities. For businesses, it means the end of ultra-lean mobile teams, overseen by web developers who are unequipped to structure their company’s mobile operations to compete in the cut-throat mobile world. 

It also means a new approach to career pathing: rather than individuals being hired with general engineering backgrounds and then trained for mobile, companies will be looking for candidates with mobile knowledge and skills upfront.

Here are some of the interview questions to expect when being evaluated for a mobile engineering position, from baseline understanding of programming languages to platform frameworks to general software knowledge. Following each question is an example of responses that would impress employers.

More Reading on Software Engineering CareersPlanning a Software Engineer Career Path

 

Mobile Programming Languages

Employers will be looking for software engineers with a strong knowledge of the programming languages and the digital channel(s) they’ll be working with. On mobile, Swift and Kotlin are two of the most commonly used languages. Candidates’ responses to questions about these languages will be a good barometer of their mobile proficiency. 

 

Swift Questions

Describe the difference between a struct and a class. A viable candidate should be able to distinguish between value types and reference types. What will impress employers even further is the understanding of memory layout and usage based on type, along with their thoughts on the limitations in choosing a struct over a class.

Explain memory management. Employers will be looking for someone with a deep understanding of memory management that is able to recognize and understand Copy-On-Write (COW) mechanics, as well as explain various optimizations in the standard library. 

Talk to me about the different Swift architectures. Responses to this question should all include discussion of MVC, MVVM or POP architectures. To stand out, candidates can demonstrate their understanding of correctness in each model and practical experience where teams commonly misuse or misunderstand the architectures.

 

Kotlin Questions

Describe the different classes in Kotlin. Candidates should bring up some combination of “regular” classes, data classes, sealed classes, enum classes, nested classes and inline classes. Interviewers expect interviewees to be able to name two or three of these options without prompting. An even more impressive response would include an explanation of the language-level benefits of multiple classes and/or semantics, such as the difference in behaviors of object expressions and object declarations.

Describe the five scope functions. Employers will expect candidates to know two or three of the five scope functions, so they will take note of the candidates who know all five, especially if they can correctly describe the context object for each. Bonus points for anyone who can describe concrete use cases and/or how return types may affect chaining or other opportunities.

Explain nullability. A company’s ideal candidate will have knowledge of bang-bang operators, be able to describe null chaining mechanics (including how/where chains are short-circuited) and behaviors of null receivers.

 

Familiarity With Mobile Platforms

While there are multiple mobile platforms, the two most common are iOS and Android. Most companies will require mobile engineers to develop apps for both of these platforms and expect them to have a deep understanding of both to add value to a mobile team. Below are specific questions interviewers will ask about each platform.

 

iOS Questions

Explain what “Cocoa” is. Alternatively, companies may ask candidates to explain their preferred framework, which might be React Native, Flutter or .Net Core. Employers will expect candidates to understand the distinction between Foundation and UIKit (or SwiftUI) libraries. It will also be noted if you are able to demonstrate additional understanding of related OS frameworks like Core Data, Contacts, Media or Core Services. These different levels of knowledge also apply to other frameworks, such as React Native and Flutter.

Explain UI Layout. Candidates should be able to discuss how UIs are created in their preferred framework, including a conversational description of how to lay out a simple screen with an image, label, textfield and button. Interviewers will take extra note if the interviewee has a deep understanding of UI and is able to describe the algorithms for laying out UIs that work under the hood.

What is Grand Central Dispatch? An ideal candidate will be able to provide a description of the top-level items of GCD, along with an explanation of how to schedule tasks on serial queues and how to block until other work is finished.

 

Android Questions

Explain the Android library ecosystem. Candidates should have a working understanding of the distinction between Android frameworks and other common frameworks, such as Google Play. Interviewees will get bonus points if they’re able to articulate the benefits of newer frameworks, such as the Jetpack ecosystem, and/or describe the benefits of Android’s library-based approach to distributing updates separately from OS-level updates.

What is the RecyclerView? Because RecyclerView is commonly used in the Android UI toolkit, employers will expect candidates to be able to explain what it does. They will mainly be looking for interviewees to give an explanation beyond the superficial.

Why does Android have multiple test targets? To impress an interviewer, candidates should be able to clearly articulate the benefits of Android’s two unit test targets. Bonus points will go to anyone who has the experience and ability to create native test targets that run in local tests.

Read More About Job InterviewsHow to Answer ‘Why Do You Want to Work Here?’ in a Job Interview

 

General Questions on Overall Experience

It is also important for interviewers to understand an engineer’s general knowledge of mobile, not specific to any platform or programming language. The questions below are what interviewers will ask to explore a candidate’s depth of experience.

  • What is the purpose of a pull request and what is the right process for teams? 
  • What is the purpose and value of a CI? 
  • Can you describe what unit, UI, integration, smoke or fuzz tests do? 
  • Can you name any other forms of automatic tests? 
  • What process does your team use to merge code into the main line? 
  • How do you debug issues with your code?

While every company is looking for something different, the questions above cover the range of skills and expertise that employers will generally be looking for. If you come to an interview prepared with answers to the above, you are setting yourself up to show your interviewer that your skills are what their company needs.

Expert Contributors

Built In’s expert contributor network publishes thoughtful, solutions-oriented stories written by innovative tech professionals. It is the tech industry’s definitive destination for sharing compelling, first-person accounts of problem-solving on the road to innovation.

Learn More

Great Companies Need Great People. That's Where We Come In.

Recruit With Us