Embedded Software Engineer
Actalent · Warrenton, VA · 1 mo ago
Hybrid$60–$75/hrContract
About the role
This role focuses on developing embedded software for advanced radio systems used in edge communication products, enabling reliable military communications in signal-constrained environments. You will participate in the full software development lifecycle, work closely with hardware engineers, and contribute to secure, high-performance embedded solutions that operate in demanding real-time conditions.
Responsibilities
- Participate in the full software development lifecycle, from concept and design through testing, integration, and deployment of embedded software for radio and edge communication systems.
- Design, develop, and maintain embedded firmware using C and Python for microprocessor-based and microcontroller-based systems.
- Write clean, well-structured, and well-documented embedded C code that adheres to industry best practices and coding standards.
- Optimize firmware for memory utilization, power efficiency, and real-time performance to ensure reliable operation in constrained environments.
- Leverage open-source technologies to support continuous integration, automation, and infrastructure management.
- Build, maintain, and enhance CI/CD pipelines to streamline and automate software delivery and deployment.
- Develop and maintain automated test frameworks to improve software quality and coverage.
- Actively participate in code reviews, providing and receiving constructive feedback to maintain high engineering standards.
- Troubleshoot and resolve issues related to interrupt handling, DMA operations, and peripheral interfaces such as SPI and I2C.
- Interface directly with hardware peripherals and perform register-level communications and debugging.
- Collaborate closely with hardware engineers to define interface requirements, integrate embedded software with hardware designs, and validate system functionality.
- Use Texas Instruments development tools, including Code Composer Studio (CCS), or comparable environments to develop and debug embedded applications.
- Utilize hardware debugging tools such as oscilloscopes, logic analyzers, multimeters, and JTAG debuggers to diagnose and resolve hardware–software integration issues.
- Ensure embedded software solutions meet cybersecurity, security, and compliance requirements, aligning with DevSecOps principles where applicable.
- Apply software architecture principles, including those used in microservices-based environments, to design robust and maintainable systems.
- Use containerization technologies such as Docker to support development, testing, and deployment workflows.
- Stay current with emerging technologies, software development methodologies, and industry best practices, and apply them to improve existing systems and processes.
- Support programs related to defense or government applications, ensuring solutions meet mission-critical performance and reliability standards.
Requirements
- Bachelor's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related technical discipline, or equivalent experience.
- 3–5 years of professional experience developing embedded software in C for microprocessor-based systems.
- Strong proficiency in Embedded C for firmware development on microcontrollers and microprocessors.
- Hands-on experience with microcontrollers and bare-metal embedded development.
- Experience working with SPI and I2C communication protocols and other peripheral interfaces such as UART.
- Proficiency in Python for scripting and tooling related to embedded development.
- Proficiency in Bash scripting for automation and development workflows.
- Experience interfacing with hardware peripherals and performing communications at the register level.
- Hands-on experience using Texas Instruments development tools, including Code Composer Studio (CCS), or similar embedded development environments.
- Proficiency with hardware debugging tools such as oscilloscopes, logic analyzers, multimeters, and JTAG debuggers.
- Experience developing and supporting CI/CD pipelines for embedded or software systems.
- Familiarity with containerization technologies such as Docker.
- Understanding of software architecture principles, including those applied in microservices-based environments.
- Ability to write clean, maintainable,