Senior Software Engineer

Fusion People ,
Bristol, Bristol

Overview

Job Description

Senior Software Developer Our client has ambitions plans for its software platforms and is looking for energetic and versatile software engineers to join the growing team. You will participate in and influence all aspects of software development, with opportunities to work on wide ranging projects on the latest AI processor to cloud hosted services, from real-time DSP to Neural Network design. Who we're looking for: You will have a proven track record in the development of complex software systems and demonstrable skills in hands on Software Engineering, from specification to implementation and testing, in multiple of these areas: Real time operating systems (Ideally FreeRTOS) IoT frameworks and messaging protocols Low level serial protocols such as SPI; and low level networking standards such as TLS working with Ethernet and Wi-Fi Programming multi-core micro-controllers/processors Networking and asynchronous IO applications DSP (e.g. audio processing, imaging, and vision Database design You will also have: Strong C/C++ programming skills Strong Python scripting Excellent problem-solving skills Experience of developing unit tests, and preferably of Test-Driven Development Familiarity with the use of SCM systems, and preferably a working knowledge of Git and a good understanding of Continuous Integration systems Your Technical Experience must include a working knowledge of programming multithreaded applications and developing for resource constrained platforms / embedded systems, and you will hold a BSc or above in Computer Science or a related discipline. Other skills that we'd love to hear about: Neural network concepts and design, such as having worked with TensorFlow Software system design, with consideration of a processor architecture Acoustics and signal processing for voice applications Tool chain development (compilers, LLVM) The role The role reports to the Director of Software Engineering, based in our clients Bristol office. To perform this role, you will need to be self-directed, proactive, and able to work independently, and you'll enjoy solving day-to-day problems with limited direction. Your responsibilities will include: Collaboration with engineers from a range of disciplines to deliver complete, production ready systems Software design, implementation, and documentation Code reviews and support for other development on going within the team Representing software design at product development reviews Collaboration with agile planning processes Flexible working week and remote working available. --- Fusion People are committed to promoting equal opportunities to people regardless of age, gender, religion, belief, race, sexuality or disability. We operate as an employment agency and employment business. You'll find a wide selection of vacancies on our website.