Skip to main content

Software Development Engineer - Digital Stores

Job ID 4405M Location Paddington Category Technology Salary D Hours Closing date August 29th 2021, 11:55 PM

Job Description:

We are looking for a hardworking Software Development Engineer to help design, develop and deploy new applications. The majority of the work is greenfield and the successful candidate will be able to build and take ownership of high-quality, innovative and performant software. Following standard methodologies and engaging with the wider development community at M&S is also crucial to the role.

About Digital Stores Programme

Our Digital Stores Programme is a test and learn programme that seeks to show that a flawless, end-to-end, omni-channel experience for our customers (powered by new technology and Sparks data) can have a positive customer impact and grow store sales.

A small, dedicated, multi-functional (from M&S Technology, Retail and Digital & Data) team is tasked with collaborating across the business to trial digital initiatives in five stores that take friction out of the customer journey and build a phenomenal, personalised in-store experience for our customers. It has a remit to test, challenge and iterate, with the green light to go further than our current thinking. The team will push boundaries working with third parties (incl. Tech start-ups and existing suppliers such as Microsoft and TCS) and build their own ventures, failing fast on some initiatives and accelerating others to deliver compelling business cases.

Key accountabilities and measures

  • Collaboratively solves problems; communicates technical decisions through tech-talks and white-boarding sessions.
  • Learns quickly and makes steady progress without the need for significant feedback from more senior engineers.
  • Shows engagement when architecting and developing new software.
  • Shows engagement with the wider engineering community.
  • Helps other specialists to produce clean, quality code through strong engagement in code reviews and pair programming.
  • Takes full ownership of the tasks in his/her backlog and is also begging to show signs of taking accountability for the entire team’s backlog.
  • Optimally engages with the product teams to make the product better, and to understand ambiguous requirements.
  • To be seen as helpful, by both engineers and product.
  • Strong software design, with an ability to coordinate and write clean, self-documenting code. Encouraged to know a range of software design patterns, displaying an understanding of algorithms and data structures, with an ability to show multiple real-life examples of applications of this knowledge.
  • Consults business partners on the best approach for delivering complicated feature, both in how it can be split and sequenced, and in terms of potential improvement to the functional requirements.
  • Beginning to show signs of continuously mentoring less experience members of the team. Not just giving a hand here and there, but genuinely trying to upskill their peers.
  • Knows when to challenge the team to be pragmatic.

Key skills

Crucial skills:

  • Strong experience with JavaScript (ES6+), including a modern frontend framework, such as React, Vue or Angular (we use React). (Familiarity with TypeScript is also a plus).
  • Strong experience with a back-end language and framework (preferably Node.js, as that’s what we use, with Next.js).
  • Past experience with a modern MVC framework e.g. Laravel, Symfony, Django, Flask, Ruby on Rails, Express, etc.
  • GraphQL (preferably server and client).
  • Strong testing experience (preferably with jest), with an understanding of the Testing Pyramid and TDD.
  • Strong experience with CSS/SASS (including grid, flexbox and animations).
  • Experience with cloud infrastructure (AWS, Google Cloud or Azure).
  • Good understanding of the good software design principles (e.g. OO, DRY, SOLID).
  • Experience working with CI tools (we use a combination of GitHub Actions and Azure DevOps).
  • Understanding of Accessibility standard methodologies.
  • Cloud based environments (Cloud Foundry, Azure, Kubernetes).

Desirable skills:

  • Experience working within Agile processes.
  • Familiarity with Docker (containerisation in development and production).
  • Good SEO knowledge.
  • Contributions towards open-source software or coordinate or speak at software-related meetup groups.
  • Experience with git and workflows such as Git Flow or Trunk Based Development.
  • Experience with pair programming.
  • Ability to mentor and provide constructive feedback to team members.

Apply for role
Job Alerts Sign Up

Don't see what you're looking for? Sign up and we'll notify you when roles become available.

Interested InSearch for a category and select one from the list of suggestions. Search for a location and select one from the list of suggestions. Finally, click “Add” to create your job alert.