Our client creates innovative IT products and services that transform the way their customers work and as such, innovation is at the heart of what they do. They have strong and growing divisions that specialise in providing IT services, communication solutions and retail to business and home customers throughout the UK. Their depth and range of expertise in IT and communication services is one of the many reasons why they are so renowned.
As the Software Developer/Tester, your main responsibilities will be to ensure that the software released is of an acceptable quality, in line with both the company and customers’ requirements and that it meets software release deadlines. You will contribute in the creation of automatic testing scripts for different technologies and assist on the design of tests for; unit testing, integration testing, system testing and operational acceptance testing.
- Contribute simultaneously to different projects - Is capable of working simultaneously on different projects, with little impact due to context switching and utilises dead times and blocks in projects.
- Efficient in time management and task prioritising - Regularly achieves targets and will promptly identify deviations, acting accordingly to correct them.
- Assists in the design of tests and/or proofs - Can take over on the high level designs of tests and proofs and develop them into further granularity to satisfy the full requirements. Has confidence in interval required of the testing process.
- Can write scripts for automatic testing technologies - Is very comfortable with automatic testing frameworks and can write Unit Tests and automatic scripts for UI Test technologies and batch testing.
- Identifies and solves logical problems and can map business logic to algorithms and functions - Has developed an analytical thinking process and is capable of understanding business processes and mapping them to logical or procedural workflows. These skills allow you to rapidly identify potential problems in existing logic.
- Understands parallelisation and asynchronous flow - Fully understands the concept of parallelisation and asynchronous processing flow. Identifies synchronisation problems and emergence phenomena.
- Understands computer resources and its limitations and application to software design - Is fully aware of the use of computer or network resources and its design implications in the functionality and performance of the solution design. Can identify starvation problems, bottlenecks and crashes due to bad resource management.
- Coaches juniors and transfers knowledge - Under supervision, can coach more junior team members and assists more senior team members in progress reviews and evaluations. Can identify knowledge gaps in more junior developers and will actively try to fill them and or indirectly motivate the peer to work on them. Oversees their progress and motivates them to continue growing. Identifying performance problems in more junior developers and helping their peers to overcome them.
- Understands data structures, serialisation and transport - Has a sound understanding of data structures and has control over data relationships and data aggregation to elicit it. Has a very sound understanding of data serialisation in different formats and can map them to existing data structures.
- Understands and designs unit testing - Is comfortable designing unit tests in existing code that can proof without loss of generality of the given unit.
- Understands document structures of solutions - Fully understands solutions document structures of different frameworks. Is knowledgeable of the meaning behind different types of documents and the relationships between them.
- Judgement & problem solving - To make the recommendation of when software has been adequately tested and can be released to customers. Problems addressed involve the interpretation of bug reports and evaluation of requirements that can require constant interaction with colleagues, both within and outside of the testing department.
- Background in software development (C++, C#, JS) and/or mathematics, either by training or experience
- Analytical and problem solving skills
- Familiarity with designing tests that reflect proof of correctness of functions and algorithms
- Knowledge of data structures
- Familiarity with the whole application development cycle
- Experience with development management and production tools (Jira, Mantis, Jenkins, CVS, GIT)
- Experience with automatic unit testing and automatic UI testing
You will be responsible for maintaining confidentiality for any client data, maintaining test environments and the creation of testing plans, scripts and manuals/documentation as required. Internal contact is a key feature of the job, so you will be required to liaise with; other team members, developers, support staff, training members and occasionally directly with the user base. Additionally, you may be required to interface with the NHS or other third parties. The position is office based with potential for visits to clients and other premises.
If you have the experience and are currently looking for a new challenge, then please submit an up to date CV by using the ‘apply’ button below. For an informal chat, please phone 01752 252533 and ask for Rachel V. Many thanks for your interest.