The purpose of the role is to create, maintain and release high quality software to schedule, in accordance with Company standards.
Key Responsibilities:
- The purpose of the role is the design, coding, debugging, testing and maintenance of software for embedded applications encompassing both low-level microprocessor code as well as higher level software designs running within an embedded operating system environment
- This will be undertaken alongside other technical activities while working with hardware and software engineers to deliver specific project goals derived from future product requirements
- Responsibilities will include the development and implementation of application logic, peripheral drivers, protocols, human-machine interfaces and documentation of the same
- A key element of the role will be the delivery of software within agreed timescales and to budget
- The right candidate will be capable of designing and delivering robust code. Demonstration of competence in using C is essential as is embedded programming experience of both low level and high level code
Qualifications and Experience required:
- Team working ability and drive to deliver on time
- C experience in an embedded environment
- Experience of embedded processors and real-time operating systems
- Experience of interfacing with hardware devices and peripherals
- Solid understanding of software development life-cycles and processes
- Experience of requirement analysis, software design and software architecture
- Experience with source control tools such as SubVersion and Git
- Behavioural: self-starting, adaptable, problem solving
- Desirable:
- C++ experience in an embedded environment
- Object Oriented Design and Programming experience
- Familiarity with desktop application, GUI/event-based design
- Knowledge of issue-tracking tools, such as Jira.
- Knowledge of releasing software to Production
- Knowledge of DO-178 would be advantageous