Senior Firmware Engineer (Embedded Linux)

Neogen Corporation•Oakdale, MN
•Onsite

About The Position

The Senior Embedded Software Engineer is a hands-on technical contributor responsible for designing, developing, testing, and supporting embedded software for Neogen’s regulated instrumentation portfolio. The role spans the embedded software stack, from board bring-up and Board Support Package (BSP) development through device applications, services, connectivity, security, and user interfaces. Based in Oakdale, Minnesota, the engineer partners with Electrical, Mechanical, Systems, Software, Quality, Regulatory, Manufacturing, and Service teams on new product development and sustaining engineering. The role contributes to next-generation instrumentation platforms and helps maintain products used in food-safety laboratories and production environments around the world. The engineer develops embedded Linux software and applications using C, C++, and Qt, supports build environments such as Yocto and Torizon, and works on hardware integration, connectivity, security, platform development, and regulated product-development activities. The position also supports software verification and validation, requirements traceability, design-control documentation, product risk management, change control, and configuration management. The role supports existing products through investigation and resolution of software, firmware, integration, and field issues, root-cause analysis, corrective solutions, product updates, and lifecycle initiatives. It also provides technical feedback and guidance, reviews software designs and code, promotes engineering standards, collaborates with development partners across regions and time zones, and mentors less-experienced engineers as appropriate. Regular in-person collaboration in Oakdale, Minnesota is required.

Requirements

  • Bachelor’s degree in Computer Engineering, Electrical Engineering, Computer Science, Software Engineering, or a related technical discipline, or equivalent practical experience.
  • Five or more years of professional embedded software development experience.
  • Significant hands-on experience developing software for embedded Linux systems.
  • Strong programming experience using C and C++.
  • Experience with embedded Linux build systems such as Yocto, Torizon, or similar technologies.
  • Experience with BSP development, Linux kernel configuration, or device-driver development.
  • Hands-on experience with hardware bring-up and embedded-system debugging.
  • Ability to read and interpret electrical schematics.
  • Experience using oscilloscopes, logic analyzers, debuggers, or similar laboratory tools.
  • Experience developing applications using Qt.
  • Experience developing software for products integrating software, firmware, and hardware.
  • Experience implementing or supporting device security capabilities such as secure boot, image signing, access controls, or secure software updates.
  • Experience developing software within a regulated product-development environment using design controls.
  • Experience creating and maintaining software requirements and engineering documentation.
  • Experience supporting software verification and validation activities.
  • Strong troubleshooting, analytical, and problem-solving skills.
  • Strong written and verbal technical communication skills.
  • Ability to collaborate effectively with multidisciplinary engineering teams and external development partners.
  • Strong knowledge of embedded software architecture and development principles, and understanding of interactions between embedded software, firmware, electronics, and hardware.
  • Ability to troubleshoot complex issues across software and hardware boundaries.
  • Strong understanding of embedded Linux architecture, build systems, and deployment practices.
  • Ability to evaluate technical trade-offs involving performance, security, reliability, maintainability, and product constraints.
  • Strong code-review and software-design skills, and ability to develop clear, maintainable technical documentation.
  • Ability to work effectively in laboratory and bench-development environments.
  • Ability to communicate complex technical information to engineering and cross-functional stakeholders.
  • Ability to manage multiple technical priorities, work independently, and contribute effectively within a multidisciplinary engineering team.
  • Strong attention to quality, reliability, and regulated development requirements.

Nice To Haves

  • Experience with Python for test automation, tooling, scripting, or engineering utilities.
  • Experience with camera or imaging pipelines on embedded Linux, including V4L2, GStreamer, or similar technologies.
  • Experience developing firmware for microcontrollers such as AVR or ARM Cortex-M.
  • Experience with NVIDIA Jetson, TI Sitara, NXP i.MX, or similar embedded processing platforms.
  • Experience with containerized software deployment on embedded devices.
  • Experience developing over-the-air update systems for embedded products.
  • Experience with IEC 62304 or similar regulated software lifecycle standards.
  • Familiarity with 21 CFR Part 11 or other regulated data-integrity requirements.
  • Familiarity with validation or regulatory frameworks such as AOAC Performance Tested Methods, AOAC Official Methods of Analysis, AFNOR NF VALIDATION, MicroVal, ISO 16140, USDA FSIS, USDA FGIS, FDA, or Health Canada requirements.
  • Experience developing laboratory instrumentation, diagnostic systems, food-safety products, medical devices, or other regulated equipment.
  • Experience with instrument-to-software or instrument-to-cloud connectivity.
  • Experience reviewing software developed by third-party or external development partners.

Responsibilities

  • Design, develop, test, and maintain embedded software for new and existing instrumentation products.
  • Develop embedded Linux software across the stack, including BSPs, kernel configuration, device drivers, system services, device applications, and user interfaces.
  • Develop and maintain software using C and C++, and develop and maintain device user interfaces using Qt.
  • Support embedded Linux build environments using Yocto, Torizon, or similar technologies.
  • Develop software interfaces between embedded applications, hardware, sensors, peripherals, and external systems.
  • Participate in software architecture and platform decisions for future instrumentation products.
  • Create maintainable, reusable, and testable embedded software components, and participate in code reviews, design reviews, and technical discussions.
  • Partner with Electrical Engineering on board bring-up, hardware integration, and troubleshooting; review electrical schematics and hardware interfaces.
  • Develop and troubleshoot device drivers and hardware interfaces, using laboratory tools to investigate hardware/software interaction issues.
  • Support prototype hardware builds and early-stage system integration, and diagnose issues across embedded software, firmware, electrical hardware, and system-level behavior.
  • Develop and maintain secure device connectivity, security features, and over-the-air software and firmware update capabilities.
  • Support communications between instruments, data-management applications, cloud services, and other connected systems; apply security practices and participate in platform security improvements.
  • Contribute to technical decisions involving operating systems, processors, BSPs, build environments, deployment models, and update strategies.
  • Help define reusable software and platform patterns, evaluate technologies and architectures, support common software components, and identify improvements to maintainability, reliability, security, and development efficiency.
  • Develop software within established product-development and design-control processes.
  • Create and maintain software requirements, design documentation, technical specifications, and engineering records; support traceability through implementation, testing, and verification evidence.
  • Participate in software verification and validation, product risk-management activities, and technical risk assessments.
  • Contribute documentation and evidence for product-development phase gates, certifications, and regulatory submissions; support software change control and configuration management.
  • Support existing instrumentation products throughout the product lifecycle, investigate and resolve software, firmware, integration, and field issues, and perform root-cause analysis.
  • Support product updates, component changes, platform updates, and lifecycle-management initiatives.
  • Partner with Service, Manufacturing, Quality, and other teams to troubleshoot complex product issues and improve reliability, maintainability, and customer experience.
  • Review software designs and code developed by internal engineers and external development partners; provide technical feedback and guidance.
  • Help establish and promote embedded software engineering standards, patterns, and development practices.
  • Collaborate with development partners across multiple regions and time zones, and clearly communicate technical decisions, risks, trade-offs, and recommendations.
  • Mentor less-experienced engineers as appropriate and perform other duties as assigned.

Benefits

  • Medical, dental, and vision coverage beginning on the first day of employment.
  • 401(k) with company match.
  • Generous paid time off.
  • Career growth opportunities, including tools, training, and support.
  • Meaningful work with impact on customers, communities, and the world.
  • Collaborative culture valuing innovation, respect, teamwork, and continuous improvement.
  • Competitive benefits.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service