The Android dev interview process analyzed.

Android Interviews in 2019: Interviewing in Austin, New York, San Francisco, and Seattle

In the last two months I interviewed at over 10 different companies, in 4 different cities for a mid-level Android role. I talked to startups, tech giants, and established companies. Here’s what I found from going through this process and making it to 10 different on sites.

Technical Phone Screens

Technical phone screens can be broken down into the following categories:

Algo + Data Structures (22.7%), Android Casual Conversation (36.4%), Android Trivia (13.6%), Skipped (18.2%), and Android Coding (9.1%)

Algorithms + Data Structures: These were live coding experience in a shared editor with questions ranging from Leetcode easy to medium.

Android Casual Conversations: These were casual talks (usually with a manager) about what excites me about Android, questions about my approaches to solving common Android problems, and deeper questions about my Android experience. In these interviews I talked about architecture, testing, networking, dependency injection, etc.

Android Trivia: These were quick one answer questions about Android, covering Activity Lifecycle, Services, AsyncTasks, ContentProviders, Broadcast Receivers, etc.

Android Coding: These were live Android coding exercises using Android Studio while I shared my screen — both building and extending real Android apps.

Skipped: Quite a few companies let me completely skip this portion, especially as I moved forward with other companies and had tighter deadlines.

Take Home Assignments

About 25% of companies gave a take home assignment. The assignments varied but all involved network requests. Some were UI heavy, others simple list views. Some companies wanted them to be completed as fast as possible, while others wanted well thought out architectures and implementations.

Onsite Interviews

The average onsite interview lasted 4.5 hours and was typically made up of 5 different interviews.

Algo + DS (16.7%), Android Knowledge (35.4%), Behavioral (29.2%), and Teamwork (18.8%)

Algorithms + Data Structures: These questions were usually Leetcode medium level and the interview would typically consist of one question with some extensions or two unique questions.

Android Knowledge: These were interviews that challenged my Android knowledge and abilities:

App Building: Starting from scratch or adding onto an existing Android app — live coding with Android Studio and full internet access.

App Architecture: How would you build X app? What tools/libraries would you use? What are the tradeoffs of your decisions? How would you test? How would you handle errors? These interviews were done with a whiteboard and interviewers expected architecture diagrams.

Behavioral: Typical tell me about a time when questions. A large emphasis was placed on how my efforts have made an impact and how I resolve conflicts.

Teamwork: These were interviews with potential working partners such as designers, product owners, backend engineers, etc. These interviewers wanted to know how I had worked with other groups in the past and how I collaborate. Similar to behavioral interviews but more specifically linked to my interactions with a certain role.

Breakdown by Onsite

Each company had its own unique distribution of interview types. In the chart below, each row represents one onsite and its ratio of interview types.

Miscellaneous

I took 53 different phone calls with recruiters (Intro phone calls, interview preps, check ins, and offer/negotiation calls).

The average call with a recruiter lasted 13 minutes.

28% of phone calls with recruiters were unscheduled (cold called).

80% of onsites provided me lunch, and 25% of those lunches were also interviews.

After onsite interviews 50% of companies were able to give me a response in 1–2 business days, whereas 30% took 3–4 days and 20% took more than 5.

Advice

Sign up for a free trial of Calendly. This will help you avoid all the back and forth scheduling emails and accidental double bookings. I set mine up to have 15, 30, and 60 minute meetings, synced it with my Google calendar, and had it automatically add buffer times to my meetings (this last part keeps you sane).

Save every phone number and contact name to your phone. Many recruiters call you out of the blue and it is extremely helpful to know who’s calling and what company they’re calling for.

Pramp.com was wonderful for practicing for algorithms and white boarding style interviews. It’s completely free and I can’t recommend it enough.

Build several simple Android apps and be able to build them quickly. Apps should be able to make network requests, show lists of data, handle rotation, and be testable.

Hopefully you found this useful for preparing for Android interviews. I’d love to hear what other people’s experiences have been, please share in the comments! Good luck out there!