Skip to main content
Tallo logoTallo logo

Find Jobs

Find Jobs Near You – Available Work in Your Location

Skip to job details
Apply for this opportunity

To apply for this job, you'll continue to an external website or email application.

IVWATCH LLC

Embedded Software Engineer

Career Insights for Embedded Software Engineer

See where this job fits in the broader career landscape. Knowing your career path helps you see what's possible from here.

Scorecard

Based on Virginia data

Review key factors to help you decide if this role fits your goals. How is this calculated?

Were these scores useful?

What they do

An Embedded Software Engineer designs or improves the embedded computer software that supports specialized hardware for certain products, devices or systems. Oversees the entire software development process. Analyzes customer or user needs, designs programs, writes code or instructs computer programmers, tests design, and documents programs. May assist with upgrades or maintenance.

$123,899 / year median in Virginia

+6% projected growth

Explore Career

Job Description

Position Summary ivWatch is seeking an Embedded Software Engineer to design, develop, test, and maintain embedded software for our medical device products. This role will work closely with software, electrical, systems, clinical, and product teams throughout the product development lifecycle. The ideal candidate has strong experience developing embedded systems in C/C++, working directly with microcontrollers and hardware, and building reliable, maintainable software for resource-constrained systems. Responsibilities Embedded Software Engineer duties include, but are not limited to: Participate in the architecture, design, implementation, testing, and maintenance of reliable, high-quality embedded software for ivWatch medical devices. Develop embedded software in C and/or C++ for microcontroller-based systems. Perform register-level programming and develop or integrate low-level peripheral drivers, including SPI, I2C, UART, GPIO, timers, ADCs, DMA, and other MCU peripherals. Design and debug interrupt-driven and real-time embedded software. Develop software using FreeRTOS or similar real-time operating systems. Build, cross-compile, and debug firmware for microcontroller platforms, including ARM Cortex-M. Read and interpret electrical schematics to understand hardware interfaces, signal paths, component connections, and MCU configurations in support of firmware development and debugging. Use laboratory equipment such as oscilloscopes, logic analyzers, multimeters, and signal generators to troubleshoot hardware and software interactions. Participate in software architecture, design, and peer code reviews. Develop modular, maintainable, and testable software using established software engineering practices. Develop unit tests in C/C++ and apply best practices, including boundary and edge-case testing. Develop Python-based tools and automated tests to support development, verification, debugging, and data analysis. Use Git for version control and collaborative software development. Investigate and correct software defects identified during development, verification and validation, and in commercialized products. Ensure software development activities comply with applicable regulatory requirements, internal procedures, and software engineering best practices. Contribute to the collaborative and fast-moving engineering culture of a growing medical device company. Required Qualifications Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, Software Engineering, or a related technical discipline. Professional experience developing embedded software using C and/or C++. Ability to read and understand electrical schematics and apply them to firmware development and hardware/software troubleshooting. Strong debugging, problem-solving, and analytical skills. Preferred Qualifications Understanding of microcontroller architecture and register-level programming. Experience with interrupt handling, concurrency, timing, and real-time embedded systems. Experience with embedded peripherals and communication interfaces such as SPI, I2C, UART, GPIO, timers, DMA, and ADCs. Experience debugging embedded systems using oscilloscopes, logic analyzers, multimeters, and other laboratory equipment. Experience with embedded software build systems and cross-compilation toolchains. Familiarity with CMake. Experience writing unit tests in C/C++, including boundary and edge-case testing. Experience developing test automation or engineering tools using Python. Familiarity with FreeRTOS or other real-time operating systems. Proficiency with Git and collaborative version control workflows. Experience developing software for regulated products or medical devices.
Salary Range:
$75,000 - $82,000 WC8sql27J1