Nailing your first job as an Android developer — Part 3: Getting ready for the interviews
By: Gaëlle Minisini
Tags: Job Hunting, AndroidDev, Job Interview, Android, First Job

Each company has a different process. The order and the number of steps are different and the hiring process is usually quite different between a start-up and a big company. Nonetheless we can differentiate 3 types of interview: the first contact, the behavioural interview and the technical interview. It doesn’t necessarily mean that you will have 3 interviews. Some companies mix the behavioural talk and technical questions in one interview, others like to separate the behavioural talk and/or the technical talk in several steps.

Once again this is based on my own personal experience and it will be a bit different for you. But I hope I can give you an idea of what type of questions to expect and how to react during an interview so you’ll know how to get ready and hopefully move to the next step of the hiring process.

The first contact

If you caught the recruiter’s attention you will receive an email asking for your availability for a 20min chat (usually over the phone). It is usually pretty casual, with only one interviewer.

Most of the time your interviewer is a recruiter and not a developer so you won’t have any technical questions. The main goal of this chat is to have a better overview of your experiences and skills and give you some details about the position to make sure you could be a good fit and that what the company has to offer would fit you (salary range, location, role, etc…).

We can divide this interview in 4 parts:

The recruiter introduces the company. You introduce yourself. You will be asked some questions about your experiences and knowledge. The interviewer will give you some time to ask any questions you might have.

The company introduction

Most of the time the interviewer will start by introducing themselves then will talk about the company, usually a brief history and an explanation of their products or services.

I had an experience where the recruiter started by asking me what I knew about them. I’ll recommend you to take some notes about the company before the interview. Go through their website or LinkedIn page. No need to go too much into details but you should have a good understanding of the products they are offering and the type of company (size, field etc…). If they are developing an app that you can find on the PlayStore, download and play with it for a bit.

Your introduction

You will be asked to introduce yourself and to talk about your experiences. If you wonder how much into details you should go, try to match the level of details they gave while introducing the company. Usually It should take a couple of minutes to introduce yourself, no need to go into deep technical details, if you are talking to a recruiter, they won’t be able to understand.

Talk about your most relevant diploma and experiences (I usually go from the most Android-related experience to the least Android-related experience). For each one give an example of what you’ve learned or the skills you have had to put in application. Try to mention skills they asked for in the job description but no need to quote all of them, they will ask questions afterwards and you’ll have a chance to show the number of skills you are matching. Try to re-use the same vocabulary and key words than in the job offer. You should have done a similar exercise with the cover letter but try to use different examples if you can to show that you have more than one experience with a specific skill.

Don’t judge yourself in a bad or good way (unless you are explicitly asked to) only talk about facts:

I have used retrofit a lot. NO!

I have used retrofit in my last three projects. BETTER!

Questions about your experience

The interviewer will ask you several questions about your past experiences and the skills you have. It will be questions like:

Have you ever use Dagger in the past?

Do you have any experiences working in an Agile team?

How many years of experience do you have in Android?

How would you scale your skill level in Kotlin from 1 to 10?

Your interviewer is basically looking to check boxes. The more boxes are checked the more chance you have to move to the second step of the hiring process.

Do not answer with only “yes” or “no”, provide a clear and concise example to demonstrate that you have put your skills in practice. Try to always answer positively but don’t ever lie! If you can’t honestly say that you have experience with the technology, a good answer would be:

I have some basic knowledge about how work coroutines in Kotlin but I have never applied my skills into a finished project

This part of the interview required a bit of preparation. Here’s how I am getting ready for it:

I re-read the job offer and take note of each skill mentioned. Next to each one I write an example from my experiences where I have improved this skill or had to use it (I try to not give the same example as the one in my cover letter). If I don’t have experience with one of the skills mentioned I go read a quick introduction online of what it is and the basic principles.

You will probably be asked about your salary requirement. Before your interview ask other junior Android developers in your area what their salary is. Use Glassdoor tool to look at the salary range for a junior developer in your country/city. If you are applying for a big company Glassdoor might even be able to give you the salary range for their developers. You can answer this way:

I know that a junior Android developer in Vancouver area is being paid around **** and **** so that is the kind of salary I am looking for but what is the salary range in your company?

Your time to ask questions

At the end, the interviewer will give you some time to ask questions. You HAVE TO ask questions to show your interest. A bare minimum for me would be at least 3 questions.

Examples of questions you can ask:

Is the new development in Kotlin or Java? What design pattern are you using? If you interviewer is not a developer them might not be able to give you lot of technical details but most of the time they can give you general answer

Do you accept remote work? Do you have strict or flexible hours?

