Job Summary
- Bachelor’s degree in Computer Science, Software Engineering, Electrical Engineering, Computer Engineering, Biomedical Engineering, or a related technical discipline.
- At least 5 years of relevant software engineering experience, including substantial experience developing embedded and/or connected products.
- Strong hands-on Embedded Linux experience covering Yocto/BitBake, Linux kernel concepts, BSPs, bootloaders, device drivers, device trees, OS images, and embedded-system/board bring-up.
- Experience working with ARM-based SoMs or equivalent embedded processors. Comparable ARM platform experience is acceptable.
- Strong production programming ability in C/C++, Rust, and Bash/shell scripting.
- Hands-on experience integrating and troubleshooting embedded communication interfaces, including CAN, CAN-FD, CANopen, UART, SPI, I2C, Ethernet, and related protocols.
- Ability to develop, integrate, test, maintain, and debug software across MCUs, SoMs, Linux applications, drivers, peripherals, and connected subsystems.
- Demonstrated system-level debugging and root-cause-analysis experience, including bug triage, log analysis, IPC investigation, hardware/software issue isolation, and performance profiling.
- Experience with Git-based source control, merge requests/code reviews, CI/CD pipelines, automated builds, code-quality checks, test automation, and controlled release processes.
- Ability to create and maintain automated unit, integration, system, and regression tests using C/C++, Python, Bash, or comparable programming/scripting languages.
- Ability to translate product, system, and UX concepts into software requirements, architecture/design documentation, technical specifications, implementation tasks, and actionable delivery plans.
- Experience creating or contributing to software requirements, architecture/design documentation, technical specifications, Software FMEAs, technical reviews, and verification evidence.
- Experience using Jira and Jama, or equivalent requirements-management, traceability, planning, and issue-management tools.
- Ability to maintain traceability among requirements, implementation, tests, defects, risk controls, and verification results.
- Experience working in Agile/Scrum teams and collaborating effectively with Systems, Test/Quality, Cybersecurity, Regulatory, Product Management, and UX stakeholders.
- Strong written communication, structured problem-solving, and collaborative working skills.
Key Responsibilities
- Bachelor’s degree in Computer Science, Software Engineering, Electrical Engineering, Computer Engineering, Biomedical Engineering, or a related technical discipline.
- At least 5 years of relevant software engineering experience, including substantial experience developing embedded and/or connected products.
- Strong hands-on Embedded Linux experience covering Yocto/BitBake, Linux kernel concepts, BSPs, bootloaders, device drivers, device trees, OS images, and embedded-system/board bring-up.
- Experience working with ARM-based SoMs or equivalent embedded processors. Comparable ARM platform experience is acceptable.
- Strong production programming ability in C/C++, Rust, and Bash/shell scripting.
- Hands-on experience integrating and troubleshooting embedded communication interfaces, including CAN, CAN-FD, CANopen, UART, SPI, I2C, Ethernet, and related protocols.
- Ability to develop, integrate, test, maintain, and debug software across MCUs, SoMs, Linux applications, drivers, peripherals, and connected subsystems.
- Demonstrated system-level debugging and root-cause-analysis experience, including bug triage, log analysis, IPC investigation, hardware/software issue isolation, and performance profiling.
- Experience with Git-based source control, merge requests/code reviews, CI/CD pipelines, automated builds, code-quality checks, test automation, and controlled release processes.
- Ability to create and maintain automated unit, integration, system, and regression tests using C/C++, Python, Bash, or comparable programming/scripting languages.
- Ability to translate product, system, and UX concepts into software requirements, architecture/design documentation, technical specifications, implementation tasks, and actionable delivery plans.
- Experience creating or contributing to software requirements, architecture/design documentation, technical specifications, Software FMEAs, technical reviews, and verification evidence.
- Experience using Jira and Jama, or equivalent requirements-management, traceability, planning, and issue-management tools.
- Ability to maintain traceability among requirements, implementation, tests, defects, risk controls, and verification results.
- Experience working in Agile/Scrum teams and collaborating effectively with Systems, Test/Quality, Cybersecurity, Regulatory, Product Management, and UX stakeholders.
- Strong written communication, structured problem-solving, and collaborative working skills.
Skill Requirements
- Bachelor’s degree in Computer Science, Software Engineering, Electrical Engineering, Computer Engineering, Biomedical Engineering, or a related technical discipline.
- At least 5 years of relevant software engineering experience, including substantial experience developing embedded and/or connected products.
- Strong hands-on Embedded Linux experience covering Yocto/BitBake, Linux kernel concepts, BSPs, bootloaders, device drivers, device trees, OS images, and embedded-system/board bring-up.
- Experience working with ARM-based SoMs or equivalent embedded processors. Comparable ARM platform experience is acceptable.
- Strong production programming ability in C/C++, Rust, and Bash/shell scripting.
- Hands-on experience integrating and troubleshooting embedded communication interfaces, including CAN, CAN-FD, CANopen, UART, SPI, I2C, Ethernet, and related protocols.
- Ability to develop, integrate, test, maintain, and debug software across MCUs, SoMs, Linux applications, drivers, peripherals, and connected subsystems.
Other Requirements
- Experience developing Crank/Lua-based HMI frameworks or embedded UI applications.
- Experience partnering with UX teams to translate Figma designs into UI requirements, Software Requirements Specifications, and production-ready interfaces.
- Experience developing Class II or Class III medical-device software, especially embedded, connected, or safety-critical products.
- Working knowledge of IEC 62304, ISO 14971, FDA Design Controls, medical-device software lifecycle expectations, FDA cybersecurity guidance, and Section 524B.
- Experience with secure boot, image/artifact signing, secure OTA updates, update rollback/recovery, and controlled deployment of embedded-device software.
- Experience with SAST, Software Composition Analysis, SBOM generation, CVE/vulnerability management, vulnerability assessment, and secure software-development practices.
- Experience with cloud-connected devices, remote telemetry, remote diagnostics, device-to-cloud integration, IPC frameworks, or distributed embedded systems.
- Experience with Linux performance profiling and optimization for boot time, memory, CPU, latency, or graphics/UI performance.
- Experience with software-in-the-loop, hardware-in-the-loop, test simulators, test-environment development, or testability instrumentation.
- Experience contributing to risk-control verification, hazard analysis, FMEA reviews, design reviews, and release-readiness assessments.
- Direct NXP i.MX8+ experience, including BSP configuration, U-Boot, device-tree work, graphics, peripheral integration, or production board bring-up.
- Direct experience with CAN-FD and CANopen beyond general CAN and embedded-communications experience.
- Direct GitLab CI/CD and Jama experience; equivalent Git-based CI/CD and ALM/requirements-management tools remain transferable.
- Participation in regulatory audits, inspections, submissions, Design History File deliverables, or remediation of audit findings.
- Advanced embedded HMI, usability engineering, UI accessibility, embedded graphics, or UI performance optimization experience.
- Experience supporting code reviews, onboarding, internal technical documentation, or informal mentorship.