Part of the Software Engineering Team responsible for the design and development of the Client project. This will require experience throughout the entire software lifecycle and a drive to achieve excellent results.
Day to Day Responsibilities
The ability to define and elicit detailed software requirements is an essential part of the role and knowledge of use case modeling would also be desirable. The role will require close liaison with the requirements analysts and business analysts so strong communication and the ability to articulate design linkage to requirements is required. The ability to provide reasoned detailed estimates will be a key aspect of the role and working with both project management and other technical personnel will be on a daily basis.
Design knowledge is critical with a proven background in the Unified Modeling Language (UML) key to the expression of design artefacts with knowledge of design tools such as Sparx EA, Artisan, ROSE, RSA etc desirable.
Experience of both functional and Object Oriented design and engineering is essential as the product is evolving from following a functional to an OO design discipline. System level architecture is strongly desirable but essential knowledge in areas of multi-threading, interprocess communication and memory management must be demonstrated.
Working knowledge of, and a proven ability, to specify and conduct detailed unit and system integration testing is essential with knowledge of GoogleTest/nUnit (and derivatives) being strongly desired. Interfacing with test professionals is a required element of the role and the ability to review test collateral will be expected as part of the software engineering team.