Embedded Software Engineer
ivWatch, LLC
Newport News, VA, United States
2 months ago
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Apply on www.careerjet.com
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Experience level
Expert
Compensation
$75,000.0 - $82,000.0
Working hours
Regular working hours
Job source
Tech stack
Advanced Business Application Programming (ABAP)
Data Analysis
ARM Architecture
Automation of Tests
Unit Testing
C++ (Programming Language)
CMake
Code Review
Collaborative Software
Computer Programming
Computer Engineering
Software Debugging
+20 more
Embedded Software
Firmware
FreeRTOS
Hardware Interface Design
Python (Programming Language)
Software Architecture
Software Maintenance
Real-Time Operating Systems
Software Tools
Software Engineering
Verification and Validation (Software)
Universal Asynchronous Receiver/Transmitter
Serial Peripheral Interface
PIC Microcontroller
Concurrency
Software Troubleshooting
Git
Information Technology
Build Tools
Software Version Control
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.
Requirements
- 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., * 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.
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Apply on www.careerjet.com
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Good distractions
Loading talks and stories from around this role…