Ask more details about their clients/products/services etc…

Make sure to not ask for information you can easily find on their website. You should have done some research about the company prior to the interview. Show that you have done those researches by asking to clarify some information they have online:

I saw you are offering that kind of service but what about …?

Can you tell me more about this ...?

One of the most important question to ask is:

What are the next steps of the hiring process?

So you’ll know how many interviews you will go through and what kind. Make them specify if the next step will be technical or just about your experiences so you can better prepare.

Finally, don’t forget to ask when they will get back to you and let you know if you are having another interview or not so you can send a follow up email if they ever take more time.

The behavioural interview

The interview process

This interview is usually longer than the first one, 45min to an hour. You can have between 1 and 3 interviewers, they can be managers, supervisors, developers… It varies a lot but most of the time at least one of the interviewers will have a technical background.

The main goal of this interview is to evaluate if you have a good developer mindset and will be able to adapt quickly to new technology. You will also have to show your communication skills and demonstrate that you can communicate with your coworker and know when to ask for help.

From my experience, your answers to those questions will be really important to start-ups. They’d rather someone with the same mindset and values over someone with strong technical skills but with whom the team won’t get along. Which means they will probably do a full interview just about your soft skills, while bigger companies ask those questions during the technical interview or the first contact.

As a junior developer your soft skills are your strength. It is normal to have limited technical skills in a new field. But your mindset and your strategy to tackle challenges will make a difference in how fast your skills will grow. This interview is really important!

Type of questions

Those questions will be about your global experiences and will require detailed answers. Type of questions that can be asked:

Give me an example of a situation where you had to handle a conflict with your manager or a coworker. How did you handle it? Describe an important project you worked on. What is the most important thing you learned at your last job? What was a difficult situation that occurred and how did you handle it? What did you like most and least about your last job? How do you stay informed about the latest trend in Android? Tell me about a time where you made a mistake that impacted others? How did you handle the situation? What was the biggest challenge you had to face while developing an Android app? How did you handle it? Tell me about a project you've worked on from conception to delivery. How did you organize your work? How would you explain a new concept to a less experienced Android developer? What are your solutions to explain a technical problem to a non technical person?

If you are freshly out of school those questions will be more oriented toward your school projects and your teachers.

(If you have more typical questions that are not listed above please submit your suggestions in the comments!)

How to get ready for the interview

It is hard to predict exactly which questions they will ask but you can prepare anyways by trying to answer the few questions listed above. They are pretty typical questions for this type of interview. You will probably have to answer at least 2 or 3 of those questions in each of your interviews.

For each project you’ve worked on and each work experience, list the following:

the most challenging part of the project/job

the thing you enjoyed the least while working on it

the thing you enjoyed the most while working on it

the errors you made and the lessons you got from it. How did you fix them or what did you change in your other projects because of it

if you worked on a team, what was your role? What conflicts did you have and how you were able to resolve them.

I was lucky that my school offered me two month of coaching by a professional after graduation. It did really help me with that kind of question. I’ll recommend anyone who can have access to coaching sessions to get the most of it and practice this interview a lot. You can also practice with a friend and make sure to follow the guideline described in the next part. Finally, you can use a free tool, Pramp, that will match you with another peer to practice the behavioural interview (they offer training for technical interviews as well).

How to answer

Listen carefully to the question, it is ok to take some time to think about an answer. For the most difficult questions, ask them to repeat or precise their questions if needed. It will give you more time to think and will avoid a too long and awkward silence. I sometimes make a joke to give myself more time to think. Don’t forget that it is not because you are the one who is being interviewed that you can’t ask questions. Ask for clarity every time it is necessary. It is always better to ask too many questions than not enough. It demonstrates that you know to take the time to make sure you have all the keys you need before trying to solve a problem.

Describe the situation, put things in context so your interviewer can understand the problems you were solving at the moment. Explain the task you had to complete. Describe the actions you took to complete this task, how did you organize yourself and where did you look for help when you needed it. Show that you are able to solve problems yourself but know when to ask for help. Finish with the result of your actions, what happened? Did you succeed or failed? Always focus on the lessons you’ve learnt and the work you’ve done to make the team and the project move forward.

Even when you have to talk about a negative experience (an error you made, a task you didn’t like etc…), focus on explaining how you turned this into a positive one and learn from it. Making mistakes is still the best way to learn as long as you get the lessons from it. The more mistakes you make during your training the less you’ll make while working.

