Task and role responsibilities -
The Senior Developer is responsible for the design, documentation, code and testing of complex program components, scripts or package configuration in line with agreed specifications; responsible for delivering complex components, including correction and iteration to agreed standards and process to meet or exceed client expectation. The Senior Developer will work proactively and collaboratively with team members, particularly when working within scrum teams using agile working methodologies, and during requirements, specification and coding review sessions.
The Senior Developer provides hands-on technical expertise and takes responsibility for delivering robust and resilient solutions built using proven software development techniques. They provide leadership and direction for the development activities, delivered with sufficient quality to underpin outstanding new solutions for users. The Senior Developer will work closely with Solutions Architects, Product Managers, Service Managers, Business Analysts, Scrum Masters and the development team throughout the duration of development.
Typical Aspects of this role include, but are not limited to the following:
* Analyses business requirements, business processes, and technical architectures. Designs and uses them as the basis for the Software Engineering solution.
* Defines and analyses Software Engineering methods and advises on best fit solutions and techniques.
* Identify technical options and inform architectural approaches, collaborating with team members to write tests, code and documentation for new and existing systems.
* Work with Solutions Architects to design and implement seamless integration with internal and external systems.
* Ensure systems are robust, scalable and secure, with appropriate overall system design and integration points in order to deliver a high-quality user experience.
* Collaborate with Solutions Architects, Test Engineers and Developers to build up a robust automated test suite, if required, to work in a continuous integration and continuous deployment environment.
* Engage with the wider development community identifying good practices that can be adopted and shared.
* Sharing knowledge of tools and techniques with technical and non-technical team members in the wider teams across engagements.
* Demonstrable experience in functional programming and back-end software development.
* Experience developing and using APIs.
* Demonstrable experience of automated testing solutions
* Experience building or collaborating on open source solutions
* Experience working on technical projects within an agile team
* Knowledge of the use of version control systems.
* Contribute to technical knowledge sharing activities such as internal courses to ensure skills are kept up to date.
* Experience using automated testing / continuous integration tools
* Experience using Confluence & JIRA
* Experience using and deploying on cloud-based platforms
What Technologies are you required to know
* Experience with modern Java development and delivery in AWS and/or Azure cloud environment.
* Use of Spring frameworks, including Spring Boot and Spring Batch
* Experience with delivering APIs in SOAP/HTTP, SOAP/JMS and REST/JSON
* Familiarity with Agile development particularly Scrum
* Experience of virtualization and containerization
* Experience of Docker
* Experience of a range of Testing tools e.g. LoadRunner, Selenium, SOAPUI, JUnit and Jmeter
* DevOps experience, specifically Continuous Integration and Deployment methodology and tooling (Jenkins, Ansible, ELK)
* Experience of message brokers like RabbitMQ and IBMMQ
* Experience of App Dynamics and ELK