Principal Engineer
Here at Selfridges we’re on a mission to reinvent retail, with our customers and sustainability at the heart of everything we do. We want to be known for delivering the best, most extraordinary experiences that keep our customers coming back. We’re currently on a journey to deliver flexible and scalable technology platforms, providing an inspiring and effortless experiences across all touchpoints.
We have an exciting opportunity for a Principal Engineer to join our agile teams in our London office. In this role, you'll be instrumental in shaping our Customer &Data technology, influencing our future technical direction.
We’ve already done a lot of growing, starting with the build of our Engineering and DevOps in-house capabilities, but still have much to achieve and do as part of our journey. This role is ideal for someone who is looking for the opportunity to grow and develop a team that will be part of delivering future technology and change.
What is the role?
As a Principal Engineer, you’ll play a pivotal role in shaping the technical direction, strategic vision, and innovation of our Customer & Data applications. Your expertise in leading technology transformations will be key as we transition from monolithic architectures to a multi-cloud, scalable MACH-based platform. You’ll spearhead major initiatives to revamp our customer membership programs, including Clienteling, CRM, and data platforms, while nurturing the growth and development of our engineering team.
As a Principal Engineer You will:
Manage a diverse portfolio of engineering initiatives across domain, ensuring alignment with business goals and technical standards
Provide technical leadership, formulating technical strategies, making decisions on solutions, SME support establishing and standardising robust engineering practices.
Investigate and become a subject matter expert in new technologies introduced to our stack
Develop and lead microservice architecture strategies for the development of scalable, flexible, and cost-effective applications.
Work with Platform engineers to design CI/CD pipelines and quality frameworks for frequent, reliable releases.
Collaborate across engineering teams in your domain and help members make informed decisions aligned with strategic plans.
Work with the Product, Architecture and Delivery teams to develop roadmaps for both product features and technical improvements.
Troubleshoot and resolve complex issues in both front-end and back-end systems.
Set up processes and frameworks for live support and maintenance of engineering services, technical debt management, creating robust and reliable support model for delivered services. Seek innovation opportunities and experiment with new ideas.
Promote and support a quality-focused culture within the engineering team. Champion ongoing enhancements, performance optimization, and security across the development lifecycle.
Advocate for modern development practices like pair programming, TDD, SOLID principles, , technical debt management and the use of cloud-native solutions when appropriate
Build, mentor and foster and develop engineering talent to collaborate effectively with architecture, delivery, DevOps, InfoSec, and support teams. Enable engineers to design, implement, and optimize technical solutions that meet business goals.
Promote a culture of innovation, continuous learning, and teamwork to deliver secure, scalable systems.
You'll Have:
Strong foundation in software engineering principles and scalable system design.
Experience working on distributed, cloud-hosted products with rapid release cycles.
Proficiency in BE and FE development using JavaScript, React, Next.js, TypeScript and Node.js
Strong experience in working with one of the cloud technologies and architecture
Experience in AWS specifically with Lambda, DynamoDB, SQS, SNS and EventBridge is a plus.
Experience in designing and leading the implementation of micro-frontends, microservices, event-driven and headless architectures.
Good understanding of GraphQL.
Proficiency in database management (SQL, NoSQL) and version control
Experience with DevOps practices and tools (e.g., Docker, Jenkins, Kubernetes).in collaborating closely with DevOps teams.
Experience with monitoring solutions like CloudWatch or Dynatrace.
Good understanding of infrastructure as code (IaC) would be beneficial (e.g AWS CDK, Terraform.)
Good understanding of engineering security best practices e.g. NIST and PCI standards .
Proven track record in technical decision-making and guiding teams to implement maintainable solutions.
Strong leadership, mentoring, and collaboration skills.
Ability to lead Engineering Guilds to introduce and enhance engineering initiatives.
Experience in working in fast-paced, dynamic environments, and in driving change through innovation and collaboration.