Software Developer Tester (3 levels)
Location: Bodmin and/or Plymouth
Can contribute simultaneously to different projects.
Is capable to work simultaneously in different projects with little impact due to context switching. Uses it to its advantage in order to utilise dead times and or blocks in projects.
Efficient in time management and task prioritising.
Can work towards set milestones and targets and pursues them. It 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 and confidence 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 whereby is capable of understanding quickly business processes and mapping them to logical or procedural workflows. These skills allow him/her 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 and 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. Identify performance problems in more junior developer and helps the peer to overcome them.
Understands data structures, serialisation and transport.
Has a sound understanding of data structures and have 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 when necessary.
Is comfortable designing unit tests in existing code that can proof without loss of generality a given unit.
Understands document structures of solutions.
Fully understands solutions document structures of different frameworks. Is knowledgeable of the role of different types of documents and the relationships between them.
Knowledge & Skills
- have background in software development (C++, C#, JS) and/or mathematics, either by training or experience
- have analytical and problem solving skills
- be familiar with designing tests that reflect proof of correctness of functions and algorithms
- have knowledge of data structures
- be familiar with the whole application development cycle
- have experience with development management and production tools (Jira, Mantis, Jenkins, CVS, GIT)
- have experience with automatic unit testing and automatic UI testing