We are looking for a talented early career software engineer to support analyzing, developing, and coding complex software for embedded system development. You will be an integrated team member, collaborating with Systems, Hardware, and Test engineers in one or more of the phases of Design, Development, Integration and Testing. You will prepare design and project documentation intended to be used within complex programs or across sets of programs in accordance with established processes.
We will pair you with a mentor and provide you with opportunities to learn, leverage our current technologies, incorporate new technologies, and make an impact within the larger engineering team. We put our customers first - exemplified by our mission: "We Protect Those Who Protect Us®."
Job Responsibilities- Developing embedded software for classified programs.
- Translating mathematical algorithms created in MatLab and Python into high performance code using C, C++ or GPUs.
- Developing software for micro controllers
- Duties include analyzing, designing, coding and code modification (typically in C++ and Python) of complex software designs for simple systems or subsystems or subsystems of larger systems.
- Evaluate complex software designs to identify design flaws.
- Prepare design documentation, in accordance with established processes.
- Utilize a Linux based software development environment. Embedded targets could range from ARM through high performance x86-64 CPUs and Graphics Processing Units (GPUs). You will be integrating and testing in the selected target test environments.
- You may participate in external project interactions with other companies.
- Desire to become a subject matter expert in low level embedded system software.
Required Skills and Education- Secret Clearance (active within the last two years)
- Bachelor's degree in computer science, computer engineering, or related field, and 2 years related work experience or equivalent experience
- Experience with Object Oriented design, development practices, and implementation
- Experience with Linux software development
- Willingness to perform a wide variety of related tasks
Preferred Skills and Education- Real-time embedded development
- Experience using Python, Ada, or Modern C++
- Strong programming skills in C and C++
- Experience with Real-time Embedded Software Development
- Experience debugging software on low level systems
- Experience with GPUs, Micro Controllers, JTAG debugging
- Agile Development experience
- Experience using software collaboration and version control tools such as Jenkins, Jira, Confluence, BitBucket, and GitLab
- Experience with Containers including Docker, Podman or Kubernetes