Software Developer — Industrial Protocols

2 days ago

Houston, Texas, United States Automation Solutions, LP (AUTOSOL) Full-time
Our polling engine and its protocol drivers for RTUs, flow computers and PLCs are written in C++, and we’re moving them from Windows to Linux. You’ll port existing drivers, build and maintain drivers for new protocols and devices, and verify that each one returns correct real-time values, history, events and alarms under field conditions. We’re looking for a C++ developer who knows these devices well enough to tell when the data is wrong. This is a specialist posting. You’ll be hired into our Software Developer ladder at level I or II, based on experience and demonstrated skill.

Key Responsibilities
• Port the polling engine and existing protocol drivers from Windows to Linux.
• Resolve platform differences, including serial and socket APIs, threading, timers, data type sizes, struct packing and byte order.
• Implement and maintain protocol drivers in C++, including request scheduling, framing and parsing, and error recovery.
• Handle field communication conditions, including serial and TCP transports, slow and lossy links, device quirks and vendor-specific protocol variants.
• Verify ported drivers against the Windows originals by polling the same devices and comparing real-time data, history, events and alarms.
• Test against physical RTUs, flow computers and PLCs on our test bench, and against device simulators.
• Build automated regression tests that compare Linux and Windows driver output.
• Build diagnostics for communication health, including link status, retry behavior, throughput and per-device statistics.
• Diagnose communication failures using serial and network captures and protocol analyzers.
• Document protocol behavior, device-specific quirks and test coverage for each driver.
• Work with other product teams on shared components and cross-product integration.
• Participate in your team’s sprint ceremonies and own drivers from refinement through production. Our Stack
• Languages: C++ (Windows and Linux)
• Delivery: Docker containers (customer edge/on-prem), traditional Windows and Linux installers
• Tooling: Azure Pipelines (CI/CD), JFrog Artifactory, Atlassian suite (Bitbucket, Jira, Confluence), Claude Code Qualifications
• Bachelor’s degree in Computer Science, Engineering or a related field, or equivalent practical experience.
• Typical

experience:
0–3 years of professional software development (guideline).
• Experience developing in C++.
• Experience configuring, polling or troubleshooting RTUs, flow computers or PLCs.
• Experience implementing or integrating industrial protocols such as Modbus, ROC, DNP3, OPC UA or vendor-specific protocols.
• Understanding of binary data handling, including framing, byte order, checksums/CRCs and timing-sensitive request/response cycles.
• Experience with serial (RS-232/485) and TCP/IP device communication.
• Comfortable developing and debugging on Linux.
• Understanding of electronic flow measurement (EFM) data, including hourly and daily history, audit trails and alarms, is a plus.
• Experience porting code between Windows and Linux is a plus.
• Experience with containerized deployment (Docker) is a plus.
• Background in oil and gas field operations, or as a measurement technician, automation technician or SCADA engineer, is a plus.
• Strong attention to detail and clear written communication of test results. Apply Now