Background: 8 Years of experience, Post Grad, mostly in Android, currently in one of the startups in .
Round 1: Android Coding Round: The interviewer shared a zip file containing some boilerplate code for a weather app. I was asked to look at a couple of files and do a code review based on that. The code will have both language files (aka Java & Kotlin). I could make a choice right there. I explained the code review points or problems.
After that, I was asked to correct all those points mentioned in the code review and make the application work. There are 2 objectives I needed to complete: a. Make the application work (correct API call happening on main thread types) b. Display the weather country-city wise. c. An additional task will be click handling on the city.
Round 2: Coding Round: I was given a Leetcode Medium type of question. It was a variation of Number of Islands. I was able to write the code in the given time. I missed one edge case. The interviewer asked me to write test cases to cover all edge cases. Overall, it went fine.
Round 3: System Design: This system design was more oriented towards mobile (or say Android). The interviewer asked me to design a photo sync service, i.e., something like Google Photos. I discussed the problem with the interviewer first in the standard format:
Key for system design for mobile interviews is to concentrate on things that matter, i.e.,
Do not go into deep backend systems (even if you know by heart how the backend will work). I asked the interviewer every time if they wanted me to discuss/Elaborate more on this? I did well in this one.
Round 4: Bar Raiser: This was an easy one for me. We discussed my projects, went really deep technical on some of the challenges I faced and solutions I did. This was a mix bag of those behavioral and technical interviews. He asked many behavioral questions - I use the same STAR method. For some of the answers, we also went into technical solutions also. Overall, it went well.
Round 5: Coding Round: I think it happened due to some confusion. The recruiter also didn't even inform me what kind of coding round it will be. I was exhausted so went without even asking. The interviewer asked me to design an Event bus library and then use the same in a sample Android app. It was also an open-ended question. I clarified what we wanted to build. The expectation was the event bus has to be generic, thread options, etc., etc. I started with a simple approach and modified it accordingly, solving one requirement at a time. Overall, it went good.
Round 6: Hiring Manager: Nothing special, same casual projects, aspirations, etc., etc.
Round 7: Another Hiring Manager: I don't know why, but maybe because multiple teams were hiring at that time at Uber. Same as Round 6.
After 2 weeks, I got the confirmation with both team options and the offer.