We Want You:
Are you a savvy Senior Software Developer with excellent communication skills, and the drive to build high-quality systems? Do you have a knack for software development? How about a passion for creating solutions – one line of code at a time?
We need a problem solver, an analytical thinker, a do-er, and an innovator who is able to perform in a fast-paced environment, developing and managing solutions for our online and offline betting platforms. As a Senior Software Developer, you will be part of project-related activities where you will not be limited to any tech stack – but will use the technology or coding stack of your choice.
- At least 5-7 years’ experience within a development environment;
- 3-5 years’ SQL experience;
- 1-2 years’ experience in document stores such as Couchbase / Mongo would be advantageous;
- 1-2 years’ experience in Message Brokers such as RabbitMQ / Kafka / Red Panda would be advantageous;
- 5 -7 years’ C# experience;
- 5 -7 years’ .net core experience;
- 5 -7 years’ restful api experience;
- Demonstrated leadership skills;
- Detailed knowledge of the SDLC and management of software projects;
- Good written and verbal communication skills;
- Strong attention to detail.
Nice To Have
- Experience in distributed systems.
- Experience in functional languages
- Experience in Agile
What You’ll Do:
- Ensure design patterns used are increasing the organisational levels of high-volume transactional performance, resilience, automation and innovation;
- Identify potential alternative strategies, and refactor approach for maximum benefit within the shortest possible time;
- Deliver an appropriate solution which facilitates the accomplishments of specified tasks and objectives comprehensively, whilst excluding unnecessary steps;
- Deliver a solution in which effective and efficient resource utilisation of system resources occurs during operation;
- Deliver a solution which performs efficiently, can co-exist with other solutions, and does not have a detrimental impact on other solutions;
- Deliver an interoperable solution which can exchange and use information between different solutions, not necessarily in the same environment;
- Ensure the user of the system can comfortably recognise the systems flow, functions, and capabilities of the system;
- Ensure the system logically supports user self-learning;
- Ensure the solution is accessible, and can be used by people with a wide range of characteristics, capabilities, cultures, and languages;
- Ensure the solution performs appropriately under agreed conditions for extended periods of time without the need for intervention (despite potential attacks);
- Ensure all steps are taken to reduce the occurrence of faults due to misunderstood requirements, design errors, and implementation errors;
- Ensure complete data recoverability, and the desired state of the solution can be re-established (despite potential attacks);
- Ensure the solution is durable so that as user volumes and requirements change, the solution can evolve over the long term;
- Ensure the solution simplifies support and maintenance, through traceability, and effective error messaging;
- Ensure that over time, the solution becomes more mature;
- Ensure the solution has high integrity, where the solution prevents unauthorised access, modification of computer programs, data or settings;
- Ensure the solution has a high degree of survivability, despite 3rd-Party interventions (attacks, human errors, hardware or software faults);
- Ensure modularity, where the solution consists of discrete components so that a change in one component has minimal impact on other components;
- Where possible, provide a mechanism for the solution to analyse its own faults, and provide reports prior to a critical failure;
- Develop the solution in a manner which supports modification for future developers, thereby reducing the number of defects, or the system quality being negatively affected;
- Ensure the solution is delivered completely, and with the additional assets which are required to make installation/deployment as seamless, and as easy as possible;
- Provide support to Dev Support when required during operational events, and create or assist with the creation of SOP’s;
- Perform trouble shooting, and effectively resolve issues to increase solution stability, and reduce intervention required over time;
- Make confident, timely, fact-based decisions drawing on a broad range of resources through collaboration with others;
- Generate new ideas, and challenge the status quo, take risks, support change and encourage innovation.
The Company We Keep:
At BET Software, we don’t just recruit talent, we cultivate it. Our learning and development programmes, our various opportunities for growth, and our well-deserved incentives are what keep our All-Star Team the best amongst the rest.