SOFTWARE ENGINEER

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

Job location

Cambridge, United Kingdom

Tech stack

C
API
Software Applications
Booting (BIOS)
Code Coverage
Communications Protocols
Computer Networks
Continuous Integration
Software Debugging
Linux
Programming Tools
Linux on Embedded Systems
Hardware Design
Linux System Administration
Netconf
Open Source Technology
Posix
Product Management
Software Architecture
Webui
Software Engineering
Universal Asynchronous Receiver/Transmitter
USB
Network Switches
Scripting (Bash/Python/Go/Ruby)
Software Modules
Serial Peripheral Interface
PIC Microcontroller
GIT
Build Management
Yocto
Information Technology
Bare Metal
Software Coding
Software Version Control

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.

Software Architecture and Design:

Work closely with the Software Architect and senior engineers to refine and implement scalable software architecture. Lead the design and development of key software components, ensuring maintainability and performance.

Contribute to architectural reviews and provide feedback on design decisions.

Technical Expertise:

Take ownership of software modules, driving development from concept to deployment. Add features in existing or new code base demonstrating strong proficiency in C programming within embedded Linux environments.

Collaborate with test engineers to define verification strategies and ensure thorough test coverage.

Analyse complex test results and implement corrective actions with minimal supervision.

Hardware Integration:

Lead software-hardware integration efforts, interpreting hardware schematics and managing communication protocols (I2C, UART, SPI, USB).

Troubleshoot and resolve hardware-software interaction issues efficiently.

Cross-Functional Collaboration:

Collaborate with cross-functional teams including production to understand and diagnose potential software issues and resolve them.

Requirements

Produce the relevant project artefacts as required by the software development process. Provide specific documentation related to product design to meet regulatory compliance and organization requirements. Your profile Bachelor's degree in computer science, Electronics, or related field (or equivalent experience).

Problem-Solving: Analytical mindset with a willingness to explore and learn from challenges.

Adaptability: Open to feedback and new technologies.

Initiative: Proactive in learning and contributing to team goals.

Attention to Detail: Careful and methodical approach to coding and testing.

Desirable skills

Experience in C programming language, its application in an embedded environment. Familiarity with ARM microcontrollers. Familiarity with coding standards and best practices.

Experience in Linux-based systems development including some experience in Linux boot process, DTB and kernel drivers. Ability to write user space application software using POSIX APIs. Ability to integrate open-source library into existing programs. Ability to use number of development tools for system administration and debugging.

Version Control: Familiarity with Git for source code management and collaboration.

Understanding of hardware protocols (I2C, UART, SPI, USB) and ability to read simple HW schematics.

Communication: Clear verbal and written communication, especially when discussing technical issues or documenting findings.

Knowledge of Software build systems (Yocto). Ability to modify Yocto to support a new platform design, new versions.

Continuous integration tools, and scripting languages to automate tasks and improve development workflows.

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., Solid understanding of networking protocols, and security mechanisms including data storage, and preventing vulnerabilities. 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".

Apply for this position