The Senior Software Engineer role is a key one for the SG Digital Product Engineering team. The Senior Software Engineer will be working alongside other Senior Software Engineers, Project Managers, QA, Software Architects and Operational Excellence in order to shape and implement the technology and people vision of the team that will drive forward this strategic initiative.
Product Engineering operates a scaled agile operating model. All our development is carried out via feature teams. As such we operate a “T-Shaped” philosophy. Our teams, as a unit, have the breadth of skills to carry out most work items. However each team has its own speciality and depth in a certain domain or area. Similarly our individual team members also bring a depth of particular skills or domain knowledge to the team, along with the willingness and expectation that you’ll pitch in to help your team mates achieve your team’s sprint objectives. As such, you, as a new engineer on our teams are expected to bring a depth of skills to the team, are expected to help others learn those skills, but at the same time have an open versatile mindset to learn new skills yourself and help your team achieve its goals to be successful. By doing so, you’ll be supported in growing in the direction you want to go but also have the opportunity to become a well rounded engineer to help with your future career progression.
In addition, a Senior Software Engineer will be expected to both lead and mentor less experienced developers, actively contributing to their day-to-day activities and training needs.
- Development of new features and functionality for Engineering products and services, including the production of unit tests as and where required
- Code reviews for products and services delivered across the wider Engineering team
- Code quality for products and services delivered by the team for whom the Senior Software Engineer is responsible
- Ensuring that products and services adhere to agreed performance KPIs and are delivered in line with Engineering pipeline requirements
- Ensuring that all products and services have agreed levels of test coverage, in line with Engineering requirements, and adhere to agreed architectural and technology (including security) standards
- Provision of detailed release documentation for handover
- Mentorship of a small team of Software Engineers
- Active participation in solutions architecture, design and development, including KPI definition
- Ability to act as the design authority and provide high level estimates of software deliverables for planning purposes
- Proactively identify and address areas of material improvement, notably around performance, security and scalability
- Where applicable, ensuring that development team processes are aligned with technical processes prevalent in the wider company
- Ensure that all team members have a clear understanding of the overall system architecture and design components, in the context of meeting product requirements
- Experience of Agile development processes and scrum roles and responsibilities
- Support the recruitment process of technical resources
Knowledge & Experience
- A minimum of 5 years’ hands-on experience in designing and developing applications using Java Enterprise platforms, preferably using UNIX / Linux
- A minimum of 3 years’ hands-on experience in designing distributed systems, for example using (preferably) DDD or SOA and potentially also a central ‘broker’ (such as Kafka or potentially an ESB)
- A minimum of 3 years’ hands-on experience in writing Spring Boot applications
- Excellent knowledge of Relational Databases, SQL
- Demonstrable experience with TDD and / or BDD
- Extensive experience is the use of Docker, Ansible, Maven, Jenkins, Sonar and Git (BitBucket)
- Demonstrable experience in developing large distributed systems and concepts such as caching, sharding, consistent hashing, interprocess communications and brokering
- Hands-on experience in developing microservices using at least one popular framework (Netflix OSS, Spring Cloud, Play etc.)
- Experience in developing web applications using at least one popular web framework (Angular, ReactJS etc.)
- Some experience in use of Kafka and Cassandra
- Some experience in Domain Driven Design, the actor model, event-sourcing and CQRS
- Secondary expertise in Python and PostgreSQL or MySQL would be beneficial
Domain knowledge is not required, but having worked on major eCommerce or any significant widely distributed system is.
Why would you enjoy working with us at SG Digital?
- Competitive benefits, an open and supportive environment as well as a modern and exciting workplace.
- The opportunity to interact with global teams on a regular basis and the possibility to switch teams and projects as you and our business continues to develop and grow.
- Tangible and genuine development - at SG Digital, you can take your career where you want it to go!
- Exposure to real work, business-critical projects and the chance to develop some of the world’s leading e-commerce sportsbooks whilst working on exciting client projects and interact with lots of code!
And if that’s not enough; you will get to enjoy a stunning work location and flexible working whilst we provide you with the guidance and development skills you need to progress quickly and enhance your career.