Senior Embedded Linux Engineer - Remote C/Device Driver Expert

Remotely
Full-time
Part-time

Are you a seasoned Embedded Engineer with extensive experience in Linux kernel development and device driver implementation? We're seeking a Senior Embedded Systems Engineer proficient in C programming to join our innovative team developing cutting-edge embedded solutions. This remote opportunity allows you to contribute to sophisticated embedded Linux projects while working from anywhere in the world.


About the Role

As a Senior Embedded Linux Engineer, you'll be responsible for designing, implementing, and optimizing device drivers and embedded software solutions. You'll work on challenging projects involving the latest microcontroller technologies, including the i.MX8 platform, and various communication protocols such as SPI, CAN, I2C, and LIN.


Key Responsibilities

- Architect and develop robust Linux device drivers for various hardware interfaces and peripherals.

- Engineer and maintain comprehensive Board Support Packages (BSPs) for embedded Linux systems.

- Customize and optimize Linux kernel configurations for specific hardware platforms.

- Implement and debug communication interfaces (SPI, I2C, CAN, LIN) within embedded Linux environments.

- Troubleshoot complex system-level issues across hardware and software boundaries.

- Collaborate with cross-functional teams to integrate software components into cohesive embedded systems.

- Document code, architectures, and technical specifications thoroughly.

- Conduct and participate in code reviews to ensure quality and maintainability of the codebase.

- Optimize software for performance, memory footprint, and power consumption requirements.

- Research and implement emerging trends and technologies in embedded systems development.


Required Skills and Experience

- 10+ years of hands-on experience developing Linux device drivers and embedded C programming.

- Profound understanding of Linux kernel architecture, subsystems, and internal mechanisms.

- Extensive experience with cross-compilation toolchains and embedded development environments.

- Strong expertise in debugging embedded systems using tools like GDB, JTAG, and logic analyzers.

- Deep knowledge of memory management, concurrency, and real-time constraints in embedded systems.

- Demonstrated ability to interpret hardware schematics and datasheets for implementing driver interfaces.

- Proficiency with version control systems (Git) and collaborative development workflows.

- Practical experience with embedded bootloaders (U-Boot, etc.) and secure boot implementations.

- Working knowledge of embedded Linux security principles and best practices.

- English language proficiency at B1 level or higher for effective team communication.


Preferred Qualifications

- Experience with Yocto Project and OpenEmbedded build systems (bitbake/devtool).

- Familiarity with Linux device tree structure and implementation.

- Hands-on experience with NXP i.MX8 series processors and Cortex-M4 microcontrollers.

- Practical knowledge implementing and debugging LIN/SPI/CAN/I2C communication protocols.

- Experience with Linux audio subsystems, Bluetooth, and WiFi driver integration.

- Background in real-time operating systems (RTOS) and their co-existence with Linux.

- Familiarity with containerization technologies for embedded applications.

- Experience with automated testing frameworks for embedded systems.

- Knowledge of low-power design techniques for battery-powered devices.

- Contributions to open-source embedded Linux projects or kernel development.


Development Environment and Tools

- Linux kernel (6.4 LTS and newer)

- Yocto Project (Mickledore 4.2+)

- GCC toolchain (12.x+)

- Git for version control

- QEMU for system emulation

- GDB and hardware debugging tools

- Jenkins/GitLab CI for continuous integration

- Docker/Podman for containerized development environments


Why Join Our Team

Working with us offers the opportunity to tackle challenging embedded systems projects using cutting-edge technology. As a fully remote position, you'll enjoy the flexibility to work from your preferred location while collaborating with talented professionals worldwide. You'll expand your expertise in embedded Linux development while contributing to innovative solutions that make a difference. We foster a culture of continuous learning, technical excellence, and collaborative problem-solving.


We value your deep technical expertise and offer competitive compensation reflective of your senior-level experience in this specialized field. Join us to push the boundaries of what's possible in embedded systems development.