Embedded Software Engineer
Role summary
SPEC is seeking an Embedded Software Engineer to design, implement, and test high-reliability embedded software for mission-critical defense systems. This role involves working with microcontrollers and microprocessors, developing in C/C++ for bare-metal and Linux targets, and integrating with hardware. Responsibilities include writing unit tests, developing tooling in Python or C#, utilizing Protocol Buffers, and managing code with Git and CI/CD. Collaboration with a multidisciplinary engineering team and producing technical documentation are key. A Bachelor's degree in a related field or equivalent experience and 3-5 years of embedded development experience are required. Security clearance is mandatory.
Embedded Software Engineer
SPEC is seeking an Embedded Software Engineer to support the development of mission‑critical defense systems. You will design and implement high‑reliability embedded software for complex mixed-signal and RF hardware in demanding operational environments, working closely with a multidisciplinary engineering team.
Security and Eligibility
- Must be a United States citizen.
- Must hold, or be able to obtain and maintain, at least a U.S. DoD Secret security clearance.
- Will work with controlled or classified information in accordance with applicable government regulations and company policies.
Key Responsibilities
- Design, implement, and test embedded software for microcontrollers and microprocessors based on schematics, datasheets, and board‑level feature requirements in defense applications.
- Develop, debug, and maintain C/C++ code for bare‑metal and Linux-based embedded targets, including integration with low-level firmware and hardware interfaces.
- Implement automated unit tests (e.g., with Google Test) and participate in code reviews to ensure reliability, maintainability, and regression coverage aligned with program requirements.
- Develop GUI applications and engineering tools (e.g., in Python or C#) to support configuration, control, and visualization of system behavior.
- Implement and maintain lab instrument automation using IVI Foundation drivers to support hardware bring‑up, characterization, qualification, and production test.
- Utilize Protocol Buffers and related tooling for robust, versionable data serialization and messaging between software components.
- Use Git-based workflows (branches, merge requests, code reviews) and CI/CD (e.g., GitLab and GitLab runners) to manage source control and automated builds/tests.
- Collaborate with electrical, RF, FPGA, systems, and test engineers to define interfaces, resolve integration issues, and meet performance and reliability objectives.
- Produce clear technical documentation, including design descriptions, interface documentation, and test procedures.
Required Qualifications
- Bachelor’s degree in Electrical Engineering, Computer Engineering, Computer Science, or a related discipline, or equivalent practical experience.
- 3–5 years of hands‑on experience in embedded software development.
- Strong proficiency in C/C++ for embedded systems; working experience with Python and/or C# for tooling, scripting, GUI development, and test automation.
- Experience working directly from schematics and component datasheets to implement low-level drivers and board-level features.
- Comfortable developing and debugging in Linux environments for embedded targets.
- Experience with:
- C/C++, Python, C#
- Technical writing and documentation of designs and tests
- Google Test or similar unit testing frameworks
- Git for version control and collaborative development
- Protocol Buffers for data serialization and messaging
- Linux-based development workflows
- Good communication skills and the ability to work effectively within a multidisciplinary engineering team.
- Demonstrated self‑starter who can own features end‑to‑end, from requirements understanding through implementation, test, and integration.
Preferred Qualifications
- Mixed-signal or EW (Electronic Warfare) embedded software experience.
- Experience integrating software and firmware, including close collaboration with FPGA and hardware engineers.
- Experience with GitLab and GitLab CI/CD runners for automated builds and testing.
- Familiarity with PetaLinux or other embedded Linux distributions, including BSP and driver integration.
- Experience with build systems such as Bazel, CMake, and Make.
- Bare-metal development experience on microcontrollers, including startup, drivers, and board bring‑up.
- Experience with MPLAB X IDE and Harmony framework (or similar MCU vendor tools).
- Experience with GUI development for engineering or operator-facing tools.
- Lab instrument automation experience using IVI Foundation drivers.
Soft Skills
- Strong problem-solving skills and a methodical approach to debugging complex hardware/software interactions.
- Ability to work independently with minimal supervision while coordinating effectively with program and technical leads.
- Clear, concise verbal and written communication suitable for technical peers and program/customer stakeholders.
What You’ll Gain
- Opportunity to contribute directly to U.S. defense programs and mission‑critical systems.
- Exposure to advanced RF/mixed-signal hardware, EW-focused embedded development, and modern CI/CD and automation practices.
- A collaborative environment with experienced engineers across multiple disciplines, with clear impact on real‑world missions.
Similar roles
- Senior Embedded Software EngineerPulsenics Inc. · Toronto, Ontario, Canada · Onsite
Senior Embedded Software EngineerAccelevation LLC · Sterling, Virginia, United States · Onsite
Embedded Software EngineerSoho Square Solutions · Irvine, California, United States · Onsite
Embedded Software EngineerPerceptive Innovations · Dulles Town, Virginia, United States · Onsite- Embedded Software EngineerL&T Technology Services · Mossville, Illinois, United States · Onsite