SOFTWARE ENGINEER
Role details
Job location
Tech stack
Job description
The Product Software Team are responsible for providing customer facing software that runs on our industry-leading all-optical network switch. The team are 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 Senior Software Engineer is responsible for enhancing and optimising Polatis products, focusing on software architecture, design, integration, and ensuring seamless collaboration across cross-functional teams. This role involves hands-on technical contributions, mentorship, and aiding in the overall growth and efficiency of the software development team.
Software Architecture and Design: Collaborate closely with the Software Architect to shape both system design and test pass criteria for all assigned projects, ensuring cohesive alignment with product architecture, user requirements, and technical constraints.
Technical Expertise: The role involves developing software in C for Linux-based embedded systems, contributing to the user-space software stack to enhance product functionality. It requires close collaboration with quality engineers to design and review software verification plans, as well as analysing test outcomes to identify improvement opportunities. The position also includes investigating customer-reported bugs, identifying root causes, and delivering effective fixes to uphold product quality and customer satisfaction.
Hardware Integration: Utilise hands-on experience to integrate software with hardware, comprehending various hardware protocols (I2C, UART, SPI, USB) and reading hardware schematics effectively.
Cross-Functional Collaboration: Collaborate with cross-functional teams to define project scopes and contribute to planning and estimation of work packages. Collaborate with production, NPI, and customer support teams to address potential software issues during production and in the field, ensuring timely resolution.
Process Orientation 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
Requirements
8+ years of product development experience in an embedded environment using C programming language. Experience of developing software targeted at ARM microcontrollers. Familiarity with coding standards and best practices.
Proven experience as a Senior Software Engineer, with a strong focus on Linux-based systems development. Ability to use number of development tools for system administration and debugging. Skills in optimizing software for performance and memory usage. Advanced understanding of static and dynamic analysis tools.
Experience with Hardware root of trust (RoT), Secure boot and TPM. Experience with security scanning tools, management of software vulnerabilities. Familiarity with security regulations.
Experience with software security that involves code signing, private key management using HSM. Ability to maintain Linux kernel with latest security patches, upgrading to new libraries.
Advanced understanding and contributions in Yocto build systems.
Experience with writing Linux user space application software using POSIX APIs. Ability to integrate open-source library into existing programs.
Experience of working in an Agile software development environment and contribute significantly to generating relevant process artefacts.
Familiarity with Jenkins CI/CD pipelines. Continuous integration tools, and scripting languages to automate tasks and improve development workflows.
Desirable skills
Solid understanding of networking or bus-based communication concepts, protocols, and security mechanisms including data storage, and preventing vulnerabilities.
Experience in gRPC, gNMI and gNSI Experience with version control systems (e.g., Git) and issue tracking tools (e.g., JIRA). 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.