Senior Software Engineer required reporting to the Software Team Lead. The role spans the full software development life-cycle encompassing requirements derivation, architectural design analysis, implementation, integration and test.
Typical activities will include:
Interpret functional and non-functional software requirements embodying them in detailed software designs that align with the broader software architecture.
Develop and update software solutions, using the C++ programming language, validating fulfilment of requirements and adherence to detailed software designs.
Effectively identify defect and failure root cause, then using the knowledge gained, identify appropriate design and implementation changes to effect resolution.
Perform all software tasks in full adherence to the project's software development process, associated policies and guidelines.
Ensure component regression tests are maintained and extended in-line with new development and defect resolutions.
The successful candidate will have the below skills/experience:
Considerable experience across Software Requirements Capture, Architectural Design, Implementation and Test.
Professional experience developing distributed, multi-threaded, real-time software systems.
Professional experience implementing software applications and services using C++.
Excellent analytical and problem solving skills.
Proficient in design capture in UML using Object Orientated Design (OOD) methodologies.
Familiarity with software configuration and change control best practice.
Candidates must be willing to undergo the security vetting procedure.