Linux embedded engineer - R&D Division
Enea Romania is part of Enea, a world leader in embedded systems and advanced technical systems development that supplies carrier grade platform software and professional engineering services to the global telecommunications industry. Enea Romania creates the best in class customized software applications around specific necessity for global players acting in industries as telecommunications, wireless, multimedia, consumer electronics, navigation systems and microelectronics.
1. Scripting languages (bash/python).
2. Familiarity with open-source software and tools used for building a Linux distribution.
3. Strong C/C++ programming experience.
4. Embedded software programming experience.
5. Experience in Linux applications programming.
6. Knowledge of Linux kernel and device-driver development.
7. Experience working with OpenEmbedded build framework and good expertise working with Yocto Project
8. Strong communication skills in English.
9. Ability to write effective and reusable code according to best practices.
Great to have:
1. Expert on Linux networking subsystem and networking virtualized solutions (e.g. OpenvSwitch)
2. Experience with Open Data Plane programming and fast path software architecture.
3. Good understanding of hypervisors technologies, strong knowledge of Linux virtualization solutions (e.g. KVM, Linux Containers)
4. Expertise on Linux Kernel optimizations and real-time technologies, e.g. NO_HZ, Core Isolation.
5. Expert in Linux tools development: Eclipse/CDT Project, tracing, profiling, performance counters, etc.
6. Expert knowledge on device-drivers and Linux Kernel development: preemption models, memory barriers, threads, timers, locking and synchronization mechanisms, etc.
7. Expertise in modern HW architectures (System-On-Chip architectures) and assembly programming
1. Design, code and integrate software for an embedded Linux distribution(applications, drivers, toolchains)
2. Customization, deployment and maintenance of Linux distribution on different hardware platforms
3. Interact with Linux kernel for different hardware architectures, and integrate new device drivers/kernel modules.
4. Improve and maintain existing software components.
5. Perform test unit, verification and validation of the product developed.
6. Participate in the editing of the user’s guide.