SOFTWARE ENGINEER (EMBEDDED)

Huber+suhner Polatis
Cambridge, United Kingdom
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Intermediate

Job location

Cambridge, United Kingdom

Tech stack

Adobe Flash
Agile Methodologies
Bash
Computer Networks
Software Debugging
Device Drivers
Embedded C
Firmware
Field-Programmable Gate Array (FPGA)
Joint Test Action (IEEE Standards)
Python
Netconf
Scrum
Product Management
Software Architecture
Webui
Software Engineering
System Programming
System Testing
Systems Integration
Universal Asynchronous Receiver/Transmitter
Network Switches
Diagnostic Tools
Scripting (Bash/Python/Go/Ruby)
Serial Peripheral Interface
PIC Microcontroller
Test Scripts
Peripherals
Production Code
Bare Metal
Build Process
U-Boot
Hardware Debugging

Job description

Your tasks Product software team is responsible for providing customer facing software that runs on our industry-leading all-optical network switch. The team is responsible for managing 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 the desired interfaces that includes 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.

The Software Engineer plays a key role in enhancing and optimizing H+S Polatis products, with a strong focus on software architecture, design, and integration. This position demands hands-on technical contributions and active collaboration across cross-functional teams to drive product excellence and team efficiency.

System Design and Architecture: Make significant contribution in an existing code base to add new features and enhancements working with 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 ensuring 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 devices 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. 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.

Requirements

Your profile 3+ years in the embedded systems industry, with a strong background in bare-metal systems and extensive exposure to ARM-based microcontrollers. Expert in solving complex problems that traverse both hardware and software domains.

Proficient in low-level programming using embedded C, with the ability to write efficient and reliable code for performance-critical applications.

Proficient in using debugging tools such as JTAG, ICE, and logic analysers to diagnose and resolve hardware and software issues.

Skilled in reading and understanding hardware schematics and experienced with FPGA-based designs. Familiar with debugging hardware and firmware issues in collaboration with cross-functional teams.

In-depth knowledge of various low-level device interfaces including flash, SPI, UART, GPIO, ADC, DAC, I2C, and more. Able 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 to effectively collaborate with cross-functional teams, present technical information, and document project progress.

Desirables

Knowledge about motion control systems

Proven track record of working in Agile software development environments, actively contributing to the generation and improvement of process artifacts, and continuously enhancing development methodologies.

Experience or working knowledge of secure boot, and HW Root of Trust establishments. Knowledge of attestation., Degree level or equivalent in numerate discipline with courses on embedded programming.

Benefits & conditions

Why HUBER+SUHNER Polatis? Our aim is to be the employer of choice and as such you can be assured of a market leading remuneration package that matches your skills and experience.

Your employment and development is at the heart of our "Fundamentals".

We have an entrepreneurial and collaborative culture within the business. We can't wait to hear from you!

About the company

At HUBER+SUHNER, we design and create essential components that transport power and data through networks. This is how our employees around the globe contribute to a world where people get and stay connected.

Apply for this position