Position: Senior SDE-Android
Location : Bangalore
Date: June, 2019
Round 1: [Android coding]
-
Given an already existing project (basic app which fetches weather information for some cities), asked to do a code review. Had problems like:
- Network call on main thread
- No separation of concerns. Activity had lot of code.
- Package structure not properly defined.
- No Dependency Injection framework. And no dependency inversion principles.
After that, asked to consume the api and build a simple ui out of that. Had to use AsyncTask due to time limit so had to discuss about the problems when using async task. Involved understanding of RecyclerView. Why nested layouts are bad. What is overdraw. Problems in nested recycler view. Nested scrollview in general
Round 2: [Coding]
- Given a matrix where a cell contains an arrow and you can only go to the direction in which the arrow is pointing. Given a start and end point, tell me if you reaching the end is possible.
O(rows * cols) time with constant space.
Follow-up: let’s say you can change the direction of the arrow. Tell me the minimum no of changes that you can make so that we have a path from start to end point.
Round 3: [Android Design]
- Started with a project discussion.
- Problem statement: Design an app which uploads all the pictures taken by user’s camera to a server.
Expected to come up with api design, client architecture, the components that I’ll use. Logic for uploading. Handling the error cases. A lot of focus was put on handling the error cases.
Round4: [HM]
Rejected due to the design round. I am not sure what exactly the interviewer wanted. It'd be great if you guys could provide inputs on that.