Embedded Software Engineer Job Description Template

The embedded software engineer writes the firmware that runs directly on device hardware, working close to sensors, actuators and constrained processors. In a medical context the work carries safety requirements and a formal development process on top of the usual embedded challenges of limited memory, real time constraints and hardware that is often being developed in parallel with the software.

Typical Duties and Responsibilities

  • Develop firmware for microcontrollers and embedded processors
  • Implement device drivers and hardware abstraction layers
  • Work with real time operating systems and scheduling constraints
  • Debug at the hardware and software boundary using oscilloscopes and analyzers
  • Optimize for memory, power consumption and timing determinism
  • Support hardware bring up and board level integration
  • Write and execute tests including hardware in the loop testing
  • Implement safety mechanisms such as watchdogs and self tests
  • Document design and test evidence for the quality record
  • Support manufacturing and field diagnostics

Education

  • Bachelor’s degree in electrical engineering, computer engineering or computer science

Required Skills and Experience

  • 3+ years of embedded software development
  • Strong C, and C++ where the platform supports it
  • Experience with real time operating systems and interrupt driven design
  • Comfort debugging with hardware tools
  • Understanding of communication protocols such as I2C, SPI, UART and CAN
  • Experience working from hardware schematics and datasheets
  • Ability to work within memory and timing constraints
  • Careful documentation of design and test

Preferred Qualifications

  • Medical device or another safety critical domain
  • Experience with IEC 62304 or a comparable standard
Contact us

Recruit with Nexus IT Group