Software Development Engineers (SDEs) are the creative minds developing the software applications that make life easier for customers. Responsible for the entire development and support process for a software programme. Your applications make previously complex tasks simple with the impact ranging from saving time, effort or money to re-defining normal
You will be responsible for
- Take a business problem and come up with the technical strategy (push vs pull etc, real time vs batches, sync vs async) within the team, high level design and lead the implementation
- Need minimal directions or guidance and collaborate with SDEs across teams working on the same or similar business problem
- You showcase exemplary behaviour in your work your design, delivery, code, processes all set examples for your team
- Influence your team s technical and business strategy by suggesting novel approaches
- Able to communicate your ideas and get feedback from different stakeholders and drive convergence to achieve the right outcomes
- Proactively mentor the rest of the team and help in hiring
- Ensure design or architectural deficiencies are addressed and routinely simplify integration of your peer teams with your team s software
- Consistently lead delivery of valuable features
- Continually propose and drive process improvements
- Help elaborate requirements where necessary
You will need
Programming
- Demonstrate in depth knowledge of IDE, language and toolset in language of choice.
- Implement critical path components in a large or complex project.
- Demonstrate excellent understanding of language & framework and a good working knowledge of the abstraction layer underneath
- Profile and optimise code
- Understand threads,
threading model and concurrent programming
- Comfortably test drive any feature/comfortable with TDD cycle
- Demonstrate a good knowledge of other programming languages & paradigms and when to apply them
- Comfortably debug/find complex problems
Design
- Identify and apply appropriate design patterns to problems
- Comfortably develop large features
- Understand Idempotence
- Actively practice the boy scout principle, leaves design, code in a better state than when arrived
- Demonstrate a good understanding of cohesion, SOLID and how to apply
- Understand importance of domain model and can coherently model a problem domain within a given context
- Anticipate medium term (3-6 month) vectors of change and designs and abstracts accordingly
- Understand and appreciate simplicity and the value of removing code
- Understand design patterns such as CQRS and eventual consist
- Understand how to design for performance at all levels
Development Practice
- Automate everything by default
- Build a CI/CD pipeline
- Automate security scanning and performance testing as part of build
Infrastructure
- Demonstrate a valuable grasp of multiple operating systems, scripting techniques
- Demonstrate expertise in one database & good grasp of multiple data storage paradigms and when to apply other technologies
- Understand and can automate PaaS technologies
- Understand when to apply appropriate infrastructure technologies
Security
- Write secure code by default
- Use tools to perform deep security probes
- Understand server hardening
Disclaimer: This job posting has been aggregated from external source. Role details, content, and availability are subject to change. Applicants are advised to confirm the latest information directly on the company website before applying.
📌 Software Development Engineer II (Karnataka)
🏢 Tesco
📍 Karnataka
Reply to this offer
Impress this employer describing Your skills and abilities, fill out the form below and leave Your personal touch in the presentation letter.