We Want You:
Are you a passionate software developer looking for your next big opportunity? BET Software is on the hunt for an Intermediate Software Development Engineer (Live) to join our dynamic Johannesburg team. Your role will involve crafting and implementing top-notch software solutions, collaborating with colleagues, and mentoring juniors. You'll need a solid grasp of development principles, programming languages, and frameworks, and you'll play a key part in maintaining and improving our software. Ready to tackle exciting challenges and make a real impact? Apply now.
You Bring:
-
Degree in Computer Science or related field.
-
Understanding of key design principles.
-
Proficiency in HTML, CSS, JavaScript, and jQuery.
-
Understanding of server-side CSS.
-
At least 3-5 years’ experience within a development environment.
-
2-5 years SQL/database experience.
-
Experience in document stores such as Couchbase (advantageous).
-
Experience in Message Brokers such as RabbitMQ Kafka (advantageous).
-
2-5 years C# experience.
-
2-5 years .net core experience.
-
2-5 years of restful api experience.
-
Good written and verbal communication skills.
-
Strong attention to detail.
-
Experience with responsive and adaptive design.
-
Understanding of SEO principles.
-
Good problem-solving skills.
-
Excellent verbal communication skills.
-
Good interpersonal skills.
What You’ll 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 complete data recoverability so that data may be recovered, and the desired state of the solution can be reestablished (despite potential attacks).
-
Ensure the solution is maintainable, and actively seek methods to reduce down-time.
-
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 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 that performed them.
-
Ensure wherever possible the identity 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 support ease of modification for future maintainers.
-
Ensure the use of appropriate standards and methods.
-
Ensure where possible (without affecting performance/security) the solution caters to 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 the support team to reduce the 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 faults and provide reports before a critical failure.
-
Develop the solution in a manner that supports modification for future developers thereby reducing the number 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.
Respond to Outages & Failures
- 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.
-
Be available to handle emergency outages and failures for you 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 innovative 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 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 our Spirit:
-
We firmly believe that teamwork makes the dream work.
-
We collaborate seamlessly within our live development team and support respective departments to collectively achieve our goals.
-
We approach each day as an adventure, eagerly tackling new challenges, adapting to changes, and constantly learning and growing.
-
We put our hands up to provide live support as and when required. We are dedicated to ensuring the continuous stability and efficiency of our solutions.
-
We actively respond to outages and failures, providing proactive support to peers, testing, and operational teams. We resolve issues quickly and make improvements to maximise solution stability.
-
We direct system testing and validation procedures, ensuring the highest quality in our software.
-
We pay strong attention to detail, uphold SEO principles, and strive for responsive and adaptive design.
-
We take ownership of our responsibilities, adhering to best practices and embracing a proactive approach to problem-solving.
-
We maintain excellent written and verbal communication skills, ensuring clear and open communication within our team and with other departments.
-
We foster an environment that encourages innovative thinking and creative solutions, continuously seeking new ways to improve our software and development methods.
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 applicants 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.