
Senior Software Engineer, R&D Instruments
- Rochester, NY
- $100,000-120,000 per year
- Permanent
- Full-time
- Design and implement modular middleware components that enable real-time communication between distributed subsystems using DDS, ROS2, or other inter-process communication (IPC) mechanisms.
- Act as Software SME in design discussions with Product Managers and Systems Engineers to define requirements.
- Help define system architecture, configurations, and development processes to ensure long-term maintainability and traceability within a regulated quality management system.
- Design and implement service abstraction layers to decouple application logic from hardware and OS dependencies.
- Determines technical / operational feasibility by conducting system analysis, developing POCs, etc.
- Contribute to system-wide synchronization, logging, and monitoring infrastructure to support observability of system performance, resource utilization, and health.
- Enforce good software design practices throughout requirement gathering, architecture definition, unit testing, and code reviews.
- Develop integration test frameworks to ensure robustness in multi-process embedded environments.
- Perform other work-related duties as assigned.
- B.S. or M.S. Degree in Computer Science, Computer Engineering or a related discipline required.
- Minimum of 5 years required with bachelor’s or 3 years with master’s degree, preferably leading in a medical device environment or equivalent
- Demonstrated experience designing and implementing IPC solutions using OS-level primitives (e.g., sockets, shared memory, message queues) and modern frameworks like DDS, with working knowledge of serialization strategies (Protobuf,
- Experience developing and testing embedded system software for real time applications/robotic systems.
- Strong analytical and debugging skills with a systematic approach to solving complex technical issues.
- Experience with xUnit-style automated testing frameworks, including test mocking, emulation, and simulation tools for embedded Linux systems.
- This position is not currently eligible for visa sponsorship.
- Embedded systems development, including RTOS and real-time applications.
- Design and integration of modular, maintainable software interfaces using Interface Definition Languages (IDLs), versioned APIs (e.g., REST), event-driven or pub/sub architectures, and schema validation (e.g., JSON Schema, XSD) to support cross-language and backend-to-UI interoperability.
- Robotic systems and middleware frameworks such as ROS2.
- Experience or working knowledge of the Rust programming language.
- Familiarity with scripting languages such as Python and Bash for automation and tooling.
- Proficiency in modern cross-platform software design using contemporary build systems (e.g., CMake, etc.).
- Designing testable architectures and developing deterministic test cases using automated testing frameworks, including mocking, emulation, and simulation tools for embedded Linux systems.
- Familiarity with USB, Ethernet, and CAN communication protocols.
- Systems Engineers, Hardware Engineers, Quality/Regulatory, Operations, Marketing, Manufacturing, Service, Clinical Medical Affairs, Project Management Office
- Software Development partners and suppliers.
- Bending
- Crawling
- Stooping
- Vision
- Climbing or balancing
- Kneeling
- Crouching
- Talking or hearing
- Tasting or smelling