Graduate Firmware Engineer

You can get in touch by emailing

Purpose of Job

To contribute to the activities of the development team as directed and to other areas within the business as requested.  The role is intended as an entry level position however there is still an expectation that value is delivered to the functions of the team.  The role will in places be supporting other activities occurring within the team, but there is also an expectation that independent working will also be performed as required.

Principle Duties & Responsibilities

  • Coding of individual software modules or programs as required.
  • Performing software testing at component, integration or system acceptance levels.
  • Designing solutions in conjunction with other members of the team.
  • Taking part in reviews of software items at all stages of development.
  • Exploring and recommending new technologies to deliver functional enhancements and ensure future capabilities of the product.
  • Working closely with colleagues to share expertise and find creative solutions to problems.
  • Work within APD’s Quality guidelines.
  • Self-evaluation of performance to assist in personnel appraisal scheme.
  • Highlighting deficiencies in or improvements to company procedures and standards to improve efficiency of operation.
  • Provision of a degree of troubleshooting and consultation to the support team.
  • Any other reasonable duties as requested to maintain the effective and efficient running of the department, our customers and APD in general. 

Key Attributes

  • Ability to contribute to multiple projects and situations simultaneously.
  • A sound methodical approach to software development.
  • Creative, analytical mind and ability to learn rapidly.
  • Ability to work within, contribute to and collaborate with a team of professionals.  
  • Ability to work within a strict Quality environment.
  • Commitment to technical excellence.
  • Interest in technology and appreciation of wider industry trends.
  • Ability to create and sustain effective long term working relationships.
  • Willingness to work in a flexible manner according to the needs of projects.
  • Excellent overall communication skills, both written and verbal.
  • Strong listening skills and ability to take direction effectively.
  • Professional appearance and approach.
  • Ability to articulate ideas effectively to a range of stakeholders.
  • Ability to display pragmatism to ensure company objectives are fulfilled.
  • Ability to contribute to the resolution of ambiguous situations in a calm and professional manner.

This is a demanding, challenging and responsible, technical role with an opportunity to make a significant contribution in a fast-moving, mission critical environment.


Mandatory skills and experience:

  • Excellent software engineering skills
  • Full software lifecycle knowledge (customer requirements capture, specification, design, code, test, support), ideally understood across different methodologies
  • Good level of knowledge of the programming language C
  • Knowledge of working with low level hardware
  • Engineering or Computer Science degree


Desired skills and experience:

  • Exposure to agile software development methodologies
  • Knowledge of modern programming languages and in depth understanding of object orientated design and development
  • Knowledge of formal design and requirements techniques
  • Knowledge of communication protocols
  • Experience with embedded linux
  • Experience with RTOS
  • Customer facing problem solving experience
  • Understanding of formal testing techniques
  • Knowledge of hardware and infrastructure
  • An appreciation of requirements of safety critical systems
  • Understanding of different testing strategies and automation techniques
  • Appreciation of the rigour involved in working in an environment that is certified to ISO9001, ISO20000 & ISO27001