Acronis leads the world in cyber protection - solving safety, accessibility, privacy, authenticity, and security (SAPAS) challenges with innovative backup, security, disaster recovery, and enterprise file sync and share solutions that run in hybrid cloud environments: on-premises, in the cloud, or at the edge. Enhanced by AI technologies and blockchain-based data authentication, Acronis protects all data, applications and systems in any environment, including physical, virtual, cloud, and mobile.
With dual headquarters in Switzerland and Singapore, Acronis protects the data of more than 5 million consumers and 500,000 businesses in over 150 countries and 20 languages.
The Kernel Software Developer for Linux reports to the Kernel Team Linux Lead and is responsible for all kernel and other system RnD tasks, the architectural design and development of relevant components.
- Be effective in the role of the Linux kernel and other system components developer for Linux. It is good to have the inclination to master other kernels, including Windows, macOS.
- Capable systems level researcher. Effectively communicate with malware/security researchers / reverse engineers in the common tasks.
- Significantly participate in the architectural design of both platform-specific and cross-platform components developing by the Kernel Team, along with their integration with components from other teams.
- Maintain existing components of Kernel Team, fix bugs in them in timely manner. Communicate to other teams to investigate and fix bugs of complex nature, requiring efforts of several involved teams.
- Be open in knowledge sharing with others team members as locally in Singapore, as remotely in other Acronis offices.
- Ensure that development progress, problems and risks are clearly communicated to the Kernel Team Linux Lead.
- Master or Bachelor Degree in Computer Science or the equivalent engineering education and experience is absolutely mandatory.
- Good knowledge and practical experience of C/C++(with STL). But the main required programming language is C for kernel modules. Knowledge of Objective-C/Swift, Python / other scripting languages is appreciated.
- 3+ years of development in either:
o Linux kernel modules and daemons development.
o macOS kernel extensions and daemons development experience is a plus.
- Experience of production level kernel development is mandatory.
- Advanced kernel mode debugging skills, extensive experience of work with kernel level debuggers, including GDB/LLDB. Experience of debugger’s extensions/addons/plugins development is desirable.
- Fairly deep knowledge of required modern OS kernels (macOS, Linux, other Unix systems kernel knowledge can be a plus).
- Experience of the flexible use of both documented and undocumented approaches of interacting with them.
- Linux packages (.rpm, .deb, ...) development experience
- Linux server/workstation administration with command line interface experience
- Good reverse engineering skills, experience of work with IDA Pro / Hopper / Ghidra and other related tools. Malware-specific analysis skills are strongly appreciated. Deep knowledge of assembly language of x86/x86-64 CPUs is absolutely mandatory, ARM/Aarch64 knowledge can be a plus, but not mandatory. It is important to have at least the inclination to master and be capable of performing reverse engineering tasks, though it is not primarily mandatory/required for Linux development, but essential for other kernels and malware analysis.
- Knowledge of principles of architectural design of high-performance cross-platform scalable software components. Platform- and kernel-specific design approaches are strongly appreciated.
- Recent experience with Data & System Protection technologies, rich background in both Data and System protection is highly beneficial, but not mandatory.