Senior Embedded Software Engineer - Sat Comms
Chelmsford, Essex (4 days in office p/w)
£55,000 - £70,000 + excellent bens.
From satellites searching for new planets to rovers mapping the surface of Mars, for 40 years space customers have depended on us to provide technology that is literally out of this world. We have been trusted to design and deliver imaging sensors and sub-systems to over 150 space missions helping humankind to better understand the world we live in.
As an Senior Embedded Software Engineer, you will play a crucial role in the development and maintenance of embedded software solutions for our state-of-the-art satellite modem products. You will be responsible for designing, implementing, and debugging C++ code, focusing on Linux kernel and driver development to support various hardware interfaces and peripherals.
Your role will involve working closely with cross-functional teams to ensure the successful delivery of high-performance, reliable, and efficient embedded software solutions for satellite communication systems.
Key Responsibilities: Senior Embedded Software Engineer
Leading the design, development, and maintenance of embedded Linux software systems for our satellite modems.
Designing and implementing software components, protocols, and algorithms for satellite modems, ensuring compliance with industry standards and performance requirements.
Optimizing software performance and memory usage for resource-constrained embedded devices in satellite modem systems.
Collaborate with cross-functional teams, including firmware and hardware engineers, to define software requirements and system architecture for embedded systems.
Design, develop, and optimize C++ code for embedded applications, ensuring code quality, performance, and reliability.
Create Linux kernel drivers and low-level software components to interface with hardware devices and peripherals.
Utilize Jira for issue tracking, task management, and project coordination to ensure timely delivery of software modules.
Employ Git for version control, employing best practices for branching, merging, and code collaboration.
Perform thorough testing, debugging, and validation of software components to identify and resolve defects and compatibility issues