Principal Android Engineer - come build the future of retail apps
This job offer is expired
We are looking for a talented full stack Principal Software Engineer specialising in native Android mobile development to help build great apps and services in the Sainsbury’s Digital Team. Specifically, you’ll mentor and lead the team who build the Sainsbury’s Groceries Online Android app. With over 500k organic users and a plan to grow our user base substantially, you’ll be joining us at a very exciting time.
As an expert in Android development in both Java and Kotlin, you will be a champion of XP practises like test driven development and pairing. You will be capable of taking a feature into production end-to-end through the full vertical slice from the mobile app to backend api changes. You will be comfortable with feature development on the backend api and will have a good understanding of REST, HTTP, microservices, GoLang and Python, and ideally in iOS as well (preferably in Swift).
What I need to do
- You will mentor other software engineers on your team – helping back-end engineers become more comfortable with mobile development. Equally you will be willing and eager to further develop your server-side skills by learning from the back-end engineers on your team.
- You will share your expertise and knowledge with other software engineers through a number of channels ranging from daily pairing to running tech workshops/code katas.
- You will take an active part in sprint planning meetings, making sure that stories are well-defined and granular enough to take into the sprint.
- You will be eager to learn the infrastructure tooling chain consisting of Ansible, Terraform and the AWS platform.
- You will work closely with Software Engineers, Designers and Product owners across our most high traffic platforms and be part of a team that is responsible for our most popular groceries shopping apps.
How I will succeed
- Show that you have an excellent understanding for a number of technical skills, attitudes and behaviours instilling to others
- Proactively seek opportunities to share your knowledge and abilities
- Lead and contribute across Agile teams from a technical perspective
What I need to know
- Demonstrable experience of new technologies and know when it’s appropriate to use them
- Advanced understanding and experience of using various tools such as JIRA, Confluence and GitHub
- Advanced understanding and experience of Object Oriented programming and its advantages and disadvantages in large scale applications
- Advanced understanding and experience of Unit testing (including mocking and behavioural testing) and Continuous Integration
- Advanced understanding and experience of Version control systems such as GIT and Continuous Integration pipelines and why we use them
- Advanced understanding and experience of Relational and non-relational databases and when to use them
- Advanced understanding and experience of Service oriented architecture and the benefits of taking a micro services approach to development
- Advanced understanding and experience of framework agnostic development, knowing when to use frameworks and when not to
- Advanced understanding and experience of caching (both at application and platform level), why and when to use caching
- Experience in leading technical teams
- Good understanding and experience of database administration across a number of SQL and noSQL database technologies
- Good understanding and experience administrating linux servers, configuration of traffic routing, web servers (apache, nginx, etc) and other DevOps type responsibilities
- Good understanding and experience of developing for multiple devices including desktop PC, tablet and mobile using responsive designs and techniques
- Hands on experience with Cloud infrastructure and services, preferably with a good understanding of Amazon Web Services
What I need to show
- Communication and Influencing: Uses range of techniques to influence, adapts to situation
- Analytical Thinking: Pushes boundaries in solving problems
- Aptitude to Learn: Actively seeks feedback from multiple sources, contributes to wider community in own area of expertise
- Team Work: Supports a collective effort to resolve problems, uses strengths of team to deliver increased value
- Leadership and Mentoring: Values differences
- Commitment and Planning: Delivers ahead of expectations