Senior Software Engineer
Senior Software Engineer required reporting to the Software Team Lead. The successful candidate will be a key player within the Software development team working closely with Systems Engineering to add new capability. 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.
- Supply accurate effort and timescales estimates for assigned software tasks and report progress to line manager.
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
- Strong communication skills including excellent written and spoken English.
The below skills are also highly desirable:
- Experience of leading small groups of software engineers in developing new system capabilities
- Embedded System design.
- Rhapsody or equivalent UML modelling tool.
- MISRA C++:2008 guidelines.
- Static code analysis tools such as LDRA.
- Greenhills MULTI and Microsoft Visual Studio 2008 development environments.
- SVN configuration management tool. GUI development using OpenGL.
Candidates must be willing to undergo the security vetting procedure.