Software Engineer II
Job Description
CNH Industrial is seeking a Software Engineer II to design, develop, and implement software solutions that control dynamic systems. The position supports precision farming capabilities for agricultural machinery, with an emphasis on real-time and embedded software development.
Job Purpose
In this Software Engineer II role, you will build and deliver software that helps control dynamic systems, including onboard precision farming functions and supporting integrations with related hardware and platforms.
Key Responsibilities
- Design, develop, and maintain high-performance C++ and Java applications for real-time and embedded systems onboard agricultural machinery.
- Implement precision farming functionality, including Guidance and GNSS capabilities.
- Integrate software with machine controllers, sensors, GNSS receivers, ISOBUS systems, onboard displays, machine ECUs, and precision agriculture hardware.
- Enable robust communication between onboard displays, machine ECUs, and cloud/offboard platforms where applicable.
- Apply modern C++ and Java best practices, including object-oriented design, design patterns, and coding standards.
- Optimize software for real-time performance, low memory usage, reliability, and demanding field operating conditions.
- Troubleshoot and resolve software issues identified through development, validation, HIL testing, field testing, and field escalations.
- Develop unit tests and integration tests, and participate in Hardware-in-the-Loop and field-test execution.
- Collaborate with QA, validation, embedded engineering, systems, product, and cross-functional teams to support accurate and robust precision farming features.
Required Qualifications
- Bachelor’s degree in Computer Science, Software Engineering, Electrical Engineering, Computer Engineering, or related field.
- Experience developing, maintaining, and debugging production-level software applications.
- Strong experience with C++ and Java development.
- Solid understanding of object-oriented programming, software design principles, and common design patterns.
- Experience with version control systems such as Git and collaborative development workflows.
Preferred Qualifications
- Exposure to Linux-based development environments and build systems.
- Experience or familiarity with Matlab/Simulink to support future modeling, simulation, controls, and algorithm development.
- Experience with debugging, performance analysis, and troubleshooting in complex software systems.
- Knowledge of unit testing and integration testing frameworks.
- Familiarity with software development lifecycle practices, including code reviews, testing, and agile methodologies.
- Ability to work collaboratively in cross-functional engineering teams and communicate technical concepts effectively.
- Bonus: Farming background.
Technical Skills and Tools
- C++, Java, Git, Linux
- Matlab/Simulink
- GNSS, ISOBUS
- Hardware-in-the-Loop, unit testing, integration testing
- Cloud/offboard platforms, ECUs, GNSS receivers
Compensation and Salary Range
The annual salary for this role is USD $74,625.00 - $114,425.00 plus any applicable bonus (actual salaries vary based on skill, experience, and qualification).
For roles open across multiple locations, the salary range shown refers to the primary location.
Location and Work Mode
Sioux Falls, SD, United States (hybrid)
Additional Benefits
- Flexible work arrangements
- Savings & Retirement benefits
- Tuition reimbursement
- Parental leave
- Adoption assistance
- Fertility & Family building support
- Employee Assistance Programs
- Charitable contribution matching and Volunteer Time Off
Job Classification
- Category: Engineering and Technical
- Job Type: Full Time
- Working Mode: Hybrid