Embedded Software Engineer.
Indexed description
Location: iowa or ND
Duration: Long Term
Job Responsibilities
- 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.
Create a free Caio profile to unlock more results and save your role and location preferences.
Unlock free search