Search by job, company or skills

NeST Digital

Senior Software Engineer-Embedded Linux C++ Engineer

new job description bg glownew job description bg glownew job description bg svg
  • Posted a day ago
  • Be among the first 10 applicants
Early Applicant

Job Description

Job Purpose

We are seeking a Senior Embedded Linux C++ Engineer responsible for developing and stabilizing system-level C++ software on Linux-based embedded platforms.

This is a hands-on development role focused on implementing, integrating, and debugging performance-sensitive C++ components operating close to hardware and Linux OS services. This role requires strong expertise in modern C++, multithreading, and practical system-level troubleshooting within production embedded environments.

Key Responsibilities

  • Develop and enhance system-level C++ modules on Embedded Linux platforms.
  • Implement multithreaded components with proper synchronization and resource management.
  • Integrate software with hardware interfaces and support board-level validation.
  • Diagnose and resolve runtime issues such as memory leaks, race conditions, deadlocks, and performance bottlenecks.
  • Troubleshoot cross-layer issues involving C++ logic, Linux OS behavior, and hardware interaction.
  • Support software flashing and deployment on embedded targets.
  • Contribute to embedded Linux build configuration and maintenance.
  • Write unit tests for C++ modules and support automated build workflows.
  • Participate in code reviews and follow established engineering practices.

Required Technical Skills

  • 10+ years of embedded software development experience.
  • Minimum 5+ years of hands-on C++ development in Embedded Linux environments.
  • Strong hands-on expertise in Modern C++ (C++11 or later), including:
    • Multithreading using standard concurrency mechanisms
    • Synchronization primitives (mutex, atomic operations)
    • Memory management (RAII, smart pointers)
    • Performance-aware design
  • Proven experience developing multithreaded Linux-based C++ applications.
  • Practical experience implementing and debugging Linux IPC mechanisms (sockets, shared memory, pipes, message queues).
  • Strong debugging skills using GDB, strace, perf, and kernel log analysis.
  • Experience working with Yocto/OpenEmbedded build systems, including image configuration.
  • Experience interfacing with hardware communication protocols such as SPI, I2C, UART, USB, or Ethernet.
  • Hands-on experience working with physical embedded hardware platforms, including:
    • Software flashing and image deployment
    • Serial console debugging
    • Use of JTAG or equivalent debugging interfaces
    • Basic familiarity with lab tools such as logic analyzers or oscilloscopes for issue analysis
  • Experience writing unit tests for C++ modules, preferably using Google Test (gtest) or similar frameworks.
  • Hands-on experience using Git for collaborative development (branching, merging, code reviews).
  • Exposure to CI/CD pipelines and automated build systems, ideally Azure DevOps
  • Working knowledge of Linux shell scripting; familiarity with Python for automation or tool support.
  • Working knowledge of C for low-level interaction where required.
  • Demonstrated experience resolving stability and performance issues in production of embedded systems.
  • Experience with functional safety in embedded software (e.g. automotive, medical, aerospace)
  • Good verbal and written English communication skills.
Preferred / Good-to-Have Skills

  • Experience in multimedia, video processing, or performance-intensive embedded systems.
  • Experience in heterogeneous architectures (e.g. ARM/FPGA)
  • Familiarity with RTOS environments in addition to Linux.
  • Experience working in globally distributed development teams.
  • Awareness of secure coding practices in embedded systems.
  • Experience in working with international development teams

Non-Technical Requirements.

  • Strong ownership mindset and accountability for assigned modules.
  • Structured and analytical troubleshooting approach.
  • Effective collaboration across firmware, hardware, and cross-functional teams.
  • High level of engineering discipline and attention to detail.
  • Professional communication skills.

More Info

Job Type:
Industry:
Employment Type:

About Company

Job ID: 145155947