Deliveroo Interview iOS
Summary
I recently interviewed for an iOS Engineer position at Deliveroo in India, sharing my experience across multiple rounds including problem-solving, code review, behavioral, and architecture design. I encountered a range of challenges from data structure manipulation to system architecture and debugging.
Full Experience
I recently went through the interview process for an iOS Engineer role at Deliveroo in India. I decided to share my experience as I found very little information available during my preparation. The process involved several distinct rounds, each testing different aspects of my skills.
Problem Solving Round
This round focused on fundamental data structures. I was presented with a dictionary and an array and asked to filter items from the dictionary based on the array to construct a restaurant menu. It wasn't a complex algorithmic problem, unlike many typical problem-solving rounds I've encountered.
Loop Interviews
After successfully clearing the problem-solving round, I proceeded to a series of "loop interviews."
1. Take-home Task and Code Review
For this segment, I was given a Pull Request (PR) and tasked with reviewing it, providing comments and feedback. Additionally, there was a simple extension task: to create a list of similar movies.
2. Behavioural Round
This round delved into my past experiences and how I handled various professional situations. The questions included:
- "Tell me a time when you faced a lacking colleague? What did you do?"
- "Tell me a time you worked on something complex? How did you do it?"
- "Tell me a time you added something new to your organization? What were the pros and cons?"
I found this round to require a bit of luck, as the interviewer's judgment can significantly influence the outcome, and some aspects are hard to prepare for directly.
3. Architecture Round
The architecture round involved a system design challenge. I was asked to design a delivery architecture specifically for a rider. Screens were provided as context, and I was expected to design the entire end-to-end flow, including UI components, API endpoints and responses, and appropriate design patterns.
4. Extended Take-home Task Discussion
In this final round, I had to explain my initial take-home task. I was asked what I would add or remove from the current project and why. Following that, I was given a block of code from the same project and asked to identify and fix a subtle bug. My specific bug involved multiple search requests being fired simultaneously, leading to data that might not correspond to the latest query; I had to propose a fix for this data inconsistency issue.
Overall, while the behavioral round felt somewhat dependent on the interviewer, the other rounds were a clear test of my knowledge and practical experience.
Interview Questions (9)
I was given a dictionary and an array. I was asked to filter items of the dictionary based on the array to create a menu for a restaurant.
A Pull Request (PR) was provided and I had to review it and put comments.
A simple task to create a list of similar movies as an extension task.
Tell me a time when you faced a lacking colleague? What did you do?
Tell me a time you worked on something complex? How did you do it?
Tell me a time you added something new to your organization? What was the pros and cons?
Design a delivery architecture for a rider. Screens will be provided. You're expected to design end-to-end flow, UI components, API endpoints and responses, design patterns.
You will be asked to explain your take-home task, anything you would add or remove to the current project and why.
Find a subtle bug in a block of code from the same project and questions will be asked to fix it. Mine was, there are multiple search requests getting fired, so the data we receive may not be for the latest query, how to fix this data issue?