What are the responsibilities and job description for the Embedded Software Engineer III position at Scientific Search?
The Embedded Software Engineer III
Location: Twinsburg, OH
Objective
The Embedded Software Engineer III is responsible for designing, building, and maintaining advanced embedded software systems for proprietary hardware platforms. This role emphasizes deep expertise in embedded Linux, multi-core processors, and modern embedded system architectures. The engineer is expected to exercise senior-level judgment, mentor other engineers, and deliver robust, production-quality embedded solutions.
Responsibilities
Location: Twinsburg, OH
Objective
The Embedded Software Engineer III is responsible for designing, building, and maintaining advanced embedded software systems for proprietary hardware platforms. This role emphasizes deep expertise in embedded Linux, multi-core processors, and modern embedded system architectures. The engineer is expected to exercise senior-level judgment, mentor other engineers, and deliver robust, production-quality embedded solutions.
Responsibilities
- Design, develop, and maintain embedded software for COTS and proprietary platforms, with a strong focus on Linux-based systems, including kernel configuration, driver development, and system-level software.
- Develop and optimize software for multi-core and heterogeneous processing environments, including threading, synchronization, inter-core communication, and performance tuning.
- Develop and integrate device drivers and hardware interfaces (USB, Ethernet, SPI, I²C, etc.) across bare-metal, RTOS, and Linux environments.
- Collaborate closely with hardware, firmware, and system engineering teams to integrate hardware, OS, and application layers into cohesive products.
- Analyze system performance and reliability, optimizing resource usage, boot time, and core utilization on embedded Linux platforms.
- Implement and maintain board support packages (BSPs), bootloaders (e.g., U-Boot), device trees, and low-level system initialization.
- Communicate technical decisions, risks, and tradeoffs effectively with cross-functional teams.
- Maintain rigorous engineering standards for documentation, design quality, code clarity, and ethical conduct.
- Work constructively with diverse engineering teams and contribute positively to team culture and collaboration.
- Continuously evaluate and adopt modern embedded development methods, frameworks, and toolchains (Yocto).
- Mentor junior engineers in embedded Linux development, driver architecture, multi-core programming, test automation, and design principles.
- Contribute to embedded, desktop, mobile, or web-integrated components as required.
- Support continuous improvement and modern DevOps practices, including CI/CD workflows for embedded Linux development.
- BS/MS in Electrical Engineering, Computer Engineering, Computer Science, or equivalent experience.
- 10 years of embedded software development, including substantial experience in embedded Linux.
- Strong expertise in C and C for embedded environments.
- Deep experience with multi-core processors, including Core scheduling and affinity
- Inter-core communication Parallel programming and synchronization
- Profiling and performance optimization
- Strong proficiency in Linux internals: Kernel configuration and customization
- BSP development
- Device tree configuration
- Kernel module and driver development
- Filesystem configuration and optimization
- Demonstrated experience with communication technologies (USB, Ethernet, SPI, I²C).
- Experience with RTOS and bare-metal software as well as full OS integration.
- Competent with TDD, unit testing, and automated test frameworks.
- Experienced with DevOps tools (Git, Azure DevOps, containerized tooling, etc.).
- Strong understanding of microcontroller hardware interfaces (registers, interrupts, DMA,
- Experience with embedded Linux build systems such as Yocto.
- peripherals).