Software Engineer (Embedded)

  • Huber+Suhner
  • Cambridge, Cambridgeshire
  • 26/06/2026
Full time Information Technology Telecommunications

Job Description

Overview

Product software team is responsible for providing customer facing software that runs on our industry leading all optical network switch. The team manages two different software stacks running on different PCBs. The network software (NIC SW) implements various L2/L3 protocols and allows customers to communicate with the optical switch using interfaces such as TL1, Netconf, Restconf and WebUI. The control software (DSP SW) is a bare metal stack that receives user commands through NIC SW and controls the movement and position of piezoelectric actuators.

Key Responsibilities
  • System Design and Architecture: Make significant contributions in an existing code base to add new features and enhancements working with the software architect and team lead. Document low level design aligned with the product architecture.
  • Firmware Development: Develop, debug and optimize bare metal firmware for ARM based microcontrollers to ensure efficient and reliable operation of embedded systems.
  • Hardware Collaboration: Work closely with hardware engineers to review schematics, develop and debug hardware drivers, and ensure seamless hardware software integration.
  • Interface Implementation: Implement and optimize low level device interfaces such as UART, SPI, GPIO, ADC, DAC and I2C to facilitate communication between peripherals and microcontrollers.
  • System Testing and Validation: Use advanced diagnostic tools and test equipment to validate and troubleshoot embedded systems, ensuring high quality and reliable performance.
  • Agile Development Participation: Actively contribute to Agile development processes, including sprint planning, daily stand ups, and retrospectives, and generate and maintain relevant process artifacts.
  • Continuous Improvement: Identify areas for improvement in existing systems and processes, propose innovative solutions, and drive continuous improvement initiatives.
  • Documentation: Create and maintain comprehensive documentation for design specifications, code and system functionality, ensuring clear communication and knowledge sharing.
Required Qualifications
  • 3+ years in the embedded systems industry with a strong background in bare metal systems and extensive exposure to ARM based microcontrollers.
  • Expertise in solving complex problems that traverse both hardware and software domains.
  • Proficiency in low level programming using embedded C for performance critical applications.
  • Experience with debugging tools such as JTAG, ICE and logic analyzers to diagnose and resolve hardware and software issues.
  • Skills in reading and understanding hardware schematics and experience with FPGA based designs; ability to debug hardware and firmware issues with cross functional teams.
  • In depth knowledge of low level device interfaces including flash, SPI, UART, GPIO, ADC, DAC and I2C, and ability to optimize communication between peripherals and microcontrollers.
  • Knowledge of scripting languages such as Python or Bash to automate repetitive tasks, test scripts and build processes.
  • Strong written and verbal communication skills for effective collaboration with cross functional teams, presentation of technical information and documentation of project progress.
Desirable Skills
  • Knowledge about motion control systems.
  • Proven track record of working in Agile software development environments, actively contributing to process artifacts and continuously enhancing development methodologies.
  • Experience or working knowledge of secure boot, hardware root of trust establishment and attestation.
  • Degree level or equivalent in a numerate discipline with courses on embedded programming.