Job description
As a backend development Engineer, you’ll be working in an agile team of industry leading engineers to define and develop Tesco’s xAPI (Experience API) that powers Tesco’s various shopping experiences i.e., tesco.com, the mobile shop application, store and other internal facing applications. You’ll be a passionate, pragmatic Engineer with an inquisitive mind who is motivated to make change for the better and most importantly put our customer first.
You’ll enjoy working as part of a team, liaise with product and program managers to understand requirements and build new software or extend existing software. You are a keen problem solver with the expertise and experience building extensible, maintainable, highly available, scalable, performant and observable quality software, Comfortable with modern engineering practices and backend development technologies, you’ll use innovation to improve the customer experience and efficiency of engineering teams. The solutions that you will be responsible for will have a global reach, impacting millions of customers.
Some of the tech we are using at scale: Javascript, Typescript, Node.JS, GraphQL, REST, Kafka, Azure Cloud, Redis, Varnish Cache, Apollo Federation, Docker, Kubernetes etc.
About the team:
Tesco’s xAPI (Experience API) powers Tesco’s online shopping, enabling customers to discover and shop online from diverse client applications & devices i.e. web, mobile-apps, tills in-store, scan-as-you-shop, tablets, voice assistants etc. We, the xAPI team, build products that provide the experience APIs (GraphQL) for building client applications and handle all the device traffic to support the user experience for the end-user’s shopping lifecycle from product discovery to purchase to returns and refunds, shopping history. We build, develop and maintain massive scale, highly performant REST/GraphQL API services, backend-for-frontend services that enable ease of client application development and our success is the difference between millions of happy customers or millions of missed opportunities.
You will be responsible for
- Use your in-depth knowledge of JavaScript, Typescript, Node.JS, cloud and the backend services ecosystem to develop, and deploy scalable backend systems.
- Work with product managers to understand business/product requirements.
- Translate requirements into tasks & code.
- Commit code early and often, demonstrating understanding of version control & branching strategies.
- Automate everything by default.
- Write secure code by default.
- Write maintainable code and observe basic hygiene practices
- Implement relevant project instrumentation.
- Profile and optimise code.
- Apply understanding of cohesion and the SOLID principles to create well structured, maintainable software.
- Identify patterns in code and refactor the code towards them where it increases understanding and/or maintainability with minimal guidance.
- Produce test driven features in a specific programming language and demonstrate familiarity with the TDD development.
- Follow the best practices of continuous BDD/TDD/Performance/Security/Smoke testing.
- Work effectively with product stakeholders to communicate and translate needs into product improvements.
- Lead group discussions on system design and understand domain well enough to work with Product Managers to drive value.
- Support production systems, resolve incidents and perform root cause analysis.
- Debug/find complex problems and support/maintain the software solution.
- Share knowledge with the wider engineering community.
- Mentor and develop others around you.
- Produce proof of concepts to evaluate new tools.
We are looking for people who have a passion for Technology. You will demonstrate experience of different platforms and technologies. We expect to see some or all of the following:
- 8+ Years professional experience as a Backend Software Developer.
- At least 3 years of experience in backend development using Javascript, Typescript, Node.JS and related backend technologies, frameworks.
- Exposure to a variety of JavaScript frameworks and libraries such as: Next.JS, React.JS and testing using Jest, Mocha.JS, Cucumber etc.
- Experience of using Node.js to create high traffic applications using Express.js, Sails, Koa or similar.
- Knowledge of microservices development and deployment in the cloud i.e. Azure/AWS/GCP cloud.
- Knowledge of virtualization, containerization and container orchestration technologies like Docker, Kubernetes etc.
- Experience with usage of GraphQL, building GraphQL servers and GraphQL Federation technologies like Apollo Federation.
- Experience with using and building REST API services.
- Knowledge of distributed messaging systems like Kafka, RabbitMQ etc.
- Knowledge of distributed caching technologies like Redis.
- A desire to write readable, maintainable, modular and extendable code.
- Exposure to the DevOps model.
- Experience in Lean and Agile environments and understanding of principles behind methodologies such as: BDD, ATDD and TDD.
Our vision at Tesco is to become every customer’s favourite way to shop, whether they are at home or out on the move. Our core purpose is “Serving our customers, communities and planet a little better every day”. Serving means more than a transactional relationship with our customers. It means acting as a responsible and sustainable business for all stakeholders, for the communities we are part of, and for the planet.
We are proud to have an inclusive culture at Tesco where everyone truly feels able to be themselves. At Tesco, we not only celebrate diversity, but recognise the value and opportunity it brings. We’re committed to creating a workplace where differences are valued, and make sure that all colleagues are given the same opportunities. We’re a big business with diverse working patterns and many business areas which means that we can find something that works for you. Everyone is welcome at Tesco.
We have recently announced that we are moving to a more blended working week – combining office and remote working. Our offices continue to be where we connect, collaborate and innovate. Talk to us about how this can work for you.
Note: Should you be successful in your application, your employment will be subject to and conditional upon you providing your bank account details on your agreed start date.
What’s in it for youWe offer excellent benefits that help make Tesco a great place to work! These include but are not limited to:
- Annual bonus scheme
- Holiday starting at 25 days plus a personal day (and bank holidays)
- Great colleague discounts and deals, saving you money on everyday purchases, utility bills for the home and more
- Retirement savings plan – save between 4% and 7.5% and Tesco will match your contribution
- Buy as you earn and Save as you earn share schemes
- Opportunities to get on – take advantage of our ongoing learning opportunities and award-winning training to help you achieve the career you want