We are seeking an Embedded Software Engineer to develop, integrate, and debug software running on networked embedded devices. The role includes hardware bring-up, system troubleshooting, and modernization of existing embedded applications (including migration of legacy C/C++ to Rust).
This is a hands-on engineering role involving real hardware, instrumentation, and system testing.
Responsibilities
-
Develop and maintain embedded software in Rust, C, and C++
-
Bring up and integrate embedded hardware platforms
-
Debug software, OS, and hardware interaction issues
-
Implement networking functionality on embedded Linux systems
-
Develop Python scripts and automated tests for system validation
-
Analyze system behavior and determine root cause of failures
-
Support lab and field integration activities
-
Collaborate with electrical engineers, system architects, and test engineers
-
Convert legacy embedded applications to memory-safe implementations
Required Qualifications
-
3–5 years embedded software experience (mid-level) or 8+ years (senior)
-
Strong C/C++ programming on embedded or Linux platforms
-
Experience troubleshooting hardware/software integration issues
-
Linux development environment proficiency
-
Understanding of networking fundamentals (TCP/IP, sockets, packet behavior)
-
U.S. citizenship and active Secret clearance
Preferred Qualifications
-
Experience or interest in Rust programming
-
RTOS experience
-
Python scripting for testing or automation
-
Familiarity with lab debugging tools (oscilloscope, logic analyzer, packet capture)
-
Knowledge of secure communications or cryptography
-
FPGA or hardware interface experience
Work Environment
-
Direct work with hardware and test equipment
-
Small technical team
-
Interaction with system designers and users
-
Opportunity to contribute to system architecture
Compensation & Benefits
-
Salary range: $120,000 – $165,000
-
25% company retirement contribution via profit sharing (no employee match required)
-
25% company contribution to Individual Benefits Account
-
Flexible paid time off
Why Work Here
Many embedded software jobs focus on maintaining existing systems inside large programs.
This role focuses on building, integrating, and debugging real systems. Engineers have visibility into full system operation and participate in early design decisions.
To apply, submit your resume and (optional) a brief description of a challenging technical problem you solved which relates to the scope of work included with this position description.