Search by job, company or skills

NeST Digital

Senior Software Engineer - Embedded Linux C++

Save
new job description bg glownew job description bg glownew job description bg svg
  • Posted 23 hours 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

  • Design and develop object-oriented C++ components in a Linux userspace application running on an x86-based embedded platform.
  • Implement multithreaded, concurrent C++ components with correct synchronisation, resource management, and RAII-based ownership.
  • Design and implement inter-process communication between application components and system software using Linux IPC mechanisms.
  • Diagnose and resolve complex runtime issues — memory leaks, race conditions, deadlocks, and latency regressions — across the full software stack.
  • Maintain software consistency and quality across multiple product variants sharing a common platform codebase.
  • Work in an agile sprint cadence with the Germany-based engineering team, actively participating in planning, code reviews, and cross-site collaboration.
  • Contribute to Yocto/OpenEmbedded build system configuration and CI/CD pipeline maintenance.
  • Write unit tests for C++ modules and support automated build workflows.
  • Participate in code reviews and follow established engineering practices.

Required Technical Skills

  • 8+ years of software development experience with a strong C++ background in Linux environments.
  • At least 4 years of hands-on C++ development in Linux userspace environments.
  • Strong hands-on expertise in Modern C++ (C++11/14/17) including multithreading, synchronization primitives, memory management (RAII, smart pointers), and performance-aware design.
  • Proven experience developing, debugging, and stabilising multithreaded Linux userspace C++ applications.
  • Solid experience with Linux IPC mechanisms like sockets, shared memory, pipes, message queues and designing reliable inter-process communication between concurrent applications.
  • Strong debugging skills using GDB, strace, perf, core dump analysis with real production incident ownership, not just familiarity.
  • Experience writing unit tests for C++ modules using Google Test (gtest) and integrating them into CI/CD pipelines.
  • CI/CD pipeline experience — Azure DevOps or Jenkins; CMake build system and Git for collaborative development.
  • Working knowledge of Linux shell scripting and Python for automation and tooling support.
  • Demonstrated experience resolving stability and performance issues in production Linux software.
  • Good verbal and written English — daily collaboration with an international engineering team is central to this role.

Preferred / Good-to-Have Skills

  • Video or image processing experience — GStreamer, V4L2, OpenCV, pipeline design and latency optimisation. Highly relevant to this role.
  • Experience managing software across multiple product variants within a shared platform codebase.
  • Background in middleware or service-oriented architecture on embedded Linux platforms.
  • Experience in globally distributed development teams, particularly with European engineering counterparts.
  • Familiarity with regulated software development practices in medical or automotive domain awareness.
  • Basic conceptual awareness of hardware communication protocols (SPI, I2C, UART) — driver development not required.
  • Familiarity with ARM/FPGA.
  • Hands-on experience with Yocto/OpenEmbedded build systems — recipe modification, layer configuration, and image builds.

Non-Technical Requirements.

  • Strong ownership mindset and accountability for assigned modules.
  • Structured and analytical troubleshooting approach.
  • Effective collaboration across geographically distributed, cross-functional teams.
  • High level of engineering discipline and attention to detail.
  • Long-term commitment and stability — this role involves building deep platform knowledge that grows over time and the team values engineers who stay and grow with the product.

More Info

Job Type:
Industry:
Employment Type:

About Company

Job ID: 145945031

Similar Jobs