About the role
As a Software Development Engineer 2 you are in a mid-level Individual Contributor role at Tesco. Engineers at SDE2 level will continue their career development and show potential for an SDE3 role. At this level, your impact reaches across a team, and you provide technical leadership of medium to large features. You are starting to produce your own work by understanding the problems that the team faces and are beginning to support other engineers with their own delivery and development. You prioritise sharing your skills and knowledge. You also prioritise quality of work, helping your team to continually set the standard. You understand and apply best practice within Tesco and across the industry.
You will be responsible for
- Develop
Java web services and components according to a detailed design document.
- Build
efficient, reusable and reliable Java code per industry best practices.
- Follow
TDD approach and ensure unit-test coverage meets quality requirements.
- Develop
Integration tests to ensure coding adheres to acceptance criteria and verify end-to-end behaviour of the system.
- Ensure
best possible performance, quality and responsiveness of applications.
- Familiar
with Agile ways of working
- Follow
coding standards and Industry best practices.
- Develop
reusable components.
- Take
a problem where technical strategy or approach is defined and come up with the solution design and drives the implementation with a fair level of autonomy including interacting with other SDEs in the same team or peer teams
- Reach
out for direction proactively in case of ambiguities or constraints
- Own
the delivery of a major component in a product or a small product entirely as part of a feature delivery
- Suggest
improvements to processes and methodologies to enhance delivery speed, quality
- Mentor
and guide other SDEs in the team and help in hiring
- Question
requirements and challenge where necessary
- Identify
value of tasks & always work on the highest priority items
- Programming
- Demonstrate
a good understanding of Java programming language
- Understand
the framework and enough of the tool ecosystem of the chosen language to implement end to end components with minimal assistance
- Comfortably
produce and refactor code without assistance
- Test
drive features in programming language of choice
- Understand
different major language paradigms (OOP/Functional)
- Understand
presence of abstraction beneath language (DVM/JVM/CLR)
- Reason
about complexity of algorithms (time and space) and code (cyclomatic)
- Debug
code
- Understand
and resolve complex issues
- Design
- Identify
design patterns in code
- Implement
design patterns with guidance
- Comfortably
translate small behaviour requirements into tasks & code
- Understand
how high-quality code can lead to rapid delivery
- Write
clean, maintainable code
- Demonstrate
a basic understanding of domains and domain modelling
- Seek
out and use appropriate abstractions
- Understand
patterns for integration (events/services)
- Understand
how to leverage existing functionality outside immediate project
- Understand
scope of project and when to move behaviour to other services
- Development
Practice
- Understand
continuous integration and continuous delivery
- Demonstrate
a working knowledge of CI tooling
- Writes
tests to ensure CI/CD processes work
- Understand
BDD/TDD/Performance/Security/Smoke testing
- Infrastructure
- Demonstrate
a good working knowledge of one relevant operating system
- Script
and automate within relevant environment
- Security
- Understand
Oauth/Saml & identity models
You will need
- Minimum
of 7+ years of overall experience including experience developing in Java latest version (Java Version 11 and above); experience in design and development using Micro service architecture.
- Solid
knowledge in OOP concepts; and design principles/patterns for developing scalable applications
- Must
have experience in developing Spring Boot applications; developing database access layer using Spring Data JPA/Hibernates; developing REST Services using Spring; development of event driven systems using any framework/kafka
- Experience
with any RDBMS and at least one NoSQL database preferably PostgresSQL and Mongo DB
- Experience
in writing unit and integration tests using Junit
- Experience
using mock frameworks like Mockito, WireMock experience using Git
- Experience
with CI / CD
- Basic
hands-on experience in one of the cloud providers (AWS/Azure) or at least docker and Kubernetes
- Familiarity
with build tools Maven or Gradle
- Added
advantage with experience of Reactive and Functional Programming
Whats in it for you
At Tesco, we are committed to providing the best for you.As a result, our colleagues enjoy a unique, differentiated, market- competitive reward package, based on the current industry practices, for all the work they put into serving our customers, communities and planet a little better every day.Our Tesco Rewards framework consists of pillars - Fixed Pay, Incentives, and Benefits.Total Rewards offered at Tesco is determined by four principles -simple, fair, competitive, and sustainable.
Salary
- Your fixed pay is the guaranteed pay as per your contract of employment.
Leave & Time-off
- Colleagues are entitled to 30 days of leave (18 days of Earned Leave, 12 days of Casual/Sick Leave) and 10 national and festival holidays, as per the companys policy.
Making Retirement Tension-FreeSalary
- In addition to Statutory retirement beneets, Tesco enables colleagues to participate in voluntary programmes like NPS and VPF.
Health is Wealth
- Tesco promotes programmes that support a culture of health and wellness including insurance for colleagues and their family. Our medical insurance provides coverage for dependents including parents or in-laws.
Mental Wellbeing
- We offer mental health support through self-help tools, community groups, ally networks, face-to-face counselling, and more for both colleagues and dependents.
Financial Wellbeing
- Through our financial literacy partner, we offer one-to-one financial coaching at discounted rates, as well as salary advances on earned wages upon request.
Save As You Earn (SAYE)
- Our SAYE programme allows colleagues to transition from being employees to Tesco shareholders through a structured 3-year savings plan.
Physical Wellbeing
- Our green campus promotes physical wellbeing with facilities that include a cricket pitch, football field, badminton and volleyball courts, along with indoor games, encouraging a healthier lifestyle.
About Us
Tesco in Bengaluru is a multi-disciplinary team serving our customers, communities, and planet a little better every day across markets. Our goal is to create a sustainable competitive advantage for Tesco by standardising processes, delivering cost savings, enabling agility through technological solutions, and empowering our colleagues to do even more for our customers. With cross-functional expertise, a wide network of teams, and strong governance, we reduce complexity, thereby offering high-quality services for our customers.Tesco in Bengaluru, established in 2004 to enable standardisation and build centralised capabilities and competencies, makes the experience better for our millions of customers worldwide and simpler for over 3,30,000 colleagues
Tesco Technology
Today, our Technology team consists of over 5,000 experts spread across the UK, Poland, Hungary, the Czech Republic, and India. In India, our Technology division includes teams dedicated to Engineering, Product, Programme, Service Desk and Operations, Systems Engineering, Security & Capability, Data Science, and other roles.At Tesco, our retail platform comprises a wide array of capabilities, value propositions, and products, essential for crafting exceptional retail experiences for our customers and colleagues across all channels and markets. This platform encompasses all aspects of our operations - from identifying and authenticating customers, managing products, pricing, promoting, enabling customers to discover products, facilitating payment, and ensuring delivery. By developing a comprehensive Retail Platform, we ensure that as customer touchpoints and devices evolve, we can consistently deliver seamless experiences. This adaptability allows us to respond flexibly without the need to overhaul our technology, thanks to the creation of capabilities we have built.