Russell Taylor are actively recruiting for a Software Developer to support the design and implementation of embedded software within industrial monitoring and control systems.
The successful candidate will analyse, design, program, debug, and modify software enhancements and new products used in a Linux embedded application. They will design systems in C/C++ and Python, whilst writing code, completing programming, and performing test and debugging of applications.
* Design, implementation, and test of embedded software running within a Linux environment.
* Development and preparation of such records as may be necessary to demonstrate compliance with its associated specification and any relevant standards.
* Undertaking of design reviews, audits and testing to ensure that Rotork designs and products comply with specifications and relevant standards.
* Generation of progress and other reports required by the Industrial Systems Design Manager.
* Ensuring the availability of design records and documentation and to assist with the production of Sales and Service literature.
* Undertaking of project management and co-ordination duties as and when required.
- Development of software using structured design techniques.
- Software development in C/C++ and Python within a Linux operating system including kernel drivers, system libraries and user space development.
- Knowledge of build systems such as Yocto and LTIB.
- Communication interface protocols such as IP, TCP, UDP and USB.
- Support of systems to control software configuration i.e. distributed version control software such as Mercurial and Git and issue tracking software such as JIRA.
- Unit testing and continuous integration testing of C, C++ and Python software.
- Designs to meet internationally recognised standards relating to software robustness and security.
- Understanding of Agile and Kanban project management methods.
- Methodologies for improving robustness of software developments, such as code review, pair programming etc.
- Able to participate in the project planning process.
- Design and develop formal specifications of products and participate in system development phases.
- Use of Microsoft Office for writing technical documentation - Word & Excel.
- Provide solutions to a variety of technical problems of moderate scope and moderate to high complexity and is proficient with sound engineering principles.
- Understanding of electronics hardware design including microcontroller applications, design schematics and datasheets.
- Industrial network protocols such as Modbus, Profibus, & HART.
- Development of safety related systems to standards such as MISRA-C.
- Static analysis and debugging tools such as Lint, Understand, Valgrind and GDB.
- Knowledge of modern web-based interfaces.
- Experience of the complete development lifecycle from concept through to final manufacture.
- Experience of structured design methodologies such as UML.
- Capable of supervising 3rd party testing of the end product if required.
- Security - Development of security assurance processes that protect data and the resources contained in and controlled by that software.
- Experience of using simulators/emulators for real time software development.
- Degree in computer science/engineering/mathematics or similar.