Intermediate Software Development Engineer

We Want You:

Do you see yourself as an expert who can design, as well as build software that is stable, scalable and performant? Would you be comfortable developing, delivering, and supporting applications, where data is received from, or rapidly made available to users of the systems? Can you do this with the highest degree of integrity possible? Then we’re looking for you!

As our Software Development Engineer, you should enjoy solving challenging problems of scale and availability. You should also have a demonstrated capacity for technical leadership, while meeting business goals.

If you have strong programming fundamentals and are excited to learn about current and future technologies, why not join us? You’ll be contributing to a wide range of projects in a highly collaborative and fast-paced environment, and you will become part of an industry-leading team creating solutions on a massive scale!


You Bring:

  • At least 3-5 years’ experience within a development environment
  • 2-5 years SQL Experience
  • 1 years’ Experience in document stores such as Couchbase / Mongo would be advantageous
  • 1 years’ Experience in Message Brokers such as RabbitMQ / Kafka / Red Panda would be advantageous
  • 3 -5 years C# experience.
  • 3 -5 years .net core experience.
  • 3 -5 years restful api experience.
  • Good written and verbal communication skills.
  • Strong attention to detail.


What You’ll Do:

  • Actively contribute to design and planning meetings, discussions and documentation;
  • Ensure design patterns used are increasing the organisational levels of high-volume transactional performance, resilience, automation and innovation;
  • Identify and establish objectives for self and team;
  • Identify potential alternative strategies and refactor approach for maximum benefit within the shortest possible time;
  • Deliver a complete solution which covers all the agreed specified tasks and user objectives;
  • Deliver a correct solution which provides the correct results with the needed degree of precision;
  • Deliver an appropriate solution which facilitates the accomplishments of specified tasks and objectives comprehensively yet excluding unnecessary steps;
  • Deliver a solution in which effective/efficient resource utilisation of system resources occurs during operation;
  • 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 on how to use the system with effectiveness and efficiency;
  • Ensure the solution accessible and can be used by people with the widest range of characteristics, capabilities, cultures and languages where appropriate;
  • 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 so that data may be recovered, 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 support through traceability, and effective error messaging;
  • Ensure over time, the solution becomes more mature where the interval between the interventions to remain operational become less frequent;
  • Ensure where possible (without affecting performance/security) the solution caters for maintenance by support teams rather than developers;
  • Ensure modularity where the solution consists of discrete components so that a change in one component has minimal impact on other components;
  • Ensure the solution is delivered completely and with the additional assets which are required to make installation/deployment as seamless and easy as possible;
  • Ensure the adaptable solution delivered is appropriate for different or evolving hardware, software or other operational usage environments;
  • Provide proactive support to Peers, Testing, Dev Support and Operational teams so number of escalations to the development team is reduced, thereby maximising development time;
  • Provide support to the 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;
  • When required supply appropriate information, domain knowledge and access to partners;
  • Provide timely, relevant and constructive feedback to assist the partner to achieve success;
  • Take corrective action when deviation from the plan is observed;
  • Take all appropriate steps to ensure organisational success.


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.

Please note that only candidates who meet the stipulated minimum requirements will be considered. If you have not been contacted within 30 days, kindly consider your application to be unsuccessful.