Principal Software Engineer
At a glance
Senior Engineering Leadership role at Cubic. Ashburn · full-time · $143,000–$175,000 base.
techroles summary, based on the employer's posting.
What you'll do
- Lead embedded software projects, from firmware design for new products to upkeep of software on existing devices
- Gather feature and project needs across the business, then explain likely effort and risks
- Bring unit testing and maintainable code practices into the team's software development work
- Test and troubleshoot firmware on target hardware in the lab, using hardware analysis tools
- Guide design work across nearby software teams and coach junior engineers as they develop
What you bring
- A computer engineering or related technical degree, with eight years of relevant work, or a master’s degree and six years
- Strong C and C++ skills, plus experience diagnosing problems in embedded software
- Knowledge of embedded systems, including hardware interactions, real-time limits and low-level programming
- Experience with Unix commands, Linux systems, and unit-test frameworks
Who this fits
This role suits a senior, hands-on embedded software engineer who can lead projects while mentoring junior developers. You’ll work closely with electrical and systems engineers, and must qualify for a Department of Defense security clearance.
From the employer
Business Unit:
Cubic DefenseCompany Details:
When you join Cubic, you become part of a company that creates and delivers technology solutions in transportation to make people’s lives easier by simplifying their daily journeys, and defense capabilities to help promote mission success and safety for those who serve their nation. Led by our talented teams around the world, Cubic is committed to solving global issues through innovation and service to our customers and partners.We have a top-tier portfolio of businesses, including Cubic Transportation Systems (CTS) and Cubic Defense (CD). Explore more on Cubic.com.
Job Details:
Job Summary:
The successful candidate will be the lead developer for embedded software within DTECH, as well as supporting other projects. 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
Education and Qualifications
- 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
The description provided above is not intended to be an exhaustive list of all job duties, responsibilities and requirements. Duties, responsibilities and requirements may change over time and according to business need.
Worker Type:
Employee
Cubic Pay Range:
$143,000.00 - $175,000.00 + benefits.
The Cubic pay range for this job level is a general guideline only and not a guarantee of compensation or salary. Additional factors considered in extending an offer include (but are not limited to) responsibilities of the job, education, experience, knowledge, skills, and abilities, as well as internal equity, alignment with market data, applicable bargaining agreement (if any), or other law.
Worker Type:
Employee
We are committed to creating an inclusive workplace and welcome applications from people of all backgrounds. We do not discriminate based on any protected characteristic under applicable law.