Software Engineering

Why be a Software Engineer in the John Lewis Partnership?

Within the Partnership we release changes thousands of times per year, with some teams releasing daily. Our software engineers are highly skilled craftspeople working in empowered and collaborative teams delivering customer-pleasing, performant and secure services.

More and more of our teams follow a “you build it, you run it” philosophy, work on modern technologies and cloud infrastructures.

We guide our work through a set of Engineering Principles which we have been proud to make public. These are not hard and fast rules but rather considerations we apply and use to guide us on a daily basis.

Our Tech Stack

Our johnlewis.com and waitrose.com e-commerce sites are built in house using a micro service architecture style. For johnlewis.com this means independently deployable Kotlin based services running in containers on GCP / Kubernetes. Waitrose micro services are similar except they run on AWS and use Java as well as Kotlin.

Further up the stack React.js is the order of the day. johnlewis.com has evolved to a micro front-end architecture using React.js and Waitrose is starting on that journey.

Each business area has its own dedicated product team looking after GCP or AWS using a paved road approach. This enables teams to get new services live from scratch in less than a day and prevents teams from having to reinvent the wheel although teams are free to use cloud features that are not part of the paved road if it makes sense for their services.

Apps teams use the latest versions of Swift and Kotlin to build our retail apps for iOS and Android. The Apps teams also look after some of their own services (using a Back End for Front End architectural style)/ These are built using the Swift/Vapour framework running in containers on GCP – this means a lot of our app developers are also backend devs!

All teams run their own CI / CD pipelines. These cover all the usual unit / functional / integration tests but also include performance, security and even some accessibility tests which enables new code to be pushed to live as frequently as needed. This keeps change lead times very short and some teams are deploying several changes to live each day.

We don’t standardise on things like which web frameworks or test frameworks to use but we do encourage teams to share what has worked for them (or not) so other teams can learn from their experience.

https://www.youtube.com/embed/KCUzSSCYZDc

Empowerment

Whilst we do have an ever evolving set of technologies, frameworks and tools that we consider work well in the Partnership, Partners are nevertheless encouraged and recognised for suggesting and experimenting with new technologies and ways of working.

Some of our foundational decisions about how we deliver (e.g. our use of Kotlin as a language for API development in John Lewis) have arisen through empowered Partners bringing new ideas to their teams and proving their value.

The theme of our recent internal engineering conference in September was The Empowered Professional in which we hosted twelve talks from Partners on a range of issues from continuous delivery in a payments setting, to the “permission” to be different in the Partnership.

Continuous Learning

Continuous Learning is at the heart of our ways of working. Partners in Software Engineering are constantly learning, sharing ideas and knowledge, and actively supporting those around us to do the same.

We use a number of different modes of learning to increase knowledge of tech, techniques and ways of working. We learn through on the job experimentation; pairing with approachable and expert colleagues; through participation in a range of lively and hugely supportive communities of practice; and through access to training portals and conferences.

As well as learning we also value coaching and mentoring and our Software Engineers are recognised for the help they provide to colleagues and the sharing of their knowledge in exciting and engaging ways.

Interested in more?

If you are a talented engineer who enjoys delivering in a multi-disciplinary team, we are looking for you.

View our current software engineering vacancies and begin your journey to becoming a Partner.

What does it mean to be a Partner?

Become part of a sustainable and ethical business 

The Partnership takes an integrated approach to being a more sustainable, ethical business. Focusing on eight areas, each is critical if we are to protect the planet and respect and support the interests of all those touched by our business.

The eight focus areas are:

  • People in Supply Chains
  • Agriculture
  • Aquaculture
  • Raw Material Sourcing
  • Circularity & Waste
  • Climate Action
  • Social Impact, and
  • Nutrition, Health & Wellbeing

For more information see this page.

Become a co-owner of the business

The Partnership operates on democratic principles, sharing power with all Partners. Our first democratic council was set up over 100 years ago in 1919.

Today our democratic network of elected councils, committees and forums enables Partners to participate in decision making, challenge management on performance and have a say in how the business is run. 

For more information see this page.

Latest Head Office opportunities

Head Office

Front-end Software Engineer

 London – Victoria

 

£47100 – £69500

Closing Date: 27/11/2022

Head Office

Back-end Software Engineer

 London – Victoria

 

£47100 – £69500

Closing Date: 27/11/2022

Head Office

Senior Front-end Software Engineer

 London – Victoria

 

£55800 – £90000

Closing Date: 27/11/2022