Staff Software Engineer (C++ / IoT Devices) - 4-month contract to hire - 100% Remote
Optomi, in partnership with a national leader in rail transportation and logistics, is seeking a Staff Software Engineer to join a highly specialized engineering team focused on device-level software and distributed field systems. This role is ideal for a deeply technical engineer with strong C++ expertise who enjoys working close to hardware, networking equipment, and real-world devices such as sensors, cameras, and GPS systems.
What the Right Candidate Will Enjoy:
- Fully remote work
- Building software that directly interfaces with physical devices and field hardware
- Solving complex communication challenges across IoT and networked environments
- Owning architecture and API design decisions within high-performance C++ systems
Qualifications:
- Deep, hands-on C++ development expertise with strong API design experience
- Proficiency with C++11 and modern C++ development practices
- Experience developing software that interacts with hardware devices, IoT systems, or field equipment (sensors, cameras, GPS, networking devices, switches, etc.)
- Experience working in Linux environments, including system-level or kernel-adjacent development
- Experience with DNP3 protocol
- Experience developing and maintaining automated unit tests (gtest preferred)
- Experience with asynchronous messaging systems (Kafka preferred)
- Familiarity with NoSQL databases (Cassandra preferred)
- Exposure to Java for integration or system components
Responsibilities
- Design, develop, and maintain high-performance C++ applications interacting directly with field hardware and devices
- Build and maintain APIs and communication layers for device integration and distributed systems
- Deploy and support applications within Linux environments
- Develop and maintain automated unit tests to ensure reliability and performance
- Troubleshoot and resolve communication and integration issues across hardware and software layers
- Participate in system design discussions and contribute to architectural decisions
- Collaborate with cross-functional teams to improve scalability, reliability, and maintainability of device-driven platforms