I recently went through the Senior Software Engineer interview process with Deliveroo. While I was ultimately not selected, I appreciated parts of the experience, particularly the detailed feedback. However, there were notable issues with how the process was framed and assessed, which I believe led to a missed opportunity on both sides.
The process included:
1. Introductory Call: An initial conversation with the recruiter, which was friendly and informative.
2. Take-Home Assignment: A two-part coding challenge — first, a code review exercise; second, implementing a new feature in an existing project. The time guideline was around 3 hours, and the focus seemed to be on feature implementation and alignment with existing architecture.
3. Feedback: I received detailed feedback, which was helpful, but also revealed a disconnect between the task expectations and the evaluation criteria.
Pros:
• The assignment was practical and related to the actual product space.
• Communication with the recruitment team was timely and professional.
• The feedback was detailed and covered many aspects of the implementation.
Cons:
• The expectations were not clearly communicated. I was told to focus on the feature and deliver within roughly 3 hours. I did exactly that — adapted to the existing architecture, prioritised feature completeness, and ensured the app worked as intended.
• Surprisingly, the feedback criticised the lack of architectural decisions, testability, caching, and missing unit tests — none of which were clearly highlighted as requirements. If such depth was expected, the time allocation and brief should have been more transparent.
• Ironically, I’ve done all of these things extensively in other interviews — including writing 102 unit tests for a different sample project with only four view controllers, implementing full dependency injection, and building clean architecture from scratch. I didn’t do that here because I was respecting the implied scope and adapting to the existing codebase — which, in a real team, would be a considered and collaborative approach.
Final thoughts:
Deliveroo unfortunately lost a strong candidate because of an unclear and somewhat misleading evaluation process. The criteria used in the final judgement didn’t align with the brief provided, which creates a frustrating experience for candidates who are trying to meet expectations, not over-engineer beyond what’s asked.
Advice to candidates:
If you’re interviewing with Deliveroo, treat the take-home as if you’re building a production-ready app from scratch — regardless of what the brief says. Cover all bases: architecture, dependency injection, testing, performance, and code quality — even if it seems excessive for a 3-hour challenge.
Advice to Deliveroo:
If you expect senior-level candidates to showcase architectural depth, testing rigour, and scalable design — please explicitly say so. Also, consider that adaptability to an existing codebase is a strength, not a weakness. Clarifying expectations will not only improve fairness, but also help you avoid overlooking capable engineers.