Blinkit Interview Experience for SDE — Android Role 2024
In the competitive landscape of tech interviews, each experience offers valuable lessons and insights. Recently, I had the opportunity to interview with Blinkit for an SDE — Android role. This was a significant milestone for me, marking my first interview with a reputed product-based company. Although I did not get the job, the journey was enriching and taught me much about interview preparation and execution.
Getting the Referral:
The process began with a stroke of luck and kindness. I had reached out to an SDE-Android at Blinkit for a resume review, hoping to get some feedback. To my pleasant surprise, he went a step further and provided me with a referral. This act of generosity set the wheels in motion, and about 20 days later, I received a call from Blinkit, informing me that my resume had been shortlisted. The entire interview process took about a month.
Interview Rounds:
The interview consisted of three rounds, each eliminating candidates at every stage:
Android Core Concepts
Data Structures and Algorithms (DSA)
Hiring Manager Round
Round 1: Android Core Concepts
The first round was crucial, focusing on Android core concepts. The interviewer began with his introduction, which helped ease my initial nervousness. As it was my first interview with a product-based company, I felt quite anxious. However, his friendly approach and initial questions about my background helped me relax.
Project Discussion:
The discussion kicked off with a deep dive into the projects I had worked on, as mentioned in my resume. I described a project where I encountered a data type mismatch error in Retrofit. The interviewer probed further:
How did you identify the error?
What was the reason for the error?
How did you debug it?
I explained the debugging process, mentioning my use of Postman, which led to more questions about how I used the tool. This highlighted the importance of not only understanding the tools we use but also being able to explain our problem-solving process in detail.
App Architecture:
Next, we moved to app architecture, particularly MVVM, which I had implemented in my projects. The questions became progressively more challenging:
Practical implementation of MVVM
Detailed explanation of ViewModel and its lifecycle
One particularly challenging scenario was:
Scenario Question: If I create Activity A and a corresponding ViewModelA to hold its data, and I instantiate the ViewModel using ViewModelProviders in onCreate, then start a new instance of Activity A on top of the existing Activity A, will the ViewModel be created again for the new instance? Please explain.
Follow-up Question: What happens to the ViewModel when we navigate back from the new instance of Activity A to the original instance of Activity A?
I answered that the ViewModel is tied to the lifecycle of the Activity or Fragment, and it will be created when the Activity or Fragment is created and cleared when they are destroyed. While my answer was correct, my lack of confidence was a significant drawback. It underscored the need for thorough preparation and self-assurance.
LiveData and ViewModel:
We then discussed the practical implementation of LiveData and ViewModel. He asked about passing data between fragments and activities, followed by scenario-based questions about configuration changes (e.g., screen orientation changes). He inquired whether a bundle with data would preserve the data during such changes and explored other ways of passing data.
Intent Handling:
Question: When we send an intent with a specific type, like sharing an image, how does the Android system or other apps know which app should handle the specific intent?
This question delved into the intricacies of Android’s intent system, highlighting the need to understand the underlying mechanisms of the platform.
Coroutines:
We wrapped up with a discussion on coroutines. The interviewer asked for practical implementations and followed up with deeper questions based on my responses. This part of the interview reiterated the importance of practical knowledge over theoretical understanding.
Reasons I got rejected:
- Lack of depth in the topics I discussed above.
- I lacked confidence when they started to ask follow-up questions, even though I was giving the correct answers at that time.
- I hadn’t implemented some of the topics in depth practically, even though I was appearing for a role requiring 2 years of experience.
- Theoretical knowledge is good, but you need to implement every topic practically yourself and try different scenarios.
- You should have a logical reason for everything you have implemented in your project: why you implemented it, what the alternative options were, and why you chose that particular feature.
- You should prepare from your resume as well. Everything you have mentioned in your resume will be the basis for questions, so prepare accordingly.
Conclusion:
Although I did not secure the position at Blinkit, the interview was a valuable learning experience. It provided me with a clearer understanding of the expectations for senior or experienced roles and highlighted areas where I need to improve. For anyone preparing for similar interviews, I hope my experience offers some useful insights and prepares you for the depth and breadth of questions you might face.