Intermediate Software Development Engineer - Live
BETSoftware
Job Description
- 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.
Responsibilities
Technical Outputs
Perform Planning
- Identify and establish objectives for self and team.
- Work on objectives or goals within the 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 that covers all the agreed-specified tasks and user objectives.
- Deliver a correct solution that 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 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 re- established (despite potential attacks).
- Ensure the solution is maintainable, and actively seek methods to reduce downtime.
- 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 authorization and
- types.
- Ensure the solution has high integrity where the solution prevents unauthorized access to, or 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 analyze 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 the number of escalations to the development team is reduced, thereby maximizing 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 your or your teams’ solutions.
- Perform troubleshooting 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 that 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 organizational success.
Qualifications
- 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
- Preferably Experience in document stores such as Couchbase would be advantageous
- Preferably Experience in Message Brokers such as RabbitMQ / Kafka would be advantageous
- 2-5 years C# experience.
- 2-5 years .net core experience.
- 2-5 years of restful api experience.