We Want You: Are you ready to take your software engineering skills to the next level? BET Software is looking for an Intermediate Software Development Engineer to join our vibrant team in Durban. Here, you'll dive into coding and problem-solving, collaborate with like-minded innovators, and lead the way in software maintenance and improvement. Bring your expertise in software development principles, frameworks, and tools to create high-performance, scalable, and secure solutions while mentoring the next generation of talent. If youre passionate about continuous learning and making a real impact, apply today. You Bring: At least 3-5 years experience within a development environment (advantageous). 2 - 5 years database experience. 3 -5 years server/client- side languages (advantageous). Good written and verbal communication skills. Strong attention to detail. W hat Youll Do: Technical Outputs: Perform Planning Identify and establish objectives for self and team. Work on objectives or goals within timeline. Consider all reasonable factors, impediments and obstacles. Identify potential alternative strategies and refactor approach for maximum benefit within the shortest possible time. Implementation - Ensure the Solution is Functionally Complete Deliver a 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. Ensure checked in code is reviewed to ensure standards are met. Implementation Ensure the Solution is Reliable 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 the solution is robust and remains continually available. Respond to outages and failures when and where needed. Improve fault tolerance even when operational conditions are not optimal. 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 in the event of a failure reduce effective downtime is to the minimum possible. Implementation Ensure the Solution has Effective Security Ensure the solution is secure, and confidential by protecting all information and data (also data transmission). Ensure persons or other solutions have the degree of access appropriate to their level of authorisation and types. Ensure the solution has high integrity where the solution prevents unauthorised access to, modification of computer programs, data, or settings. Ensure the solution has a high degree of survivability despite third-Party interventions (attacks, human errors, hardware or software faults). Employ logs and records so that actions and events can be proven to have taken place and cannot be disputed/ repudiated later. Ensure wherever possible actions can be traced uniquely to the entity which performed it. Ensure wherever possible the identify of an entity can be proved to be the correct one. Implementation - Ensure the Solution is Maintainable Ensure the solution and its relevant code base supports ease of modification for future maintainers. Ensure the use of appropriate standards and methods. 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 relevant documentation is provided to support teams to reduce development support burden. Apply a strategy of reusability so an asset can be used in more than one solution or in building other assets. 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 numbers of defects or negatively affecting system quality. Verify Deployed Solutions 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, software or other operational usage environments. Provide support to the Dev Support when required during operational events and create or assist with the creation of SOPs. Be available to handle emergency outages and failures for your or your teams solutions. Perform trouble shooting and effectively resolve issues to increase solution stability and reduce intervention required over time. Recommend and execute approved improvements to development methods and solutions. Provide quick resolutions to app/system issues, driving stability, efficiency and effectiveness. Maintain solutions which have completed development and are in the operations phase. Develop and maintain technical support documentation. Assess risk and impact of production issues/changes and take appropriate steps to mitigate risk. Direct 3rd Party Development Partners 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. Behavioural Outputs: Adaptably Resilient Adapts to change and is open to new ideas and willing to take on new responsibilities. Able to handle pressure and can effectively adjust plans to meet changing needs/demands. Changes his/her interpersonal style and approach based on the circumstances. Adapts behaviour to maintain cooperative relationships with others. Accepts changes to task, plans and procedures in order to align with strategic direction of the organisation and appropriately adjusts behaviour and activities to changing conditions. Maintains a positive attitude in the face of change. Decision Making Quality Makes confident, timely, fact-based decisions drawing on a broad range of resources through collaboration with others. Ensures others understand the decision before moving forward. Considers short- and long-term implications of the decision. Able to logically defend and explain judgements and decisions. Takes steps to accurately define the problem before seeking a solution. Bases decisions and evaluations on a careful and systematic review of relevant facts and information. Resourceful and improving Generates new ideas and challenges the status quo, takes risk, supports change and encourages innovation. Searches for opportunity to create new ideas and innovate or improve efficiencies wherever possible. Solves problems through questioning the status quo. Living the Spirit: Engages in cross-functional collaboration and problem solving while encourages a culture of inclusivity. Actively drives a culture of versatility and adaptability by modelling and encouraging team members to support each other not only within the department, but within BET Software as a whole. Shows up in an authentic manner and leverages off the teams diversity to achieve deliverables. Views challenges as opportunities to expand on their knowledge base as well as encourages junior team members to do the same and takes a creative approach to overcoming the challenges. 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.