Embedded Software Engineer
Actalent · Johnstown, CO · 6 days ago
HybridInformation Technology$40–$80/hrContract
About the role
This onsite Embedded Software Engineer role in Loveland, CO focuses on designing and developing embedded firmware for next-generation water quality instrumentation. You will work in a large, state-of-the-art R&D campus, collaborating closely with cross-functional engineering teams to build new products and ground-up architectures rather than sustaining legacy systems.
Responsibilities
- Design and develop embedded firmware solutions for new and existing water quality instrumentation products.
- Develop and maintain embedded software using C++ (and sometimes C) for microcontrollers and platforms including Linux, RTOS, and bare metal environments.
- Modify and extend existing code bases to meet evolving product and system requirements.
- Analyze requirements, estimate development effort, and deliver reliable, impactful solutions on schedule.
- Collaborate in an Agile team environment, participating in daily scrums, weekly development discussions, and sprint activities.
- Work closely with hardware engineers, reading schematics and interacting directly with hardware to debug and optimize system performance.
- Troubleshoot and debug embedded systems using tools such as oscilloscopes, logic analyzers, and digital multimeters.
- Implement and maintain CI/CD practices and unit testing to support robust, repeatable builds and high-quality releases.
- Ensure code quality and reliability through rigorous debugging, testing, and adherence to best practices.
- Produce clear technical design documentation and contribute to system and industrial instrumentation architecture discussions.
- Develop and maintain device drivers and kernel-level software, focusing on hardware interfaces and Linux internal behavior rather than only user-space applications.
- Implement and support low-level hardware interfaces and communication protocols including I2C, SPI, UART, MODBUS, USB, and Ethernet.
- Engage in hands-on coding, building, deploying, and debugging activities throughout the development lifecycle.
- Participate in technical interviews and hands-on exercises to assess, mentor, and support the growth of engineering talent.
- Collaborate with diverse, cross-disciplinary teams in a highly integrated environment where design, R&D, testing, and manufacturing are largely in-house.
- Contribute to the growth and maturation of the firmware team, helping define and build new product architectures and development practices.
- Work on new product development initiatives, focusing on ground-up architectures for embedded systems and instrumentation rather than primarily sustaining work.
Requirements
- Bachelor’s degree in Computer Engineering, Electrical Engineering, Computer Science, or a related engineering field, or equivalent applicable experience.
- 3+ years of experience in C++ user-space development and C (or embedded C) programming for embedded systems.
- 3+ years of experience with 32-bit microcontrollers and embedded platforms, including Linux, RTOS, and bare metal environments.
- Strong understanding of computer architecture, memory technologies, and software build processes.
- Proficiency working in embedded Linux environments, with a focus on Linux internals, kernel device drivers, and hardware interaction rather than only application-level development.
- Experience with device driver and kernel programming for embedded Linux platforms.
- Ability to read and interpret hardware schematics and work confidently with low-level hardware interfaces.
- Ability to code low-level hardware interfaces and interact directly with peripherals and sensors.
- Familiarity with industrial instrumentation architecture beyond general-purpose computing or storage-focused systems.
- Strong understanding and hands-on experience with communication protocols such as I2C, SPI, UART, MODBUS, USB, and Ethernet.
- Experience with Agile methodologies and experience working in Agile software development teams.
- Strong debugging skills in both software and hardware environments, including use of oscilloscopes, logic analyzers, and digital multimeters.
- Ability to produce technical design documentation and contribute to system-level design discussions.
- Demonstrated ability to work comfortably with both hardware and software in a firmware/embedded software engineering capacity.
- Prior professional experience working with C++ in embedded or systems-level contexts.
- Ability to work independently and as part of a collaborative engineering team, taking ownership of tasks from concept through deployment.
Qualifications
- Master’s degree in Embedded Systems Engineering or a closely related field. 5+ years of professional embedded software experience is strongly preferred; candidates with a minimum of 2–3 years of strong, relevant experience and a demonstrated ability to learn quickly will be considered.
- Experience developing in a Linux desktop environment using both IDEs and command-line tools.
- Experience with Embedded Linux build systems such as Yocto.
- Understanding of real-time operating systems (RTOS) and bare-metal development, including hardware interface design and implementation.
- Proficiency with scripting languages such as Shell or Bash, and familiarity with Python.
- Knowledge of networking fundamentals, including TCP/IP.
- Experience with Docker containers in a development or test environment.
- Exposure to user interface technologies such as React.js and Node.js is a plus.
- Experience in the water quality industry or with industrial instrumentation is a plus.
- Experience working in a diverse, inclusive, and highly collaborative engineering environment.
- Ability to clearly articulate technical concepts and trade-offs to both hardware and software stakeholders.
- A proactive, “go-getter” mindset with a strong appetite for learning new technologies and taking on challenging problems.
- Comfort working in an environment that emphasizes in-house design, testing, and manufacturing capabilities.
Skills
- Bachelor’s degree in Computer Engineering, Electrical Engineering, Computer Science, or a related engineering field, or equivalent applicable experience.
- 3+ years of experience in C++ user-space development and C (or embedded C) programming for embedded systems.
- 3+ years of experience with 32-bit microcontrollers and embedded platforms, including Linux, RTOS, and bare metal environments.
- Strong understanding of computer architecture, memory technologies, and software build processes.
- Proficiency working in embedded Linux environments, with a focus on Linux internals, kernel device drivers, and hardware interaction rather than only application-level development.
- Experience with device driver and kernel programming for embedded Linux platforms.
- Ability to read and interpret hardware schematics and work confidently with low-level hardware interfaces.
- Ability to code low-level hardware interfaces and interact directly with peripherals and sensors.
- Familiarity with industrial instrumentation architecture beyond general-purpose computing or storage-focused systems.
- Strong understanding and hands-on experience with communication protocols such as I2C, SPI, UART, MODBUS, USB, and Ethernet.
- Experience with Agile methodologies and experience working in Agile software development teams.
- Strong debugging skills in both software and hardware environments, including use of oscilloscopes, logic analyzers, and digital multimeters.
- Ability to produce technical design documentation and contribute to system-level design discussions.
- Demonstrated ability to work comfortably with both hardware and software in a firmware/embedded software engineering capacity.
- Prior professional experience working with C++ in embedded or systems-level contexts.
- Ability to work independently and as part of a collaborative engineering team, taking ownership of tasks from concept through deployment.
Benefits
- Medical, dental & vision
- Critical Illness, Accident, and Hospital
- 401(k) Retirement Plan – Pre-tax and Roth post-tax contributions available
- Life Insurance (Voluntary Life & AD&D for the employee and dependents)
- Short and long-term disability
- Health Spending Account (HSA)
- Transportation benefits
- Employee Assistance Program
- Time Off/Leave (PTO, Vacation or Sick Leave)