> Markdown version of [/jobs/ext/1170348-embedded-software-engineer](https://www.wearedevelopers.com/jobs/ext/1170348-embedded-software-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Embedded Software Engineer - **Company:** Pentangle Tech - **Location:** Iowa City, IA, United States - **Experience:** Experienced - **Contract:** Permanent contract - **Skills:** Board Bringup, Abstraction Layers, Application Programming Interfaces (APIs), Application Integration Architecture, Application Layers, Build Automation, Automation of Tests, Booting (BIOS), Binary Space Partitioning, C++ (Programming Language), Configuration Management, Code Review, Computer Engineering, Continuous Integration, Serialization, Software Debugging, Linux, Device Drivers, File Systems, Memory Management, Linux on Embedded Systems, Middleware, Embedded Software, Ethernet, Hardware Interface Design, Hardware-In-The-Loop Simulation, Linux Kernel, Regression Testing, Software Deployment, Software Engineering, Systems Integration, Toolchain, Data Processing, Caching, Lasttests, Generative AI, Git, Yocto, Integration Tests, Information Technology, Low Latency, Process Control Systems, U-Boot, Api Design, Software Version Control, Docker, Microservices - **Published:** July 3, 2026 - **Apply:** https://www.careerjet.com/jobad/usa09d57c957822663512cff8d132f6388 ## About the Role 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. 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. ## Description 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. ## Related Videos - [More efficient software for more efficient microchips](https://www.wearedevelopers.com/videos/1164-more-efficient-software-for-more-efficient-microchips) - [Docker network without Docker](https://www.wearedevelopers.com/videos/1418-docker-network-without-docker) - [How a Small Team Shrank a Microsoft Monorepo by 94%](https://www.wearedevelopers.com/videos/1236-how-a-small-team-shrank-a-microsoft-monorepo-by-94) - [The best of two worlds - Bringing enterprise-grade Linux to the vehicle](https://www.wearedevelopers.com/videos/67-the-best-of-two-worlds-bringing-enterprise-grade-linux-to-the-vehicle) - [Car's are Technology on Wheels - Impact of Software and IT Competence in Automotive](https://www.wearedevelopers.com/videos/780-car-s-are-technology-on-wheels-impact-of-software-and-it-competence-in-automotive) - [Docker exec without Docker](https://www.wearedevelopers.com/videos/1094-docker-exec-without-docker) ## Related Articles - [Is Software Engineering Over-Saturated?](https://www.wearedevelopers.com/magazine/418-is-software-engineering-over-saturated) - [Is Software Engineering Hard?](https://www.wearedevelopers.com/magazine/448-is-software-engineering-hard) - [Where to Find Entry-Level Software Engineering Jobs](https://www.wearedevelopers.com/magazine/397-where-to-find-entry-level-software-engineering-jobs) - [What is Software Engineering?](https://www.wearedevelopers.com/magazine/289-what-is-software-engineering) - [Where To Find Software Engineering Jobs](https://www.wearedevelopers.com/magazine/396-where-to-find-software-engineering-jobs) - [Why Upskilling And Reskilling is Important For Developers](https://www.wearedevelopers.com/magazine/428-why-upskilling-and-reskilling-is-important-for-developers)