The mobile industry is changing at a very fast pace. Users are spending a majority of their time on their mobiles and with Android claiming a 65% market share, it is imperative that companies/startups have their own android apps listed in the play store, growing the and giants alike.
The major challenge founders/hiring managers face while hiring for Android positions is deciding on what to expect from the next Android developer and how to evaluate if he is fit for the job, both in technical and behavioral terms. Expectations might also vary depending on the size of the company, tech-stacks etc and there is nothing like "one rule fits for all" kind of solution.
So, how do you choose?
At AirCTO, we have conducted hundreds of Android interviews and we have seen hundreds of candidates getting rejected, who, by the look of their resume seemed to be a decent prospect, if not great. To solve the question, *Whom to hire? How to hire? *we decided to interview our star expert, Gaurav Navgire, who has been consulting with us for more than 1.5 years and have done many interviews for different companies, most of whom resulted in great hires.
In his interview, Gaurav talks about how the profile of an ideal Android developer should look like, ways to interview him and validate his projects and the red flags to completely avoid.
You started your career as a software engineer and then shifted to Android. What interested you the most about this technology?
Mobility was in my mind ever since my Dad gifted me a Nokia device which had Symbian OS. What intrigued me was that the applications that would run on the device were powered by JAVA. And as I was already studying Java in Engineering, the year was 2007-2008, I got hooked to it in no time.
After engineering, I decided to jump deeper into JAVA and Mobility which was only possible if I learned J2ME. So I started pursuing a course on it but as luck would have it, Infosys gave me a joining date ( I was placed on campus). I completed my course in a hurry to join my dream company of that time. The year was 2008. It was the same year when Android was introduced to the world.
In Infosys, as a fresher, I had no choice but to continue in SAP BI for next 2 and half years as Software Engineer. During this time, Android started making news in India. When I came to know about it I took the liberty to learn it by my own and trained myself hard to be ready and employable in the Mobility Industry.
What I liked about Android was that you can create mobile applications using CORE JAVA. No need to learn J2ME etc. Also, it was OPEN SOURCE. You can create a simple game to complex enterprise applications to custom ROM creation. Fortunately, I have worked on all paradigms of Android Ecosystem. So, for me, it was a goldmine of knowledge and opportunity. I haven’t looked back since.
How does a portfolio of an ideal Android dev should look like?
An ideal portfolio of an Android dev is to have worked on some of the basic building blocks like Activities, Fragments, Services etc, to complex features like inter process communications using AIDL.
I would like to see a portfolio where the developer has created apps using pure Android APIs and not used third party libraries just for the sake of solving a programming task quickly. If he/she does use such libraries like, say, Picasso, then they must be able to explain how the actual task is handled programmatically.
You have done numerous interviews for AirCTO, what is your process to vet the candidate?
I focus primarily on the basics. And there are steps to test the basics. First are the Object Oriented programming concepts. Second is the Core Java. And lastly are the Android architecture and its building blocks. When the candidate is through with the basics then only the advanced questions make sense.
For me, these include the multithreading, design patterns etc. Between the assessment, I tend to ask few pseudocoding questions if it’s a telephonic call. Or a full fledged programming questions if it’s a face to face interview. I find it okay if the code is not 100% complete in the stipulated time. What matters is that if the candidate is able to explain the code thoroughly.
Importance of Design patterns and thread handling in Android development?
A programmer cannot call himself so if he/she do not know what are design patterns, data structures, and multi threading. JAVA is meant for multithreading and Android handles synchronous and asynchronous work beautifully.
Obviously, it must be implemented in such a way that it works beautifully, i.e, without memory leakages, time consumption etc. Candidate must know how to handle Database instance using some of the classic design patterns. He/She must know how to handle asynchronous messages across threads. Nothing puts me off when a candidate says that an android application runs in 2 threads by default.
Importance of projects? How to validate them?
When I scan a Resume, my focus is on the most current project the candidate has worked on/ is working on. I start the interview with the candidate’s explanation of his current/latest project and his/her role in developing it.
If the team is big then what components he/she was responsible for, does he/she know the app apart from their own components? If they developed it single handed, then it gives me a lot of room to validate minute details like database table modifications, play store alpha and beta releases etc. This gives me a clear idea of how to take the interview forward.
You have done a lot of interviews for start-ups as well as bigger companies. How does the approach differ in each case?
In bigger companies, the job Role is very clear. It is a well-mapped expectation from that particular role. Meaning, if I have to hire a Senior Android Engineer for a Big company, then he is expected to be part of a team to deliver a part/few components of the application.
In a startup, this is not the case. Here, we have check if the candidate can deliver as a team member along with setting best practices for peers, code reviews, source repo management, and even few DevOps tasks.
So even though the role label can be same but the expectation is different in a startup. Moreover, the same developer will have to be part of web API design and even development. So much for a senior role. But even freshers face a hard time at startups than big companies.
Your favorite problem-solving question to test the cognitive skills of the candidate?
One of my favorite questions is regarding data persistence. There are various ways where a developer can play with data being stored on the device in the database, shared prefs, files on internal/external storage. I tend to ask them traditional ways of handling persistence.
Further, I ask them questions around modern Android architecture like Room etc. This gives me a fair idea if the candidate has the right attitude towards ever changing mobile technology landscape.
Your suggestion to startup founders on how to hire their first Android developer?
As a founder, you have a lot of ideas. You want someone who can bring those ideas to reality. You want a solution to your problems and ideas then and there itself, or at-least have the ability to find an optimum solution in no time.
And doing that does not depend on guesswork. So you want your first Android developer as the one who can devise a modest technical solution for you and present to you with confidence. Then all the developer needs to do is deliver the solution incrementally and continuously.
One trick for founders is to know some tech solutions for some standard problems. For eg, push notification architecture, or should you develop a hybrid app or native app, real-time apps or offline first apps? Knowing these solutions yourself will help you to gauge the first Android developer.
So, are you looking to hire awesome Android developers who can add real value to your team? Fix up a schedule to talk to our hiring expert now.