Senior C++ Software Engineer - Embedded - Linux| Hybrid\n\nC++ Software Engineer\n\nJob Summary\n\nConceptualizes| designs| codes| debugs and performs development activities in accordance with designated standards and procedures to meet specific project requirements.\n\nEssential Job Duties and Responsibilities\n\nUsing the current programming language and technologies to provide creative| thorough and practical solutions to a wide range of technical problems.\nAnalyse and contribute to system and subsystem requirements specifications and design definitions.\nDesign| develop and test applications and programs to support the company's products.\nDesign| develop and test software programs following established quality standards and in accordance with internal engineering procedures including coding| unit testing| peer reviews and software configuration control.\nComplete high and low level detailed software design specifications| storyboards and interface specifications.\nProvide support of products through conception to product delivery including problem solving| defect maintenance and support to customer services (which may require out of hours support in certain circumstances).\nKeeps abreast of improvements and developments within software engineering| supporting continuous improvement within engineering.\nComply with company values and adhere to all company policy and procedures. In particular| comply with the code of conduct| quality| security and occupational health| safety and environmental policies and procedures.\nIn addition to the duties and responsibilities listed| the job holder is required to perform other duties assigned by their manager from time-to-time| as may be reasonably required of them.\nEducation and Qualifications\n\nEssential\n\nBachelor of Science degree in Computer Science| Electrical Engineering| or related field or equivalent professional experience or combination of both\n\nDesirable\n\nMaster's Degree in Computer Science or related discipline or equivalent qualification\/experience\nCertification in a relevant programming language or framework\nCertified Scrum Master\nSkills| Knowledge and Experience\n\nEssential:\n\nExperience with Windows and Linux Operating Systems.\nExperience with Scripting languages PERL| BASH| PYTHON.\nExperience in Software Engineering with a proven track record of specification| design| and development.\nAn effective problem solver with the ability to understand and resolve complex issues.\nExperience of Object-Oriented Design (eg UML) and implementation| along with Design patterns. C++ and\/or C#\nExperience of applying test-Driven Development| SOLID principles and Clean Code\nAbility to contribute to the development of the architecture for applications.\nDemonstrable experience of defining test plans and test data requirements.\nDesirable:\n\nExperience working in a similar industry.\nScrum or Kanban experience.\nGIT experience.\nJenkins or equivalent CI build server experience.\nExperience of maintaining and improving coding standards.