Job
Description
Software Development Engineers (SDEs) are the creative minds behind the development of software applications aimed at simplifying tasks for customers. As an SDE, you will be responsible for the entire software development and support process, ultimately making previously complex tasks easier and more efficient, whether by saving time, effort, or money, or by re-defining what is considered normal. In this role, you will take a business problem and devise a technical strategy within the team, including high-level design and leading the implementation. Collaboration with SDEs across teams working on similar business problems is crucial, as is showcasing exemplary behavior in your work to set an example for your team. Your role will also involve influencing your team's technical and business strategy by suggesting innovative approaches and effectively communicating your ideas with stakeholders to drive towards the right outcomes. As an SDE, you are expected to proactively mentor the rest of the team, assist in the hiring process, address design or architectural deficiencies, and facilitate the integration of your team's software with peer teams. Leading the delivery of valuable features consistently, proposing and driving process improvements, and helping elaborate requirements when necessary are also key responsibilities. In terms of programming, you should demonstrate in-depth knowledge of IDE language and toolset, implement critical path components, optimize code, understand threading models, and comfortably test drive features using TDD. Additionally, having a good knowledge of various programming languages and paradigms, debugging complex problems, and knowing when to apply different languages are important skills. When it comes to design, you should be able to identify and apply appropriate design patterns, develop large features, practice the boy scout principle, understand cohesion, SOLID principles, and domain models, and design for performance at all levels. Anticipating medium-term changes, appreciating simplicity, and understanding design patterns like CQRS and eventual consistency are also essential. In terms of development practices, automating processes, building CI/CD pipelines, automating security scanning, and performance testing, as well as demonstrating a good grasp of operating systems, scripting techniques, databases, data storage paradigms, and PaaS technologies are vital. Regarding security, writing secure code by default, using tools for security probes, and understanding server hardening are crucial aspects. Familiarity with the technology stack, including OS, IDE, languages, unit testing tools, design patterns, and additional tools, is also required. It's important to note that Tesco Bengaluru does not authorize third parties for recruitment drives and does not charge any fees for recruitment. Any fraudulent activities should be reported to recruitment_compliance_india@tesco.com.,