Embedded Software Engineer
- Design, implement, test, and maintain embedded flight software features, device drivers, and structural system improvements.
- Analyze, test, and perform low-level input/output (I/O) timing and data throughput performance assessments on integrated hardware/software architectures.
- Interface closely with hardware and electronics designers to coordinate seamless software-to-avionics integration and board bring-up activities.
- Draft automated unit, integration, and regression tests to validate flight logic against strict system constraints.
- Coordinate high-level functional testing of features on flat-sats, hardware-in-the-loop (HWIL) setups, and flight-representative simulators.
- Implement autonomous Fault Detection, Isolation, and Recovery (FDIR) flight routines to handle radiation-induced hardware resets or bit-flips autonomously.
- Other duties as assigned.
- An organized, thorough, and highly methodical approach to software quality, configuration control, and automated testing frameworks.
- Excellent written and oral communication skills with the ability to clearly document software APIs, state machines, and interface logic.
- Capable of maintaining both a high quantity and high quality of reliable code output.
- Ability to thrive and pivot effectively within a fast-paced, hard-charging, high-stakes aerospace engineering environment.
- Bachelor’s Degree in Computer Science, Computer Engineering, Physics, or a highly related engineering domain plus 5-10 years of experience in embedded flight systems.
- 5-10 years of direct experience writing high-reliability code utilizing C and C++ in a bare-metal, RTOS, or embedded Linux environment.
- Proven experience in deep hardware/software system integration, low-level debugging, and utilizing hardware test equipment (oscilloscopes, logic analyzers).
- Familiarity with standard serial communications protocols (RS-232, RS-422, RS-485) and standard packetized networking protocols (IP/UDP, IP/TCP).
- Direct experience with the NASA Goddard Space Flight Center Core Flight Software (cFS) framework is a major plus.
- Experience with high-speed aerospace data protocols like SpaceWire, MIL-STD-1553, or CAN bus.
- Familiarity with xUnit-compliant test frameworks, POSIX-based operating systems (Linux, RTEMS, VxWorks), Docker-based containerization, and logging architectures.
- Experience working in an Agile/Scrum development model using Gitflow coordinated configuration management.
- All candidates selected will be subject to a background investigation and drug screen.
- To conform to U.S. Government International Traffic in Arms Regulations (ITAR) you must be a U.S. citizen, lawful permanent resident of the U.S., protected individual as defined by 8 U.S.C. 1324b(a)(3), or eligible to obtain the required authorizations from the U.S. Department of State.
- Prolonged periods standing or walking on hard surfaces.
- Ability to travel <10% in support of hardware testing.
- Ability to lift up to 30 lbs.
Craig Technologies is an EEO Employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, age, disability, genetics, or any other non-job-related protected status. All candidates selected will be subject to a security background investigation and must meet all eligibility requirements for access to classified information.