-
Embedded Linux / BSP and Middleware Engineer Autonomous Orchard Tractor
-
Support the Automation Core Software team on an autonomous orchard tractor program, contributing to embedded Linux, BSP, middleware, hardware abstraction, communication, integration, and validation activities.
-
Work in one of two primary technical tracks: Board Support Package (BSP) development or Middleware / middle-layer software development.
-
Develop, integrate, test, and document production-quality embedded software using Deere processes, tools, sprint cadence, and engineering standards.
-
Collaborate frequently with customer engineering teams, suppliers, and cross-functional stakeholders to resolve technical issues, clarify requirements, and deliver working software increments.
-
Support either remote middleware development or preferably on-site BSP development
-
Develop and maintain embedded Linux BSPs for target controller hardware.
-
Work with Yocto, recipes, layers, toolchains, root file systems, and Linux image builds.
-
Configure and debug bootloaders such as U-Boot, including board startup, clocks, memory, and pin configuration.
-
Configure and customize the Linux kernel, device tree, drivers, and board support files.
-
Bring up new hardware and debug boot, kernel, driver, and hardware/software integration issues.
-
Validate BSP functionality through unit, integration, regression, and release testing.
-
Support source control, branching, tagging, release notes, build instructions, and technical documentation.
-
Design and develop middleware software that connects the BSP, hardware interfaces, and application layer.
-
Develop Hardware Abstraction Layer components to standardize hardware access and improve portability across platforms.
-
Build core middleware services such as IPC, configuration management, resource management, scheduling, and task coordination.
-
Support communication interfaces and protocols, including CAN, J1939, and Linux SocketCAN.
-
Support data handling, including serialization, deserialization, caching, persistence, and system-state management.
-
Define APIs, support application integration, and optimize deployable components such as Docker containers.
-
Develop unit and integration tests using the existing test framework and target controller hardware where needed.
-
Validate middleware performance, fault handling, recovery behavior, latency, throughput, memory usage, and resource utilization.
-
Bachelor's or Master's degree in Electrical Engineering, Computer Engineering, Software Engineering, Computer Science, or a related technical discipline.
-
3+ years of professional embedded software experience; senior candidates with deeper BSP, middleware, Linux, or architecture experience are strongly encouraged.
-
Hands-on experience developing embedded software in C and/or C++ on Linux-based platforms.
-
Experience with embedded Linux development, debugging, integration, and testing in a hardware-dependent environment.
-
Working knowledge of Git-based version control, Agile/Scrum delivery, defect tracking, code reviews, and technical documentation.
-
Ability to work independently in the assigned engagement model: remote collaboration for Middleware roles and preferably on-site support for BSP roles involving board bring-up, hardware access, and integration/debug activities.
-
Strong written and verbal communication skills, including the ability to document requirements, design decisions, interfaces, test results, and technical issues.
-
Yocto Project / OpenEmbedded, BitBake, custom recipes, layers, image generation, and build troubleshooting.
-
Linux kernel configuration, device tree, U-Boot, driver development, board bring-up, root filesystem generation, and hardware/software debug.
-
Middleware, HAL, API design, microservices, IPC, scheduling, resource management, configuration management, and service-oriented embedded architectures.
-
CAN, J1939, SocketCAN, Ethernet, sensor integration, machine communication networks, or autonomous/off-highway vehicle systems.
-
Docker or containerized embedded application deployment, including container size optimization and integration into embedded Linux targets.
-
CI/CD build automation, automated regression testing, hardware-in-the-loop testing, and release/configuration management.
-
Experience in agriculture, off-highway equipment, autonomous systems, robotics, automotive, industrial controls, or safety-/mission-critical embedded systems.