Embedded Software Engineer.
Posted on:
2 hours ago
Vacancies:
1 Vacancy
Job Summary
Job Title: Embedded Software Engineer
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
BSP Track Key Responsibilities
- 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.
Middleware Track Key Responsibilities
- 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.
Required Qualifications
- Bachelors or Masters 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.
Preferred / Nice-to-Have Experience
- 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.