PRINCIPAL SOFTWARE ENGINEER

HUBER+SUHNER
Cambridge, United Kingdom
15 days ago

Role details

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

Job location

Cambridge, United Kingdom

Tech stack

C
Agile Methodologies
Unit Testing
Software Quality
Code Review
Continuous Integration
Data Centers
Software Debugging
Software Design Documents
Linux
Middleware
Embedded Software
Hardware Design
Hardware Interface Design
Linux System Administration
Performance Tuning
Software Architecture
Memory Leaks
Software Engineering
Software Requirements Analysis
Systems Integration
Universal Asynchronous Receiver/Transmitter
USB
Data Storage Technologies
Serial Peripheral Interface
IT Architecture
Information Technology
Software Coding

Job description

Work with Software Architect in defining system and software architecture across multiple projects, leveraging deep product knowledge, HW/SW design constraints, and Linux expertise. Maintain architecture and design documents for assigned projects.

Technical Expertise: Proficiency in embedded software development and customization to meet specific hardware/software requirements. Experience in Linux system administration, including configuration, performance tuning, and troubleshooting.

Hardware Integration: Hands-on experience with hardware integration, including I2C, UART, SPI, and USB protocols. Familiarity with reading and understanding hardware schematics for effective software-hardware integration.

Cross-Functional Collaboration: Collaborate across multiple functions within engineering to define the scope of work packages for software teams. Contribute to planning and estimation of the work packages.

Technical Leadership: Lead the design and implementation of complex features that span multiple subsystems (kernel, middleware, hardware interfaces, networking, etc.) and multiple engineering disciplines. Set engineering standards for code quality, testing, documentation, and CI/CD practices in embedded environments. Drive root-cause analysis for difficult system-level issues (e.g., kernel panics, memory leaks, timing issues, hardware-software integration problems).

Team Development: Assist in building highly efficient teams by educating and training team members on products, features, and best practices for embedded software development.

Collaboration and Issue Resolution: Collaborate with production and NPI teams in addressing potential software issues during switch production and ensuring their resolution. Work with the customer support team and customers to address potential field issues in software and drive them to resolution.

Infrastructure and IT Architecture: Collaborate with the manager to define the IT architecture and lab infrastructure required for efficient project execution, emphasizing Linux-based systems. Contribute to maintaining the lab, tools, and other team infrastructure.

Requirements

Do you have experience in System administration?, Do you have a Bachelor's degree?, Bachelor's in computer science, Software Engineering, or related field.

At least 10+ years of experience in Linux platforms including administration, platform security, troubleshooting and performance optimization. Advanced skills in Linux customization (kernel or platform) to tailor software for specific hardware/software requirements.

Advanced proficiency in C programming language in an embedded environment. Experience of developing highly efficient and maintainable software in an embedded environment. Expertise in running code reviews, coding standards and software development best practices.

Proven technical leadership on translating architectural direction into actionable engineering plans, ensuring high-quality delivery. Capable of diagnosing kernel issues, integrating drivers, and working closely with hardware teams to resolve HW/SW integration challenges. Comfortable with tools for highly efficient teams - unit test framework, debugging tools. Skilled at root-cause analysis of difficult system-level issues.

Solid understanding of networking concepts especially within data centre networks, and security mechanisms including data storage, and preventing vulnerabilities.

Experience working in Agile software development to suggest and implement process improvements, optimizing the team's workflow and productivity.

Excellent communication skills to convey complex technical concepts clearly to both technical and non-technical stakeholders. Active listening skills to understand requirements, concerns, and feedback from team members and other stakeholders.

Analytical thinking, sound judgement, problem-solving abilities, and ability to identify issues and make timely, well-informed decisions, especially in high-pressure situations.

Exceptional leadership skills, with the ability to coach and develop skills and efficiencies of the team. Excellent collaboration skills, both within the team and across functions.

Benefits & conditions

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.

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