Principal Software Engineer
Role details
Job location
Tech stack
Job description
The successful candidate will be the lead developer for embedded software within DTECH, as well as supporting other projects. The role is initially technically focussed, but we are looking for a candidate who seeks career progression and has the potential to grow into a management role in the future as the team expands. The successful candidate should have a passion for writing effective, reliable software and the ability to foster a collaborative team environment.
The role sits within the DTECH area of Cubic's Defence business. It involves designing embedded software for new products (e.g. microcontroller firmware), as well as maintaining software for the existing devices. The role will suit a self-starting individual with experience debugging low level issues through software and hardware analysis. The development will largely be in C and C++, but experience with other languages would be beneficial. The role requires close coordination with the electrical and systems engineering teams to ensure the software is robust and effective.
Essential Job Duties And Responsibilities
- Lead software projects, ensuring delivery of high-quality, reliable software
- Liaise with the wider business to determine requirements for new projects and features, clearly communicating the resources required and potential risks involved
- Drive usage of software development best practices to ensure code is well structured, unit tested and easy to maintain
- Integrate and troubleshoot firmware on a target platform in the lab environment using hardware analysis tools
- Provide guidance on design and implementation to other projects within adjacent software teams
- Identify new ideas and tools for continuous improvement of development practices
- Mentor junior engineers, providing help and training suggestions for their ongoing development
Requirements
- Four-year college degree in computer engineering or other related technical discipline, plus a minimum of eight years of related experience or a master's degree with at least six years of related experience.
- Must be eligible for a DOD Security Clearence
Skills Knowledge and Experience
Essential:
- Strong C/C++ experience
- Comprehensive understanding of embedded systems, including hardware-software interactions, real-time constraints, and low-level programming concepts
- Experience debugging in an embedded environment
- Experience using Unix commands and Linux based operating systems
- Able to analyse and solve complex software engineering problems
- Experience writing unit tests and using unit test frameworks
Desirable:
- Experience using yocto
- Experience with tools & applications such as JIRA, Confluence and Git
Personal Qualities
- A driven and self-starting individual, with a desire to write quality, effective software
- Good analytical skills, with a passion for finding simple solutions to complex problems
- Able to prioritize work and complete tasks to a deadline
- Good communication skills and ability to clearly convey complex ideas