Senior Software Developer (Java)
OpenBet is sport. The world's top sports betting brands choose OpenBet as their partner for world class content, leading tech and tailored services. We have their back. So they’re ready with exciting, memorable and safe sports betting experiences, to entertain millions of players worldwide.
OpenBet’s mission is to power growth and player engagement for operators through a global betting ecosystem that delivers at scale, at speed, at every great sports event. Our 1000 talented colleagues are the market's top team. We achieve billions of bets in a season; 60,000+ per second (more transactions than Amazon on Prime Day); 100% uptime (zero Superbowl crashes!) and we're built on 25 years of imaginative technology that is iterated daily.
OpenBet has established a premium client base of more than 75 operators worldwide and has 34 licences across the fastest growing regulated sports betting markets in North America, Europe and Asia Pacific. The team is growing at scale driven by accelerated demand for our products and significant investment. We offer the speed, dynamism and growth opportunities of a start-up, underpinned by the stability and strength of a global employer.
Working at OpenBet every day is an opportunity for you to create exciting betting entertainment for millions of sports fans across the globe.
Want to be part of our evolving future growth?
The Senior Software Developers role is a key one for the OpenBet Engineering team. The Senior Software Developer will be working alongside other Senior Software Developers, 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.
The Engineering team will be more aggressively adopting newer technologies, architectural principles and approaches to development, deployment and monitoring. The Senior 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 Senior Software Developer 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.
What can OpenBet give you:
- The opportunity to interact with global teams, and where appropriate switch teams and projects as you and our business continues to develop and grow
- Tangible and genuine career development, where you can take your career where you want it to go!
- Exposure to real world and business critical projects & the chance to develop some of the world’s leading e-commerce sportsbooks whilst working with various clients and seeing lots of code!
And if that’s not enough; you will get to enjoy benefits and flexible working whilst we provide you with the guidance and development skills you need to progress quickly and enhance your career.