Software Dev Engineer III

  • Full-time
  • Technology CF Job Family: Software Engineering
  • Group Function: Tesco Technology

Company Description

Tesco Bengaluru: We are a multi-disciplinary team creating a sustainable competitive advantage for Tesco by standardising processes, delivering cost savings, enabling agility, providing cutting-edge technological solutions and empowering our colleagues to do ever more for our customers. With cross-functional expertise in Global Business Services and Retail Technology & Engineering, a wide network of teams and strong governance we reduce complexity thereby offering high quality services for our customers. Tesco 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 4,40,000 colleagues.
Tesco Technology consists of people from a number of different backgrounds, but having a common purpose to serve our shoppers a little better every day with our retail technological solutions. We shared a common interest in harnessing innovations in technology to enhance their shopping experience at Tesco stores. Whether making products, software or systems, our teams focuses on various aspects from taking strategic ownership of the architecture to delivering technological solutions such as design, testing, deployment, infrastructure, operation and security of the systems to ensure agile, smooth and safe operations. These help us to deliver the maximum business impact. Teams refine their internal processes to best fit their own needs, working to build core capabilities in application and services. We collaborate globally across teams to build end-to-end customer-facing solutions, as well as to share knowledge, experience, tools and techniques.

Job Description

As one of the world’s largest retailers and the largest private employer in the United Kingdom (second largest after the UK government) Tesco serves millions of customers a week in our stores and online portal. Tesco Bengaluru is the only international technology and retail operations centre for Tesco worldwide – we make the Tesco experience better for millions of our customers and colleagues. Established in 2004 Tesco Bengaluru is pivotal to Tesco and we enable its business with our expertise in technology business operations property finance and commercial services. Tesco is currently in the process of moving to a Service Orientated Architecture in order to increase its business agility to increase its return on investment and to become the world’s leading Multichannel retailer.

And Colleague Transformation is the right place to build Service Orientated Architecture from foundation. There are 460K colleague in Tesco. Registration of these colleague on various in-house and 3rd party systems has to be simplified. Colleague and Organisation domain API are front door to access colleague personal and assignments data. Colleague domain eventing platform exposes personal and assignments data changes in an event driven manner. Using this platform in-house and 3rd party systems seamlessly on-boards the colleagues.


Impact & Value
• Leads valuable features that are used by customers
• Leads Scrum ceremonies
• Suggests improvements to processes and methodologies to speed delivery
• Questions requirements and challenges where necessary
• Can identify value of tasks & always works on the highest priority items.
• Work effectively with stakeholders to communicate and translate their needs into improvements.
• Lead group discussions on design of initiatives within domain. 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 engineers in the team.
• Produce proof of concepts to evaluate new tools.

Programming
• Good Understanding of Java/J2EE programming language SOA Microservices NoSQL Dependency Injection frameworks RESTful services ORM frameworks Build tools etc.
• Understands framework and enough of tool ecosystem of chosen language to implement end to end component with minimal assistance
• Comfortable producing and refactoring code without assistance
• Able to test drive features in programming language of choice
• Understands different major language paradigms (OOP/Functional)
• Understands presence of abstraction beneath language (JVM/CLR)
• Can reason about complexity of algorithms (time and space) and code (cyclomatic)
• Can debug code
• Can understand and resolve complex issues

Design
• Can Identify design patterns in code
• Can implement design patterns with guidance
• Comfortable translating small behaviour requirements into tasks & code
• Understanding of how high quality code can lead to rapid delivery
• Good understanding of domains and domain modelling
• Seeks out and uses appropriate abstractions
• Good understanding of DRY and basic code hygiene factors
• Good understanding of patterns for integration (events/services)
• Good understanding on how to leverage existing functionality outside immediate project
• Understands scope of project and when to move behaviour to other services
• Understands the importance of project instrumentation

Development Practice
• Good understanding of CI and CD.
• Writes tests to ensure CI/CD processes work
• Good understanding of BDD/TDD/Performance/Security/Smoke testing
• Commits code early and often
• Understands feature toggling
• Understands version control & branching strategies

Infrastructure
• Good working knowledge of one relevant operating system
• Understands one relevant Database technology
• Can script and automate within relevant environment
• Understand when to apply appropriate infrastructure technologies

Security
• Can perform a tool based security scan and articulate vulnerabilities
• Understands Oauth/Saml & identity models
• Basic grasp of secure coding and Write secure code by default

Behaviours & Collaboration
• Fully participates in team ceremonies
• Comfortable pair programming
• Can use whiteboard and other materials to convey designs and principles

Innovation
• Stays abreast of industry news from a variety of sources
• Can understand how industry developments may affect team

Core Technology Concepts
• Understands major HTTP components (UDP/TCP/IP/HTTP/REST)
• Understands core infrastructure components (servers networking load balancing)


Technical Skills
Should have:
• Languages - Java 8+ and Lambda expressions
• Dependency Management - Google Guice or Spring Framework or Micronaut
• RESTful Web Service Frameworks
• Build Tools - Gradle/Maven
• CICD - Git Jenkins
• Practices and Paradigms - Design Patterns Clean Coding
• Testing - TDD BDD
Good to have:
• Reactive Paradigms - RxJava2
• Framework - Vertx or any equivalent web frameworks (eg Spring Boot) Graphql
• Languages - Groovy and Kotlin
• Infrastructure - AWS Kubernetes
• Monitoring - AppDynamics Splunk
• Scripting - Python Shell
• Java Library - Lombok
• Database - RDBMS DB like Oracle DB or any equivalent DB

Qualifications

Java 8+ RxJava2 Google Guice Spring Vertx RESTful Services Gradle
Privacy Policy