Senior Software Engineer

  • CVL
  • Greenford, UK
  • Sep 09, 2016
Software Development

Job Description

Senior Software Engineer Ultra Electronics, Communication & Integrated Systems (Ultra CIS) is one of the larger UK based Ultra businesses and is operationally run as four business units: AEP, Information Assurance, Secure Communications and Surveillance & Security Systems. These business units are underpinned by a shared services structure which incorporates finance, HR, operations and communications. Across Ultra CIS we provide encryption, network protection, automated payments, tactical and commercial communications and telemetry systems, covert and mobile surveillance systems and situational awareness technology to defence, public sector and commercial customers worldwide. Please note that this is a 6 month contract role. Job Purpose: To define the requirements for, design, implement and test software code; to undertake related assigned tasks e.g. produce documentation; to undertake software planning and estimating tasks. Scope / dimensions: Key member of the software team (6 – 10 engineers) which covers multiple projects; required to be involved in more than one project at any one time as part of the project team (of 10 to 20 people), possibly as the only software engineer on the project; multi-tasks appropriately to serve needs of all projects. Key Responsibilities: - Responsible for complex design and development tasks. - Has a variety of engineering methods and techniques; applies and adapts these as necessary to create solutions. - Liaises with customers and external bodies as needed. - Accurately estimates work of self and others; identifies cost-effective solutions in terms of both development time and materials; delivers predictably and increases team’s ability to do the same. - Requires support rather than supervision, and only for more complex tasks. - Seeks input from peers and manager as required; ensures that work has been reviewed to a suitable level. - Present proposals clearly and constructively, debates input from others. - Provides a level of technical leadership within the team; shares knowledge willingly. - Coaches and mentors less experienced engineers on an informal basis. - Generates understandable and unambiguous software requirements based on user and systems level requirements. - Generates high quality and robust software designs to meet the software requirements. - Implements software in accordance with required coding standards; ensures that all code is commented to an appropriate level. - Integrates software with other system components; contributes positively to identifying which system component any issues encountered relate to; resolves any issues identified in software. - Determines and publishes the appropriate test strategy for the software; ensures that software operation is confirmed in accordance with that test strategy. - Ensures that all items produced (documents, design, code) are independently reviewed; engages in the review of items (documents, design, code) produced by others (including appropriate items produced by other disciplines). - Ensures that software is configured and controlled appropriately, and promotes collaborative development. - Actively looks for opportunities to improve processes used in the software development; proposes changes. Knowledge, Skills and Experience: - Proficient in full life cycle software development; adheres to strict software design processes. - Proficient in real time embedded software development; is proficient in the use of real time operating systems; is proficient in the use of host-based testing and debugging techniques; is proficient in the use of in-circuit testing and debugging techniques; may be proficient in Windows applications development. - Competent in software development for embedded applications using C and/or C++; optionally knowledgeable in software development using ADA, C# or Java; optionally knowledgeable in scripting languages e.g. PERL, Python, TCL - Proficient in the use of industry standard communications protocols associated with communication interfaces (TCP/IP, UDP, HTTP etc). Qualifications: - Degree in Engineering or Computer Science, or equivalent industrial experience. Other Requirements: - Ability to obtain security clearance to SC level. Competencies: - Peer relationships - Quickly finds common ground and solves problems for the good of all; good at both representing own interests and being fair to others; solves problems with minimum fuss; is cooperative and encourages collaboration. - Functional/technical skills - Has the necessary functional and technical skills to do the job at a high level. - Problem Solving - Uses rigorous logic and a variety of methods to solve complex problems; seeks input from diverse sources; looks beyond the obvious answer. - Standing-Alone - Does not shirk responsibility when times are tough; can work alone on difficult assignments; needs little supervision or direction. - Learning on the fly - Learns quickly when faced with new problems; improves performance on basis of both successes and failures; takes on unfamiliar tasks and makes inroads into them quickly. - Perseverance - Finishes the tasks set; does not give up in the face of resistance or set-backs. - Personal Learning - Seeks feedback from multiple sources; understands the need to change where necessary and adjusts accordingly