Senior Software Engineer; C++
Listed on 2026-01-02
-
Software Development
Embedded Software Engineer
Location: Indiana
Select how often (in days) to receive an alert:
Since our founding, IDEMIA has been on a mission to unlock the world and make it safer through our cutting-edge identity technologies. Our technology leadership makes us the partner of choice for hundreds of governments and thousands of enterprises in over 180 countries, including some of the biggest and most influential brands in the world. In applying our unique expertise in biometrics and cryptography
, we enable our clients to unlock simpler and safer ways to pay, connect, access, identify, travel and protect public places – at scale and in total security.
Our teams work from 5 continents and speak 100+ different languages. We strongly believe that our diversity is a key driver of innovation and performance.
PurposeRole Overview: We are seeking a Senior Embedded Linux & C++ Engineer with strong expertise in C++ development, Linux system debugging, and Yocto-based firmware builds. The role involves handling complex system-level challenges such as kernel hardening, security configurations, privilege segregation, and final firmware image creation, along with developing and debugging robust C++ applications on embedded platforms.
Key Missions- Design, develop, and debug C++ applications on Embedded Linux systems
- Perform advanced debugging using GDB for application and system-level issues
- Diagnose complex issues involving C++ runtime, OS services, and kernel interactions
- Customize and maintain Yocto Linux distributions
- Develop and manage Bit Bake recipes, layers, and build configurations
- Handle Linux kernel hardening and system security configurations
- Implement root/user privilege segregation and secure system design
- Create, integrate, and validate production-ready firmware images
- Analyze and resolve boot, performance, memory, and stability issues
- Conduct code reviews and mentor junior engineers
- Collaborate with hardware, QA, and system teams for end-to-end delivery
Required Skills
- Strong expertise in C++ (C++11/14/17)
- Solid understanding of OOP, STL, memory management, multithreading
- Excellent debugging skills using GDB
- Strong knowledge of Linux systems, including file system management, user/root privilege handling, and scripting
- Good knowledge of Linux kernel configuration and tuning
- Solid experience using Git for source code management
- Good understanding of LXC and Linux containerization concepts
- Strong knowledge of Embedded Linux internals
- Hands-on experience with Yocto Project & Bit Bake
- Understanding of security concepts, root access control, and privilege separation
- Experience in firmware image creation and release management
- Good overview of IT fundamentals (networking, services, security basics)
Good to Have:
- Knowledge of CMake/Make, cross-compilation tool chains
- Exposure to CI/CD pipelines for embedded systems
- Experience in security-critical or regulated environments
- Expertise in C# programming would be an asset
By choosing to work at IDEMIA, you will join a unique tech company, offering a wide range of growth opportunities. You will contribute to a safer world, collaborating with an international and global community. We value the diversity of our teams and welcome people from all walks of life, regardless of how they look, where they come from, who they love, or what they think.
We deliver cutting edge, future proof innovation that reach the highest technological standards and we’re transforming, fast, to stay a leader in a world that’s changing fast, too.
At IDEMIA, people can develop their expertise and feel a sense of ownership and empowerment, in a global environment, as part of a company with the ambition and the ability to change the world.
Visit our website to know more about the leader in Identity Technologies
#J-18808-Ljbffr(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).