Ultra-PCS is seeking a talented C/C++ Software Engineer who has experience in embedded software development, passionate about learning software and keen to join dynamic team.
Ultra PCS is a leader in providing solutions for aerospace and defence systems. We are seeking an experienced Software Engineer to join our team. We are searching for a dynamic highly skilled Software Engineer with a wide breadth of skills who is interested in applying those skills and furthering their development skillset on a variety of software projects.
As a Senior Software Engineer, you will be expected to derive requirements, produce software architecture, develop test specifications, perform coding, debugging and testing on a variety of platforms from microcontrollers, to asymmetric multi-processor systems. You will participate in all phases of full software development lifecycle. This role will suit a self motivated developer who is keen to take on a new challenge and who has a variety of programming languages and keen to learn new skills.
Key Responsibilities:
Software Development:
Requirements definition, design, development, and verification for a variety of integrity levels, from safety critical to proof of concept.
Coding to internel coding standards and ensuring high quality robust solutions.
Conduct design and code reviews to maintain high-quality standards.
Debugging in embedded environments.
Required Skills and Experience
Technical Expertise:
High proficiency in C and C++ and cross compiling and debugging on embedded targets.
Embedded Linux knowledge (Yocto, Buildroot)
Proficiency in real-time software design and RTOS concepts.
CI/CD workflow. Experience with Git, Containerised development environments, CI/CD
Familiarity with debugging tools, hardware interfaces, and safety analysis techniques.
Personal Attributes:
Strong organizational skills with the ability to collaborate in a wider team.
Excellent communication skills, capable of effectively liaising with technical and non-technical stakeholders.
Desirable Qualifications:
Working Knowledge of Rust
Experience with aerospace systems or similar high-reliability domains.
Familiarity with other safety-critical standards (e.g., ARP4754, ARINC 653, DO-254, DO-248).
Understanding of hardware/software integration and hardware-in-the-loop (HIL) testing.