Android developer skills are in great demand, and this demand is expected to grow even further as Android is the dominant mobile operating system today, running on countless models of smartphones and tablets, as well as many other devices. As a result, a recruitment campaign for Android Developer is pretty hard. It has to be quick and accurate if you want to hire the best ones. Otherwise, your competitors will steal you candidate. Screening usually takes the most time so let’s find out how to do it in a fast and effective way.
1. What is Android?
Android is the world’s most popular operating system dedicated mainly to mobile devices. The source code is developed by Google under the Android Open Source Project (AOSP). Subsequent versions are usually released annually and are announced at Google I/O conferences.
Its characteristic feature is that apart from phones, it can be installed on tablets and a number of other embedded devices, e.g. TVs (Android TV), displays in cars (Android Auto) or watches (Android Wear).
The main advantages of the Android system are the following:
- open source code (https://source.android.com/)
- the platform is developed by Google. Every half a year, the system provides the users and programmers with something new. Google is very particular about developing the entire ecosystem, it develops a number of libraries, tools (IDEs based on IntelliJ), organizes a lot of conferences, workshops, screencasts, etc.
- consistent design, especially since the concept of Material Design was introduced. The constant struggle to maintain a consistent look of applications in Android, so that when switching between apps, users do not get lost as to how to use a particular app.
2. What is important for an IT Recruiter to know about Android?
There are certain things that an IT recruiter should be aware of as far as Android is concerned:
- Architecture of the Android platform: how many processes are launched during app startup, how many threads are started, in what ways does the application communicate with the system and other applications (e.g. as in the following scenario: picking a contact, sharing a picture), what is a main thread and how does it work in Android
- Basic components of the platform: Activity, Fragment, Service, Intent, BroadcastReceiver, ContentProvider.
- Standard and most popular libraries supporting the creation of applications. These are some examples of libraries: Android Support Library, Google Play Services, Retrofit, OkHTTP, rxJava, EventBus, Dagger
- Design patterns which enable writing applications in a way which allows easy maintenance, extension and testing. Latest trends: MVP, MVVM, Clean architecture
- Rules concerning the creation of efficient views, ability to create reusable custom views
- Ability to deal with the market fragmentation and the multitude of various devices from different producers with various system versions. Mechanisms that the platform offers to ensure smooth operation of the application on devices with screens of different sizes/densities, various language versions, various versions of the system itself
- [On a lighter note] Each Android version features a digit and a letter (from with C up to N). Google always tries to come up with a name of pastry or something sweet beginning with a particular letter and this is how it calls subsequent Android versions: Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Icecream Sandwich, Jellybean, KitKat, Lollipop, Marshmallow, Nougat). A candidate should be able to enumerate these names if s/he is interested in the life of the platform and its development 🙂
3. How to verify Android developer skills in the screening phase?
Screening is hard when you are not an Android developer yourself. It is even harder when the technology itself is developing all the time and requires you to be up to date. So, let’s move on to a few practical recruiting tips on how to verify Android developer skills.
3.1. Technical screening of Android skills based on CV
A candidate’s CV can tell us a lot of useful information, but you need to know how to pick what is most important. As an IT recruiter look for the following valuable information in a developer’s resume:
- A number of applications released on Google Play. If they are still available, it should be checked what they look like, how they work and how many downloads it has in Google Play
- How large was the developer’s team and what was their role in the project? Was the project that they were working on also created for other platforms (iOS? Windows Phone?)
If you cannot figure that out from the CV itself, it is worth asking these questions during a telephone or video interview.
As a Technical Recruiter looking for an Android Developer, you should be familiar with all terminology used by candidates. That’s why we developed this Android glossary for IT recruiters so that you speak the same language as your candidate in the screening process.
Android technology – basic glossary of Android terms for IT recruiters
|Android basic components||Activity, Fragment, Intent, Service, BroadcastReceiver, ContentProvider|
|Testing tools||Espresso, Mockito, Robolectric|
|Basic UI components (mostly from Material Design)||Toolbar, ViewPager, RecyclerView, CardView, Floating Action Button, Navigation Drawer, BottomBar, CoordinatorLayout|
|Build tools||Gradle (Eclipse and ADT are legacies)|
|Most popular libraries||Support library, Google Play Services, Retrofit, EventBus, rxJava, rxAndroid, OkHttp, Dagger|
More information on the Android technology which is useful from the perspective of an IT recruiter
In the world of Android, there are some key system releases which are revolutionary in a way or introduce something new. For further information go to http://socialcompare.com/en/comparison/android-versions-comparison or see the brief summary below:
- Multi-window mode (two applications simultaneously displayed on a divided screen)
- Runtime permissions. New approach to requesting access to users’ sensitive data (based on the example of iOS)
- Material design. UI revolution in applications
- The first version of the system which does not have variants for phones/tablets, but operates on devices with any types of screens
Certification in Android
- Google recently implemented a certification scheme which did not gain popularity, therefore it is of little importance in the recruitment process. For more information go to: https://developers.google.com/training/certification/
Previous experience: what is important for an IT recruiter
If you see from an Android developer resume that they’ve had a couple of years of experience, dig a little bit deeper and look for the following things in their CV:
- I already wrote about this in “What to take into account when screening CV?”. Experience is the most important: teamwork, the number of publications and production issues that a candidate experienced and can fluently talk about in an interesting way which goes beyond “my team and I solved such and such problems”. It is important what problems the person solved, what they contributed to.
What else in the CV can help assess Android programming skills?
- Everything related to Java programming. Workshops, certificates, knowledge of patterns. Java is Android’s basic programming language and even if other languages appear, they would be based on JVM (specifically Android Runtime, ART), so being familiar with all limitations and rules concerning Java programming is very useful.
3.2. Technical screening of Android skills during a phone/video interview
A resume gives you some basic information on a developer’s skills, but it won’t tell you anything about the developer as a person and is not sufficient to provide you with solid knowledge of their coding skills.
Below you will find a few example questions that will tell you more about the candidate.
1. Tell us about the most interesting problem you encountered after publishing an application for users. How did you solve this problem?
- This question reveals any deficiencies in the experience of a decent developer who should provide tons of examples of the top of their head of problems they managed to solve that made them proud. If someone just participated, they may get lost in answering the question.
2. Enumerate ready-made components of Material Design whose implementations can be found in the Support library family.
- An answer to this question manifests knowledge of the basic family of libraries which each and every application uses. A candidate should be able to enumerate at least the following: CardView, RecyclerView, Floating Action Button, Toolbar, Navigation Drawer. If a programmer knows these components, it means that they will not reinvent the wheel when creating a classic application, but use reliable and widely used components from a free library.
3. What is your favorite shortcut in Android Studio?
- An answer to this question shows to what extent a candidate is interested in the tool they use on a daily basis and to what extent they mastered it. A candidate should easily enumerate at least 4-5 shortcuts they use every day. The more examples they give the better it reflects on them. It is a bad sign when a programmer who does not know shortcuts and uses the mouse for everything.
4. What do you have to do to make an Android application freeze?
- An answer to this question is: perform too many operations in the main thread. An answer to this question manifests a candidate’s knowledge of platform architecture. Being able to answer this question is an absolute must. A candidate who is unable to provide an answer will not write an application which is fast and stable from the point of view of its users.
5. How do you deal with fragmentation?
- The market of phones with Android is the most diverse of all mobile platforms. Being able to answer this question means that a candidate knows the basics of the platform well, they know what it offers and know how to ensure compatibility of the application on a particular version of the system, devices with various screens, etc.
6. It is also a good idea to ask about the source of the developer’s projects, i.e. PSD or provided by a designer. How do they deal with cutting graphics and cooperating with designers?
4. Devskiller ready-to-use online Android developer skills tests
At DevSKiller we provide companies with an infrastructure which lets them create their own programming tests, where they can use their own code base, whole IT projects using frameworks and libraries, to test programmers online. However, we also have some ready-to-use .NET coding tests which you can use in your recruitment campaign.
Contains the following tasks:
1) Choice questions - assessing knowledge of Android development
2) Programming task - social network login application, candidate needs to finish an implementation of social login flow
Contains following tasks:
1) Choice questions - verifying knowledge of a wide variety of common Android Features.
2) Programming task - Fix an Android app so that it properly filters digits
Contains following tasks:
1) Choice Questions - Verify knowledge of key Machine Learning concepts including decision trees, and linear regression
2) Choice Questions - Verify knowledge of Android topics including layouts, permissions and serializing POJOs.
3) Programming Task - Build the features LoginActivity and MainActivity into an Android Social Media App.
Contains the following tasks:
1) Multiple Choice - Answer 3 questions on Android
2) Multiple Choice - Answer 3 questions on Android
3) Programming task - Add features to an android app