Nandos

Software Engineer 2

In short

Mid-level Software Engineer role at Nando's, building and maintaining Rust-based backend services for the company's online ordering and fulfilment platform across the UK and Ireland. The Orders & Fulfilment team works on event-driven systems, APIs, third-party integrations (e.g. Deliveroo) and restaurant operations tooling, handling millions of customer orders. Requires hands-on professional Rust experience, solid engineering fundamentals, automated testing experience and agile collaboration skills; Go, TypeScript, React, CI/CD and observability experience are a plus. Full-time, onsite role in London.

Software Engineer – Rust (Mid-Level)
At Nando's, we're on a mission to Create Lasting Happiness, and technology plays a huge part in making that happen. Behind every great Nando's experience is a lot of clever technology. From the moment a customer places an order to the moment their food arrives, our engineering teams build the systems that make it all possible.
We're looking for a Software Engineer to join our Orders & Fulfilment team, working on the technology that powers our online ordering platform across the UK and Ireland. This is a great opportunity for an engineer with Rust experience who enjoys solving interesting technical challenges, building reliable systems and seeing the real-world impact of their work. You'll join a collaborative team where you'll have the freedom to contribute ideas, take ownership of meaningful projects and continue developing your skills alongside experienced engineers.
Our Orders & Fulfilment team sits at the heart of Nando's digital ecosystem, building and maintaining the technology that keeps orders moving smoothly from our customers to our restaurants. We work on systems that support millions of customer journeys, making sure orders are processed accurately, reliably and efficiently. Our team looks after several important areas:
•Online Ordering Platform: Building and maintaining the core services that power our digital ordering journeys, from placing an order through to fulfilment.
•Event-Driven Systems: Developing scalable, high-throughput systems that process large volumes of orders and events in real time.
•Third-Party Integrations: Connecting our technology with delivery partners such as Deliveroo, making sure orders flow seamlessly between platforms.
•Restaurant Operations: Building tools and services that help our Nandocas manage and fulfil orders efficiently.
•APIs & Engineering Platforms: Creating reliable services and APIs that other engineering teams can build upon to deliver great customer experiences.
As a mid-level engineer, you'll have the opportunity to own meaningful pieces of work while learning from experienced engineers and developing your technical expertise. Our engineering environment includes:
•Backend: Rust and Go
•Frontend: TypeScript and React
•Architecture: Event-driven systems, APIs and third-party integrations
•Engineering Practices: Automated testing, CI/CD, monitoring, observability and production support
Responsibilities
This is a hands-on engineering role where you'll get involved in the full software development lifecycle, from understanding requirements and designing solutions through to building, testing, deploying and supporting software in production.
•Designing, developing, testing and maintaining reliable software that supports our online ordering and fulfilment platforms.
•Building and improving backend services using Rust, with opportunities to work across other technologies.
•Working on event-driven systems, APIs and integrations that connect our digital platforms with restaurant operations and delivery partners.
•Taking ownership of features and services, with support from Technical Leads and other experienced engineers when needed.
•Collaborating with engineers, Product Managers and other teams to understand challenges and deliver practical technical solutions.
•Writing automated unit and end-to-end tests, helping improve the quality and resilience of our codebase.
•Contributing to technical discussions, backlog refinement and planning, helping break down requirements and estimate engineering work.
•Working with CI/CD pipelines, supporting deployments and helping troubleshoot build or release issues.
•Supporting services in production, including investigating issues, monitoring performance and improving reliability.
•Pairing with other engineers, participating in code reviews and sharing knowledge across the team.
•Looking for opportunities to improve existing code, automate repetitive tasks and make our engineering processes more effective.
We believe in an "if you build it, you run it" approach, so you'll have the opportunity to see how your work performs in production and help keep the services you build running smoothly. We also want you to feel comfortable asking questions, challenging ideas and suggesting better ways of doing things. You won't just be here to pick up tickets and write code.
Requirements
We're looking for someone who's already built a solid foundation as a Software Engineer and is excited about continuing to develop their skills.
•Hands-on experience developing software using Rust.
•Professional software engineering experience, ideally building and maintaining backend services or applications.
•A good understanding of software engineering fundamentals and writing clean, maintainable, well-tested code.
•Experience working with APIs, backend services or distributed systems.
•An understanding of automated testing and why it matters when building reliable software.
•Experience working in an agile engineering environment, collaborating with others to deliver features and improvements.
•A practical approach to problem-solving, debugging and understanding how systems work.
•The ability to contribute to technical discussions, break down work and provide input into estimates.
•Good communication skills and the confidence to share ideas, ask questions and learn from others.
•A genuine interest in technology and a willingness to explore different languages, tools and approaches.
Nice to have:
•Go, TypeScript or React
•Event-driven architectures or high-throughput systems
•Third-party integrations or eCommerce platforms
•CI/CD pipelines and cloud infrastructure
•Monitoring, observability and supporting production services
We're not expecting you to be an expert in everything. What matters most is that you have a good foundation in Rust, enjoy solving problems and are keen to keep growing as an engineer.
Your first few months
When you join, we'll give you the time and support to get familiar with our technology, products and ways of working. You'll start by getting to know the team, understanding how our ordering and fulfilment systems fit together and contributing to features and improvements within our Rust codebase. You'll work alongside experienced engineers, getting involved in technical discussions, pairing sessions and code reviews as you build confidence in our systems.
As you settle in, you'll take greater ownership of features and services, contribute to technical decisions and work on increasingly complex challenges. There's real opportunity to broaden your experience here, whether that's deepening your Rust expertise, learning more about Go, working with event-driven architectures or developing your understanding of building and operating reliable systems at scale. We want you to grow with us, and we'll support that through mentorship, collaboration, training and plenty of opportunities to learn by doing.

Stop applying.
Get referred.

$10 in free credits

In just 60 seconds, fully on autopilot — Eraldt's AI agents read your CV, map the roles you fit, find live vacancies and the people who can refer you, write personal emails, and get you referred.

This isn't an application: your CV doesn't go to the company, and we don't promise a referral for this exact role.

Discover who else lands interviews on autopilot