C++ Engineer
Listed on 2025-10-29
-
Software Development
Software Engineer, DevOps, Embedded Software Engineer, C++ Developer
About Forterra
Forterra is a leading provider of autonomous systems for ground-based movement in the working world. Amongst some of the earliest innovators in the field of driverless technology, Forterra is focused on building systems that protect front-line soldiers and enable civilian workers in our industrial base. Forterra is the go-to provider of ground autonomy solutions for the U.S. Department of Defense, which harnesses the technology for asymmetric warfare in critical conditions.
Aboutthe role
We are looking for talented C++ Software Engineers to join our Software Services Team. You will be integral in developing key components of the Auto Drive software platform, including middleware, configuration management, diagnostics, data replay, and system utilities. If you are passionate about working in a fast-paced, innovative environment and want to contribute to shaping the future of autonomous vehicles, we’d love to hear from you.
Whatyou ll do
- Develop, optimize, and maintain C and C++ software components for critical services such as middleware, configuration management, data logging, and diagnostic tools.
- Work closely with autonomy engineers to design, implement, and integrate software services that support autonomous navigation, perception, and mission-level capabilities.
- Build and maintain a robust data replay framework to facilitate regression testing and algorithm validation.
- Create and support common utilities, such as logging and diagnostic message formats, to ensure a unified development experience across teams.
- Implement and optimize performance-critical software components, ensuring minimal overhead and efficient resource usage.
- Collaborate with cross-functional teams (including autonomy, platform, and testing) to ensure smooth integration of new software components into the Auto Drive ecosystem.
- Participate in code reviews, design discussions, and problem-solving sessions, ensuring the delivery of high-quality, maintainable software.
- Develop and implement unit and integration tests for new and existing software components.
- Troubleshoot, debug, and optimize complex software issues across multiple subsystems.
- Strong experience in C++ programming, with a deep understanding of object-oriented design principles and memory management.
- Ability to consistently deliver production-quality software in a continuously integrated environment.
- Strong understanding of algorithms, data structures, and software design principles.
- Demonstrates clean, maintainable code and documentation practices.
- Solid understanding of multi-threaded programming, concurrency, and performance optimization techniques.
- Experience with middleware frameworks and communication protocols (e.g., ROS, DDS, protobufs, or custom protocols or message serialization and deserialization).
- Familiarity with configuration management systems, version control, and CI/CD pipelines.
- Strong debugging and diagnostic skills with the ability to analyze and resolve complex software issues.
- Experience with software testing (unit testing, integration testing, regression testing) and a commitment to ensuring software quality.
- Experience with Linux-based development environments.
- Experience working in teams and a willingness to proactively solve problems
- Knowledge of real-time systems or embedded systems development.
- Familiarity with data logging frameworks and visualization tools (e.g., Foxglove).
- Experience with automated testing frameworks and tools for continuous integration.
- Experience working in an Agile development environment.
- Familiarity with the autonomous vehicle domain or robotics is a plus but not required.
- Bachelor’s or Master’s degree in Computer Science, Software Engineering, Robotics, or a related field.
- 7+ years of work experience in the software engineering field
US Salary Range: $145,000—$170,000
The salary range for this role is an estimate and is based on a wide variety of compensation factors. The salary offered to candidates will vary based on a variety of factors including (but not limited to) relevant work experience, education, specialized training, critical expertise, training,…
(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).