What are the responsibilities and job description for the Software Controls Engineer (C++ / Linux) position at STEM Search Group?
We’re working with a rapidly-scaling engineering company in the Greenville area that is building a next-generation platform combining automation, software, and robotics used in industrial and logistics environments. As demand for their technology continues to grow, they’re expanding their engineering team to support new development and increasing system deployments.
They’re seeking a Controls Engineer (software-focused) to play a key role in developing, improving, and supporting a complex system that integrates software with physical equipment. You’ll spend time both writing code and working directly with systems, solving problems and helping shape how the product evolves.
What You’ll Be Doing
- Develop and debug control software in C/C within a Linux-based environment
- Build new features and enhance existing system functionality across a growing product platform
- Work hands-on with physical systems — testing, validating, and troubleshooting real-world behavior
- Diagnose and resolve complex issues across software, hardware, and system communication layers
- Support systems in the field (primarily remote), including advanced troubleshooting and recovery scenarios
- Collaborate with engineering team members on system design, architecture, and problem-solving
- Participate in code reviews and contribute to improving system stability and performance
- Develop solutions for system edge cases, failure modes, and recovery processes
What We’re Looking For
- Advanced C / C experience with a proven ability to independently develop, troubleshoot, and improve complex systems
- Strong, hands-on experience working in Linux environments with the ability to operate independently using the command line
- Experience with Git / GitLab or similar version control systems
- Proven ability to troubleshoot complex systems involving both software and hardware
- Experience working on systems where software directly interfaces with physical equipment
- Strong problem-solving ability and systems-level thinking
- Ability to work independently in a high-autonomy environment
- Hands-on mindset comfortable working directly with equipment, not just software
- Experience with networking (routing, VLANs, VPNs)
- Exposure to robotics, automation systems, or system integration environments
- Basic PLC exposure
- Exposure to industrial communication protocols (EtherNet/IP, Modbus, etc.)
If you’re an engineer who enjoys solving complex, real-world problems where software meets hardware, and you’re looking for a role where you can work hands-on with systems, contribute to meaningful technical decisions, and make a big impact in a rapidly growing company, this could be a great fit.
**This is a full-time, onsite position based in Greenville, SC. Candidates must be authorized to work in the United States without current or future sponsorship.**