The more projects you’ve worked on and the more professional experiences you have (related or not to Android) the easier it will be to answer and find a good example to talk about. Your answers don’t all have to be Android related. You can take an example from your student job, your hobby etc.. It is good to show that you have experiences in other fields. But try to answer mainly with Android or tech related experiences to show that you have already tackled similar challenges than the one you might encounter while working for the company.

End the interview

Once again at the end of this interview you will have some time to ask questions. You HAVE TO ask questions to show your interest.

If you are talking to a manager or a lead it will probably be a good time to ask questions about how they organize their work, how the tasks are being split up between the teams and the developers…

As always, end by asking what is the next step of the hiring process in order to be ready and also ask when can you expect to hear back from them.

The technical interview

This interview will also typically take between 45min and an hour. Your interviewers can be between one and three. You will usually have in front of you an Android lead and a senior Android developer. Sometimes a manager will join them to ask some behavioural questions at the same time.

The main goal of this interview is pretty simple, demonstrate that you have basic knowledge in Android and in programming in general.

The technical test

Most companies will give you a take-home challenge to do before this interview so they can then ask questions about your technical choices and have a better idea of your skills.

Typically you will have to develop a simple Android application within a week. I had one experience where a company gave me a challenge to do in 24 hours with a technology I had no experience with. I had to develop an application in React Native.

Focus on code quality and architecture over the number of features. Your code should be easily testable (writing tests is even better), documented and easily readable. Modifications of the data source or the UI should require as little work as possible. If you are pulling data from the network, think about data persistence to avoid too many network calls.

If you are using a library, make sure to be able to mention other ones that can do the same things and explain your choice during the interview. Why did you pick Koin over Dagger for dependency injection for example. Look how you could have done it yourself without the library and make sure to be able to explain the basic principles. How would you have created a viewModel Factory for injection?

Show that you are up to date with the latest technologies in Android. You can use Coil instead of Glide for image loading, use Coroutines to manage threads etc… Don’t be afraid to implement an experimental API like Flow. But don’t forget to add the experimental annotation in your code when you use it. During your interview explain that you are aware that it is not safe to use in production.

Finally, try to use the technologies you know they are using internally (the one mentioned in the job offer or they told you about in previous talks).

How to get ready for the interview

Hopefully during your training you have acquired enough knowledge to answer most of the questions you’ll face during your interview. But explaining a concept with only words is not always easy. Pedro Vincente has put together a list of technical questions for Android and Kotlin in those posts:

To get ready I copied/pasted all the questions from his post in a Google Doc and wrote an answer for each of them in a few words. Enough to make sure I was familiar with the concept and will be able to explain it during the interview. Because all the companies I applied for, develop in Kotlin I only answer the junior section of the Java questions.

Re-read the job offer and the skills they are asking. For the technologies you haven’t had a chance to use yet go read some articles about them. It is even better if you have time to experiment with them in a small app. You should be able to answer some easy questions about them, know what they are used for, and what other alternatives do you have, pros and cons of each.

During your interview you might be asked to do some coding on a white board in order to test that you have some basic algorithms knowledge (I only had to do this exercise once). You can practice your algorithm skills with Codewars or Pramp

You should be up to date with the latest technologies and trends in Android before your interview. Tyler McCraw wrote a great article listing all the different sources you can use to be aware of what is happening in the Android world.

My favourite sources are the podcast Fragmented and the different Android publications on Medium

How to answer

Answering to most of the questions should be pretty straight forward. As always take the time to listen to the question and think about your answer.

It’s okay to not be able to answer all of the questions, Android is a really complex world and it is impossible to know everything specially if you are just starting in the field. Don’t be scared to say that you don’t know but ask them to explain to you to demonstrate that you are always looking to grow your skills. Nonetheless it is always better to be able to provide at least a beginning of the answer. If you are being questioned about a technology you are not 100% familiar with you can still answer with what you know but ask them if they can complete your knowledge. Example:

Q: What are the pros and cons of using RxJava vs Flow when you work with streams?

A: I know that Flow is part of the Kotlin language so it is easier to use and to test but still not fully stable when RxJava has been used in production for years. Flow being pretty recent I haven't had a chance yet to use it a lot so I don't know more about it. Do you have anything to add?

Some questions will be pretty vague and you’ll have to ask for more details from the interviewer. Don’t be afraid to ask questions to narrow down a problem.

Udacity provided a great course to be ready for that kind of interview. I strongly advise you to take a look at it:

End the interview

One more time at the end of this interview you will have some time to ask questions. You HAVE TO ask questions to show your interest.

It will be a good time to ask technical questions about the app they are developing. Which pattern are they using, how much tests are they writing etc…

Don’t forget to end by asking what is the next step of the hiring process in order to be ready and also ask when can you expect to hear back from them.