Senior Software Engineer
Senior Software Engineer required 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 and reports to the Software Team Lead. General activities will include Develop and update software solutions primarily using the C++ language to fulfil requirements whilst aligning to detailed software design. Identify root cause and implement appropriate resolution of defects reported by test engineer, while maintaining alignment with detailed software design. Ensure all software tasks fully adhere to the project software development process. Ensure component regression are maintained and extended in-line with new development and defect resolution. Ensure configuration management plan is adhered to as appropriate to software development activities. Supply accurate effort and timescales estimates for assigned software tasks and report progress to line manager. The successful candidate will have the below skills: 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 methodologies. Familiarity with software configuration and change control best practice. Strong communication skills including excellent English writing/speaking and presentation skills. The below skills are also 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 a security vetting procedure.