Senior Embedded Software Engineer
To conform with the United States Government Space Technology Export Regulations, the applicant must be a U.S. citizen, lawful permanent resident of the U.S., conditional resident, asylee or refugee (protected individuals as defined by 8 U.S.C. 1324b(a)(3)), or eligible to obtain the required authorizations from the U.S. Department of State.
About the role
CesiumAstro develops and pioneers out-of-the-box communication systems for satellites, UAVs, launch vehicles, and other space and airborne platforms. We offer a dynamic, cross-functional environment where you can learn, develop, and engage across the organization. If you seek hands-on, interactive, and autonomous work, CesiumAstro is the place for you.
In this position, you will be responsible for low-level and high-level software in CesiumAstro’s products through all phases of the development process. Key projects include Linux-based single-board computers and high-reliability microcontroller systems. Our goal is to create an out-of-the-box hardware and software experience that enhances our customers’ ability to rapidly integrate our products into their systems.
As a CesiumAstro software team member, you will be responsible for software designs from concept through production, including product roadmaps, block diagrams, detailed design and coding, analysis, test, qualification, and in-orbit support. You will present engineering design review materials to customers and our executive team, and participate in proposal-writing efforts. Excellent written and verbal communication skills are required.
Responsibilities
- Design and implement software for embedded devices and systems, from requirements to production and commercial deployment.
- Design, develop, code, test, debug, and document system software.
- Review code and system designs.
- Analyze code for efficiency, stability, and scalability.
- Integrate and validate new product designs.
- Support software quality assurance and optimize I/O performance.
- Provide post-production/in-orbit customer support.
- Interface with hardware design and development engineers.
- Assess third-party and open-source software.
Requirements
- A Bachelor of Science (BS) or Master of Science (MS) degree in Computer Science, Electrical Engineering, or Computer Engineering.
- A minimum of 5 years of industry experience in software development.
- Experience in hands-on development and troubleshooting of embedded hardware.
- API design for interfacing with FPGAs.
- Experience with products for aerospace applications.
- Programming experience in C or C++.
- Embedded systems design with preemptive, multitasking real-time operating systems (experience with real-time Linux is desirable).
- Familiarity with software configuration management tools, defect tracking tools, and peer review.
- Excellent knowledge of real-time system coding techniques, IP protocols, interfaces, and hardware subsystems.
- Excellent understanding of multi-threaded applications and resource management.
- Excellent written and verbal communication skills.
Preferred Experience
- Adequate knowledge of reading electronics schematics and component data sheets.
- Experience with ARM processors and fully-featured microcontrollers.
- Experience in the design and development of a Software Development Kit (SDK).