Software Developer - C++

Olive Recruiting

  • Houston, TX
  • 4 days ago

    Highlights

    This position will focus on developing and testing protocol drivers for Remote Terminal Units (RTUs), flow computers, and Programmable Logic Controllers (PLCs), ensuring accurate collection of real-time data, historical records, events, and alarms. Responsibilities Port existing C++ polling engines and industrial protocol drivers from Windows to Linux, addressing platform differences in communication APIs, threading, timers, data structures, and byte order.

    Numbers & Facts

    LocationHouston, TX

    Description

    We are seeking a C++ Software Developer to support the development, maintenance, and migration of industrial communication protocols and polling systems from Windows to Linux. This position will focus on developing and testing protocol drivers for Remote Terminal Units (RTUs), flow computers, and Programmable Logic Controllers (PLCs), ensuring accurate collection of real-time data, historical records, events, and alarms. The ideal candidate will have experience with C++ development, industrial communication protocols, and troubleshooting field devices in SCADA or industrial automation environments. 

    Responsibilities
    • Port existing C++ polling engines and industrial protocol drivers from Windows to Linux, addressing platform differences in communication APIs, threading, timers, data structures, and byte order.
    • Develop, maintain, and enhance protocol drivers for RTUs, flow computers, PLCs, and other industrial field devices.
    • Implement industrial communication protocols, including request scheduling, message framing, parsing, error handling, and recovery.
    • Troubleshoot serial and TCP/IP communications, including unreliable connections, device-specific behaviors, and vendor protocol variations.
    • Validate driver performance by comparing Windows and Linux outputs for real-time measurements, historical data, events, and alarms.
    • Perform testing using physical industrial devices, simulators, and automated regression testing tools to ensure data accuracy and reliability.
    • Develop diagnostic tools to monitor communication performance, connection status, retry activity, and device statistics.
    • Investigate communication failures using network captures, serial communication tools, and protocol analyzers.
    • Document protocol functionality, device configurations, troubleshooting procedures, and testing results.
    • Collaborate with cross-functional development teams on shared components, system integration, and continuous improvement initiatives.
    • Participate in agile development activities, including sprint planning, testing, code reviews, and production deployment.
    Qualifications
    • Bachelor's degree in Computer Science, Engineering, or a related field, or equivalent practical experience.
    • 0–3 years of professional software development experience preferred.
    • Experience developing, maintaining, or troubleshooting applications using C++.
    • Familiarity with RTUs, flow computers, PLCs, and industrial automation or SCADA systems.
    • Experience implementing or integrating industrial communication protocols such as Modbus, ROC, DNP3, OPC UA, or vendor-specific protocols.
    • Understanding of binary data handling, message framing, byte order, checksums/CRCs, and timing-sensitive communications.
    • Experience with serial communications (RS-232/RS-485) and TCP/IP networking.
    • Ability to develop, debug, and troubleshoot software in Linux environments.
    • Experience migrating applications between Windows and Linux is a plus.
    • Familiarity with Electronic Flow Measurement (EFM), including hourly and daily history, audit trails, and alarms, is beneficial.
    • Exposure to Docker, CI/CD pipelines, Azure Pipelines, Bitbucket, Jira, or similar development tools is a plus.
    • Background in oil and gas operations, measurement technology, industrial automation, or SCADA engineering is preferred.
    • Strong analytical, problem-solving, documentation, and communication skills with attention to detail.

    Similar Jobs