Senior Software Engineer-Embedded C++ Engineer – Linux (Bengaluru)

Senior Software Engineer-Embedded C++ Engineer – Linux (Bengaluru)

12 Nov
|
NeST Digital
|
Bengaluru

12 Nov

NeST Digital

Bengaluru

Senior Embedded C++ Engineer – Linux

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.
- 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.
- Basic conceptual awareness of hardware communication protocols (SPI, I2C, UART) — driver development is not required.




- Video or image processing experience — GStreamer, pipeline design and latency optimization. Highly relevant to this role

Preferred / Positive-to-Have Skills

- Experience managing software across multiple product variants within a shared platform codebase.
- Familiarity with hardware-to-host data transfer mechanisms, such as Direct Memory Access (DMA), zero-copy memory mapping, and PCIe bandwidth considerations between video processing units (GPUs/VPUs/FPGAs) and the CPU.
- Basic understanding of digital image and video frame fundamentals, including pixel layouts, color spaces (RGB, YUV/NV12), strides, pitch, and frame buffer management.
- Experience in globally distributed development teams, particularly with European engineering counterparts.
- Familiarity with regulated software development practices in medical or automotive domain awareness.
- Familiarity with ARM/FPGA.
- Working knowledge of Linux shell scripting and Python for automation and tooling support.

- 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.

📌 Senior Software Engineer-Embedded C++ Engineer – Linux (Bengaluru)
🏢 NeST Digital
📍 Bengaluru

Reply to this offer

Impress this employer describing Your skills and abilities, fill out the form below and leave Your personal touch in the presentation letter.

Subscribe to this job alert:

Get the latest job offers by email for: senior software engineer-embedded c++ engineer – linux (bengaluru) / bengaluru

Subscribe to this job alert:

Get the latest job offers by email for: senior software engineer-embedded c++ engineer – linux (bengaluru) / bengaluru