Flipkart Interview | SDE-3

Kanchan Pal
6 min readOct 4, 2021

--

I’ve recently got a chance to interview with Flipkart. As per a few requests regarding sharing Interview experience, I would like to share my experience here and help anyone who wishes to apply for Flipkart for the Mobile developer role.

Photo credit: Unsplash

First Flipkart uses a combination of React Native and Native Code (Android/iOS) for its app, but they solely interview on the basis for Android/iOS development if the candidate has no prior experience in React. It doesn’t affect the recruitment at all. The interview process has been a good experience as well as a very constructive discussion.

This article would be sharing the nature of rounds and what kind of questions and discussions were like in order to help the readers get the best idea of the interview, instead of what questions were there (Abiding questions confidentiality)

Interview Rounds (5)

  • Machine Coding
  • Data Structures and Algorithms
  • Android/iOS in-depth (whichever is your field)
  • System Design
  • Hiring Manager Round

Machine Coding Round: (2 + 1 hours)

This round involved creating a sample Android/iOS app from scratch having minimal sets of UI. This round intends to check the architecture and code clarity in candidates coding styles as well as the functionality and accuracy of the app. One problem statement would be shared with you at the start of the interview. Starting 30 mins will include Introduction and problem statement discussion and expectations from the app.
The problem could be like fetching some data from API, combining two APIs and modifying it a bit according to the problem statement and then display on the UI. I had to complete it in 2 hours, post which interviewer joined back for 30 mins and asked few questions, made few suggestions and asked for the improvements which I could do in the app given more time.

Follow up questions could be like
• Rotate your device and see if it re-fetches data or not. (Use MVVM)
• How to make it test friendly etc. (Explain Dependency injection)

What to focus and work on:

  • Functionality of the app: The output of the app should be the same as required by the problem statement. For eg: If a given list has to be shown in a definite order as per some calculation, then the logic should be right and should be in that order only.
  • Architecture & separation of concern: It would be really a bonus if you are aware of the latest tech components of Android. You could choose simple architecture and justify your coding style and your choice of jetpack components in the interview follow up questions which is for half an hour after you finish coding.

The above two criteria would be sufficient enough to clear the round. A suggestion is given 2 hours of the time limit, don’t go much into heavy library implementation like dagger etc and UI polishing rather focus on correctness of the app and good architecture. Only once the functionality of the app is achieved then improvise based on the remaining time.

I had displayed a simple UI with the right logic of output and had used MVVM, clean architecture pattern and Kotlin language to code.

Note: For a few candidates, it might not be online rather they have to do the same assignment at home.

Data structures and Algorithm : (45 mins + 15 mins)

This round had two medium level questions, I used to practice from leetcode and I think that would be sufficient for this round. I was asked two questions from Priority Queue (Min Heap and Max heap) and one BFS problem.
Can’t share exact questions for confidentiality. 45 mins were to solve 2 questions and 15 mins would be the Introduction in start and Q&A in last.

I would recommend a few topics as a must like Binary search, Priority Queue, Array and Trees. As per my information quite a few time dynamic programming questions could also be asked, so you can practice a few popular questions of DP and it would help solve other similar DP problems if asked.

What to focus and work on:
1. Time Complexity understanding and explanation
2. Edge Cases.
3. Choice of best data structure.
4. Feel free to take 2 min to think about the solution by telling the interviewer you need time. Then try to be verbose with your approach once you get some idea about the solution.

Android In-depth (1 hour)

This round got started right from asking the very core basics of threading in Android Framework or Multithreading in general. The fundamental of these should be very clear and they help build the confidence of the next questions as well. Those who haven’t tried fetching data from background thread to foreground thread without any third-party library, please go ahead and try it out. It’ll take hardly 1 hour and it would help you clarify the basics of Handler, Looper and HandlerThread. (Related topics you’ll learn and understand out of interest). Be very clear with the fundamentals especially for the senior role.

Under the hood working explanation of the latest jetpack components was the major bonus for this round and I really enjoyed as well discussing those implementations. Always check the behind the scenes of common components like MVVM, live data, DiffUtils, coroutines and other Lifecycle aware components and whatever you think is trendy and is really solving a problem in Android development or making it better.

The significance of these components and their under the hood implementation were asked in detail.

System Design (1 hour)

I believe this is a real black box for all the interviewees out there so it was with me. With interview experiences, I figured out there are mainly the following categories under which your system design questions would mostly fall. So I am describing in general not only Flipkart perspective.

• Design Social Networking
• E-commerce app
• Analytics or Image uploading Library
• Customer - Partner Model (Anything like Swiggy, Uber etc) where live location tracking is involved.

One thing to be noted, they already tell that the backend is in place already, we need to design and structure the app only from the Client/Mobile perspective.

Get yourself ready with some tools like draw.io and practice the above designs including components structure and their interaction.

What to focus
1.
Functional Requirements: What features your app will cover given the problem statement.

2. Non-functional Requirements: What all your app will do to achieve those features development. For eg: Maintaining a DB and managing it. By managing I mean, we might need to update it periodically etc. For some location-based apps, the location should be fetched every 3 sec etc.

3. Architecture: You can draw your architecture on the draw.io tool and show the separation of concern of the components like Activity, ViewModel or Presenter, Repositories and Database (if required).

4. Contracts: All the required APIs could be explained and models of the objects. Feel free to add abstractions if you think is required. For eg: If it is an event management library, the Event could be a base class and all other events like ClickEvent, ScrollEvent should be extending it.

Hiring Manager (1 hour)

Chill and Friendly. This was sort of technical plus culture fit round and more of understanding candidate aspirations and goals. It would include a few behavioural questions like conflict management etc. This could involve discussing your projects and might include checking design skills again for a senior role (I was asked a small feature design problem).

That’s all. I hope this could help anyone who wishes to apply for Flipkart and get them a better idea of the interview with Flipkart. I am really liking my time in Flipkart so far.

To check out my Android Coding practices, visit my Github profile.
A project which helped me learn a lot is
here. The medium article which explains the given project is here.
If you find this article useful, your claps on the article will surely inspire further blogs.

Happy to connect

Linked in
Twitter

Keep Learning. Keep Sharing!

--

--