Position Summary
The Embedded Software Engineer I is an entry-level role responsible for developing, testing, and maintaining embedded software for hardware-based products. This position works closely with senior engineers to implement features, resolve defects, and ensure reliable performance in real-time or resource-constrained environments. The engineer will contribute to the full software development lifecycle while learning best practices for embedded systems design.
Essential Duties & Responsibilities
- Design, implement, and test embedded software components in C/C++.
- Develop firmware for microcontrollers, embedded Linux systems, or RTOS-based platforms.
- Debug and troubleshoot software issues using oscilloscopes, logic analyzers, debuggers, and diagnostic tools.
- Participate in code reviews and follow established coding standards and development processes.
- Collaborate with hardware, systems, and quality engineering teams.
- Assist in creating technical documentation, including design specifications and test procedures.
- Support integration of software with hardware prototypes and production units.
- Contribute to continuous improvement of development workflows and testing practices.
Knowledge & Skills
- Strong understanding of C/C++ programming and embedded systems fundamentals.
- Familiarity with microcontrollers, embedded processors, or real-time operating systems.
- Basic knowledge of digital/analog electronics and ability to read schematics.
- Experience with Git or similar version control systems.
- Understanding of data structures, algorithms, and software engineering principles.
Minimum Qualifications, Education & Experience
- Must be at least 18 years of age
- Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or related field.
- Experience with embedded development tools (JTAG, SWD, GDB, IAR, Keil).
- Exposure to communication protocols such as UART, SPI, I2C, CAN, USB, BLE, or Ethernet.
- Familiarity with embedded Linux, device drivers, or board bring-up.
- Knowledge of unit testing frameworks or automated testing for embedded systems.
- Internship or project experience involving firmware or hardware-software integration.
- Understanding of safety-critical or regulated development environments.
Work Environment
- This is largely a sedentary role.
- This job operates in a professional office environment and routinely uses standard office equipment.
- Typically requires travel less than 5% of the time
Salary Range $28.85 - $41.35/hour.
The salary range displayed represents the annual base salary we reasonably expect to pay for this role. The actual salary may vary [differ] based upon various factors, including, but not limited to, relevant experience, skills, education, licensure/certifications, and geographic location.
ICU Medical provides a comprehensive total rewards package that includes:
- Competitive financial benefits, including a generous 401(k) match and (for eligible roles) our Annual Incentive Plan
- A wide range of benefit options at affordable rates
- Additional perks to assist employees with their work-life effectiveness, such as Paid Time Off, Company Holidays, and Tuition Reimbursement
Additional information on health and welfare benefit offerings can be found at https://www.icumed.com/about-us/careers/investing-in-your-future/.