Staff C++ Engineer
ForterraAbout the role
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.
About the 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 AutoDrive 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.
What you'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 AutoDrive 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.
Qualifications
- 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
Preferred Qualifications
- 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
Apply for this role
Generate a tailored application kit with a matched cover letter, interview prep, and CV highlights — in under 60 seconds.
Apply Now →Generate Application KitFree account required — sign up in 30s