Full Stack Python Engineer at Marks & Spencer (London, UK)

Full Stack Python Engineer at Marks & Spencer (London, UK)

Add To Bookmarks
Location: London, UK
Type: Full Time
Created: 2021-05-15 05:00:21

Apply Here

Job Description:

We are looking for a passionate Software Engineer to help design, develop and deploy software for our solutions. The successful candidate will be able to build high-quality, innovative and fully performant software in compliance with best practice coding standards and technical design. Help to drive better working practices and become a valued member of the engineering department.

Key accountabilities and measures

  • Collaboratively solves problems; communicates technical decisions through tech-talks and white-boarding sessions
  • Can work completely independently, without having to rely on other ream members to make progress
  • Inducts new team members; provides coaching and mentoring to other engineers
  • Responsible for participating in the recruitment process in their discipline, including sitting on interview panels, and reviewing technical tests
  • Evangelizes clean, quality code within the team
  • Develop and improve our bespoke machine learning models, solving various classification, regression, predation and clustering problems
  • High level of engagement when architecting and developing new software. Constantly looking at challenging the status quo, and improving our platform
  • Takes accountability for the technical quality of team’s output as a whole, both through code review and through continuous architectural and system design review of output generated as part of new feature development
  • Drives engineering conversations. Always speaks with confidence and is seen as a thought leader by the team
  • Actively seeks to work with the wider technology organization, engages in cross functional engineering forums and displays genuine interest to learn more about the big picture of our platforms
  • Takes responsibility of the team’s backlog as a whole
  • Takes full accountability of the technical state of the product. From development, over deployment and into operational mode
  • Consults business stakeholders 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
  • Senior developers help drive engineering sessions, and naturally put themselves forward for challenging tasks
  • Inducts new team members; provides coaching and mentoring to other engineers

Key skills

Essential skills:

  • Able to demonstrate 5+ years of relevant experience in software engineering, which provided exposure to a wide array of system types
  • Holds a degree in a relevant discipline
  • Experienced developing REST, GraphQL or gRPC based microservices
  • Exposure to frameworks like aiohttp, Tornado, or Twisted
  • Expert level Python skills, in-depth knowledge of python 3+
  • Experienced with asyncio
  • Strong understanding of software testing in general, understands the differences between unit, integration and acceptance testing
  • Has an interest in mathematics and is a good problem solver
  • Understands the DD’s. TTD, BDD and ATDD
  • Good understanding of functional programming
  • Experienced working within a cloud environment, and is comfortable provisioning IaaS and PaaS services within such an environment
  • Strong understanding of containerisation (preferably Kubernetes)
  • Have delivering end-to-end web-applications within a product team following the DevOps methodology, and thus are comfortable deploying and maintaining all infrastructural and application services required by the web-application within a cloud environment
  • Experience working within an Agile environment such as Scrum or Kanban
  • Expert understanding of software architecture and design principles (e.g. OO, DRY, SOLID)
  • Experience across the stack, have solved problems ranging from the front end, to the backend
  • Experience with distributed version controls systems like Git
  • Experience with pair programming
  • Experience working with CI tools (Concourse, Jenkins)

Desirable skills:

  • Experience working within a Continuous Delivery environment
  • Contributions towards open source software or organize or speak at software-related meetup groups