Responsible for the design, development, testing, documentation and maintenance of high quality software for new systems and enhancements to existing systems.To participate in the continuous improvement of the Software Group platforms, processes, tools and techniques.
This role will involve both individual working as well as team working. In addition, dependent on experience, this role can include leading small teams and the general technical management of others.
Key Job Accountabilities.
Work within projects to:
- Realise system requirements into designs and software code.
- Ensure that the design and software code meets the functional and technical specifications and passes the acceptance test plans, within specified time, cost and quality requirements.
- Design, develop and undertake appropriate test plans.
- Develop and complete the required documentation.
- Participate in design and code reviews.
- Report progress against the plan.
- Participate in team and project meetings.
- Discuss requirements with stakeholders.
- Participate in the configuration, commissioning, roll-out, acceptance testing and support of new and existing systems, including enhancements and applications support.
To participate fully in continuous improvement activities, and to pro-actively identify opportunities for improvement in the processes used. Taking responsibility, where designated, for designing and implementing the changes necessary.
As appropriate, Software Engineers will also be expected, from time to time, to undertake both Architectural Design work and/or to adopt the role of Software Lead on suitable projects.
To undertake all work in accordance with the appropriate Quality Standards and processes.
Minimum BSc (Hons) 2:1 from established University, preferably Computer Science or Software Engineering.
- Industrial experience in software development within a quality-conscious environment.
- Fluent in C# through professional use with Visual Studio development environment.
- Using version control, change control and code quality control processes.
- Using automated software build, release and test environments (e.g. TFS)
- Working in Agile teams using applied frameworks (e.g. SCRUM, DSDM, Lean, FDD, TDD).
- Working in environments where regular builds, unit tests and integration testing are the norm and able to contribute to these activities.
- Development of software systems including control over external automated components and peripheral equipment.
- C# with .Net Framework (recent/current version)
- Visual Studio (recent/current version)
- WPF and User Interface Design
- Experience with common patterns and techniques; DI, IOC, MVVM
- Agile framework; SCRUM, Lean
- TFS and GIT
- Clear verbal and written communications
- Team worker
- Understands the commercial realities of software development and works flexibly to meet deadlines
- Good time management
- Relational and/or NoSQL database modelling and development experience
- Development experience of application software for controlling peripherals and robotics
- Task estimating and scheduling
- Good planning skills
- Capable of grasping the “big picture” at the same time as holding onto detail