Principal Software Engineer - Retail Technology
Role details
Job location
Tech stack
Job description
Our software engineering teams are responsible for designing, building, integrating, and managing technology across all products and functions. They focus on developing secure, highly available, cloud-based solutions, utilising open-source technologies where appropriate. By employing APIs as a standard for integration, they facilitate robust communication between internal and external systems. Our teams adopt data and event-driven approaches, working iteratively and continuously to deliver high-quality solutions.
This role sits within our Retail Technology team, they own the creation and maintenance of our product catalogue and the prices we sell products at. We set pricing strategy, including when to run offers and which types of promotions to use. We manage product set-up end to end, on-site copy, categorisation, and navigation to help customers find products easily.
We also manage supplier contracts, stock planning, and forecasting to ensure timely replenishment. The Retail team are looking to leverage AI capability to improve our price decisioning process to improve our margin as an organisation and better value for our customers. Along side this we want to create more bespoke product copy and attribution so customers can find the products they want more easily. The roles will be linked to new squads being set up to deliver these initiatives and maintain, run and enhance them going forward.
About the role.
As a Principal Software Engineer, you will be responsible for designing, building and running front-end and/or back-end software solutions in an agile delivery squad. This role is hands-on, you'll be actively involved in designing, implementing and running the products and services that your squad are responsible for. You'll help shape best practices in software engineering, then both work to and coach other Squad members into driving and ensuring high quality solutions.
What you'll be doing:
- Lead the full software development lifecycle, including coding practices, frameworks, technical debt, and operations within your squad.
- Collaborate with Engineers, Product Owners, Business Analysts, and Architects to design and deliver industry-leading systems.
- Influence and implement engineering standards and tools, driving adoption across squads and tribes.
- Design and build software that balances commercial needs with the future tech roadmap.
- Take ownership of code quality, non-functional requirements (performance, security, scalability), and best practices for logging, monitoring, and alerting.
- Drive improvements in continuous integration and deployment processes.
- Identify and mitigate risks, obstacles, and issues impacting technical products.
- Provide run support for technical products within your squad.
- Mentor and coach other engineers, fostering a culture of continuous improvement.
- Champion engineering successes internally and externally to build our brand and attract talent.
- Stay ahead of the curve by understanding the external technology landscape and applying insights to enhance our engineering practices.
Requirements
- Extensive experience in building, integrating, and managing complex software architectures, ideally across multi-cloud environments.
- Strong hands-on experience with Java, AWS components, and CI/CD tools (e.g., GitLab CI).
- Proven ability to mentor and guide less experienced engineers.
- Passionate about code quality, testing, and engineering best practices.
- Skilled in building applications with security, reliability, scalability, and high availability from the ground up.
- Excellent collaboration and communication skills.
- Degree in Computer Science or equivalent experience.
- Comfortable sharing knowledge and stories internally and externally to strengthen our engineering brand.
Some of our benefits
- Flexible, hybrid working model
- Inclusive culture and environment