# Senior Software Engineer
**Role:** Software Engineer · **Level:** L5
**Company:** [Deliveroo](https://scaleengineer.com/companies/deliveroo)
**Difficulty:** Hard
**Salary:** US$120000 - US$150000
**Experience:** 5 - 10
**Timeline:** ~14 days
The Senior Software Engineer (L5) interview at Deliveroo is a comprehensive process designed to assess a candidate's technical expertise, problem-solving abilities, system design skills, and cultural fit within the company. It typically involves multiple rounds, including HR screening, technical interviews focusing on data structures and algorithms, a system design interview, and a final managerial or behavioral interview. The goal is to identify engineers who can independently tackle complex problems, mentor junior engineers, and contribute to the architectural direction of our products.
Canonical: https://scaleengineer.com/interviews/deliveroo/l5-software-engineer
---
## Overall evaluation

- Technical Skills (DSA & Coding)
- System Design
- Behavioral and Cultural Fit

## Questions asked

- Given a list of user activities, design a system to find the most active users in the last hour.
- How would you design a real-time notification system for a food delivery app?
- Explain the difference between process and thread. When would you use one over the other?
- Describe a situation where you had to deal with a production issue. What was your approach?
- How do you approach mentoring junior engineers?
- What are the trade-offs of using a microservices architecture compared to a monolith?
- Design a rate limiter for an API.
- Tell me about a time you disagreed with a technical decision. How did you handle it?
- How would you optimize a database query that is running slowly?
- What are your thoughts on test-driven development (TDD)?

## Preparation tips

### lists

- Review fundamental data structures and algorithms (arrays, linked lists, trees, graphs, hash maps, sorting, searching).
- Practice coding problems on platforms like LeetCode, HackerRank, or Coderbyte, focusing on medium to hard difficulty.
- Study system design concepts: load balancing, caching, databases, message queues, microservices, API design.
- Prepare to discuss your past projects in detail, focusing on your contributions, challenges, and learnings.
- Understand Deliveroo's business, technology stack, and engineering culture.
- Practice explaining your thought process clearly and concisely.
- Prepare questions to ask the interviewer about the role, team, and company.

### studyPlan

- {"title":"Data Structures and Algorithms Fundamentals","longDescription":"Weeks 1-2: Focus on core data structures (Arrays, Linked Lists, Stacks, Queues, Hash Tables) and basic algorithms (Sorting, Searching, Recursion). Practice 2-3 problems per day. Understand time and space complexity (Big O notation).","shortDescription":"Weeks 1-2: Data Structures & Basic Algorithms. Practice 2-3 problems/day. Big O."}
- {"title":"Advanced Data Structures and Algorithms","longDescription":"Weeks 3-4: Dive into more advanced data structures (Trees, Tries, Graphs, Heaps) and algorithms (Dynamic Programming, Greedy Algorithms, Graph Traversal - BFS/DFS). Continue practicing 2-3 problems per day, focusing on applying these concepts.","shortDescription":"Weeks 3-4: Advanced DSA. Practice 2-3 problems/day. DP, Greedy, Graphs."}
- {"title":"System Design","longDescription":"Weeks 5-6: Concentrate on System Design. Study common design patterns, distributed system concepts (CAP theorem, consistency models), database choices (SQL vs. NoSQL), caching strategies, message queues, and API design. Work through case studies and practice designing common systems (e.g., Twitter feed, URL shortener).","shortDescription":"Weeks 5-6: System Design. Study distributed systems, databases, caching, APIs. Practice case studies."}
- {"title":"Behavioral and Cultural Fit","longDescription":"Week 7: Prepare for behavioral questions. Reflect on your past experiences using the STAR method (Situation, Task, Action, Result). Prepare examples related to teamwork, leadership, problem-solving, and handling conflict. Research Deliveroo's values and culture.","shortDescription":"Week 7: Behavioral Prep. STAR method. Company values."}
- {"title":"Mock Interviews and Review","longDescription":"Week 8: Mock interviews. Practice coding and system design problems under timed conditions. Get feedback from peers or mentors. Review any weak areas identified during practice.","shortDescription":"Week 8: Mock Interviews. Timed practice. Feedback."}

## Location differences

- {"location":"London","differences":{"tips":["Familiarize yourself with Deliveroo's engineering blog and open-source contributions.","Be prepared to discuss your contributions to significant projects and their impact.","Understand the challenges of operating in a fast-paced, growth-oriented environment.","Highlight experience with A/B testing and data-driven decision-making."],"interviewFocus":["Deep understanding of distributed systems and microservices architecture.","Experience with high-traffic, large-scale applications.","Proficiency in specific programming languages and frameworks relevant to Deliveroo's tech stack (e.g., Java, Python, Go, Node.js).","Ability to lead technical discussions and mentor junior engineers."],"commonQuestions":["How would you design a URL shortening service like bit.ly?","Discuss a challenging technical problem you faced and how you solved it.","Explain the trade-offs between different database technologies (SQL vs. NoSQL).","How do you ensure the scalability and reliability of a distributed system?","Describe your experience with cloud platforms (AWS, GCP, Azure)."]}}
- {"location":"Paris","differences":{"tips":["Research Deliveroo's product offerings and business model.","Be ready to articulate your thought process clearly and concisely.","Showcase your ability to collaborate effectively within a team.","Prepare examples of how you've improved code quality or development processes."],"interviewFocus":["Strong grasp of software development best practices and design patterns.","Experience with building and maintaining APIs.","Ability to write efficient and well-tested code.","Understanding of agile methodologies and CI/CD pipelines."],"commonQuestions":["Design an API for a food delivery service.","How would you optimize the performance of a web application?","Discuss your approach to writing clean, maintainable, and testable code.","What are the principles of good API design?","How do you handle concurrency and parallelism in your applications?"]}}

## Round 0: HR Screening Call
**Type:** HR Screening · **Difficulty:** Easy · **Duration:** 30 min
Initial call with HR to discuss background, motivation, and expectations.
This initial screening call with HR is to understand your background, motivations, and expectations. They will discuss your resume, career goals, and why you're interested in Deliveroo. It's also an opportunity for you to learn more about the company culture, the role, and the interview process. Be prepared to talk about your salary expectations and availability.
**Interviewers look for:** Genuine interest in Deliveroo.; Clear understanding of the role's responsibilities.; Good communication and interpersonal skills.; Alignment with team and company culture.
**Evaluation criteria:** Candidate's understanding of the role and company.; Alignment of candidate's expectations with the role.; Enthusiasm and engagement.; Cultural alignment.
**Common rejection reasons:** Lack of clarity on career goals.; Poor fit with team dynamics.; Unrealistic salary expectations.; Failure to ask insightful questions.
## Questions

- Can you walk me through your resume and highlight relevant experience?
- Why are you looking to leave your current role?
- What are your salary expectations for this role?
- What do you know about Deliveroo?

## Preparation tips

- Review your resume and be ready to discuss your experience.
- Research Deliveroo's mission, values, and recent news.
- Prepare questions about the role, team, and company culture.
- Be clear about your salary expectations.

## Round 1: Technical Coding Round 1
**Type:** Data Structures and Algorithms Interview · **Difficulty:** Hard · **Duration:** 45 min
Solve 1-2 coding problems focusing on DSA and complexity.
This round focuses on your core programming skills. You will be asked to solve one or two coding problems, typically involving data structures and algorithms. The interviewer will assess your ability to understand the problem, devise an efficient solution, write clean and correct code, and explain your approach. Expect questions that test your knowledge of arrays, strings, linked lists, trees, graphs, hash maps, sorting, searching, dynamic programming, and recursion.
**Interviewers look for:** Strong problem-solving skills.; Proficiency in at least one programming language.; Ability to translate requirements into working code.; Understanding of fundamental data structures and algorithms.
**Evaluation criteria:** Correctness of the solution; Efficiency of the solution (time and space complexity); Clarity and organization of the code; Ability to handle edge cases and constraints; Communication of the thought process
**Common rejection reasons:** Poor communication of thought process.; Inability to identify edge cases.; Inefficient or incorrect algorithmic solutions.; Lack of understanding of time/space complexity.
## Questions

- Given a binary tree, find the lowest common ancestor of two given nodes.
- Implement a function to find the k-th largest element in an unsorted array.
- Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

## Preparation tips

- Practice coding problems on platforms like LeetCode, HackerRank.
- Focus on understanding the underlying algorithms and data structures.
- Practice explaining your thought process out loud.
- Be prepared to discuss time and space complexity.

## Round 2: System Design Round
**Type:** System Design Interview · **Difficulty:** Hard · **Duration:** 60 min
Design a scalable, distributed system for a given problem.
This round assesses your ability to design large-scale, distributed systems. You'll be given an open-ended problem (e.g., design a URL shortener, a social media feed, a ride-sharing service) and expected to design a system that meets specific requirements for scale, availability, and performance. You should be prepared to discuss various components, data models, APIs, trade-offs, and potential bottlenecks.
**Interviewers look for:** Experience designing complex, scalable systems.; Understanding of distributed systems concepts.; Ability to make reasoned technical decisions and justify trade-offs.; Knowledge of various architectural patterns and technologies.
**Evaluation criteria:** Clarity and completeness of the system design.; Scalability and performance considerations.; Reliability and fault tolerance.; Choice of appropriate technologies and trade-offs.; Ability to handle constraints and requirements.
**Common rejection reasons:** Lack of understanding of distributed system principles.; Inability to design scalable and reliable systems.; Poor trade-off analysis.; Not considering failure scenarios or edge cases.
## Questions

- Design a system to count the number of views for millions of videos in real-time.
- Design a distributed cache system.
- Design the backend for a food delivery app like Deliveroo.

## Preparation tips

- Study system design concepts: load balancing, caching, databases (SQL/NoSQL), message queues, microservices.
- Practice designing common systems.
- Be prepared to draw diagrams and explain your design choices.
- Consider scalability, availability, latency, and consistency.

## Round 3: Behavioral and Managerial Round
**Type:** Behavioral / Managerial Interview · **Difficulty:** Medium · **Duration:** 45 min
Discuss past experiences, teamwork, leadership, and motivation.
This round focuses on your behavioral and cultural fit. You'll be asked questions about your past experiences, how you handle specific situations, your motivations, and your career goals. The interviewer wants to understand how you work with others, how you approach challenges, and whether you align with Deliveroo's values. Use the STAR method (Situation, Task, Action, Result) to structure your answers.
**Interviewers look for:** Evidence of collaboration and teamwork.; Examples of leadership and initiative.; Ability to handle challenging situations and learn from mistakes.; Alignment with Deliveroo's mission and values.
**Evaluation criteria:** Behavioral competencies (teamwork, leadership, problem-solving).; Cultural fit with Deliveroo.; Motivation and career aspirations.; Communication and interpersonal skills.
**Common rejection reasons:** Poor communication or interpersonal skills.; Lack of alignment with company values.; Inability to articulate past experiences effectively.; Negative attitude or lack of enthusiasm.
## Questions

- Tell me about a time you had to work with a difficult colleague. How did you manage the situation?
- Describe a project where you took a leadership role. What was the outcome?
- How do you stay updated with new technologies and industry trends?
- Why are you interested in Deliveroo and this specific role?

## Preparation tips

- Prepare examples using the STAR method for common behavioral questions.
- Research Deliveroo's company culture and values.
- Be ready to discuss your strengths and weaknesses.
- Think about why you want to work at Deliveroo.
