← All Jobs
Posted Apr 15, 2026

Senior Software Developer

Apply Now
- Strong attention to detail. - Knowledge of design principles and fundamentals of architecture. -  Demonstrated leadership/mentoring skills. - Detailed knowledge of the SDLC and management of software projects.  - Good written and verbal communication skills. - Develop the solution in a manner which supports modification. - Adaptability to change. Responsibilities Design Fit for Purpose Solutions & Algorithms & planning. - Actively contribute to design and planning meetings, discussions and documentation. - Design solutions using most appropriate approved architectural pattern. -  Ensure design patterns used are increasing the organisational levels of high-volume transactional performance, resilience, automation and innovation. -  Ensure design meets best practices and are Test, DevOps and Support friendly • Identify and establish objectives for self and team.  - Set objectives/goals based on the team’s chosen software development methodology to successfully complete projects. - Consider all reasonable factors, impediments and obstacles. - Identify potential alternative strategies and refactor approach for maximum benefit within the shortest possible time. - Formulate supporting plans and communicate with others in terms of dependencies and impact.   - Publish plan to, peers and stakeholders through agreed methods. Implementation of a solution that is complete, efficient and compatible - 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. -  Ensure checked in code is reviewed to ensure standards are met and the code base is sound.  - Deliver a solution in which throughput rates & response and processing times meet stated requirements.  - Deliver a solution in which effective/efficient resource utilisation of system resources occurs during operation. - Deliver a solution which ensures the maximum operational capacity requirement is achieved or exceeded.   - Deliver a solution which can effectively/efficiently exchange information with other products, systems or components. - Deliver a solution which performs efficiently and can co-exist with other solutions and does not have a detrimental impact on other solutions. Implementation – Advises on the Solution and/or actions allocated tasks to ensure it has a High Usability Factor - Ensure the user/s of the solution can achieve specified goals with effectiveness, efficiency and satisfaction. - 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 protects the user against making errors.  - Ensure the user interface is pleasing and presents a satisfying interaction for the user. - Actions the proposed solution thus ensuring that it is accessible and can be used by people with the widest range of characteristics, capabilities, cultures and languages where appropriate. 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 re-established (despite potential attacks). - Ensure the solution is maintainable, and actively seeks 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 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 authorization 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 3rd-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. Testing, verification and deploying  - Ensure the solution is test friendly by creating effective mechanisms for test data, automated testing hooks and simulations. - 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. 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 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 technical support documentation and where possible/necessary, maintain the documentation. - Assess risk and impact of production issues/changes and take appropriate steps to mitigate risk. Coaching/Mentoring  - Provides guidance, training, and problem-solving assistance to other Team Members.  - Mentors and contributes to the growth of junior and intermediate Team Members. - Designs and delivers end-user training and training materials. Living the spirit:  -  Actively drives a culture of collaboration and open communication within the team.  - Actively promotes authenticity and drives the spirit of diversity, inclusion, equity and belonging within the team.  - 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 the business as a whole.  - Actively become a change agent and drive continuous learning within the team thus ensuring that the team approaches all tasks or challenges with enthusiasm and proactivity. Qualifications -  Bachelor’s degree in computer science, Software Engineering, or similar field (advantageous). -  At least 5 years’ experience within a development environment. -  Knowledge of design principles and fundamentals of architecture.  - Demonstrated leadership/mentoring skills.  - Detailed knowledge of the SDLC and management of software projects. -  Good written and verbal communication skills.  - Strong attention to detail.
Interested in this role?Apply on iHire