About the role
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
In this job, I
- Use my in-depth knowledge of at least one major programming language, the framework and the tool ecosystem to implement end-to-end systems, which I'm able to do without assistance.
- Profile and optimise code.
- Produce test driven features in a specific programming language and demonstrate that I'm comfortable with the TDD cycle.
- Apply my understanding of cohesion and the SOLID principles to create well structured, maintainable software.
- Apply my understanding of threads, the threading model and concurrent programming.
- Identify patterns in code and refactor the code towards them where it increases understanding and/or maintainability with minimal guidance.
- Translate requirements into tasks & code.
- Develop high quality code that can lead to rapid delivery. Ruthlessly pursuing continuous integration and delivery.
- Commit code early and often, demonstrating my understanding of version control & branching strategies.
- Automate everything by default.
- Write secure code by default.
- Write maintainable code and observe basic hygiene practices.
- Demonstrate the importance of domain model and I coherently model a problem domain within a given context
- Implement relevant project instrumentation.
- Follow the best practices of continuous BDD/TDD/Performance/Security/Smoke testing.
- Work effectively with my product stakeholders to communicate and translate their needs into improvements in my product.
- Lead group discussions on design of particular areas 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 those around me.
- Produce proof of concepts to evaluate new tools.
Experience relevant for this job:
- 5+ years of experience as a Java backend developer
- Experience with Ecommerce and search systems would be a nice to have, but not necessary.
- Experience with Java 8 is a must
- Experience with reactive programming is considered a plus.
Skills relevant for the job
- Written and verbal communication skills.
- Problem solving, analysis and computational skills.
- Customer focus.
- Innovative approach to problem solving.
About Tesco Technology
- We build systems to solve real world problems at scale, with impact for tens of millions of people.
- There are phenomenal engineers (and managers, programme and product people) to learn from.
- We are agile and contemporary in our approach to building software and teams.
- There's a great atmosphere and we work sustainably as a team.
- Tesco has a "do the right thing" mentality.
- We promote flexible working.