Experienced software developers C/C++ to work on their own projects and support junior developers in their work. Lead development of software applications from concept design, requirements definition, detailed design and coding Development of software applications including concept design, requirements definition, detailed design and coding Working with Mechanical/Electrical and Electronics engineers as part of a team to ensure project success You will have experience of some of these skills: • software development in C/C++ • software development in Python/MATLAB Experience of embedded software design and appreciation of associated hardware Strong mathematics background Experience of leading technical software projects Strong understanding of software engineering principles Experience of embedded software design and good general appreciation of associated hardware Experience of writing C/C++ for embedded applications Experience of designing and development of control systems, preferably of motor control principles and theory and interfaces Desirable Embedded software/firmware: Experience of using STM32 processors and Keil uVision development environment and tools Communications such as Ethernet, RS422/UART, CAN, SPI etc. Hardware interfacing, GPIO, ADC, DACs etc. Windows/User interfaces: Understanding of developing desktop application and user centric interface design QT and QT Creator– multiplatform development environment in C++ Visual Studio C++ and C# Low latency programming techniques Networking (TCP/UDP) General software: Use of source control, particularly SVN and GIT Use of Jira and Confluence for software requirements and task capture Experience of using unit testing tools and technologies Static code analysis