Software Engineer
Automation
C++ Language
Data Processing
Desktop Support
DevOps
Embedded Software
Embedded System
Embedded Systems
End User Support
Engineering
Ethernet
Frontend
Hardware Engineering
Hardware Software Co Design
Industrial Automation
Information Technology (IT)
Integration
IT Services
Linux
Network Solutions
Operating System
Operating Systems
Programming
Programming Language
Programming Languages
Real Time Systems
Software Development
Software Engineer
Software Engineering
SQL
Systems
Tcp/ip
Technical Support
Unix Operating System
Job Description
Trimble is hiring a hands-on Lead Software Engineer to design, develop, and maintain high-performance software for machine-control applications within Trimble’s CTCT Integration and Commissioning product group. In this role, you will work with modern C++ and Linux to build reliable solutions, provide technical guidance, and help shape engineering practices across the team. The position is based on-site in Dayton, Ohio.
What you’ll do
- Design and implement C++ software for complex machine-control applications, leveraging multithreading in Linux environments to achieve high-performance execution.
- Deliver and support software components that enable efficient commissioning workflows and seamless machine integration within the Trimble Earthworks ecosystem.
- Translate high-level system requirements into software that is robust, scalable, and maintainable.
- Apply object-oriented design, software engineering principles, and coding best practices to produce reliable, maintainable, high-performance systems.
- Lead design discussions and contribute to architecture decisions for commissioning and machine-integration software.
- Provide technical ownership for complex components and problems, including conducting technical reviews and driving resolution of challenging engineering issues.
- Mentor and guide engineers through actionable feedback and support.
- Drive adoption of effective engineering practices that improve software quality, maintainability, and team productivity.
- Ensure comprehensive test coverage, spanning unit, integration, and system-level testing.
- Resolve complex system-level issues through root-cause analysis and implement sustainable solutions.
- Identify and drive improvements across quality, reliability, performance, and maintainability.
- Partner cross-functionally with Product Managers, Architects, QA, and engineering teams to deliver high-quality software solutions.
- Contribute to planning, estimation, requirements analysis, and delivery activities to support predictable execution.
- Coordinate with distributed teams to manage technical dependencies, risks, and issues, and communicate status clearly to stakeholders.
What you bring
- Bachelor’s degree in Computer Science, Computer Engineering, Software Engineering, or a related technical field.
- 5+ years of professional experience developing software in C++, with strong knowledge of object-oriented design and software engineering principles.
- Experience developing and debugging multithreaded applications in Linux-based environments.
- Experience building complex machine-control, real-time, embedded, or highly integrated software applications.
- Ability to design maintainable solutions and apply strong practices in unit testing, debugging, troubleshooting, and code quality.
- Ability to lead technical discussions, influence design decisions, mentor engineers, and drive resolution of complex engineering problems.
- Strong communication and collaboration skills for cross-functional and distributed engineering environments.
Technologies you may work with
- C++, Linux, Python, GoLang
- Gherkin, Git, Conan
- CAN, Ethernet, TCP/IP
- Angular, IoT, Real-time operating systems
Compensation
- Salary: USD 115,600 to 158,900 per year
- Pay type: Salary
- Bonus eligible: Yes
- Commission eligible: No
Benefits
- Medical, Dental, Vision
- Life, Disability
- Time off plans
- Retirement plans
- Tax savings plans for health, dependent care and commuter expenses
- Paid Parental Leave
- Employee Stock Purchase Plan
Bonus points
- Experience leveraging AI-assisted tools and methodologies to optimize software performance, streamline debugging, and accelerate development cycles.
- Experience in Agile environments and proficiency with modern version-control systems such as Git.
- Experience with CAN, Ethernet-based application-layer protocols, and TCP/IP client-server communication.
- Working knowledge of real-time operating systems, Linux system internals, and embedded software development.
- Experience with C++ package management tools such as Conan, including build and dependency-management practices.
- Experience with Python, GoLang, and Gherkin for scripting, automation, testing, or development support.
- Familiarity with machine-control systems, IoT concepts, or other highly integrated industrial applications.
- Exposure to web technologies such as Angular (plus).
Logistics
- Location: Dayton, Ohio (On-site / Office-based)
- Travel requirement: 0 - 10% (Minimal)
How to apply
Submit an online application for this position by clicking the ‘Apply Now’ button on the posting.
Trimble accepts applications on an ongoing basis until the position is filled.