Find Jobs
Find Jobs Near You – Available Work in Your Location
Skip to job details
IL
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?
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
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.