The Principal Software Engineer is a key team member of the New Product Development (NPD) team. The Principal Software Engineer will be critical to ensure the highest coding standards and quality of deliverables to the QA and Operational Excellence teams and for adoption by operators.
A Principal Software Engineer will be expected to both lead and mentor less experienced developers, actively contributing to their day-
to-day activities and training needs.
The Principal Software Engineer will have a central role to play to ensure that the Software Engineering teams are aligned with overall Group and NPD architectural & technology (A&T), QA and Operational Excellence strategies, and also to act as a key influencer for such.
Along with the Development Manager and Senior Software Engineers, the Principal Software Engineer will ensure that new technologies and architectural principles are utilised appropriately and with rigour, whilst delivering the stability and performance that the SG Digital platforms have become synonymous with over time.
The role will also be required to help build a development capability with new and existing development teams, ensuring that best of breed engineering practices are implemented, particularly around CI / CD and also monitoring and support requirements.
The role will be across the Retail suite of products including Online Point of Sale (OPOS) and Self Service Betting Terminals (SSBT), all delivered in an Agile format with direction from Product Management but with delivery via a tightly contained team focused on quality deliverables across the platform.
The role will be based in Athens. Travel will be required, sometimes at short notice, both to other development offices and also to SG Digital's sportsbook customer base.
The Principal Software Engineer will frequently be required to make themselves available out of normal office hours for meetings with remote development teams and non-European operators.
Knowledge and Experience
Technical skills : Mandatory
A minimum of 6 years’ hands-on experience in designing and developing applications in at least one major language (e.g. Java, J2EE, C, C++), using UNIX / Linux.
A minimum of 4 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 2 years’ hands-on experience in designing applications using the actor model
Excellent knowledge of Relational Databases, SQL and ORM technologies (JPA2, Hibernate etc.)
Experience in developing web applications using at least one popular web framework (JSF, Drupal, GWT, Spring MVC etc.)
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
Some experience of developing and deploying distributed eCommerce (or similar) platforms in the cloud, using at least one major cloud provider (e.g. AWS or Google Cloud)
Hands-on experience in TCL development.
Hands-on experience in developing microservices using at least one popular framework (Netflix OSS, Spring Cloud, Play etc.)
Some experience in Domain Driven Design, the actor model, event-sourcing and CQRS
Secondary expertise in Python (maybe PHP) and PostgreSQL or MySQL would be beneficial
Why would you enjoy working with us at SG Digital?
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.