Senior Software - R & D Instruments
Listed on 2025-12-21
-
Software Development
Software Engineer, Embedded Software Engineer, DevOps, Senior Developer
Join to apply for the Senior Software - R & D Instruments role at Akkodis Group Nordics
.
Akkodis currently has a Senior Embedded Software Engineer position located in Rochester, NY. This is an onsite position, so the person needs to live within 40 miles of Rochester, NY. No C2C or agencies allowed.
Pay/Salary Range: $120,000 - $150,000 per year.
Senior Embedded Software Engineer to provide technical leadership for the realization of a new / substantially evolved existing product / feature within the company’s portfolio of products. This position is responsible for developing software and supporting software development processes and tools, including requirements development, design, build, implementation, and testing.
This role focuses on designing and implementing robust inter-process and inter-node communication for distributed embedded Linux systems. Emphasis on real-time messaging, safety, and scalability to support time-sensitive workflows across multiple software components and hardware nodes.
Responsibilities- 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.
- Determine 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.
- B.S. or M.S. Degree in Computer Science, Computer Engineering or a related discipline required.
- Proficiency in Modern C++ (C++11 minimum, C++17 or newer preferred) with a strong focus on memory-safe design techniques.
- 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, JSON, XML).
- Familiarity with Agile development practices and tool chains, including Git, CI/CD integration, and issue tracking platforms such as Jira, Git Hub, or Azure Dev Ops.
- 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.
- 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 ROS
2. - 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.
If you are interested in this Senior Software Engineer job, please click APPLY NOW. For other opportunities at Akkodis, visit If you have questions…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).